Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
PERAMALAN CURAH HUJAN MENGGUNAKAN METODE HIGH ORDER FUZZY TIME SERIES MULTI FACTORS
SKRIPSI
Untuk memenuhi sebagian persyaratan memperoleh gelar Sarjana Komputer
Disusun oleh Ahmada Bastomi Wijaya NIM 135150301111033
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA
FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA
MALANG 2017
ii
PENGESAHAN
PERAMALAN CURAH HUJAN MENGGUNAKAN METODE HIGH ORDER FUZZY TIME SERIES MULTI FACTORS
SKRIPSI
Diajukan untuk memenuhi sebagian persyaratan
memperoleh gelar Sarjana Komputer
Disusun Oleh Ahmada Bastomi Wijaya
135150301111033
Skripsi ini telah diuji dan dinyatakan lulus pada 08 Agustus 2017
Telah diperiksa dan disetujui oleh
Dosen Pembimbing I
Candra Dewi SKom MSc NIP 19771114 200312 2 001
Dosen Pembimbing II
Bayu Rahayudi ST MT NIP 19740712 200604 1 001
Mengetahui Ketua Jurusan Teknik Informatika
Tri Astoto Kurniawan ST MT PhD NIP 19710518 200312 1 001
iii
PERNYATAAN ORISINALITAS
Saya menyatakan dengan sebenar-benarnya bahwa sepanjang pengetahuan saya di dalam naskah skripsi ini tidak terdapat karya ilmiah yang pernah diajukan oleh orang lain untuk memperoleh gelar akademik di suatu perguruan tinggi dan tidak terdapat karya atau pendapat yang pernah ditulis atau diterbitkan oleh orang lain kecuali yang secara tertulis disitasi dalam naskah ini dan disebutkan dalam daftar pustaka
Apabila ternyata didalam naskah skripsi ini dapat dibuktikan terdapat unsur-unsur plagiasi saya bersedia skripsi ini digugurkan dan gelar akademik yang telah saya peroleh (sarjana) dibatalkan serta diproses sesuai dengan peraturan perundang-undangan yang berlaku (UU No 20 Tahun 2003 Pasal 25 ayat 2 dan Pasal 70)
Malang 10 Agustus 2017
Ahmada Bastomi Wijaya
135150301111033
iv
KATA PENGANTAR
Puji syukur penulis panjatkan kepada Allah SWT yang telah memberikan rahmat dan hidayah-Nya kepada penulis sehingga penulis dapat menyelesaikan skripsi dengan judul ldquoPeramalan Curah Hujan Menggunakan Metode High Order Fuzzy Time Series Multi Factorsrdquo
Melalui kesempatan ini penulis ingin menyampaikan terima kasih kepada semua pihak yang telah memberikan bantuan serta dukungan kepada penulis dalam menyelesaikan skripsi ini diantaranya
1 Kedua orang tua penulis Bapak Wahyudi Rianto amp Ibu Sugihartiwi yang selalu memberikan dorsquoa kasih sayang dan semangat kepada penulis
2 Ibu Candra Dewi SKom MSc selaku dosen pembimbing I yang telah memberikan ilmu serta saran selama proses pengerjaan skripsi ini
3 Bapak Bayu Rahayudi ST MT selaku dosen pembimbing II yang juga telah memberikan ilmu serta saran selama proses pengerjaan skripsi ini
4 Ibu Hurriyatul Fitriyah ST MSc selaku dosen penasihat akademik yang telah memberikan banyak kritik dan saran selama proses perkuliahan
5 Bapak Wayan Firdaus Mahmudy S Si MT PhD selaku Dekan Fakultas Ilmu Komputer Universitas Brawijaya
6 Bapak Tri Astoto Kurniawan ST MT PhD selaku Ketua Jurusan Teknik Informatika Fakultas Ilmu Komputer Universitas Brawijaya
7 Bapak Agus Wahyu Widodo ST MCs selaku Ketua Program Studi Teknik Informatika Fakultas Ilmu Komputer Universitas Brawijaya
8 Semua teman FILKOM khususnya angkatan 2013 yang telah memberikan bantuan serta dukungan selama masa perkuliahan dan pengerjaan skripsi
9 Semua pihak yang tidak dapat disebutkan satu persatu yang terlibat baik secara langsung mapun tidak langsung yang telah membantu penulis dalam menyelesaikan skripsi ini
Penulis menyadari bahwa skripsi ini masih banyak kekurangan sehingga penulis dengan terbuka menerima kritik serta saran yang membangun Akhir kata penulis berharap skripsi ini dapat bermanfaat dan berguna bagi semua pihak yang menggunakannya
Malang 10 Agustus 2017
Penulis
ahmadabastomigmailcom
v
ABSTRAK
Kabupaten Malang merupakan salah satu kabupaten di Jawa Timur yang memiliki tingkat produksi pertanian yang cukup tinggi dimana hampir disetiap kecamatanya memiliki lahan pertanian Permasalahannya adalah pada saat curah hujan yang tinggi tidak sedikit petani yang mengalami gagal panen Curah hujan adalah salah satu dari beberapa faktor yang mempengaruhi perubahan iklim sehingga sangat menentukan hasil panen yang diperoleh Permasalahan gagal panen ini dapat diatasi dengan melakukan peramalan curah hujan dengan adanya peramalan curah hujan petani dapat menentukan waktu pola tanam yang sesuai sehingga dapat mengantisipasi terjadinya gagal panen Pada penelitian ini peramalan curah hujan dalam dasarian berdasarkan beberapa faktor yaitu suhu kelembaban dan kecepatan angin Metode yang digunakan untuk peramalan curah hujan dasarian adalah High Order Fuzzy Time Series Multi factors Pada metode ini pembentukan subinterval dilakukan dengan menggunakan fuzzy C-means Dalam menghitung kesalahan hasil peramalan menggunakan Mean Square Error (MSE) Berdasarkan hasil pengujian yang dilakukan semakin kecil threshold serta semakin besar data training dan order maka nilai kesalahan yang diperoleh semakin rendah Hasil peramalan curah hujan dasarian untuk peramalan satu tahun kedepan menggunakan metode ini mendapatkan hasil MSE terbaik sebesar 539698
Kata kunci curah hujan fuzzy C-means fuzzy time series peramalan
vi
ABSTRACT
Malang Regency is one of the regencies in East Java which has a high level of agricultural production in almost every district has agricultural land The problem is when high rainfall is not a few farmers who experienced crop failure Rainfall is one of several factors that affect climate change so it is very important to determine the yields obtained The problem of this harvest failure can be overcome by forecasting rainfall with rainfall forecasting farmers can determine the time of the appropriate cropping patterns so as to anticipate the occurrence of crop failure On the research of forecasting rainfall in dasarian based on several factors namely temperature humidity and wind speed The methods used for forecasting rainfall dasarian is a High-Order Fuzzy Time Series Multi factors In this method the formation of subinterval using fuzzy C-means In calculating the error of forecasting result using Mean Square Error (MSE) Based on the results of tests conducted the smaller threshold and the greater data training as well order the value error is obtained increasingly low The result of forecasting dasarian rainfall for forecasting one year ahead using this method get the best MSE result of 539698 Keywords rain fall fuzzy C-means fuzzy time series forecasting
vii
DAFTAR ISI
PENGESAHAN ii
PERNYATAAN ORISINALITAS iii
KATA PENGANTAR iv
ABSTRAK v
ABSTRACT vi
DAFTAR ISI vii
DAFTAR TABEL xi
DAFTAR GAMBAR xiii
DAFTAR KODE PROGRAM xv
DAFTAR LAMPIRAN xvi
BAB 1 PENDAHULUAN 1
11 Latar belakang 1
12 Rumusan masalah 2
13 Tujuan 3
14 Manfaat 3
15 Batasan masalah 3
16 Sistematika pembahasan 3
BAB 2 LANDASAN KEPUSTAKAAN 5
21 Kajian Pustaka 5
22 Dasar Teori 7
221 Peramalan 8
222 Curah hujan 8
223 Data time series 9
224 Logika Fuzzy 10
225 Metode Fuzzy C-means 13
226 Metode Peramalan dengan Fuzzy Time Series 15
227 Metode High Order Fuzzy Time Series Multi Factors 17
228 Perhitungan keakuratan metode peramalan 20
BAB 3 METODOLOGI 22
31 Studi Literatur 22
viii
32 Pengumpulan Data 23
33 Perancangan 23
34 Implementasi 23
35 Pengujian dan Analisis 23
36 Kesimpulan dan Saran 24
BAB 4 PERANCANGAN 25
41 Perancangan Proses 25
411 Proses perhitungan Universe of Discourse 26
4111 Proses perhitungan Mean 28
4112 Proses perhitungan standar deviasi 29
4113 Proses perhitungan nilai Dmin dan Dmax 30
412 Proses perhitungan jumlah cluster 31
413 Proses perhitungan pusat cluster 32
414 Proses pembentukan subinterval dan Fuzzy set 37
415 Proses Fuzzifikasi 38
416 Proses pembentukan Fuzzy Logical Relationship 41
417 Proses Defuzzifikasi 43
42 Perhitungan Manual 46
421 Perhitungan Universe of Discourse (U) 46
422 Perhitungan jumlah cluster (k) 48
423 Perhitungan pusat cluster dan subinterval 49
4231 Penentuan pusat cluster 49
4232 Perhitungan batas subinterval 55
424 Pembentukan Fuzzy Set 56
425 Fuzzifikasi 56
426 Pembentukan Fuzzy Logical Relationship (FLR) 58
427 Defuzzifikasi 58
43 Perancangan antarmuka 60
431 Halaman input 60
432 Halaman tampil data 61
433 Halaman proses 62
434 Halaman hasil 63
ix
435 Halaman perhitungan error 64
44 Perancangan pengujian 64
441 Perancangan pengaruh order terhadap nilai MSE 64
442 Perancangan pengaruh threshold terhadap nilai MSE 65
443 Perancangan pengaruh jumlah data training terhadap nilai MSE 65
444 Perancangan validasi sistem 65
BAB 5 IMPLEMENTASI 67
51 Spesifikasi Sistem 67
511 Spesifikasi Perangkat Keras 67
512 Spesifikasi Perangkat Lunak 67
52 Implementasi Algoritma 67
521 Implementasi Proses Universe of Discourse 68
5211 Implementasi proses mean 68
5212 Implementasi proses standar deviasi 68
5213 Implementasi proses Dmin dan Dmax 69
522 Implementasi Proses Jumlah Cluster 69
523 Implementasi Proses Pusat Cluster 70
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set 72
525 Implementasi proses fuzzifikasi 74
526 Implementasi Pembentukan Fuzzy Logical Relationship 75
527 Implementasi Proses Defuzzifikasi 77
53 Implementasi Antarmuka 79
531 Implementasi antarmuka halaman input 79
532 Implementasi antarmuka halaman tampil data 80
533 Implementasi antarmuka halaman proses 80
534 Implementasi antarmuka halaman hasil 82
535 Implementasi antarmuka halaman perhitungan error 82
BAB 6 PENGUJIAN DAN ANALISIS 83
61 Sistematika Pengujian 83
62 Hasil dan Analisis Pembahasan 83
621 Pengujian pengaruh order terhadap nilai MSE 83
x
622 Pengujian pengaruh threshold terhadap nilai MSE 85
623 Pengujian pengaruh jumlah data training terhadap nilai MSE 86
624 Pengujian validasi sistem 88
BAB 7 PENUTUP 90
71 Kesimpulan 90
72 Saran 91
DAFTAR PUSTAKA 92
LAMPIRAN 95
Lampiran 1 Data Sampel 95
xi
DAFTAR TABEL
Tabel 21 Kajian Pustaka 5
Tabel 22 Fuzzy Logic Relationship 19
Tabel 23 Peramalan fuzzy set 20
Tabel 41 Data Sampel Perhitungan Manual 46
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean 47
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi 47
Tabel 44 Hasil Universe of Discourse 48
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya 48
Tabel 46 Hasil jumlah cluster data 49
Tabel 47 Matriks partisi awal pada cluster data A 50
Tabel 48 Derajat keanggotaan matriks partisi data A 51
Tabel 49 Perhitungan pusat cluster data A 52
Tabel 410 Fungsi objektif data A 53
Tabel 411 Perbaikan matriks partisi 54
Tabel 412 Hasil perbaikan matriks partisi 54
Tabel 413 Hasil pusat cluster 55
Tabel 414 Batas subinterval masing ndash masing atribut data 55
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A 57
Tabel 416 Hasil fuzzifikasi semua data attribut 57
Tabel 417 Hasil pembentukan FLR data training 58
Tabel 418 Hasil pembentukan FLR data testing 58
Tabel 419 Frekuensi FLR yang cocok dengan data testing 59
Tabel 420 Perbandingan data aktual dan hasil peramalan 60
Tabel 421 Rancangan pengujian order terhadap nilai MSE 64
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE 65
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE 65
Tabel 424 Rancangan pengujian validasi sistem 66
Tabel 51 Spesifikasi Perangkat Keras 67
Tabel 52 Spesifikasi Perangkat Lunak 67
Tabel 61 Hasil pengujian order terhadap nilai MSE 83
xii
Tabel 62 Hasil pengujian threshold terhadap nilai MSE 85
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE 87
Tabel 64 Hasil pengujian validasi sistem 88
xiii
DAFTAR GAMBAR
Gambar 21 Representasi linear naik 11
Gambar 22 Representasi linear turun 12
Gambar 23 Representasi kurva segitiga 12
Gambar 31 Diagram blok metodologi penelitian 22
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1) 25
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2) 26
Gambar 43 Diagram alir proses perhitungan Universe of Discourse 27
Gambar 44 Diagram alir proses perhitungan mean 28
Gambar 45 Diagram alir proses perhitungan standar deviasi 29
Gambar 46 Diagram alir perhitungan nilai Min dan Max 30
Gambar 47 Diagram alir proses perhitungan jumlah cluster 31
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1) 32
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2) 33
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3) 34
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4) 35
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5) 36
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1) 37
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2) 38
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1) 39
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2) 40
Gambar 417 Diagram alir proses Pembentukan FLR (bagian 1) 41
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2) 42
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3) 43
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1) 44
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2) 45
Gambar 422 Grafik fuzzy set data A 56
Gambar 423 Rancangan antarmuka halaman input 61
Gambar 424 Rancangan antarmuka halaman tampil data 61
Gambar 425 Rancangan antarmuka halaman proses clustering 62
Gambar 426 Rancangan antarmuka proses fuzzifikasi 62
xiv
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship 63
Gambar 428 Rancangan antarmuka halaman hasil peramalan 63
Gambar 429 Rancangan antarmuka halaman perhitungan error 64
Gambar 51 Implementasi antarmuka halaman input 79
Gambar 52 Implementasi antarmuka halaman tampil data 80
Gambar 53 Implementasi antarmuka halaman proses clustering 80
Gambar 54 Implementasi antarmuka halaman proses fuzzification 81
Gambar 55 Implementasi halaman antarmuka proses FLR 81
Gambar 56 Implementasi halaman antarmuka hasil 82
Gambar 57 Implementasi halaman antarmuka perhitungan error 82
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE 84
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE 86
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE 87
Gambar 64 Grafik hasil pengujian validasi sistem 88
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan 89
xv
DAFTAR KODE PROGRAM
Kode Program 51 Implementasi proses Universe of Discourse 68
Kode Program 52 Implementasi proses mean 68
Kode Program 53 Implementasi proses standar deviasi 69
Kode Program 54 Implementasi proses Dmin dan Dmax 69
Kode Program 55 Implementasi proses jumlah cluster 70
Kode Program 56 Implementasi proses pusat cluster 72
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set 74
Kode Program 58 Implementasi proses fuzzifikasi 75
Kode Program 59 Implementasi pembentukan FLR 77
Kode Program 510 Implementasi proses defuzzifikasi 79
xvi
DAFTAR LAMPIRAN
Lampiran 1 Tabel Data Sampel 95
1
BAB 1 PENDAHULUAN
11 Latar belakang
Kabupaten Malang merupakan salah satu kabupaten di Jawa Timur yang terkenal akan potensi alam yang dimiliki (BPS Kabupaten Malang 2016) Dalam hal ini terkenal akan potensi alamnya karena kabupaten Malang memiliki tingkat produksi di sektor pertanian yang cukup tinggi dimana hampir seluruh kecamatan di kabupaten Malang memiliki lahan pertaniaaan (BPS Jatim 2015) Permasalahan yang terjadi pada sektor pertanian yaitu terjadinya gagal panen apabila memasuki musim penghujan dengan curah hujan yang tinggi yaitu diatas 200 mm per bulan serta apabila memasuki musim kemarau dengan curah hujan yang rendah yaitu dibawah 100 mm per bulan (BMKG Staklim Karangploso Malang 2015) Dalam mengatasi hal tersebut upaya yang dilakukan petani selama ini hanya melakukan tindakan seperti melakukan panen secara dini Upaya ini dianggap petani cukup efektif dalam mengurangi besarnya kerugian gagal panen akan tetapi sebaiknya yang dilakukan adalah melakukan suatu tindakan agar kerugian yang dialami petani tidak terjadi lagi (Ardiyanto 2016)
Salah satu contoh tindakan yang dapat dilakukan adalah membuat Kalender Tanam (KATAM) KATAM dapat digunakan petani sebagai alat bantu atau pedoman dalam menentukan awal musim tanam terbaik seperti yang telah dilakukan oleh Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian Dalam pembuatan KATAM Balitbang menggunakan data peramalan curah hujan dari Badan Meteorologi Klimatologi dan Geofisika (BMKG) Akan tetapi BMKG mengakui bahwa prakiraan cuacanya saat ini memang masih kurang akurat dan masih kalah dengan prakiraan cuaca di Amerika Serikat (Yunanto 2014) Pentingnya akan prakiraan cuaca terbukti adanya beberapa penelitian sebelumnya yaitu penelitian prakiraan cuaca dengan input faktor yang mempengaruhi cuaca yang berupa data time series menggunakan metode Adaptive Neuro Fuzzy Inference System (ANFIS) (Dewi 2014) dan penelitian mengenai prediksi cuaca menggunakan metode Backpropagation Neural Network yang terbukti memiliki nilai akurasi yang baik dalam prediksi cuaca (Dewi 2013)
Teknik atau metode peramalan curah hujan yang sering digunakan BMKG adalah metode Autoregressive Integrated Moving Average (ARIMA) ANFIS dan Wavelet (Kurniawan 2007) Namun dalam penerapannya gabungan dari ketiga metode tersebut masih kurang memuaskan yaitu tingkat akurasinya hanya mencapai 60 - 70 Menurut BMKG kurangnya tingkat akurasinya ini disebabkan oleh keadaan pola atmosfer di Indonesia yang selalu berubah ndash ubah dan kurang menentu
Selain metode yang digunakan oleh BMKG adapun penelitian sebelumnya yang meramalkan curah hujan yaitu penelitian menggunakan metode Fuzzy Time Series Chen dengan studi kasus curah hujan di Samarinda dalam penelitian ini menggunakan data time series curah hujan bulanan dengan kesimpulan pengunaan data yang sedikit memiliki tingkat akurasi lebih tinggi dibandingkan
2
menggunakan data yang banyak yaitu menghasilkan nilai RMSE terkecil 7368 dan MAE terkecil 539 (Fauziah et al 2016)
Selain peramalan yang hanya menggunakan data time series dari data yang akan diramalkan juga terdapat penelitian sebelumnya yang menggunakan faktor - faktor yang mempengaruhi dari data yang akan diramalkan Salah satunya yaitu penelitian dengan menggunakan metode Clusterwise Linear Regression (CLR) Penelitian ini menggunakan data bulanan pada delapan stasiun cuaca di kota Victoria Australia Peramalan curah hujan pada penelitian ini menggunakan faktor yang mempengaruhi yaitu suhu maksimum suhu minimum penguapan tekanan uap dan radiasi matahari Hasil penelitian ini terbukti dapat melakukan peramalan curah hujan dengan hasil yang cukup baik yaitu dengan nilai RMSE terkecil 197 dan MAE terkecil 129 (Bagirov et al 2017)
Berdasarkan paparan yang telah dijelaskan penulis memiliki ide untuk melakukan penelitian dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Pada metode ini dilakukan klasterisasi data untuk membangun subinterval dengan menggunakan metode fuzzy C-means (LinYang 2009) Dari proses hasil klasterisasi akan digunakan untuk membagi data semesta yang selanjutnya menghasilkan fuzzy set atau himpunan fuzzy yang menggambarkan fitur data (LinYang 2009) Keunggulan dari metode fuzzy time series dengan multi faktor yaitu dengan berdasarkan pada penelitian ndash penelitian sebelumnya yang menggunakan metode tersebut yaitu penelitian prediksi harga emas dengan beberapa faktor yang mempengaruhi menggunakan metode Multi-factors High order Fuzzy Time Series Model dari hasil penelitian ini dengan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 (Wardhani et al 2015) dan penelitian peramalan Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen menggunakan metode Fuzzy Time Series Model dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 (Lin Yang 2009) terbukti menghasilkan hasil peramalan dengan tingkat akurasi yang cukup tinggi Penggunaan metode ini juga sesuai dengan curah hujan yang dipengaruhi oleh beberapa faktor yaitu kelembaban udara kecepatan angin dan suhu (Pradipta 2013) Penelitian ini diharapkan dapat memberikan hasil peramalan curah hujan yang lebih akurat dan memiliki nilai kesalahan yang lebih sedikit
12 Rumusan masalah
Berdasarkan latar belakang yang telah dipaparkan dibuatlah beberapa rumusan masalah sebagai berikut
1 Bagaimana mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Berapa tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
3
13 Tujuan
Adapun maksud dan tujuan dari penelitian ini adalah sebagai berikut
1 Mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Mengetahui tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
14 Manfaat
Adapun manfaat dari penelitian ini adalah sebagai berikut
1 Bagi Badan Meteorologi dan Geofisika (BMKG) untuk dapat memberikan peramalan curah hujan yang lebih akurat dari sebelumnya
2 Bagi Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian untuk dapat membuat Kalender tanam (KATAM) dengan menggunakan data ramalan curah hujan yang lebih akurat
3 Bagi penduduk kabupaten Malang khususnya yang bekerja pada sektor pertanian agar dapat mengoptimalkan hasil produksi dengan menyesuaikan penanaman sesuai dengan Kalender Tanam (KATAM) yang telah dibuat Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian
15 Batasan masalah
Penelitian ini dibatasi oleh hal ndash hal sebagai berikut
1 Data curah hujan kelembaban udara kecepatan angin dan suhu udara yang digunakan pada penelitian ini merupakan data berdasarkan dasarian dan hanya mencakup wilayah kabupaten Malang dan data diperoleh dari BMKG Karangkates Kabupaten Malang dengan data time series yang digunakan pada penelitian ini yaitu dari tahun 2011 - 2016
2 Model peramalan yang diterapkan adalah semua nilai yang membentuk pola dataset training dan testing diketahui nilainya
3 Perhitungan nilai tingkat kesalahan permalan menggunakan metode Mean Square Error (MSE)
16 Sistematika pembahasan
Sistematika pembahasan penelitian ditunjukkan untuk memberikan gambaran dan uraian dari penyusunan proposal yang meliputi beberapa bab sebagai berikut
BAB 1 PENDAHULUAN
Pada bab ini berisi latar belakang rumusan masalah tujuan penelitian manfaat penelitian batasan masalah sistematika pembahasan dan rencana kerja atau jadwal penelitian
4
BAB 2 LANDASAN KEPUSTAKAAN
Pada bab ini berisi tentang kajian pustaka dan dasar teori yang menjadi dasar dalam melakukan implementasi peramalan curah hujan dengan Metode High Order Fuzzy Time Series Multi Factors
BAB 3 METODOLOGI
Pada bab ini diuraikan tentang tahapan atau langkah ndash langkah yang dilakukan dalam proses penelitian tentang peramalan curah hujan dengan metode High Order Fuzzy Time Series Multi Factors Langkah ndash langkah tersebut terdiri dari tahapan penelitian teknik pengumpulan data algoritma yang digunakan lingkungan pengujian dan pengujian algoritma yang digunakan serta pengambilan kesimpulan
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan proses algoritma perhitungan manual metode High Order Fuzzy Time Series Multi Factors perancangan antar muka dan perancangan pengujian
BAB 5 IMPLEMENTASI
Pada bab ini berisi tentang penjelasan peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors bagaimana user interface dan source code dalam pengimplementasian metode ini
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini berisi tentang penjelasan proses dan hasil pengujian dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam peramalan curah hujan serta analisis dari pengujian tersebut
BAB 7 PENUTUP
Pada bab ini berisi kesimpulan yang diperoleh dari hasil pengujian dan saran ndash saran untuk pengembangan penelitian selan
5
BAB 2 LANDASAN KEPUSTAKAAN
Bab ini berisi mengenai kajian pustaka dan dasar ndash dasar teori yang akan dibahas serta digunakan untuk menunjang topik ndash topik pembahasan Pada kajian akan dibahas perbedaan antara penelitian yang telah ada dengan penelitian yang diusulkan oleh penulis Sedangkan pada dasar teori akan dibahas mengenai teori ndash teori yang digunakan pada penelitian yang diusulkan
21 Kajian Pustaka
Pada kajian pustaka disini berisi mengenai perbandingan antara penelitian yang diusulkan oleh penulis dengan penelitian sebelumnya yang relevan Perbandingan tersebut dapat dilihat padat Tabel 21
Tabel 21 Kajian Pustaka
No Judul Objek dan Input Penelitian Metode
1 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan (Irsyad Metarice 2013)
Objek Curah hujan
Input Penelitian
Data aktual curah hujan
Metode High Order Fuzzy Time Series dan Automatic Clustering
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
2 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) (Fauziah et al 2016)
Objek Curah Hujan
Input Penelitian
Data aktual curah hujan
Metode Fuzzy Time Series Chen
Nilai evaluasi
Mean Absolute Error (MAE) Root Mean of Square Error (RMSE)
3 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emas (Wardhani et al 2015)
Objek Harga Emas
Input Penelitian
Kurs Dollar hari sebelumnya
Kurs Euro hari sebelumnya
Harga Emas London hari sebelumnya
Harga Emas hari sebelumnya
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
4 Stock Markets Forecasting Based on Fuzzy Time Series Model (Lin Yang 2009)
Objek Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
6
Input Penelitian
Historical return
Historical turnover volume
Rata ndash rata selisih pergerakan harga selama lima hari
Selisih antara kekuatan bull dan bear
Indeks komposit bursa efek harian Shanghai sebelumnya
Indeks komposit bursa efek harian Shenzhen
Nilai evalusi
Average Relative Error (ARError)
5 Peramalan Curah Hujan Menggunakan Metode High Order Fuzzy Time Series Multi Factors
Objek Curah hujan
Input Penelitian
Suhu
Kelembaban
Kecepatan angin
Curah hujan
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Square Error (MSE)
Sumber (Irsyad Metarice 2013) (Fauziah et al 2016) (Wardhani et al 2015) dan (Lin Yang 2009)
Pada penelitian yang pertama yaitu penelitian yang dilakukan oleh Muhammad Irsyad dan Sonya Metarice pada tahun 2013 dengan objek penelitian yang diramalkan adalah curah hujan Inputan yang digunakan pada penelitian ini merupakan data aktual curah hujan bulanan Metode yang digunakan penelitian ini adalah Automatic Clustering dan High Order Fuzzy Time Series Pada penelitian ini metode Automatic Clustering digunakan untuk membangun interval dan High Order Fuzzy Time Series untuk melakukan peramalan curah hujan Kesimpulan yang diperoleh dari penelitian ini yaitu metode ini dapat diterapkan untuk permalan curah hujan dan hasil evaluasi menggunakan metode Mean Absolute Percentage Error(MAPE) dari beberapa bercobaan dapat diperoleh nilai kesalahan sebesar 437 Berdasarkan dari hasil nilai kesalahan tersebut maka tingkat kesalahan data pada permalan ini termasuk rendah
Pada tahun 2016 Normalita Fauziah Sri Wahyuningsih dan Yuki Novia Nasution melakukan penelitian dengan objek penelitian curah hujan di kota Samarinda Inputan yang digunakan pada penelitian berupa data aktual bulanan curah hujan di kota Samarinda Metode yang digunakan pada penelitian ini adalah Fuzzy Time Series Chen dengan dalam pembentukkan panjang interval berbasis rata ndash rata atau average based Pada penelitian ini permalan curah hujan terbaik yaitu dengan menggunkan data sebanyak 29 data dengan menghasilkan tingkat nilai kesalahan terkecil yaitu dengan metode Root Mean of Squared Error (RMSE) sebesar 7368 dan metode Mean Absolute Error (MAE) sebesar 539 Pada
(Lanjutan) Tabel 21 Kajian Pustaka
7
penelitian ini disimpulkan bahwa data sebanyak 29 data memiliki tingkat kesalahan lebih kecil dibandingkan dengan menggunakan data dengan jumlah sampel yang lebih banyak
Pada penelitian selanjutnya adalah penelitian yang dilakukan oleh Dessy Kusuma Wardhani Dian Eka Ratnawati dan Budi Darma Setiawan pada tahun 2015 dengan objek penelitian yang diramalkan adalah harga emas harian Inputan yang digunakan pada penelitian ini data aktual harian harga emas indonesia harga emas london kurs dollar ke rupiah dan kurs euro ke rupiah Metode yang digunakan pada penelitian pada pembentukkan sub interval menggunakan metode fuzzy C-means dan untuk peramalan menggunakan metode High Order Fuzzy Time Series Model Hasil pada penelitian ini berdasarkan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 karena nilai error lebih kecil dari 10 menunjukkan bahwa metode ini sangat baik digunakan untuk peramalan harga emas
Pada tahun 2009 Yupei Lin dan Yiwei Yang melakukan penelitian dengan objek yang diramalkan adalah indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen Data input penelitian ini meliputi historical return historical turnover volume dan rata ndash rata selisih pergerakan harga selama lima hari serta selisih antara kekuatan bull dan bear Dalam penelitian ini pembentukan subinterval yang berfungsi dalam pendefinisian himpunan fuzzy dilakukan dengan menggunakan klasterisasi fuzzy C-means Hasil dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 Dalam hal ini membuktikan bahwa penelitian dapat menghasilkan peramalan yang cukup baik karena memiliki nilai ARError kurang dari 5
Pada penelitian ini membahas tentang peramalan curah hujan dasarian menggunakan metode High Order Fuzzy Time Series Multi Factors Terdapat empat inputan yang juga dijadikan sebagai variabel dalam penelitian ini yaitu kelembaban udara kecepatan angin suhu udara dan curah hujan Pembentukan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan klasterisasi fuzzy C-means Penelitian ini menggunakan high order fuzzy logic relationship yaitu membentuk fuzzy logic relationship berdasarkan data dalam kurun waktu beberapa dasarian sebelum dasarian yang akan diramal Pada penelitian ini dalam melakukan perhitungan nilai error untuk mendapatkan hasil evaluasi menggunakan metode Mean Square Error (MSE)
22 Dasar Teori
Pada dasar teori disini dijelaskan tentang metode ndash metode yang digunakan pada penelitian ini yang meliputi peramalan curah hujan data time series logika fuzzy fuzzy C-means metode peramalan dengan Fuzzy Time Series High Order Fuzzy Time Series Multi Factors dan metode perhitungan keakuratan metode peramalan
8
221 Peramalan
Terdapat beberapa definisi tentang peramalan menurut Kamus Besar Bahasa Indonesia (KBBI) yaitu
a Peramalan merupakan prediksi rencana atau estimasi kejadian masa depan yang tidak pasti (KBBI)
b Peramalan adalah sebagai penggunaan teknik ndash teknik statistik dalam bentuk gambaran masa depan berdasarkan pengolahan angka ndash angka yang terjadi pada masa lalu (Buffa et al1996)
c Peramalan adalah bagian internal dari pengambilan keputusan manajemen (Makridakis et al1999)
Berdasarkan beberapa definisi diatas dapat disimpulkan bahwa peramalan merupakan tindakan apa yang akan terjadi di masa mendatang peramalan diperlukan untuk mengambil sebuah keputusan Dalam pengambilan keputusan harus diambil dari pertimbangan ndash pertimbangan yang ada Oleh karena itu peramalan sangat penting hubungannya dengan pengambilan keputusan sehingga kejadian di masa yang akan datang dapat dipersiapkan tindakan apa yang perlu dilakukan
222 Curah hujan
Curah hujan merupakan salah satu faktor penting yang mempengaruhi perubahan iklim suatu wilayah (Mirawati et al 2013) Salah satu contoh kasus nyata yaitu terjadinya perubahan iklim secara tiba ndash tiba atau bisa disebut dengan cuaca ekstrim Curah hujan dapat dijelaskan dengan air hujan yang terkumpul pada suatu wadah datar dimana air hujan tersebut tidak meresap tidak menguap dan tidak mengalir sehingga dapat diukur ketinggiannya Sebagai contoh curah hujan 1 (satu) milimeter dapat dijelaskan dalam suatu wadah datar dengan luas satu meter persegi tertampung air dengan ketinggian sekitar satu milimeter atau tertampung air sebanyak satu liter Metode dalam mendapatkan data curah hujan adalah dengan menggunakan penakar hujan yang kemudian diukur dengan satuan milimeter (mm) (User2015) Intensitas curah hujan dapat dikategorikan ringan jika dibawah 20mm dalam 24 jam dikategorikan lebat jika di atas 50mm dan dikategorikan sedang jika selang 20mm hingga 50mm (User 2015)
Curah hujan mempengaruhi beberapa sektor diantarannya sektor komunikasi dimana penggunaan frekuensi diatas 10 GHz dapat terkena redaman hujan (Mauludiyanto et al 2009) Akan tetapi curah hujan paling berpengaruh terhadap sektor pertanian Hal ini terbukti bahwa sebagian besar terjadinya penurunan produktifitas dan gagal panen di sektor pertanian adalah terjadinya curah hujan yang tinggi
Tinggi dan rendahnya curah hujan dipengaruhi oleh beberapa faktor yaitu kelembaban udara temperatur dan kecepatan angin Pada tahun 2013 Nur Suri Pradipta Pasukat Sembiring dan Pengarapen Bangun melakukan penelitian mengenai pengaruh curah hujan di kota Medan (Pradipta et al 2013)
9
Berdasarkan penelitian tersebut faktor yang mempengaruhi dan digunakan dalam peramalan curah hujan yaitu
1 Kelembaban udara
Kelembaban udara adalah banyaknya kandungan uap air di atmosfer Udara atmosfer adalah campuran dari udara kering dan uap air selain itu kelembaban udara merupakan komponen cuaca yang mempunyai peranan sangat penting bagi stabilitas kehidupan organisme di bumi maupun unsur-unsur cuaca yang lain (Forest 2015) Kelembaban udara berpengaruh terhadap curah hujan Hal ini didukung penelitian oleh (Sipayung et al 2013) yang menyatakan Kelembaban udara berpengaruh positif terhadap curah hujan
2 Kecepatan angin
Kecepatan angin merupakan kecepatan udara yang bergerak secara horizontal pada ketinggian 2 meter diatas tanah Dalam hal ini faktor yang menentukan kecepatan angin adalah perbedaan tekanan udara antara asal dan tujuan angin Kecepatan angin berpengaruh positif terhadap curah hujan artinya jika kecepatan angin tinggi maka curah hujan akan tinggi (Pradipta et al2013)
3 Suhu udara
Suhu udara merupakan ukuran energi kinetik rata ndash rata dari pergerakan molekul ndash molekul Suhu udara berpengaruh negatif terhadap curah hujan artinya jika suhu udara tinggi maka curah hujan akan berkurang (Pradipta et al2013)
223 Data time series
Data time series adalah data statistik yang telah dihimpun dari masa lampau hingga sekarang dan dapat digunakan sebagai acuan dalam melakukan peramalan terhadap data yang akan datang (Wiyanti amp Pulungan 2012) Data time series juga dapat didefinisikan sebagai sebuah kegiatan mengamati data statistik dimana terdapat korelasi (dependensi) antar datanya sehingga data yang sekarang sedang diamati memiliki ketergantungan dengan satu atau lebih data pengamatan sebelumnya (Mirawati et al 2013)
Terdapat dua teknik prediksi yang menggunakan basis data time series yaitu teknik model matematika statistik dan berdasarkan kecerdasan buatan (Wiyanti amp Pulungan 2012) Analisa time series sendiri memiliki beberapa peruntukan salah satunya digunakan dalam melakukan peramalan untuk masa yang akan datang Dalam penggunaan data time series merupakan salah satu proses peramalan kuantitatif dimana berdasar data kuantitatif masa lampau yang direpresentasikan dalam bentuk angka atau nilai (Mirawati et al 2013)
10
224 Logika Fuzzy
Pada tahun 1965 Prof Lotfi A Zadeh memperkenalkan teori logika fuzzy Logika fuzzy merupakan suatu komponen soft computing dan juga suatu cara yang tepat untuk memetakan suatu ruang input ke dalam ruang output Antara ruang input dan ruang output terdapat black box yang berfungsi memetakan input ke ruang output yang sesuai Dasar logika fuzzy adalah teori fuzzy set Pada teori fuzzy set peranan derajat keanggotaan sebagai penentu keberadaan elemen dalam suatu himpunan sangatlah penting Oleh karena itu derajat keanggotaan menjadi ciri utama dalam penalaran dengan logika fuzzy Logika fuzzy bekerja dengan menggunakan derajat keanggotan dari sebuah nilai yang kemudian digunakan untuk menentukan hasil yang ingin dihasilkan berdasarkan atas kriteria yang telah ditentukan (Kusumadewi 2003)
Berikut adalah beberapa alasan digunakannya logika fuzzy (Kusumadewi 2002)
1 Logika fuzzy sangat fleksibel
2 Konsep logika fuzzy mudah dimengerti dan dipahami
3 Logika fuzzy memiliki toleransi terhadap data ndash data yang homogen dan data ndash data yang kurang tepat
4 Logika fuzzy didasari pada bahasa alami atau bahasa sehari - hari sehingga mudah dimengerti
5 Logika fuzzy dapat bekerjasama dengan teknik ndash teknik kendali secara konvensional
6 Logika fuzzy mampu membangun dan mengaplikasikan pengalaman ndash pengalaman para pakar secara langsung tanpa harus melalui tahap atau proses pelatihan
A Himpunan Fuzzy
Himpunan fuzzy atau fuzzy set merupakan perluasan himpunan tegas atau himpunan crisp jadi fungsi karakteristik mencakup bilangan real pada interval [01] Dalam definisi lain himpunan fuzzy adalah suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dalam suatu variabel fuzzy Keanggotaan fuzzy berbeda dengan probabilitas jika keanggotaan fuzzy pada setiap fungsi karakteristik memberikan suatu pendapat atau keputusan sedangkan probabilitas menunjukan seberapa besar nilai kebenaran dalam fungsi karakteristik tersebut Contohnya yaitu nilai keanggotaan suatu himpunan fuzzy umur muda 09 berarti nilai dalam himpunan tersebut memiliki kemungkinan 90 anggotanya berumur muda dan 10 diharapkan tidak muda Dalam himpunan fuzzy suatu bilangan bisa memiliki dua keanggotaan sekaligus Himpunan fuzzy memiliki dua attribut (Kusumadewi2003)
11
1 Linguistik merupakan penamaan suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami misalnya muda parobaya tua
2 Numeris merupakan suatu nilai (angka) yang menunjukkan ukuran dari suatu
variabel seperti 402550 dan sebagainya
B Fungsi Keanggotaan
Fungsi keanggotaan adalah suatu kurva yang menunjukkan pemetaan titik ndash titik input data ke dalam derajat keanggotaannya yang memiliki subinterval antara 0 sampai 1 (Kusumadewi Purnomo 2004) Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi Ada beberapa fungsi keanggotaa yang dapat digunakan
1 Fungsi representasi linear
Pada fungsi representasi linear pemetaan input ke derajat keanggotaannya digambarkan sebagai suatu garis lurus Bentuk ini paling sederhana dan menjadi pilihan yang baik untuk mendekati suatu konsep yang kurang jelas Keadaan linear himpunan fuzzy terdiri dari dua keadaan yaitu keadaan linear naik dan keadaan linear turun Pada keadaan linear naik kenaikan himpunan dimulai pada nilai domain yang memiliki nilai derajat keanggotaan nol bergerak ke kanan menuju ke nilai domain yang memiliki derajat keanggotaan yang lebih tinggi seperti yang ditunjukkan Gambar 21 Persamaan fungsi keanggotaan pada representasi linear naik ditunjukkan oleh Persamaan 21
Fungsi Keanggotaan
120583(119909) = 0
(119909 minus 119886)(119887 minus 119886)1
119909 le 119886 119886 le 119909 le 119887119909 ge 119887
(21)
b a 0
1
Gambar 21 Representasi linear naik
Sumber Kusumadewi (2002)
120583(119909)
12
Pada keadaan linear turun berbanding terbalik dengan keadaan linear naik Garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi pada sisi kiri kemudian bergerak menurun ke nilai domain yang memiliki derajat keanggotaan lebih rendah yang ditunjukkan Gambar 22 Persamaan fungsi keanggotaan pada representasi linear turun ditunjukkan oleh Persamaan 22
Fungsi Keanggotaan
120583(119909) = (119887 minus 119909)(119887 minus 119886)0
119886 le 119909 le 119887
119909 ge 119887 (22)
2 Fungsi representasi kurva segitiga
Representasi kurva segitiga pada dasarnya merupakan gabungan antara 2 garis linear yaitu linear naik dan linear turun Fungsi representasi kurva segitiga ditandai oleh adanya tiga parameter abc yang akan menentukan koordinat x dari tiga sudut seperti ditunjukkan pada Gambar 23 Persamaan fungsi keanggotaan pada representasi kurva segitiga ditunjukkan oleh Persamaan 23
b a 0
1
Sumber Kusumadewi (2002)
Gambar 22 Representasi linear turun
120583(119909)
c a 0
1
b
Sumber Kusumadewi (2002)
Gambar 23 Representasi kurva segitiga
120583(119909)
13
Fungsi Keanggotaan
120583(119909) =
0 (119909 minus 119886)(119887 minus 119886) (119887 minus 119909)(119888 minus 119887)
119909 le 119886 119886119905119886119906 119909 ge 119888
119886 le 119909 le 119887 119887 le 119909 le 119888
(23)
225 Metode Fuzzy C-means
Fuzzy C-means (FCM) pertama kali diperkenalkan oleh Dunn dan dikembangkan oleh Bezdek yang banyak digunakan dalam pengenalan pola Metode ini merupakan pengembangan dari metode non-hierarkhi K-Means Cluster selanjutnya dilakukan iterasi sampai mendapatkan keanggotaan kelompok tersebut (Klawon 2001)
FCM merupakan salah satu algoritma fuzzy clustering dan juga teknik klasterisasi dimana tiap data ditentukan oleh derajat keanggotaanya Tujuan penggunaan algoritma FCM yaitu untuk menemukan pusat cluster atau centroid dengan meminimumkan fungsi objektif (Bazdek 1984) Ouput dari FCM bukan merupakan fuzzy inference system melainkan deretan pusat cluster dan beberapa derajat keanggotaan untuk setiap titik data Hasil output ini dapat digunakan untuk membangun suatu fuzzy inference system Berikut adalah langkah ndash langkah dari FCM (Kusumadewi 2004)
1 Langkah pertama menentukan jumlah cluster (c ge 2) pembobot (infin gt 119908 gt1) (Bazdek 1984) maksimum iterasi (maxIter) error minimum yang diharapkan yaitu nilai positif yang sangat kecil (120585) fungsi objektif awal (P0 = 0) iterasi awal dideklarasikan 1
2 Langkah kedua memasukkan data X yang akan diklasterisasi berupa matriks berukuran m x n (m = jumlah sampel data n = attribut setiap data) Contoh Xij = data sampel ke-i (i = 1234m) attribu ke-j (j=1234n)
3 Langkah ketiga yaitu dengan membuat bilangan random microik i = 1234n dan k = 123c (n = jumlah sampel pada data c = jumlah cluster yang akan dibentuk) sebagai elemen ndash elemen matriks partisi awal Untuk bilangan penyusun matriks partisi awal dihitung dihitung jumlahnya setiap kolom yang ditunjukkan pada pada Persamaan 24 (Kusumadewi 2004)
119876119896 = sum 120583119894119896119888119896=1 (24)
Dimana
119876119896 = jumlah bilangan pada kolom k
120583119894119896 = bilangan random pada baris i kolom k
119888 = jumlah kolom
14
Selanjutnya untuk menghitung derajat keanggotaan awal dengan melakukan normalisasi pada matiks partisi pada normalisasi dilakukan menggunakan Persamaan 25 (Kusumadewi 2004)
120583119894119896 = 120583119894119896119876119896 (25)
4 Langkah keempat melakukan perhitungan cluster ke-k Vkj dengan k = 1234c dan j = 1234m Perhitungan pusat cluster ditunjukkan pada Persamaan 26 (Kusumadewi 2004)
119881119896119895 = sum ((120583119894119896)119908 times 119883119894119895)119899
119894=1
sum (120583119894119896)119908119899119894=1
(26)
Dimana
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
120583119894119896 = derajat keanggotaan pada data ke-i cluster ke-k
119883119894119895 = data sampel pada data ke-i attribut ke-j
119908 = pembobot
5 Langkah kelima melakukan perhitungan fungsi objektif pada iterasi ke-t P1 Perhitungan fungsi objektif ditunjukkan pada Persamaan 27 (Kusumadewi 2004)
119875119905 = sum sum ([sum (119883119894119895 minus 119881119896119895)119898119895=1
2](120583119894119896)119908)119888
119896=1119899119894=1 (27)
Dimana
119875119905 = fungsi objektif
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
6 Langkah keenam melakukan perhitungan perbaikan matriks partisi yang telah ditunjukkan Persamaan 28 (Kusumadewi 2004)
120583119894119896 = [sum (119883119894119895minus119881119896119895)119898
119895=12
]
minus1119908minus1
sum [sum (119883119894119895minus119881119896119895)119898119895=1
2]
minus1119908minus1119888
119896minus1
(28)
Dimana
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
119908 = pembobot
7 Langkah ketujuh yaitu melakukan pemerikasaan kondisi berhenti dengan kondisi sebagai berikut
a Jika (|119875119905 minus 119875119905minus1| lt 120585) atau ( t gt MaxIter) maka berhenti
b Jika tidak memenuhi t = t +1 ulangi mulai dari langkah ke-4
15
226 Metode Peramalan dengan Fuzzy Time Series
Pada tahun 1996 Chen memperkenalkan metode peramalan dengan menggunakan metode Fuzzy Time Series Metode Fuzzy Time Series memiliki perbedaan dengan metode peramalan time series biasa atau konvensional yaitu terdapat pada data yang digunakan untuk peramalan Fuzzy Time Series data yang digunakan adalah berupa fuzzy set atau himpunan fuzzy dari bilangan ndash bilangan real atas himpunan semesta yang ditentukan Jadi Fuzzy Time Series merupakan metode dengan menggunakan data berupa fuzzy set yang berasal dari bilangan real atas Universe of Discorse pada data aktual Universe of Discourse adalah himpunan semesta dari data penelitian
Berikut adalah langkah ndash langkah metode Fuzzy Time Series yang telah diperkenalkan oleh Chen terdapat enam langkah yaitu
1 Langkah pertama yaitu membagi Universe of Discourse dari bilangan aktual ke dalam subinterval dengan jumlah interval yang sama Perhitungan Universe of Discourse ditunjukkan pada Persamaan 29 (Chen 1996)
119880 = [119863119898119894119899 minus 1198631 119863119898119886119909 + 1198632] (29)
Dimana
119880 = Universe of Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
1198631 dan 1198632 = bilangan positif yang ditentukan oleh user untuk menentukan Universe of Discourse dari himpunan data sampel
2 Langkah kedua adalah mendefinisikan fuzzy set dari Universe of Discourse (U) menjadikan A1 A2 A3 An ke dalam fuzzy set dengan nilai linguistik sesuai dengan keadaan U Selanjutnya mendefinisikan fuzzy set tersebut ditunjukkan pada Persamaan 210 (Chen 1996)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (210)
1198602 =11989121
1199061+
11989122
1199062+
11989123
1199063+ ⋯ +
1198912119896
119906119896
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
Dimana 119891119894119895120598 [01] 1 le 119894 le 119896 dan 1 le 119895 le 119898 Variabel 119891119894119895 menunjukkan
derajat keanggotaan dari subinterval 119906119895 dari fuzzy set 1198601 Pada konsep ini
Chen menggunakan nilai linguistik 1198601 = (not many) 1198602 = (not too many) 1198603= (many) 1198604 = (many many) 1198605 = (very many) 1198606 = (too many) 1198607= (too many many) Kemudian nilai linguistik tersebut dimasukkan ke tiap fuzzy set Dari U tersebut dapat dibangun fuzzy set sebagai berikut
16
1198601 = 1
1199061+
05
1199062+
0
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198602 = 05
1199061+
1
1199062+
05
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198603 = 0
1199061+
05
1199062+
1
1199063+
05
1199064+
0
1199065+
0
1199066+
0
1199067
1198604 = 0
1199061+
0
1199062+
05
1199063+
1
1199064+
05
1199065+
0
1199066+
0
1199067
1198605 = 0
1199061+
0
1199062+
0
1199063+
05
1199064+
1
1199065+
05
1199066+
0
1199067
1198606 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
05
1199065+
1
1199066+
05
1199067
1198607 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
0
1199065+
05
1199066+
1
1199067
3 Langkah ketiga yaitu melakukan fuzzifikasi data historis proses fuzzifikasi merupakan proses merubah data aktual yang merupakan bilangan crisp ke dalam bentuk bilangan fuzzy Bilangan fuzzy yang dimaksudkan adalah dalam bentuk derajat keanggotaan Dari beberapa derajat keanggotaan yang terbentuk kemudian dipilih satu fuzzy set yang memiliki derajat keanggotaan teringgi Fuzzifikasi dinotasikan sebagai berikut jika F(t-1) berada pada fuzzy set Ak maka F(t-1) difuzzifikasikan sebagai Ak
4 Langkah keempat adalah mengidentifikasi Fuzzy Logic Relationship (FLR) FLR diidentifikasikan sebagai Ai dan F(t) difuzzifikasikan sebagai Ai rarr Aj Ai sebagai sisi kiri relationship disebut sebagai current state dan Aj sebagai sisi kanan relationship disebut next state Jika terjadi perulangan relationship maka tetap dihitung satu kali
5 Langkah kelima yaitu mengelompokkan menjadi Fuzzy Logical Relationship Group (FLRG) FLRG dibangun berdasarkan sisi kiri (current state) yang sama
6 Langkah terakhir yaitu langkah keenam adalah melakukan defuzzifikasi nilai keluaran peramalan Defuzzifikasi adalah mengubah nilai keluaran fuzzy menjadi bilangan crisp kembali sehingga diperoleh hasil akhir peramalan Defuzzifikasi didasarkan pada tiga (3) rule aturan yaitu (Chen 1996)
I Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai hanya memiliki satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj dimana nilai maksimum fungsi keanggotaanya berada pada 119906119895 maka nilai peramalan untuk n+1 adalah
nilai tengah dari 119906119895 atau didefinisikan dengan 119898119895
II Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai memiliki lebih dari satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj1 Aj2 Ajp Dimana nilai tengah untuk masing ndash masing Aj1 Aj2 Aj3 Ajp adalah mj1 mj2 mj3 mjp
maka nilai peramalan untuk n+1 adalah (mj1 mj2 mj3 mjp) p
III Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai tidak memiliki FLR pada FLRG dimana nilai maksimum fungsi keanggotaannya berada pada 119906119895
17
maka nilai peramalan untuk n+1 adalah nilai tengah dari 119906119895 atau
didefinisikan dengan 119898119895
227 Metode High Order Fuzzy Time Series Multi Factors
Metode High Order Fuzzy Time Series Multi Factors adalah metode Fuzzy Time Series (FTS) yang melibatkan beberapa faktor yang mempengaruhi peramalan dengan berdasarkan beberapa periode waktu sebelum periode yang akan diramalkan dalam proses pembentukkan Fuzzy Logical Relationship (FLR) Hasil peramalan dengan banyak faktor yang mempengaruhi dinilai lebih baik dari pada dengan hanya satu faktor yang mempengaruhi (LinYang 2009) Pada metode ini pembentukkan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan teknik klasterisasi fuzzy C-means Berikut adalah langkah ndash langkah Metode High Order Fuzzy Time Series Multi Factors (LinYang 2009)
1 Langkah pertama adalah melakukan perhitungan Universe of Discourse (U) Sebelum menghitung nilai U terlebih dulu menghitung nilai mean (rata ndash rata) sampel lalu menghitung nilai standar deviasi (120590) Mean merupakan perhitungan jumlah dari semua nilai dalam kumpulan data kemudian dibagi dengan jumlah total data untuk menghitung nilai mean ditunjukkan pada Persamaan 211 (Weisstein 2015) Standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel untuk menghitung nilai standar deviasi (120590) ditunjukkan pada Persamaan 212 (Weisstein 2015) Perhitungan U ditunjukkan pada Persamaan 213 (LinYang 2009)
119909 =sum 119909119894
119899119894=1
119899 (211)
Dimana
= mean (rata ndash rata)
119909119894 = nilai data ke-i
119899 = banyak data
120590 = radicsum (119909119894minus ) 2119899
119894=1
119899minus1 (212)
Dimana
120590 = Standar deviasi data
119880 = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590] (213)
Dimana
119880 = Universal 0f Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
18
2 Langkah kedua yaitu menentukan jumlah cluster data Proses klasterisasi bertujuan untuk membagi U kedalam beberapa subinterval Hasil perhitungan banyaknya cluster apabila bernilai pecahan maka harus dibulatkan menjadi bilangan bulat Perhitungan banyaknya cluster ditunjukkan pada Persamaan 214 (LinYang 2009)
119896 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905)minus119883(119905minus1)|119899
119905=1
119899minus1| (214)
Dimana
119896 = banyaknya jumlah cluster
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
119899 = banyaknya data sampel
119883(119905) = data pada waktu ke-t
3 Langkah ketiga yaitu melakukan pembentukan pusat cluster Pada metode ini proses klasterisasi data menggunakan fuzzy C-means (FCM) untuk mendapatkan pusat cluster sebanyak k Tahapannya U dibagi kedalam k subinterval (119863119898119894119899 1198891) (1198891 1198892) (1198892 1198893) hellip (119889119896minus1 119863119898119886119909) dimana di (i = 123k-1) merupakan titik tengah antara dua pusat cluster k subinterval didefinisikan sebagai 1199061 1199062 1199063 hellip 119906119896 Sehingga dalam hal ini subinterval
dengan panjang berbeda dapat menggambarkan struktur data kompleks dengan baik dan dapat meningkatkan peramalan dibandingkan menggunakan subinterval dengan panjang yang sama (LinYang 2009)
4 Langkah keempat yaitu melakukan pembentukan himpunan fuzzy atau fuzzy set Pada langkah ini fuzzy set direpresentasikan dengan kurva bahu Pembentukkan fuzy set ditunjukkan pada Persamaan 215 (LinYang 2009)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (215)
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
5 Langkah kelima yaitu proses fuzzifikasi Proses fuzzifikasi bertujuan untuk mengubah data sampel yang masih berupa bilangan crisp sehingga menjadi bilangan fuzzy Masing ndash masing data dihitung derajat keanggotaannya terhadap fuzzy set yang sudah terbentuk selajutnya derajat kanggotaan dihitung berdasarkan kurva bahu dan derajat keanggotaan tertinggi menunjukkan hasil fuzzifikasi data tersebut Contohnya A(t) B(t) C(t) dan D(t) dimana t= 123n merupakan time series dari faktor yang mempengaruhi serta n merupakan banyaknya data Berdasarkan pembagian subinterval masing ndash masing time series ini difuzzifikasikan Misalkan hasil dari Persamaan 215 yaitu menghitung banyak cluster dari k1 k2 k3 k4 Jadi time series difuzzifikasikan menjadi empat fuzzy time series yaitu
19
A(ti) dimana i = 1234k1
B(tj) dimana j = 1234k2
C(tp) dimana p = 1234k3
D(tq) dimana q = 1234k4 t = 123n
6 Langkah keenam yaitu melakukan pembentukkan Fuzzy Logical relationship (FLR) Data sampel sebanyak n periode dipilih sebagai data training untuk membentuk fuzzy time series model Misalkan t merupakan periode waktu yang akan diramal dengan menggunakan order ndash 3 maka tiga periode sebelum periode t adalah t-3 t-2 dan t-1 dimana t = 456n Maka FLR yang dihasilkan ditunjukkan pada Persamaan 216 dan berdasarkan persamaan tersebut maka akan membentuk sebuah kumpulan FLR dari data training (LinYang 2009)
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023)) (216)
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
Tabel 22 Fuzzy Logic Relationship
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023))
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
(119860(119905minus21198943) 119861(119905minus21198953) 119862(119905minus21199013) 119863(119905minus21199023))
(119860(119905minus11198942) 119861(119905minus11198952) 119862(119905minus11199012) 119863(119905minus21199022))
(119860(1199051198941) 119861(1199051198951) 119862(1199051199011) 119863(1199051199021)) rarr 119860(119905+11198944)
(119860(119905+119899minus71198943) 119861(119905+119899minus71198953) 119862(119905+119899minus71199013) 119863(119905+119899minus71199023))
(119860(119905+119899minus61198942) 119861(119905+119899minus61198952) 119862(119905+119899minus61199012) 119863(119905+119899minus61199022))
(119860(119905+119899minus51198941) 119861(119905+119899minus51198951) 119862(119905+119899minus51199011) 119863(119905+119899minus51199021)) rarr 119860(119905+119899minus41198944)
Sumber (LinYang 2009)
7 Langkah terakhir adalah proses Defuzzifikasi Berdasarkan langkah sebelumnya maka dapat diambil hasil fuzzy ke- H yaitu yang digunakan sebagai data testing atau data uji seperti yang ditunjukkan pada Persamaan 217 (LinYang 2009)
(119860(119867minus31198943) 119861(119867minus31198953) 119862(119867minus31199013) 119863(119867minus31199023)) (217)
(119860(119867minus21198942) 119861(119867minus21198952) 119862(119867minus21199012) 119863(119867minus21199022))
(119860(119867minus11198941) 119861(119867minus11198951) 119862(119867minus11199011) 119863(119867minus11199021)) rarr 119860(1198671198944)
20
Faktor ndash faktor di ruas kiri pada Persaman 217 dibandingkan satu per satu dengan FLR data training yang sudah dicatat sebelumnya pada Tabel 22 membandingkannya yaitu dengan cara menghitung nilai absolut dari selisih antara pangkat bawah kedua faktor pada posisi yang sama di FLR Terdapat 12 fuzzy set di ruas kiri pada masing ndash masing FLR sehingga dari hasil perbandingan diperoleh 12 nilai absolut yang kemudian dijumlahkan untuk mendapat total selisihnya Jadi jika total selisih lebih kecil dari threshold yang ditentukan maka FLR tersebut dinyatakan cocok (LinYang 2009)
Selanjutnya jika FLR menemukan N pasangan yang cocok pada Tabel 22 maka N faktor di ruas kanan dari N FLR ini mendasari peramalan fuzzy set A() yang mana jumlah dari setiap fuzzy set pada umumnya berbeda Untuk peramalan dengan fuzzy set ditunjukkan pada Tabel 23 (LinYang 2009)
Tabel 23 Peramalan fuzzy set
Ruas Kanan A(1) A(2) A(3) A(k1)
Pusat cluster c1 c2 c3 ck1
Frekuensi f1 f2 f3 fk1
Sumber (Lin Yang 2009)
Berdasarkan Tabel 23 dengan menggunakan metode centroid untuk melakukan proses defuzzifikasi Proses defuzzifikasi dapat ditunjukkan pada Persamaan 218 (LinYang 2009)
119903119867 =sum 119888119894times 119891119894
1198961119894=1
sum 119891119894119896119894119894=1
(218)
Dimana
119903119867 = hasil (result) peramalan data ke-H
119888119894 = pusat cluster i dimana A(i) adalah ruas kanan dari FLR hasil proses pencocokan
119891119894 = frekuensi banyaknya muncul A(i) pada saat proses pencocokan
228 Perhitungan keakuratan metode peramalan
Dalam perencanaan peramalan tentu menginginkan hasil ramalan yang tepat atau paling tidak hampir mendekati sehingga rencana yang dibuat menjadi rencana yang realistis Keakuratan atau ketepatan merupakan yang menjadi kriteria performance suatu metode peramalan Keakuratan tersebut dapat dinyatakan sebagai kesalahan peramalan (forecast error) Semaikin kecil nilai kesalahan peramalan maka semaikin tinggi keakuratan metode peramalan yang digunakan dan sebaliknya semakin tinggi nilai kesalahan maka semakin rendah keakuratan metode peramalan yang digunakan
Mean Square Error (MSE) adalah salah satu metode yang digunakan untuk menghitung nilai akurasi atau keakuratan dari metode yang digunakan sebagai peramalan atau prediksi MSE merupakan perhitungan pangkat dua dari selisih
21
antara nilai data hasil peramalan dengan nilai data aktual dan kemudian dibagi dengan banyaknya data yang telah diramalkan Pada penentuan nilai evaluasi memilih menggunakan metode MSE karena metode ini dapat menunjukan hasil skala kemiripan antara hasil data peramalan dengan data aktual Berikut merupakan metode Mean Square Error (MSE) yang ditunjukan pada Persamaan 219 (Wang Chen 2009)
119872119878119864 = sum (119865119905minus119860119905)2119899
119894=1
119899 (219)
Dimana 119872119878119864 = nilai Mean Square Error Rate 119860119905 = nilai aktual pada data ke-t 119865119905 = nilai hasil peramalan untuk data ke-t n = banyaknya data
22
BAB 3 METODOLOGI
Pada bab ini akan dibahas mengenai metode yang digunakan beserta tahap ndash tahap pengerjaan penelitian skripsi dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Penilitian ini digolongkan sebagai penelitian implementatif dengan pendekatan perancangan (design)
Metode penelitian ini meliputi studi literatur pengumpulan data perancangan implementasi pengujian dan analisis pengambilan kesimpulan Berikut adalah alur dari metode penelitian dapat ditunjukkan pada Gambar 31
31 Studi Literatur
Pada tahap studi literatur penelitian ini bertujuan untuk mempelajari literatur dan konsep dari beberapa informasi dan pustaka yang berkaitan dengan penelitian ini Literatur dan sumber ilmu dari penelitian ini diperoleh dari internet buku dan bimbingan oleh dosen pembimbing Adapun literatur yang dipelajari yaitu tentang curah hujan serta faktor ndash faktor yang mempengaruhinya dan metode High Order Fuzzy Time Series Multi Factors
Studi Literatur
Pengumpulan Data
Perancangan
Implementasi
Pengujian dan Analisis
Kesimpulan dan Saran
Gambar 31 Diagram blok metodologi penelitian
23
32 Pengumpulan Data
Pada tahap pengumpulan penelitian ini sumber data yang diperoleh yaitu dari Badan Meteorologi Klimatologi dan Geofisikia (BMKG) Stasiun Klimatologi Kelas III Karangkates Kabupaten Malang Data yang diperoleh untuk peramalan curah hujan yaitu data aktual time series (2011 - 2016) Data yang digunakan dalam bentuk dasarian yaitu dalam rentang waktu sepuluh hari sehingga dalam satu bulan dibagi menjadi tiga dasarian
Dasarian pertama yaitu pada tanggal 1 sampai dengan 10
Dasarian kedua yaitu pada tanggal 11 sampai dengan 20
Dasarian ketiga yaitu pada tanggal 21 sampai dengan akhir bulan
Pada penelitian ini data curah hujan dalam satuan milimeter (mm) kelembaban dalam persen () suhu udara dalam satuan celsius (˚C) kecepatan angin dalam satuan kilometer per jam (kmjam)
33 Perancangan
Pada tahap perancangan penelitian ini bertujuan untuk mengetahui rancangan ndash rancangan yang merupakan langkah yang dilakukan saat melakukan tahap implementasi Pada tahap ini terdapat beberapa perancangan yaitu perancangan proses yang berisi tahapan ndash tahapan proses metode High Order Fuzzy Time Series Multi Factors perhitungan manual yang merupakan manualisasi dari metode yang digunakan pada penelitian ini perancangan antar muka atau user interface yang berisi gambaran kasar dari tampilan antar muka prototype aplikasi yang nantinya diterapkan pada tahap implementasi selanjutnya adalah perancangan pengujian yang berisi rancangan ndash rancangan pengujian metode yang digunakan untuk mengetahui berapa tingkat kesalahan atau error yang dimiliki metode pada penelitian ini dalam melakukan peramalan curah hujan
34 Implementasi
Pada tahap implementasi peneltian ini dilakukan sesuai dengan perancangan yang telah dibuat pada tahapan perancangan sebelumnya Implementasi dari metode High Order Fuzzy Time Series Multi Factors dilakukan menggunakan bahasa pemrograman java serta Integrated Development Environment (IDE) yang digunakan adalah Netbeans Sehingga nantinya hasil dari tahap ini berupa prototype aplikasi dari implementasi metode High Order Fuzzy Time Series Multi Factors untuk peramalan curah hujan
35 Pengujian dan Analisis
Pada tahapan penelitian pengujian ini diperlukan perangkat lunak dan perangkat keras agar pengujian dari hasil implementasi dapat berjalan dengan baik maka pengujian perangkat lunak dijalankan pada laptop ataupun PC (Personal Computer) dengan spesifikasi sebagai berikut
24
1 Prosesor Intel Core i3
2 Memory RAM 8 Gigabytes
3 Sistem Operasi menggunakan Windows 7 64bit
4 Hardisk dengan kapasitas 500 GB
5 Netbeans 81 JDK 7
Pengujian hasil peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors yaitu menggunakan metode Mean Square Error (MSE) Dimana rumus pengujian sesuai dengan Persamaan 219 Dalam pengujian menggunakan metode ini semakin kecil nilai MSE maka semakin tinggi tingkat akurasi hasil peramalan tersebut Pada penelitian ini untuk keperluan pengujian dari proses implementasi dilakukan empat pengujian yaitu pengujian terhadap perbedaan nilai order pengujian terhadap perbedaan nilai threshold pengujian terhadap data training untuk mengetahui pengaruhnya terhadap nilai MSE dan pengujian validasi sistem untuk mengetahui bahwa hasil implementasi metode High Order Fuzzy Time Series Multi Factors dapat melakukan peramalan
36 Kesimpulan dan Saran
Pada pengambilan kesimpulan akan dilakukan apabila semua tahapan ndash tahapan penelitian sudah dilakukan yaitu yang meliputi perancangan implementasi dan pengujian dan analisis telah selesai dilakukan Kesimpulan merupakan tahapan dimana semua rumusan masalah yang sudah ditetapkan sebelumnya dapat terjawab semua Selanjutnya pada saran merupakan berkenaan dengan hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
25
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan yang nantinya digunakan sebagai dasar dalam tahap implementasi Hal yang dibahas meliputi perancangan proses perhitungan manual perancangan pengujian dan perancangan antar muka
41 Perancangan Proses
Pada perancangan proses ini berisi mengenai tahapan ndash tahapan dari metode yang digunakan yaitu metode High Order Fuzzy Time Series Multi Factors Pada penelitian ini melibatkan faktor ndash faktor yang mempengaruhi curah hujan yaitu suhu udara kelembaban udara dan kecepatan angin Data time series dari curah hujan merupakan faktor utama dalam proses peramalan pada penelitian ini Inputan pada peneltian ini yaitu data time series curah hujan serta faktor ndash faktor yang mempengaruhinya Order yang digunakan pada metode ini merupakan order lebih dari satu oleh karena itu disebut dengan High Order Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Berikut merupakan diagram alir dari proses peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors yang ditunjukkan pada Gambar 41 dan Gambar 42
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1)
Mulai
Data curah hujan suhu kelembaban kecepatan angin jmlh_Banyakdata jmlh_Faktor
Universe_of_Discourse
A
Jumlah_Cluster
26
411 Proses perhitungan Universe of Discourse
Pada perhitungan Universe of Discourse harus sudah dilakukan inputan data agar dapat memulai tahapan perhitungan Tahapan dari proses perhitungannya yaitu pada langkah pertama dilakukan perhitungan nilai mean (rata ndash rata) sesuai dengan Persamaan 211 Setelah mendapatkan nilai mean dapat dilakukan perhitungan untuk mencari nilai standar deviasi sesuai dengan Persamaan 212 Selanjutnya dicari nilai terkecil (119863119898119894119899) dan nilai terbesar (119863119898119886119909) Setelah menyelesaikan tahap ndash tahap tersebut dapat dilakukan perhitungan untuk
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2)
A
Perhitungan Pusat Cluster
Fuzzifikasi
Pembentukan Fuzzy Logical Relationship
Defuzzifikasi
Nilai hasil peramalan
Berhenti
Pembentukan Subinterval dan Fuzzy set
27
mencari Universe of Discourse sesuai dengan Persamaan 213 Berikut merupakan diagram alir dari proses perhitungan Universe of Discourse yang ditunjukkan pada Gambar 43
Perhitungan Universe of Discourse
Mulai
Min_dan_Max
mean
standar_deviasi
for i = 0 to jmlh_Faktor-1
i
hsl_uMin ke i = hsl_min ke i ndash hsl_stdev ke i
hsl_uMax ke i = hsl_max ke i + hsl_stdev ke i
hsl_uMin hsl_uMax
Berhenti
Gambar 43 Diagram alir proses perhitungan Universe of Discourse
28
4111 Proses perhitungan Mean
Pada proses perhitungan mean merupakan nilai rata ndash rata dari setiap faktor dimana nilai mean ini nantinya dibutuhkan untuk melakukan proses perhitungan standar deviasi Berikut merupakan diagram alir dari proses perhitungan mean yang ditunjukkan pada Gambar 44
mean
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
tmp_jmlh = 0
tmp_jmlh = tmp_jmlh + data ke ij
j
hsl_mean ke i = tmp_jmlhjmlh_DataTraining
i
hsl_mean
Berhenti
Gambar 44 Diagram alir proses perhitungan mean
29
4112 Proses perhitungan standar deviasi
Pada proses perhitungan standar deviasi dapat dilakukan setelah mendapatkan nilai mean dari setiap data sesuai proses sebelumnya Berikut merupakan diagram alir dari proses perhitungan standar deviasi yang ditunjukkan pada Gambar 45
standar_deviasi
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
result = 0
result = result + (data ke ij ndash mean ke i)2
j
hsl_stdev ke i = radicresult
jmlh_DataTrainingminus1
i
hsl_stdev
Berhenti
Gambar 45 Diagram alir proses perhitungan standar deviasi
30
4113 Proses perhitungan nilai Dmin dan Dmax
Pada proses perhitungan ini merupakan proses perhitungan untuk mencari nilai terkecil dan terbesar dari setiap faktor data Setelah mendapat nilai terkecil dan terbesar maka data dilakukan proses perhitungan Universe of Discourse Berikut merupakan diagran alir dari proses perhitungan nilai Dmin dan Dmax yang ditunjukkan pada Gambar 46
Gambar 46 Diagram alir perhitungan nilai Min dan Max
ya
ya
tidak
tidak
Min_dan_Max
Mulai
for i = 0 to jmlh_Faktor-1
besar = data ke i0
kecil = data ke i0
for j=0 to jmlh_DataTraining
data ke ij gt besar
besar = data ke ij
data ke ij lt kecil
kecil = data ke ij
j
hsl_max ke i = besar
hsl_min ke i = kecil
i
hsl_max hsl_min
Berhenti 1
1
2
2
3
4
4
5
5
3
31
412 Proses perhitungan jumlah cluster
Pada proses perhitungan jumlah cluster memiliki masukkan proses Dmin dan Dmax
dari proses perhitungan sebelumnya Pada proses ini terdapat perhitungan nilai dari selisih setiap data Pada perhitungan jumlah cluster sesuai dengan Persamaan 214 Berikut merupakan langkah ndash langkah perhitungan jumlah cluster yang ditunjukkan pada Gambar 47
jumlah_Cluster
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to (jmlh_DataTraining-1)
Berhenti
hsl_max hsl_min
selisih = 0
selisih = selisih + |data ke ij ndash data ke i (j+1)|
j
jmlh_Cluster ke i = |ℎ119904119897_119898119894119899 119896119890 119894minusℎ119904119897_119898119886119909 119896119890 119894|
119904119890119897119894119904119894ℎ
119895119898119897ℎ_119863119886119905119886119879119903119886119894119899119894119899119892minus1
i
jmlh_Cluster
Gambar 47 Diagram alir proses perhitungan jumlah cluster
32
413 Proses perhitungan pusat cluster
Pada proses perhitungan pusat cluster ini diperlukan beberapa variabel yang harus dideklarasikan terlebih dahulu yaitu nilai bobot fungsi objektif nilai iterasi awal nilai iterasi maksimum dan error terkecil Perhitungan subinterval ini menggunakan metode fuzzy C-means yang diawali dengan pencarian pusat cluster terlebih dahulu Berikut merupakan langkah ndash langkah perhitungan subinterval yang ditunjukkan pada Gambar 48 Gambar 49 Gambar 410 Gambar 411 Gambar 412
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1)
Perhitungan pusat cluster
Mulai
jmlh_Cluster
for i = 0 to jmlh_Faktor-1
Deklarasi bobot selisih_f_objektif
iter_maksimum error_min
Pembentukan Matriks partisi faktor A jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor A
for iter = iter to iter_maksimum
A
i == 0
Perhitungan pusat_cluster1 faktor A
B C D
tidak
ya
33
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2)
ya
tidak
tidak
ya
Perhitungan f_objektif faktor A
A B C D
Perhitungan selisih_f_objektif faktor A
Perbaikan matriks partisi faktor A
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster1 faktor A
Iter = iter_maksimum
iter
i == 1
Pembentukan Matriks partisi faktor B jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor B
for iter = iter to iter_maksimum
F A G E
34
tidak
tidak
ya
A E F G
Perhitungan pusat_cluster2 faktor B
Perhitungan f_objektif faktor B
Perhitungan selisih_f_objektif faktor B
Perbaikan matriks partisi faktor B
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster2 faktor B
Iter = iter_maksimum
iter
i == 2
Pembentukan Matriks partisi faktor C jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor C
I A H
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3)
ya
35
tidak
tidak
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4)
ya
A H I
for iter = iter to iter_maksimum
Perhitungan pusat_cluster3 faktor C
Perhitungan f_objektif faktor C
Perhitungan selisih_f_objektif faktor C
Perbaikan matriks partisi faktor C
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster3 faktor C
Iter = iter_maksimum
iter
i == 3
Pembentukan Matriks partisi faktor D jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor D
J A K
ya
36
tidak
ya
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5)
A K J
for iter = iter to iter_maksimum
Perhitungan pusat_cluster4 faktor D
Perhitungan f_objektif faktor D
Perhitungan selisih_f_objektif faktor D
Perbaikan matriks partisi faktor D
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster4 faktor D
Iter = iter_maksimum
iter
i
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
Berhenti
37
tidak
ya
tidak
ya
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1)
414 Proses pembentukan subinterval dan Fuzzy set
Pada proses pembentukan fuzzy set atau himpunan fuzzy pada penelitian ini dapat dilakukan setelah perhitungan subinterval selesai dilakukan Nilai subniterval merupakan masukan utama pada pembentukkan fuzzy set Pembentukan fuzzy sesuai dengan Persamaan 215 Berikut merupakan langkah ndash langkah proses pembentukan fuzzy set yang ditunjukkan pada Gambar 413 dan Gambar 414
Pembentukan subinteval dan Fuzzy set
Mulai
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
for i = 0 to jmlh_Faktor-1
Menentukan batas_subintervalMinA dan
batas_subintervalMaxA
Menentukan batas_fuzzysetMinA dan batas_fuzzysetMaxA
i == 0
i == 1
Menentukan batas_subintervalMinB dan
batas_subintervalMaxB
Menentukan batas_fuzzysetMinB dan batas_fuzzysetMaxB
A C B
38
tidak
tidak
ya
ya
415 Proses Fuzzifikasi
Pada proses fuzzifikasi ini pembentukanya sesuai derajat keanggotaan pada setiap data Pada proses ini derajat keanggotaan dihitung berdassarkan fungsi keanggotaan kurva bahu Hasil dari proses ini merupakan data yang sudah difuzzifikasikan menjadi data fuzzy Berikut langkah ndash langkah dari proses fuzzifikasi ditunjukkan pada Gambar 415 dan Gambar 416
i == 2
A B C
Menentukan batas_subintervalMinC dan batas_subintervalMaxC
Menentukan batas_fuzzysetMinC dan batas_fuzzysetMaxC
i == 3
Menentukan batas_subintervalMinD dan batas_subintervalMaxD
Menentukan batas_fuzzysetMinD dan batas_fuzzysetMaxD
i
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
Berhenti
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2)
39
tidak
ya
ya
tidak
Fuzzifikasi
Mulai
for i = 0 to jmlh_Faktor-1
Menentukan hasil_fuzzifikasiA dari faktor A
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinA batas_fuzzysetMaxA
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1)
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
DD
i == 0
i == 1
Menentukan hasil_fuzzifikasiB
dari faktor B
Menghitung derajat keanggotaan
berdasarkan batas_fuzzysetMinB
batas_fuzzysetMaxB
C A B
40
tidak
ya
ya
tidak
ya
i == 2
A B C
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinC batas_fuzzysetMaxC
Menentukan hasil_fuzzifikasiC dari faktor C
i == 3
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinD
batas_fuzzysetMaxD
Menentukan hasil_fuzzifikasiD dari faktor D
i
hasil_fuzzifikasiA hasil_fuzzifikasiB hasil_fuzzifikasiC hasil_fuzzifikasiD
Berhenti
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2)
41
tidak
ya
416 Proses pembentukan Fuzzy Logical Relationship
Setelah data melalui proses fuzzifikasi dan sudah menjadi data fuzzy maka dapat dilakukan pembentukan Fuzzy Logical Relationship (FLR) Pembentukan FLR dilakukan sesuai dengan Persamaan 216Berikut adalah langkah ndash langkah proses pembentukan Fuzzy Logical Relationship (FLR) yang ditunjukkan pada Gambar 417 Gambar 418 dan Gambar 419
Gambar 417 Diagram alir proses Pembentukan FLR
(bagian 1)
Pembentukan Fuzzy Logical Relationship
Mulai
hasil_fuzzifikasiAhasil_fuzzifikasiB hasil_fuzzifikasiChasil_fuzzifikasiD order
for i = 0 to jmlh_dataTraining
max_inc = order jmlh_dataTraining = dataTraining - order
for j = i to max_inc
for k = 0 to jmlh_Faktor-1
j == 0
FLR_kiri_training ke ijk = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D)
ke j
E A B C D
42
ya
tidak
ya
tidak
A B C E D
FLR_kiri_training ke i(j-i)k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
j = 0
k
j
FLR_kanan_training ke i = hasil_fuzzifikasiA ke (i+order)
Max_inc lt (jmlh_DataTraining-1)
i
tmp_JmlhDatatraining = tmp_JmlhDatatraining +1
max_inc = max_inc + 1 tmp_JmlhDatatraining = i
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2)
for j = 0 to tmp_JmlhDatatraining
for j = tmp_JmlhDatatraining to max_inc
for k = 0 to jmlh_Faktor-1
I H G F
43
tidak
ya
417 Proses Defuzzifikasi
Proses defuzzifikasi merupakan proses akhir dimana keluaran dari proses ini merupakan nilai hasil peramalan Data yang diperlukan pada proses defuzzifikasi adalah hasil dari proses pembentukan Fuzzy Logical Relationship (FLR) nilai threshold yang harus dideklarasikan sebelumnya jumlah data training dan jumlah data testing Dalam proses ini dilakukan perhitungan selisih pada FLR antara data testing dan data training FLR yang dihitung nilai selisihnya adalah FLR pangkat bawah yang terdapat pada ruas kiri Setelah dilakukan perhitungan selisih dan total jumlah selisih lebih kecil dari nilai threshold maka pada setiap FLR yang
I H G F
FLR_kiri_testing ke i(j-tmp_jmlhDatatraining) k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
k
j
FLR_kanan_testing ke i = hasil_fuzzifikasiA ke (i+order)
i
Max_inc lt (jmlh_DataTraining-1)
max_inc = max_inc + 1 tmp_JmlhDatatraining++
FLR_kiri_training FLR_kanan_training FLR_kiri_testing FLR_kanan_testing
Mulai
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3)
44
ya
tidak
sesuai dengan kondisi tersebut dapat dikatakan cocok atau dapat dilakukan ke tahap perhitungan selanjutnya Setelah mendapatkan FLR yang cocok maka dilakukan pengelompokkan berdasarkan FLR ruas kanan Pengelompokkan ini dihitung jumlah frekuensi yang sama sesuai dengan fuzzy set di ruas kanan Selanjutnya untuk memperoleh hasil peramalan dilakukan proses perhitungan sesuai dengan Persamaan 218 Berikut adalah langkah ndash langkah proses defuzzifikasi yang ditunjukkan pada Gambar 420 dan Gambar 421
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1)
Defuzzifikasi
Mulai
FLR_kiri FLR_kanan order dataTraining dataTesting konstanta
threshold = (jmlh_Faktor x order)+konstanta
for i = 0 to dataTesting
for j = 0 to (dataTraining-i)
Perhitungan hitung_selisih antara FLR_kiri data training dan data testing
hitung_selisih lt threshold
match ke ij = hitung_selisih
j
i
A
45
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2)
A
Menghitung jumlah total FLR_kiri yang cocok untuk setiap data testing
Mencocokan FLR_kiri yang cocok dengan FLR_kanan untuk setiap data testing
for i = 0 to dataTesting
Menghitung frekuensi setiap FLR_kanan yang cocok untuk setap data testing
for j = 0 to jumlah total FLR kiri yang cocok
peramalan = peramalan + Frekuensi setiap FLR_kanan yang cocok x pusat_cluster1
sesuai dengan value FLR_kanannya
j
hasil_peramlan ke i = peramalan jumlah total FLR kiri yang cocok
i
Hasil_permalan
Berhenti
46
42 Perhitungan Manual
Dalam perhitungan manual ini data sampel yang digunakan merupakan data time series dasarian ke-2 pada periode April 2014 sampai dengan dasarian ke-2 Juli 2014 data sampel ditunjukkan pada Tabel 41
Tabel 41 Data Sampel Perhitungan Manual
No Dasarian Curah Hujan
(A)
Suhu (B) Kelembaban (C)
Kecepatan Angin(D)
1 Dasarian 2 (April 2014) 95 2615 8248 629
2 Dasarian 3 (April 2014) 90 2612 8247 628
3 Dasarian 1 (Mei 2014) 94 2607 8247 627
4 Dasarian 2 (Mei 2014) 83 2625 8232 623
5 Dasarian 3 (Mei 2014) 85 2628 8235 623
6 Dasarian 1 (Juni 2014) 92 2609 8241 626
7 Dasarian 2 (Juni 2014) 86 2627 8235 624
8 Dasarian 3 (Juni 2014) 89 2621 8238 624
9 Dasarian 1 (Juli 2014) 93 2607 8242 626
10 Dasarian 2 (Juli 2014) 86 2626 8237 623
Sumber BMKG Kelas III Karangkates Malang
421 Perhitungan Universe of Discourse (U)
Sebelum melakukan perhitungan U maka harus dicari terlebih dahulu nilai 119863119898119894119899 119863119898119886119909 dan standar deviasi 119863119898119894119899 adalah nilai minimum atau nilai terkecil dari data sampel yang ada sedangkan 119863119898119886119909 adalah nilai maksimum atau nilai paling besar dari data sampel yang ada Untuk mencari nilai standar deviasi harus menghitung nilai mean (rata ndash rata) terlebih dahulu sesuai dengan Persamaan 211 Mean dari data curah hujan (A) dihitung dengan cara sebagai berikut
Mean = (data ke-1 + data ke-2 + data ke-3 + + data ke-10) 10
= (95 + 90 + 94 + 83 + 85 + 92 + 86 + 89 + 93 + 86) 10
= 893 10
= 893
Selanjutnya setelah diperoleh nilai mean dilanjutkan melakukan perhitungan standar deviasi sesuai dengan Persamaan 212 Standar deviasi adalah akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Untuk menghitung standar deviasi agar lebih mudah kita terlebih dahulu melakukan perhitungan nilai kuadrat dari selisih data ke-i dan mean yang ditunjukkan pada Tabel 42
47
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean
i Data ke-i Data ke-i mean (Data ke-i - mean)sup2
1 95 57 32490
2 90 07 0490
3 94 47 22090
4 83 -63 39690
5 85 -43 18490
6 92 27 7290
7 86 -33 10890
8 89 -03 0090
9 93 37 13690
10 86 -33 10890
Jumlah 1561
Setelah mendapatkan hasil nilai kuadrat dari selisih data ke-i dan mean sesuai dengan Tabel 42 maka dapat dilanjutkan melakukan perhitungan standar deviasi dengan cara sebagai berikut
Standar_deviasi = radic1
10minus1sum (119889119886119905119886 119896119890 minus 119894 minus 119898119890119886119899)10
119894=1
2
= radic1
9 times 1561
= 4165
Untuk perhitungan standar deviasi juga dilakukan pada faktor lainnya yaitu suhu (B) kelembaban (C) dan kecepatan angin (D) Hasil perhitungan 119863119898119894119899 119863119898119886119909 dan standar deviasi ditunjukkan pada Tabel 43
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi
Data D min D max Standar Deviasi
A 83 95 4165
B 2607 2628 0086
C 8232 8248 0057
D 623 629 0022
Berdasarkan hasil yang ditunjukkan Tabel 43 selanjutnya dapat dilakukan perhitungan nilai U sesuai dengan Persamaan 213 Berikut adalah perhitungan U pada data A
U = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590]
= [(83 ndash 4165) (95 ndash 4165)]
= [78835 99165]
48
Untuk perhitungan U juga dilakukan pada semua faktor yaitu data B C dan D Sehingga diperoleh nilai U yang ditunjukkan pada Tabel 44
Tabel 44 Hasil Universe of Discourse
Data U
Batas Bawah Batas Atas
A 78835 99165
B 25984 26366
C 82263 82537
D 6208 6312
422 Perhitungan jumlah cluster (k)
Pada perhitungan jumlah cluster langkah pertamanya adalah mencari nilai absolut dari selisih data hari ke-t dengan hari sebelumnya Perhitungan selisih dilakukan hingga data ke-10 Perhitungan nilai selisih dilakukan pada semua data A B C dan D Selanjutnya masing ndash masing nilai selisih dijumlah sehingga hasilnya seperti ditunjukkan pada Tabel 45
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya
No Tanggal A B C D
1 Dasarian 3 (April 2014) 5 003 001 001
2 Dasarian 1 (Mei 2014) 4 005 0 001
3 Dasarian 2 (Mei 2014) 11 018 015 004
4 Dasarian 3 (Mei 2014) 2 003 003 0
5 Dasarian 1 (Juni 2014) 7 019 006 003
6 Dasarian 2 (Juni 2014) 6 018 006 002
7 Dasarian 3 (Juni 2014) 3 006 003 0
8 Dasarian 1 (Juli 2014) 4 014 004 002
9 Dasarian 2 (Juli 2014) 7 019 005 003
Jumlah 49 105 043 016
Setelah mendapatkan nilai absolut selisih data hari ke-t dengan hari sebelumnya dapat dilanjutkan dengan menghitung jumlah cluster sesuai dengan Persamaan 214 Perhitungan jumlah cluster pada data A (k1) berdasarkan pada Tabel 43 diketahui nilai 119863119898119894119899 adalah 171 nilai 119863119898119886119909 adalah 2048 maka jumlah cluster data A dapat ditunjukkan sebagai berikut
49
1198961 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905) minus 119883(119905 minus 1)|119899
119905=1
119899 minus 1|
= |83 minus 9549
10minus1| = 2204
Apabila hasil perhitungan jumlah cluster merupakan bilangan pecahan maka hasilnya harus dibulatkan Sehingga jumlah cluster pada data A adalah 2 Perhitungan jumlah cluster juga dilakukan pada data B (k2) C (k3) dan D (k4) Berikut merupakan hasil semua perhitungan jumlah cluster yang ditunjukkan pada Tabel 46
Tabel 46 Hasil jumlah cluster data
No Cluster Jumlah Cluster
1 k1 2
2 k2 2
3 k3 3
4 k4 3
423 Perhitungan pusat cluster dan subinterval
Pada pembentukan subinterval berdasarkan pada Tabel 46 yang menunjukkan jumlah subinterval yang selanjutnya digunakan untuk menentukan pusat cluster menggunakan algoritma fuzzy C-means (FCM)
4231 Penentuan pusat cluster
a Penentuan nilai variabel
Pada penentuan subinterval diawali dengan klasterisasi menggunakan algoritma FCM pada awal proses ditentukkan beberapa variabel sebagai berikut
Banyak cluster = k1 = 2
Bobot (w) = 2
Fungsi objektif awal = 0
Iterasi awal = 1
Iterasi maksimum = 100
Error terkecil = 001 b Pembentukan matriks partisi awal (micro)
Data pada pembentukan matriks partisi awal merupakan nilai random diantara nilai 0 sampai 1 Dimensi pada matriks partisi awal dibentuk dengan dimensi jumlah data (i) x jumlah cluster (k) Dalam hal ini telah diketahui jumlah data adalah 10 dan k1 adalah 2 maka partisi dimensi matriks awal adalah 10 x 2 Hasil pembentukan matriks partisi awal ditunjukkan pada Tabel 47 dimana Cluster disimbolkan dengan C
50
Tabel 47 Matriks partisi awal pada cluster data A
c Normalisasi matriks partisi awal
Langkah pertama normalisasi matriks partisi awal adalah dengan menghitung jumlah bilangan penyusun matriks pada setiap kolom yang dapat dilihat pada Tabel 47 dijumlah berdasarkan dengan Persamaan 24 Diketahui jumlah kolom matriks sebanyak 2 sehingga diperoleh Q1 untuk penjumlahan kolom c1 Q2 untuk penjumlahan kolom c2
Q1 = 0355 + 0174 + 02 + 0387 + 0598 + 0819 + 0702 + 0719 + 0349 +
0852
= 5154
Q2 = 0170 + 0815 + 0190 + 0456 + 0526 + 0170 + 0232 + 0572 + 0102 +
0322
= 3554
Langkah selanjutnya dilakukan proses normalisasi menggunakan Persamaan 25 Dimana setiap bilangan penyusun matriks awal dibagi dengan nilai Q sesuai dengan kolomnya masing ndash masing Bilangan penyusun matriks disimbolkan dengan microik dimana i menunjukkan baris dan k menunjukkan kolom posisi bilangan tersebut pada matriks
i micro
c1 c2
1 0355 0170
2 0174 0815
3 0200 0190
4 0387 0456
5 0598 0526
6 0819 0170
7 0702 0232
8 0719 0572
9 0349 0102
10 0852 0322
51
μ11 = bilangan matriks partisi pada baris 1 kolom 1
Q1
= 0355
5154
= 0069
μ12 = bilangan matriks partisi pada baris 1 kolom 2
Q2
= 0170
3554
= 0048
Setelah melakukan perhitungan seperti diatas untuk semua bilangan matriks sehingga matriks partisi sudah ternormalisasi seperti yang ditunjukkan pada Tabel 48
Tabel 48 Derajat keanggotaan matriks partisi data A
i micro
C1 C2
1 0069 0048
2 0034 0229
3 0039 0054
4 0075 0128
5 0116 0148
6 0159 0048
7 0136 0065
8 0140 0161
9 0068 0029
10 0165 0090
d Perhitungan pusat cluster (V)
Pada perhitungan pusat cluster (V) berdasarkan Persamaan 26 Dimana setiap bilangan penyusun matriks partisi (micro) dipangkatkan dengan w dimana variabel w yang sudah dideklarisakan terlebih dahulu dengan nilai sama dengan 2 dan dikalikan dengan bilangan penyusun matriks X yang merupakan matriks berisi data yang ada pada Tabel 41 Selanjutnya hasil perkalian tersebut dijumlah dan dibagi dengan jumlah hasil kuadrat dari bilangan penyusun matriks partisi Hasil perhitungan ditunjukkan pada Tabel 49
52
Tabel 49 Perhitungan pusat cluster data A
Berdasarkan jumlah cluster dari data A yaitu 2 maka terdapat 2 pusat cluster (V) yaitu V1 V2 Perhitungan nilai V adalah sebagai berikut
V1 = sum ((μic1)2 times Xi)10
i=1
sum (μic1)210i=1
= 10730216
0121620
= 8822718207
V2 = sum ((μic2)2 times Xi)10
i=1
sum (μic2)210i=1
= 12111287
0137572
= 8803592572
Jadi berdasarkan perhitungan diatas pusat cluster untuk data A pada iterasi ke-1 adalah 8822718207 8803592572
e Perhitungan fungsi objektif (P)
Pada perhitungan P menggunakan Persamaan 27 dimana setiap baris pada data matriks X dikurangi pusat cluster (V) selanjutnya dikuadratkan Hasilnya
i X microsup2 microsup2 x X
C1 C2 C1 C2
1 95 0004731 0002292 0449450 0217718
2 90 0001137 0052633 0102304 4736927
3 94 0001512 0002864 0142117 0269234
4 83 0005630 0016427 0467258 1363472
5 85 0013448 0021907 1143107 1862112
6 92 0025233 0002291 2321422 0210787
7 86 0018542 0004243 1594602 0364916
8 89 0019487 0025916 1734356 2306543
9 93 0004590 0000816 0426841 0075870
10 86 0027311 0008183 2348759 0703706
Jumlah 0121620 0137572 10730216 12111287
53
kemudian dikalikan dengan micro yang sudah dipangkatkan dengan bobot (w) seperti yang telah ditunjukkan pada Tabel 49 Selanjutnya hasil tersebut dijumlah per kolom seperti yang ditunjukkan pada Tabel 410
Tabel 410 Fungsi objektif data A
i X (X-V)sup2 (X-V)sup2 x microsup2
C1 C2 C1 C2
1 95 458711 484983 02170 01111
2 90 31429 38576 00036 02030
3 94 333254 355702 00504 01019
4 83 273234 253605 01538 04166
5 85 104147 92168 01401 02019
6 92 142342 157139 03592 00360
7 86 49603 41450 00920 00176
8 89 05972 09294 00116 00241
9 93 227798 246420 01046 00201
10 86 49603 41450 01355 00339
Jumlah 1267661573 1166282827
Fungsi Objektif (P) 24339444
Perhitungan nilai fungsi objektif dilakukan seperti Persamaan 27 Nilai fungsi objektif diperoleh dengan cara sebagai berikut P = sum sum ([(Xi minus Vc)2](μik)2)3
c=110i=1
P = 1267661573 + 1166282827
= 24339444
f Perbaikan matriks partisi
Pada langkah ini perbaikan matriks partisi dilakukan berdasarkan Persamaan 28 Data matriks X untuk setiap barisnya dikurangi pusat cluster lalu dikuadratkan seperti yang ditunjukkan pada Tabel 410 Selanjutnya hasilnya dipangkatkan dengan -11 karena w-1 = 1 Hasil pangkat -1 terhadap (X-V)2 ditunjukkan pada Tabel 411
54
Tabel 411 Perbaikan matriks partisi
i ((X-V)sup2)^-1
Jumlah C1 C2
1 0022 0021 0042
2 0318 0259 0577
3 0030 0028 0058
4 0037 0039 0076
5 0096 0108 0205
6 0070 0064 0134
7 0202 0241 0443
8 1674 1076 2750
9 0044 0041 0084
10 0202 0241 0443
Berdasarkan tabel diatas bilangan penyusun matriks partisi yang baru atau yang telah diperbaiki diperoleh dari hasil pembagian data terhadap jumlah per barisnya
12058311 = 0022
0042= 0514
12058312 = 0021
0042= 0486
Pada perhitungan nilai matriks yang sudah diperbaiki dilakukan pada semua elemen matriks sehingga hasil perbaikan matriks seperti yang ditunjukkan pada Tabel 412
Tabel 412 Hasil perbaikan matriks partisi
Setelah mendapatkan hasil perbaikan matriks partisi kita lakukan pengecekan selama iterasi kurang dari iterasi maksimum (maxIter) atau selisih antara fungsi objektif iterasi saat ini dengan iterasi sebelumnya bernilai lebih dari nilai error terkecil yaitu 001 maka proses berlanjut dengan kembali melakukan perhitungan pusat cluster hingga perbaikan matriks partisi Hasil
i micro
C1 C2
1 0514 0486
2 0551 0449
3 0516 0484
4 0481 0519
5 0469 0531
6 0525 0475
7 0455 0545
8 0609 0391
9 0520 0480
10 0455 0545
55
perhitungan pusat cluster dari data A B C dan D setelah dilakukan proses tiga kali iterasi dan diurutkan mulai dari yang terkecil sampai yang terbesar ditunjukkan pada Tabel 413
Tabel 413 Hasil pusat cluster
4232 Perhitungan batas subinterval
Perhitungan batas subinterval dilakukan dengan mencari nilai tengah (Median) dari setiap pusat cluster Berikut merupakan contoh perhitungan batas subinterval pada data A
a Interval 1 Batas bawah = 78835 (Batas bawah Universe of Discourse pada data A) Batas atas = 89347 (Median 88303 dan 90390)
b Interval 2 Batas bawah = 89347 (Median 88303 dan 90390) Batas atas = 99165 (Batas atas Universe of Discourse pada data A)
Seperti perhitungan diatas juga dilakukan pada data suhu (B) kelembaban (C) dan kecepatan angin (D) Dalam hal ini jumlah subinterval setiap atribut berbeda ndash beda sesuai dengan jumlah cluster yang sebelumnya ditunjukkan pada Tabel 46 Berikut merupakan batas subinterval masing ndash masing atribut yang ditunjukkan pada Tabel 414
Tabel 414 Batas subinterval masing ndash masing atribut data
Interval (micro)
A B C D
1
78835 25984 751708 6208
sd sd sd sd
89347 26181 823863 6249
2
89347 26181 823863 6249
sd sd sd sd
99165 26366 82411 6256
3
82411 6256
- - sd sd
82537 6312
Cluster A B C D
1 88303 26165 82391 62497
2 90390 26197 82408 62499
3 - - 82415 62613
56
424 Pembentukan Fuzzy Set
Pembentukan fuzzy set berdasarkan pada derajat keanggotaan dari subinterval (micro) fuzzy set dari data A ditentukan dengan derajat keanggotaan sebagai berikut
A1 = 1micro1 + 05micro2
A2 = 05micro1 + 1micro2
Pada derajat keanggotaan data A diatas simbol ldquo+rdquo menunjukkan operator himpunan gabungan Berdasarkan subinterval pada Tabel 414 nilai batas fuzzy set dari data atribut A dapat ditentukan dengan cara sebagai berikut
A1 = 78835 sd 94256 (Batas bawah interval 1 sd titik tengah interval 2)
A2 = 84091 sd 99165 (Titik tengah interval 1 sd batas atas interval 2)
Setelah diketahui batas masing ndash masing fuzzy set grafik fungsi keanggotaan fuzzy set data A yang direpresentasikan dalam kurva bahu yang ditunjukkan pada Gambar 422 Dengan cara yang sama juga ditentukan pula fuzzy set dari data attribut B C dan D
425 Fuzzifikasi
Pada langkah fuzzifikasi dilakukan dengan mencari derajat keanggotaan yang memiliki nilai paling besar (maksimum) dari masing ndash masing data terhadap fuzzy set yang sudah terbentuk Derajat keanggotaan dicari berdasarkan fungsi keanggotaan kurva bentuk bahu Berikut ini adalah perhitungan derajat keanggotaan dari data attribut A
Data aktual curah hujan (A) pada April 2014 dasarian ke-3 = 90
1198601 = 942558 ndash 90
942558minus840911= 041868427
Gambar 422 Grafik fuzzy set data A
57
1198602 = 90minus840911
942558minus840911= 058131636
Derajat keanggotaan paling besar berada pada A2 sehingga data attribut A pada April 2014 dasarian ke-3 difuzzifikasikan ke fuzzy set A2 Perhitungan yang sama dilakukan pada seluruh data attribut A sehingga didapat derajat keanggotaan dan hasil fuzzifikasi dari data A ditunjukkan pada Tabel 415
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A
i Data A1 A2 Fuzzyfikasi
1 95 0 1 A2
2 90 041868363 058131636 A2
3 94 002516357 097483642 A2
4 83 1 0 A1
5 85 09105837 008941629 A1
6 92 02219236 077807639 A2
7 86 08122036 018779631 A1
8 89 05170636 048293635 A1
9 93 01235436 087645641 A2
10 86 08122037 018779631 A1
Perhitungan yang sama juga dilakukan pada semua attribut yaitu attribut B C dan D Sehingga dapat diperoleh hasil fuzzifikasi sesuai derajat keanggotaan dengan nilai paling besar Berikut adalah hasil fuzzifikasi untuk semua attribut yang dapat dilihat pada Tabel 416
Tabel 416 Hasil fuzzifikasi semua data attribut
No Tanggal A B C D
1 Dasarian 2 (April 2014) A2 B1 C3 D3
2 Dasarian 3 (April 2014) A2 B1 C3 D3
3 Dasarian 1 (Mei 2014) A2 B1 C3 D3
4 Dasarian 2 (Mei 2014) A1 B2 C1 D1
5 Dasarian 3 (Mei 2014) A1 B2 C1 D1
6 Dasarian 1 (Juni 2014) A2 B1 C2 D2
7 Dasarian 2 (Juni 2014) A1 B2 C1 D1
8 Dasarian 3 (Juni 2014) A1 B2 C2 D1
9 Dasarian 1 (Juli 2014) A2 B1 C2 D2
10 Dasarian 2 (Juli 2014) A1 B2 C2 D1
58
426 Pembentukan Fuzzy Logical Relationship (FLR)
Pada tahap pembentukan FLR dengan berdasarkan nilai order yang sudah ditentukan Pada manualisasi ini berdasarkan dari Tabel 416 di misalkan nilai order kita deklarasikan dengan nilai 3 sehingga dapat menghasilkan 7 FLR Hasil pembentukan FLR Data training dapat ditunjukkan pada Tabel 417 Hasil pembentukan FLR Data testing dapat ditunjukkan pada Tabel 418
Tabel 417 Hasil pembentukan FLR data training
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(32)B(31)C(33)D(33)) rarr A1
2 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(31)B(32)C(31)D(31)) rarr A1
3 (A(12)B(11)C(13)D(13)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(31)D(31)) rarr A2
4 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(21)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
5 (A(11)B(12)C(11)D(11)) (A(22)B(21)C(22)D(22)) (A(31)B(32)C(31)D(31)) rarr A1
Tabel 418 Hasil pembentukan FLR data testing
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(12)D(12)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(32)D(31)) rarr A2
2 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(22)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
427 Defuzzifikasi
Pada tahap ini misalkan jumlah data yang digunakan untuk data uji atau data testing adalah dua yaitu yang pertama data periode ke-9 dan yang kedua data periode ke-10 Sehingga yang digunakan data latih atau data training adalah data pada periode ke-1 sampai data periode ke-8 Pada data testing yang pertama melibatkan FLR ke-1 sampai FLR ke-5 untuk disesuaikan dengan FLR ke-6 yang berdasarkan pada Tabel 417 Pada data testing yang kedua melibatkan FLR ke-1 sampai FLR ke-6 untuk disesuaikan dengan FLR ke-7 yang berdasarkan pada Tabel 417 Selanjutnya setiap ruas kiri FLR data testing dibandingkan dengan FLR data training yaitu pada bilang pangkat bawah fuzzy set dibandingkan sesuai dengan posisinya dan dihitung selisihnya Hasil dari perhitungan selisih tersebut dijumlahkan dan apabila jumlah selisihnya kurang dari threshold maka FLR tersebut dikatakan cocok Threshold merupakan dari hasil mengalikan jumlah order dengan jumlah faktor kemudian dijumlahkan dengan dengan sebuah konstanta Contoh perhitungan selisih nilai ruas kiri FLR pada data testing pertama adalah sebagai berikut
59
Data testing = (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(32) B(31) C(33) D(33)) rarr A1
Data training =
1 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
2 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
3 (A(12) B(11) C(13) D(13)) (A(21) B(22) C(21) D(21)) (A(31) B(32) C(31) D(31)) rarr A2
4 (A(11) B(12) C(11) D(11)) (A(21) B(22) C(21) D(21)) (A(32) B(31) C(32) D(32)) rarr A1
5 (A(11) B(12) C(11) D(11)) (A(22) B(21) C(22) D(22)) (A(31) B(32) C(31) D(31)) rarr A1
Selisih data ke- 1 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|2-1|+|1-2|+|3-2|+|3-1| = 13
Selisih data ke- 2 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Selisih data ke- 3 = |2-2|+|1-1|+|3-2|+|3-2|+|1-1|+|2-2|+|1-1|+|1-1|+|1-1|+|2-2|+|1-2|+|1-1| = 3
Selisih data ke- 4 = |1-2|+|2-1|+|1-2|+|1-2|+|1-1|+|2-2|+|1-1|+|1-1|+|2-1|+|1-2|+|2-2|+|2-1| = 7
Selisih data ke- 5 = |1-2|+|2-1|+|1-2|+|1-2|+|2-1|+|1-2|+|2-1|+|2-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Pada perhitungan selisih nilai ruas kiri FLR pada data testing juga dilakukan pada semua data testing yang sudah dideklarasikan sebelumnya Dalam hal ini agar dapat menemukan FLR yang cocok dengan data testing Tahap selanjutnya adalah proses defuzzifikasi menggunakan threshold yang dimisalkan 18 sehingga FLR yang memiliki kecocokan dengan data testing pertama adalah semua FLR dari ke-1 sampai ke-5 karena memiliki hasil selisih kurang dari 18 Semua FLR yang cocok ditampung dikelompokkan berdasarkan FLR pada ruas kanan yang sama kemudian dhitung frekuensinya Berikut adalah frekuensi dan pusat cluster dari ruas kanan FLR yang cocok dengan data testing pertama dan kedua ditunjukkan pada Tabel 419
Tabel 419 Frekuensi FLR yang cocok dengan data testing
Data testing 1 Data testing 2
Ruas kanan A1 A2 A1 A2
Pusat Cluster 88303 90390 88303 90390
Frekuensi 4 1 4 2
Berdasarkan pada Tabel 419 dilakukan defuzzifikasi sesuai dengan Persamaan 218 sebagai berikut
119863119886119905119886 119905119890119904119905119894119899119892 1 = (88303times4)+(90390times1)
5= 887204
60
119863119886119905119886 119905119890119904119905119894119899119892 2 = (88303times4)+(90390times2)
6= 889987
Jadi berdasarkan perhitungan diatas diperoleh hasil peramalan curah hujan pada pada April 2014 dasarian ke-3 adalah 1384601636 sedangkan pada tanggal 10012016 adalah 2769203272 Perbandingan data curah hujan aktual dan hasil peramalan dengan metode High Order Fuzzy Time Series Multi Factors dapat dilihat pada Tabel 420
Tabel 420 Perbandingan data aktual dan hasil peramalan
No Data Aktual Hasil Peramalan
1 93 887204
2 86 889987
Dari hasil peramalan yang ditunjukkan pada Tabel 420 dapat dilakukan perhitungan kesalahan peramalan menggunakan metode Mean Square Error (MSE) seperti Persamaan 219
119872119878119864 = ((93minus887206)2+(86minus889989)2)
2
= 136536
43 Perancangan antarmuka
Perancangan antarmuka merupakan perancangan dari tampilan antarmuka atau interface yang nantinya akan diterapkan pada tahapan implementasi Pada perancangan antarmuka ini terdapat lima halaman utama dan juga terdapat dalam menu berupa button yaitu halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
431 Halaman input
Pada halaman input terdapat inputan data dengan nama button Browse Data pada inputan data ini pengguna diharuskan memasukkan inputan file data dalam bentuk ekstensi xls serta direktori lokasi file yang di inputkan akan ditampilkan pada textfield dan juga terdapat label yang menampilkan jumlah banyaknya data yang terdapat pada file yang telah di inputkan Selanjutnya juga terdata inputan textfield data training data testing order dan nilai konstanta Pada halaman input ini juga terdapat button fuzzification yang berfungsi untuk melakukan proses clustering fuzzifikasi dan FLR Selanjutnya pada button forecasting berfungsi untuk melakukan peramalan atau defuzzifikasi dari hasil proses fuzzifikasi serta menghitung nilai error dari hasil peramalan Berikut
61
merupakan rancangan tampilan antarmuka dari halaman input yang ditunjukkan pada Gambar 423
432 Halaman tampil data
Pada halaman tampil data terdapat tabel yang menampilkan isi data dari xls yang sudah dimasukkan terlebih dahulu pada halaman input Tabel tampil data akan menampilkan tanggal curah hujan kelembaban suhu dan kecepatan angin Berikut merupakan tampilan rancangan halaman tampil data yang ditunjukkan pada Gambar 424
Gambar 423 Rancangan antarmuka halaman input
Gambar 424 Rancangan antarmuka halaman tampil data
62
433 Halaman proses
Pada halaman proses akan menampilkan hasil clustering fuzzifikasi dan fuzzy logical relationship Pada tampilan halaman clustering akan menampilkan Universe of Discourse curah hujan suhu kelembaban dan kecepatan angin Selanjutnya tampilan dibawahnya akan menampilkan jumlah cluster dari setiap faktor yaitu jumlah cluster curah hujan suhu kelembaban dan kecepatan angin Berikut merupakan tampilan perancangan halaman proses clustering yang ditunjukkan Gambar 425
Selanjutnya pada tampilan proses fuzzifikasi akan menampilkan tabel hasil fuzzifikasi dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzifikasi yang ditunjukkan pada Gambar 426
Gambar 425 Rancangan antarmuka halaman proses clustering
Gambar 426 Rancangan antarmuka proses fuzzifikasi
63
Pada tampilan proses fuzzy logical relationship (FLR) akan menampilkan textarea berisi hasil proses FLR dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzy logical relationship yang ditunjukkan pada Gambar 427
434 Halaman hasil
Pada halaman hasil peramalan akan menampilkan tabel yang berisi hasil peramalan curah hujan dan data curah hujan yang sebenarnya Serta terdapat text link yang akan menampilkan grafik perbandingan data hasil peramalan dan data yang sebenarnya Berikut adalah tampilan rancangan halaman hasil yang ditunjukkan pada Gambar 428
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship
Gambar 428 Rancangan antarmuka halaman hasil peramalan
64
435 Halaman perhitungan error
Pada halaman perhitungan error akan menampilkan nilai dari hasil perhitungan Mean Square Error (MSE) pada textfield Berikut adalah tampilan rancangan halaman perhitungan error yang ditunjukkan pada Gambar 429
44 Perancangan pengujian
Pada penelitian ini akan dilakukan empat pengujian yaitu pengujian terhadap nilai order nilai threshold pengujian terhadap jumlah data training untuk mengetahui pengaruhnya terhadap nilai Mean Square Error (MSE) dan pengujian validasi sistem untuk mengetahui kestabilan hasil implementasi
441 Perancangan pengaruh order terhadap nilai MSE
Order merupakan jumlah urutan data yang digunakan dalam pembentukkan Fuzzy Logical Relationship (FLR) Pada pengujian ini dilakukan percobaan dengan order yang berbeda ndash beda Pengujian ini bertujuan untuk mengetahui pengaruh order terhadap hasil peramalan Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Pada setiap pengujian yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan order yang berbeda Berikut adalah perancangan pengujian order terhadap nilai MSE ditunjukkan pada Tabel 421
Tabel 421 Rancangan pengujian order terhadap nilai MSE
No Order Threshold MSE
1
Gambar 429 Rancangan antarmuka halaman perhitungan error
65
442 Perancangan pengaruh threshold terhadap nilai MSE
Nilai threshold bergantung jumlah order karena untuk nilai threshold merupakan dari hasil mengalikan jumlah faktor yang mempengaruhi dengan order selanjutnya dijumlah dengan sebuah konstanta Pada pengujian ini dilakukan percobaan dengan konstanta yang berbeda ndash beda sehingga menghasilkan threshold yang berbeda pula Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan konstanta dan threshold yang berbeda Berikut merupakan rancangan pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 422
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1
443 Perancangan pengaruh jumlah data training terhadap nilai MSE
Data training sangat berperan penting dalam proses defuzzifikasi sehingga pada penelitian ini dilakukan pengujian pengaruh jumlah data training terhadap tingkat kesalahan dari hasil peramalan Pada pengujian ini dilakukan percobaan dengan jumlah data training yang berbeda ndash beda Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan dilakukan perhitungan nilai MSE untuk mengetahui tingkat kesalahan dari hasil peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors dengan jumlah data training yang berbeda ndash beda Sehingga dari hasil pengujian ini dapat diketahui pengaruh dari jumlah data training Berikut merupakan rancangan pengujian pengaruh jumlah data training yang ditunjukkan pada Tabel 423
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1
444 Perancangan validasi sistem
Pada pengujian validasi sistem akan melakukan pengujian dengan menggunakan order threshold terbaik seperti yang telah dilakukan pada
66
pengujian ndash pengujian sebelumnya yang menghasilkan hasil error MSE terendah Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Berikut merupakan rancangan pengujian validasi sistem yang ditunjukkan pada Tabel 424
Tabel 424 Rancangan pengujian validasi sistem
Percobaan ke- MSE
1
67
BAB 5 IMPLEMENTASI
Pada bab ini berisi pembahasan hasil implementasi metode High Order Fuzzy Time Series Multi Factors yang sesuai dengan bab sebelumnya yaitu perancangan Bab ini terdiri dari spesifikasi sistem implementasi algoritma dan implementasi antarmuka
51 Spesifikasi Sistem
Pada spesifikasi sistem ini dibagi mejadi dua yaitu spesifikasi perangkat keras dan spesifikasi perangkat lunak
511 Spesifikasi Perangkat Keras
Spesifikasi perangkat keras merupakan perangkat keras yang digunakan pada implementasi penelitian ini Perangkat keras yang digunakan adalah laptop dengan spesifikasi sesuai dengan pada Tabel 51 berikut
Tabel 51 Spesifikasi Perangkat Keras
Komponen Spesifikasi
Processor Intelcopy Core i3-3217U 180 GHz
Memori (RAM) 8 GB RAM
Harddisk 500 GB RAM
512 Spesifikasi Perangkat Lunak
Spesifikasi perangkat lunak merupakan perangkat lunak yang digunakan pada implementasi penelitian ini Perangkat lunak yang digunakan pada implementasi penelitian sesuai dengan yang ditunjukkan pada Tabel 52 berikut
Tabel 52 Spesifikasi Perangkat Lunak
Sistem Operasi Microsoft Windows 7 (64 bit)
Bahasa Pemrograman Java
Tools Pemrograman Netbeans 81
Data Microsoft Excel 2013
52 Implementasi Algoritma
Pada implementasi algoritma ini membahas mengenai hasil implementasi algoritma metode High Order Fuzzy Time Series Multi Factors yang mengacu pada bab sebelumnya yaitu perancangan Dalam penelitian ini implementasi algoritma menggunakan bahasa pemrograman java berbasis desktop Implementasi algoritma terdiri dari beberapa method sesuai dengan langkah ndash langkah pada algoritma metode High Order Fuzzy Time Series Multi Factors
68
521 Implementasi Proses Universe of Discourse
Pada implementasi Universe of Discourse seperti yang ditunjukkan Kode Program 51 dimana pada source code method Universe_of_Discourse baris 3 - 5 terdapat pemanggilan method mean standar_deviasi dan Min_dan_Max Dimana pemanggilan method tersebut dibutuhkan untuk melakukan proses perhitungan selanjutnya yaitu untuk menghitung batas bawah dan batas atas dari Univers of Discourse Baris 7-10 untuk menghitung hasil Universe of Discourse Berikut merupakan source code dari proses Universe of Discourse yang ditunjukkan pada Kode Program 51
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
private void Universe_of_Discourse()
mean()
standar_deviasi()
Min_dan_Max()
hsl_uMin = new double[jmlh_Faktor]
hsl_uMax = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
hsl_uMin[i] = hsl_min[i] - hsl_stdev[i]
hsl_uMax[i] = hsl_max[i] + hsl_stdev[i]
Kode Program 51 Implementasi proses Universe of Discourse
5211 Implementasi proses mean
Pada implementasi proses mean merupakan proses perhitungan nilai rata ndash rata dari setiap faktor yang nantinya hasilnya diperlukan untuk proses perhitungan standar deviasi Berikut merupakan source code dari proses mean yang ditunjukkan pada Kode Program 52 Perhitungan utama proses mean terdapat pada baris 3 ndash 8
Baris Kode
1 2 3 4 5 6 7 8 9
private void mean()
hsl_mean = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double tmp_jmlh = 0
for (int j = 0 j lt jmlh_DataTraining j++)
tmp_jmlh = tmp_jmlh + data[i][j]
hsl_mean[i] = (tmp_jmlh jmlh_DataTraining)
Kode Program 52 Implementasi proses mean
5212 Implementasi proses standar deviasi
Pada implementasi proses perhitungan standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Standar deviasi dapat dilakukan perhitungan setelah mendapat nilai hasil dari perhitungan mean Berikut merupakan source code dari implementasi proses standar deviasi yang ditunjukkan pada Kode Program 53 Perhitungan utama proses standar deviasi terdapat pada baris 3 ndash 9
69
Baris Kode
1 2 3 4 5 6 7 8 9 10 11
private void standar_deviasi()
hsl_stdev = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double result = 0
for (int j = 0 j lt jmlh_DataTraining j++)
result = result + (Mathpow((data[i][j] ndash
hsl_mean[i]) 2))
hsl_stdev[i]=Mathsqrt(result(jmlh_DataTraining-
1))
Kode Program 53 Implementasi proses standar deviasi
5213 Implementasi proses Dmin dan Dmax
Pada implementasi proses Dmin dan Dmax merukan untuk mencari nilai minimum dan nilai maksimum dari data sampel untuk setiap faktor Berikut merupakan source code dari implementasi dari proses Dmin dan Dmax yang ditunjukkan pada Kode Program 54 Pada baris 8 ndash 10 merupakan bagian dari proses untuk untuk menentukan nilai data terbesar Selanjutnya pada baris 11 ndash 13 untuk menentukan nilai data terkecil
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
19
private void Min_dan_Max()
hsl_max = new double[jmlh_Faktor]
hsl_min = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double besar = data[i][0]
double kecil = data[i][0]
for (int j = 0 j lt jmlh_DataTraining j++)
if (data[i][j] gt besar)
besar = data[i][j]
if (data[i][j] lt kecil)
kecil = data[i][j]
hsl_max[i] = besar
hsl_min[i] = kecil
Kode Program 54 Implementasi proses Dmin dan Dmax
522 Implementasi Proses Jumlah Cluster
Pada implementasi proses jumlah cluster merupakan proses perhitungan jumlah cluster dari setiap faktor Implementasi ini dapat dilakukan apabila sudah mendapatkan hasil output dari method Min_dan_Max() sudah didapatkan Berikut merupakan source code dari implementasi proses jumlah cluster yang ditunjukkan pada Kode Program 55 Pada baris 3 ndash 7 untuk digunakan untuk menghitung selisih data sampel setiap baris dari semua faktor pada data sampel ke t dengan t+1 Selanjutnya pada baris 9 ndash 10 untuk menghitung jumlah cluster dari setiap faktor
70
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
private void jumlah_Cluster()
jmlh_Cluster = new int[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double selisih = 0
for (int j = 0 j lt (jmlh_DataTraining - 1) j++)
selisih = selisih + (Mathabs((data[i][j]
- data[i][(j + 1)])))
jmlh_Cluster[i] = (int) Mathround((Mathabs(
hsl_min[i]-hsl_max[i]))(selisih(jmlh_DataTraining
-1)))
Kode Program 55 Implementasi proses jumlah cluster
523 Implementasi Proses Pusat Cluster
Implementasi proses perhitungan pusat cluster ini menggunakan metode fuzzy C-means untuk mendapatkan pusat cluster yang nantinya digunkan sebagai subinterval Implementasi ini memerlukan hasil dari proses method jumlah_Cluster() agar dapat melakukan perhitungan subinterval Berikut merupakan source code dari implementasi proses subinterval yang ditunjukkan pada Kode Program 56 Pada Kode Program 56 hanya menampilkan source code pembentukan subinterval pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 2 ndash 3 merupakan deklarasi variabel bobot iterasi maksimum selisih fungsi objektif awal dan error minimum Pada baris 8 ndash 20 merupakan proses pembentukan matriks partisi dengan nilai random 0 sampai 1 Pada baris 22 ndash 26 merupakan proses normalisasi matriks partisi yang telah terbentuk Pada baris 28 ndash 63 merupakan proses untuk menentukan pusat cluster Pada baris 65 ndash 86 merupakan proses perhitungan fungsi objektif dari iterasi Pada baris 88 ndash 90 merupakan proses perhitungan selisih fungsi objektif Pada baris 92 ndash 108 adalah proses perbaikan matriks partisi Pada baris 110 ndash 115 adalah proses hasil perbaikan matriks partisi Pada baris 116 - 133 adalah proses dengan pengkondisian apakah selisih fungsi objektif lebih kecil dari error minimum serta apabila memenuhi kondisi maka dilanjutkan ke proses pengurutan pusat cluster secara ascending dari hasil iterasi terakhir dan proses pengkondisian iterasi berhenti
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void pusat_cluster()
int bobot = 2int iter_maksimum = 100
double selisih_f_objektif = 0double error_min = 001
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
Pembentukkan matriks partisi
tmp_Matriks1=new
double[jmlh_Cluster[i]][jmlh_DataTraining]
q1 = new double[jmlh_Cluster[i]]
double jmlh_q1
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_q1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
71
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
double random = ThreadLocalRandomcurrent()
nextDouble(01 1)
tmp_Matriks1[j][k] = random
jmlh_q1 = jmlh_q1 + random
q1[j] = jmlh_q1
normalisasi matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k] q1[j]
Perhitungan pusat cluster
for (int iter = 0 iter lt iter_maksimum iter++)
selisih_f_objektif = 0
jumA1 = new double[iter_maksimum][jmlh_Cluster[i]]
jumA2 = new double[iter_maksimum][jmlh_Cluster[i]]
miu_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
XV_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
pusat_cluster1 = new double[jmlh_Cluster[i]]
double hitung_jum1
double hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(tmp_Matriks1
[j][k]bobot)
miu_Matriks1[j][k] = tmp_Matriks1[j][k]
hitung_jum1 = hitung_jum1 + tmp_Matriks1
[j][k]
jumA1[iter][j] = hitung_jum1
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum2 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
data[i][k]
hitung_jum2 = hitung_jum2 +
tmp_Matriks1[j][k]
jumA2[iter][j] = hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
pusat_cluster1[j] = jumA2[iter][j]
jumA1[iter][j]
perhitungan fungsi objektif
jumA3 = new double[iter_maksimum][jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
double hitung_jum3 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow((data[i][k]
ndash pusat_cluster1[j])
bobot)
XV_Matriks1[j][k] = tmp_Matriks1[j][k]
tmp_Matriks1[j][k] = XV_Matriks1[j][k]
miu_Matriks1[j][k]
hitung_jum3 = hitung_jum3 +
tmp_Matriks1[j][k]
jumA3[iter][j] = hitung_jum3
72
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
double jmlh_f_objektif = 0
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_f_objektif = jmlh_f_objektif
+jumA3[iter][j]
if (iter lt (iter_maksimum - 1))
f_objektif1[iter + 1] = jmlh_f_objektif
perhitungan selisih fungsi objektif
selisih_f_objektif = f_objektif1[iter + 1]
-f_objektif1[iter]
perbaikan matriks partisi
int hitung = bobot - 1int pangkat = -1 hitung
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(XV_Matriks1
[j][k] pangkat)
jumA4 = new
double[iter_maksimum][jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
double hitung_jum4 = 0
for (int k = 0 k lt jmlh_Cluster[i] k++)
hitung_jum4 = hitung_jum4 +
tmp_Matriks1[k][j]
jumA4[iter][j] = hitung_jum4
hasil perbaikan matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
jumA4[iter][k]
if (selisih_f_objektif lt error_min)
pengurutan ascending pusat cluster
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 kltjmlh_Cluster[i]k++)
if (k lt (jmlh_Cluster[i] - 1))
if (pusat_cluster1[k] gt
pusat_cluster1[k + 1])
double tmp =
pusat_cluster1[k]
pusat_cluster1[k]=
pusat_cluster1[k+1]
pusat_cluster1[k+1] = tmp
iter = iter_maksimum
Kode Program 56 Implementasi proses pusat cluster
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set
Pada implementasi proses pembentukan suinterval dan fuzzy set memiliki dua proses yaitu proses menentukan batas subinterval minumum serta maksimum dan proses menentukan batas fuzzy set minimum serta maksimum
73
Proses pembentukan fuzzy dapat menjalankan prosesnya setelah method subinterval() telah diakses Berikut merupakan source code proses pembentukan fuzzy set yang ditunjukkan pada Kode Program 57 Pada Kode Program 57 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 6 ndash 29 merupakan proses pembentukan batas minimum dan batas maksimum subinterval Pada baris 31 ndash 54 merupakan pembentukan batas minimum dan batas maksimum fuzzy set
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
private void subinterval_dan_fuzzy_set()
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
batas subinterval
batas_subintervalMinA = new double[jmlh_Cluster[i]]
batas_subintervalMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_subintervalMinA[j] = hsl_uMin[i]
batas_subintervalMaxA[j]=(pusat_cluster1[j]
+pusat_cluster1[j+
1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1] +pusat_cluster1
[j])2
batas_subintervalMaxA[j]=
hsl_uMax[i]
else if ((0 lt j) ampamp (j lt (jmlh_Cluster[i] -
1)))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1]+
pusat_cluster1[j])2
batas_subintervalMaxA[j]=
(pusat_cluster1[j]+
pusat_cluster1[j+1)2
batas fuzzy set
batas_fuzzysetMinA = new double[jmlh_Cluster[i]]
batas_fuzzysetMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_fuzzysetMinA[j]=
batas_subintervalMinA[j]
batas_fuzzysetMaxA[j]=
(batas_subintervalMinA[j+1]
+batas_subintervalMaxA[j + 1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]
+batas_subintervalMaxA[j - 1])2
batas_fuzzysetMaxA[j] =
batas_subintervalMaxA[j]
else if ((0 lt j) ampamp (jlt(jmlh_Cluster[i]-1)))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]+
batas_subintervalMaxA[j-1])2
batas_fuzzysetMaxA[j]=
74
51
52
53
54
55
56
(batas_subintervalMinA[j+1]+
batas_subintervalMaxA[j + 1])2
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set
525 Implementasi proses fuzzifikasi
Pada Implementasi proses fuzzifikasi memiliki dua proses utama yaitu menentukan derajat keanggotaan dan proses fuzzifikasi Dalam proses ini method fuzzy_set() harus dieksekusi terlebih dahulu karena implementasi proses ini memerlukan output dari method tersebut Berikut merupakan source code fuzzifikasi ditunjukkan pada Kode Program 58 Pada Kode Program 58 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 3 ndash 81 merupakan proses perhitungan derajat keanggotaan Pada baris 83 ndash 94 adalah proses penentuan fuzzifikasi
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
private void fuzzifikasi()
if (i == 0)
hitung_fuzzifikasiA = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
if(j == 0)
if((data[i][k]gtbatas_fuzzysetMinA[j])ampamp
(data[i][k]lt batas_fuzzysetMinA[j + 1]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA[j + 1])
ampamp (data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j] - data[i][k])
(batas_fuzzysetMaxA[j] ndash
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j]) ampamp
(data[i][k] lt batas_fuzzysetMinA[j + 1])
ampamp(data[i][k] gt batas_fuzzysetMinA[j+1])
ampamp(data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
else if (j == (jmlh_Cluster[i] - 1))
if((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
(batas_fuzzysetMaxA[(jmlh_Cluster[i]ndash
2)]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
if((data[i][k] gt batas_fuzzysetMaxA
75
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
[(jmlh_Cluster[i]- 2)]) ampamp (data[i][k]
lt batas_fuzzysetMaxA[(jmlh_Cluster[i]
- 1)]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] gt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 1)]))
hitung_fuzzifikasiA[j][k] = 0
else if ((0 lt j)ampamp(j lt (jmlh_Cluster[i] - 1)))
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA[j
+1]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA[j])
(batas_fuzzysetMinA[j + 1]-
batas_fuzzysetMinA[j])
if ((data[i][k] gt batas_fuzzysetMinA
[j+1])ampamp (data[i][k] lt
batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j]-data[i][k])
(batas_fuzzysetMaxA[j]-
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA
[j + 1]) ampamp (data[i][k] gt
batas_fuzzysetMinA[j + 1]) ampamp
(data[i][k]ltbatas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
hasil_fuzzifikasiA = new int[jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
int cluster = 0
double besar=hitung_fuzzifikasiA[0][j]
for (int k = 0 k lt jmlh_Cluster[i] k++)
if (besar lt hitung_fuzzifikasiA[k][j])
besar = hitung_fuzzifikasiA[k][j]
cluster = k
hasil_fuzzifikasiA[j] = cluster + 1
Kode Program 58 Implementasi proses fuzzifikasi
526 Implementasi Pembentukan Fuzzy Logical Relationship
Pada implementasi pembentukan Fuzzy Logical Relationship (FLR) memiliki dua output yaitu FLR_kiri dan FLR_kanan Dimana FLR_kiri berisi group dari kelima faktor dan pada FLR_kanan merupakan dari faktor yang akan diramalkan yaitu
76
faktor curah hujan (A) Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code pembentukan Fuzzy Logical Relationship (FLR) dapat ditunjukkan pada Kode Program 59 berikut Pada baris 3 ndash 14 merupakan deklarasi variabel Pada baris 15 ndash 55 adalah proses pembentukan fuzzy logical relationship data training Pada baris 56 ndash 58 merupakan deklarasi variabel Pada baris 59 ndash 86 adalah proses pembentukan fuzzy logical relationship data testing
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Fuzzy Logical Relationship
private void fuzzy_logical_relationship()
String input_order = fieldOrdergetText()
order = IntegerparseInt(input_order)
int max_inc = order
String input_dataTraining = fieldDatatraininggetText()
int dataTraining = IntegervalueOf(input_dataTraining)
int tmp_jmlhDatatraining = 0
int tmp_order = 0
int jmlh_dataTraining = dataTraining - order
String input_dataTesting = fieldDatatestinggetText()
int jmlh_dataTesting = IntegervalueOf(input_dataTesting)
FLR_kiri_training = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_training = new int[jmlh_DataTraining]
for (int i = 0 i lt jmlh_dataTraining i++)
for (int j = i j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (j == 0)
if (k == 0)
FLR_kiri_training[i][j][k]=
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiD[j]
else if (j = 0)
if (k == 0)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiD[j]
tmp_order = j
FLR_kanan_training[i] = hasil_fuzzifikasiA[(i + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
77
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
tmp_jmlhDatatraining = i
FLR_kiri_testing = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_testing = new int[(jmlh_DataTraining)]
tmp_jmlhDatatraining = tmp_jmlhDatatraining + 1
for (int i = 0 i lt jmlh_dataTesting i++)
for (int j = tmp_jmlhDatatraining j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (k == 0)
FLR_kiri_testing[i][j - tmp_jmlhDatatraining][k]
= hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiD[j]
FLR_kanan_testing[i] =
hasil_fuzzifikasiA[(tmp_jmlhDatatraining + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
tmp_jmlhDatatraining++
Kode Program 59 Implementasi pembentukan FLR
527 Implementasi Proses Defuzzifikasi
Pada implementasi proses defuzzifikasi merupakan proses dimana menentukan hasil peramalan dari data testing berdasarkan dari bilangan fuzzy yang terbentuk Implementasi ini memiliki beberapa inputan penting yaitu data training data testing order dan konstanta Inputan tersebut sangat berperan penting dalam proses implementasi defuzzifikasi Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code defuzzifikasi dapat ditunjukkan pada Kode Program 510 berikut Pada baris 2 ndash 11 merupakan deklarasi variabel Pada baris 13 ndash 37 merupakan proses perhitungan selisih antara data training dengan data testing Pada baris 40 ndash 47 menghitung jumlah FLR yang cocok Pada baris 49 ndash 65 merupakan proses mencocokan FLR kiri yang cocok dengan FLR kanan Pada baris 67 ndash 81 merupakan proses menghitung jumlah frekuensi FLR kanan yang cocok Pada baris 83 ndash 91 adalah proses perhitungan hasil peramalan
Baris Kode 1
2
3
4
private void defuzifikasi()
String input_dataTraining = fieldDatatraininggetText()
String input_dataTesting = fieldDatatestinggetText()
String input_konstanta = fieldKonstantagetText()
78
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
int dataTraining = IntegervalueOf(input_dataTraining)
int dataTesting = IntegervalueOf(input_dataTesting)
int konstanta = IntegervalueOf(input_konstanta)
int match[][]
match = new int[dataTesting][2000]
int threshold = (jmlh_Faktor order) + konstanta
int hitung_selisih = 0
perhitungan selisih
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
hitung_selisih = 0
for (int k = 0 k lt order k++)
for (int l = 0 l lt jmlh_Faktor l++)
if (i == 0)
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
else if (i gt 0)
FLR_kiri_training[(dataTraining-
1)+i][k][l] = FLR_kiri_testing[i-
1][k][l]
FLR_kanan_training[(dataTraining-1)+i]
= FLR_kanan_testing[i-1]
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
if (hitung_selisih lt threshold)
match[i][j] = hitung_selisih
menghitung jumlah total FLR yang cocok untuk setiap data
testing
int countGroup[] = new int[dataTesting]
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
countGroup[i]++
mencocokan FLR_kiri yang cocok dengan FLR_kanan
group = new int[dataTesting][2000]
for (int i = 0 i lt dataTesting i++)
int tmp_count = 0
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
if (tmp_count lt countGroup[i])
group[i][tmp_count] = j
tmp_count++
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt countGroup[i] j++)
group[i][j] = FLR_kanan[group[i][j]]
mengelompokkan yang sama
MapltInteger Integergt map = new HashMapltInteger Integergt()
hasil_peramalan = new double[dataTesting]
for (int i = 0 i lt dataTesting i++)
79
70
71
72
73
74
75 76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
double peramalan = 0
mapclear()
for (int j = 0 j lt countGroup[i] j++)
int key = group[i][j]
if (mapcontainsKey(key))
int occurrence = mapget(key)
occurrence++
mapput(key occurrence)
else
mapput(key 1)
menghitung hasil peramlaan
Iterator iterator = mapkeySet()iterator()
while (iteratorhasNext())
int key = (Integer) iteratornext()
int occurrence = mapget(key)
peramalan = (peramalan + (pusat_cluster1[(key - 1)]
occurrence))
hasil_peramalan[i] = (peramalan countGroup[i])
Kode Program 510 Implementasi proses defuzzifikasi
53 Implementasi Antarmuka
Pada implementasi antarmuka dijelaskan beberapa halaman antarmuka untuk penggunaan dari program hasil implementasi Implementasi antarmuka berdasarkan perancangan yang telah dijelasakan pada bab sebelumnya yaitu bab perancangan Halaman antarmuka yang dibuat adalah halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
531 Implementasi antarmuka halaman input
Halaman input merupakan halaman yang pertama muncul setelah program dijalankan Pada halaman input ini terdapat beberapa inputan yang harus di masukkan yaitu data input data training data testing order dan konstanta Selain itu pada halaman input juga terdapat tiga button yaitu button browse data button fuzzification dan button forecasting Berikut tampilan antarmuka halaman input yang ditunjukkan pada Gambar 51
Gambar 51 Implementasi antarmuka halaman input
80
532 Implementasi antarmuka halaman tampil data
Halaman tampil data merupakan halaman yang tampil setelah melakukan input data Halaman ini berisi tabel yang menampilkan data curah hujan suhu kecepatan angin dan kelembaban Berikut tampilan antarmuka halaman tampil data yang ditunjukkan pada Gambar 52
533 Implementasi antarmuka halaman proses
Halaman proses merupakan halaman yang muncul setelah button fuzzification telah dieksekusi Halaman proses ini terdiri dari tiga bagian atau tab yaitu clustering fuzzification dan Fuzzy logical relationship Pada halaman antarmuka clustering menampilkan Universe of Discourse dan jumlah cluster pada masing ndash masing faktor Berikut merupakan tampilan antarmuka halaman proses bagian clustering yang ditunjukkan pada Gambar 53
Gambar 52 Implementasi antarmuka halaman tampil data
Gambar 53 Implementasi antarmuka halaman proses clustering
81
Pada tab selanjutnya yaitu pada tab fuzzification tab ini menampilkan hasil proses fuzzifikasi Pada halaman ini menampilkan tabel yang berisi hasil fuzzifikasi dari setiap faktor Berikut merupakan tampilan antarmuka halaman proses bagian fuzzification yang ditunjukkan pada Gambar 54
Pada tab Fuzzy Logical Relationship menampilakn hasil dari proses pembentukan Fuzzy Logical Relationship Tampilan pada halaman ini menampilkan berupa textarea yang berisi dari output proses tersebut Berikut merupakan tampilan antarmuka halaman proses bagian Fuzzy Logical Relationship yang ditunjukkan pada Gambar 55
Gambar 54 Implementasi antarmuka halaman proses fuzzification
Gambar 55 Implementasi halaman antarmuka proses FLR
82
534 Implementasi antarmuka halaman hasil
Pada implementasi antarmuka halaman hasil ini merupakan halaman yang menampilkan hasil dari proses defuzzifikasi Halaman hasil ini menampilkan tabel yang berisi data aktual dan data dari hasil peramlan Berikut merupakan tampilan antarmuka halaman hasil yang ditunjukkan pada Gambar 56
535 Implementasi antarmuka halaman perhitungan error
Pada implementasi antarmuka halaman perhitungan error merupakan halaman yang menampilkan hasil dari proses perhitungan Mean Square Error (MSE) Pada halaman antarmuka ini menampilkan hasil error MSE pada textfield Berikut merupakan tampilan antarmuka halaman perhitungan error yang ditunjukkan pada Gambar 57
Gambar 56 Implementasi halaman antarmuka hasil
Gambar 57 Implementasi halaman antarmuka perhitungan error
83
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini membahas hasil pengujian dan analisis hasil pengujian dari hasil implementasi metode High Order Fuzzy Time Series Multi factors untuk peramalan curah hujan dasarian Pada pengujian ini disesuaikan dengan perancangan pengujian pada bab 4
61 Sistematika Pengujian
Pada bab sebelumnya yaitu bab 4 mengenai perancangan telah dibahas perancangan pengujian dikatakan bahwa pengujian akan dilakukan sebanyak empat pengujian Pengujian order pengujian threshold pengujian jumlah data training dan pengujian validasi sistem Dari semua pengujian tersebut akan di uji dan di analisis bagaimana pengaruhnya terhadap hasil perhitungan Mean Square Error (MSE)
62 Hasil dan Analisis Pembahasan
Berikut hasil pengujian dan analisis yang disesuaikan dengan perancangan pengujian pada bab sebelumnya
621 Pengujian pengaruh order terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh order terhadap nilai MSE Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Jadi jika nilai order adalah 3 maka peramalan akan melibatkan 3 data sebelumnya pada proses pembentukan Fuzzy Logical Relationship (FLR) Pada pengujian ini hanya nilai order yang diubah ndash ubah sedangkan variabel lain akan dibuat tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 konstanta adalah 10 Nilai threshold diperoleh dari perhitungan jumlah faktor dikali order dan dijumlah nilai konstanta Berikut adalah hasil pengujian pengaruh order terhadap nilai MSE yang ditunjukkan pada Tabel 61
Tabel 61 Hasil pengujian order terhadap nilai MSE
No Order Threshold MSE
1 3 22 808585
2 6 34 965547
3 9 46 912631
4 12 58 875884
5 15 70 719284
6 18 82 6801207
7 21 94 5637184
8 24 106 5444184
9 27 118 5433631
10 30 130 5418393
84
Dari hasil pengujian order seperti yang telah ditunjukkan pada Tabel 61 maka pada percobaan pertama dengan order = 3 dan threshold 22 dapat diperoleh MSE sebesar 808585 Selanjutnya pada percobaan kedua dengan order = 6 dan threshold = 34 diperoleh MSE sebesar 965547 Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 61
Berdasarkan Gambar 61 order yang berbeda - beda mempengaruhi besar nilai MSE Dalam penelitian ini menentukan order memiliki ketentuan yaitu nilai order harus lebih dari 0 dan batas maksimal order adalah setengah dari nilai data training (LinYang 2009) Nilai MSE terbesar yang ditunjukkan pada pengujian ini adalah 965547 pada pengujian order 6 dan nilai MSE terkecil adalah 5418393 pada pengujian order 30 Pada Gambar 61 menunjukkan bahwa pada order 3 ke order 6 mengalami peningkatan nilai MSE selanjutnya pada order 6 hingga order 30 mengalami penurunan Pada order 3 memiliki nilai MSE lebih kecil dari order 6 order 9 dan order 12 karena memiliki lebih banyak hasil selisih tingkat kecocokan data time series yang tidak terlalu besar dan kurang dari threshold Selain itu karena data time series dari data sampel yang diperoleh memiliki pola data musiman dimana perubahan pola data dasarian tidak terlalu banyak berubah dari tahun ke tahun Selanjutnya pada order 6 hingga order 30 menunjukkan penurunan nilai MSE dan order terbesar memiliki nilai MSE terkecil sehingga dapat disumpulkan bahwa semakin besar order maka semakin kecil pula nilai MSE Dalam hal ini dengan semakin besarnya order maka data sebelumnya yang digunakan untuk pertimbangan dalam menentukan peramalan semakin banyak Sehingga semakin besar nilai order maka dapat membuat peramalan semakin akurat Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin besar nilai order maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE
85
622 Pengujian pengaruh threshold terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh threshold terhadap nilai MSE Threshold merupakan hasil dari mengalikan jumlah order dengan jumlah faktor pada data kemudian dijumlahkan dengan dengan nilai konstanta Pada proses defuzzifikasi terdapat proses menghitung selisih antara pangkat bawah Fuzzy Logical Relationship (FLR) data training dan pangkat bawah FLR data testing Selanjutnya setelah mendapatkan nilai selisih maka nilai selisih tersebut dibandingkan dengan nilai threshold untuk mencari FLR yang cocok Pada pengujian ini nilai konstanta saja yang diubah ndash ubah sementara variabel lainnya tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 dan Nilai order adalah 30 Pada penentuan input konstanta nilai minimal harus lebih besar dari 0 dan nilai maksimal menyesuaikan data sampel yang digunakan (LinYang 2009) Berikut adalah hasil pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 62
Tabel 62 Hasil pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1 10 130 558485
2 20 140 577498
3 30 150 597364
4 40 160 604660
5 50 170 646951
6 60 180 680257
7 70 190 703013
8 80 200 741484
9 90 210 756749
10 100 220 780600
Dari hasil pengujian threshold seperti yang telah ditunjukkan pada Tabel 62 maka dapat dilihat bahwa konstanta yang dilakukan pengujian dimulai dengan nilai 10 sampai 100 Hasil yang didapat pada percobaan pertama dengan konstanta = 10 dan threshold 130 diperoleh MSE sebesar 558485 Selanjutnya pada percobaan kedua dengan konstanta = 20 dan threshold = 140 diperoleh MSE sebesar 577498 Selanjutnya dapat kita lihat pada percobaan yang telah dilakukan dari percobaan pertama hingga percobaan kesepuluh nilai MSE yang diperoleh mengalami perubahan pada setiap percobaan Dapat dilihat bahwa peningkatan MSE lebih dominan menunjukkan peningkatan sehingga dalam hal ini semakin besar nilai konstanta dan threshold maka semakin besar pula nilai MSE yang diperoleh Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 62
86
Berdasarkan grafik dari Gambar 62 nilai input konstanta yang berbeda - beda mempengaruhi besar nilai MSE semakin besar nilai konstanta maka nilai threshold juga semakin besar karena threshold diperoleh dari perhitungan order dikali jumlah faktor dan selanjutnya dijumlah dengan nilai konstanta Dalam hal ini dengan semakin besar nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR juga semakin luas batasannya dan jika semakin kecil nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR menjadi semakin sempit dan mempermudah proses peramalan karena hanya adanya sedikit data yang cocok dengan data yang akan diramalkan dan mempermudah proses defuzzifikasi Oleh karena itu semakin kecil threshold maka dapat membuat peramalan semakin akurat Akan tetapi nilai threshold tidak boleh terlalu kecil karena dapat menyebabkan kegagalan peramalan Kegagalan peramalan itu terjadi karena tidak adanya data training yang cocok dengan data testing karena pada metode yang digunakan pada penelitian ini sangat bergantung pada data ndash data sebelumnya Dari hasil percobaan diatas hasil MSE terbesar adalah 7806 yaitu pada konstanta 100 serta threshold 220 dan hasil MSE terkecil adalah 558485 yaitu pada konstanta 10 dan threshold 130 Dalam pengujian ini memiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin kecil nilai konstanta maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
623 Pengujian pengaruh jumlah data training terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh jumlah data training terhadap nilai MSE Pada pengujian ini jumlah data training adalah data dasarian yaitu 1 tahun 2 tahun 3 tahun 4 tahun dan 5 tahun dimana dari setiap 1 tahun memiliki 36 data dasarian Pengujian ini akan dilakukan sebanyak lima kali Pada pengujian ini jumlah data testing adalah 36 nilai order adalah setengah dari
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE
87
nilai data training nilai konstanta adalah 20 Berikut adalah hasil pengujian pengaruh jumlah data training terhadap nilai MSE yang ditunjukkan pada Tabel 63
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1 36 786586
2 72 634527
3 108 627190
4 144 614184
5 180 539698
Dari hasil pengujian jumlah data training seperti yang telah ditunjukkan pada Tabel 63 maka pada percobaan pertama dengan data training = 36 dapat diperoleh MSE sebesar 786586 Selanjutnya pada percobaan kedua dengan data training = 72 diperoleh MSE sebesar 634527 Dalam hal ini dari percobaan satu dan dua nilai MSE mengalami penurunan Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 63
Berdasarkan dari Gambar 63 pengujian pertama sampai pengujian kelima mengalami penerunan nilai MSE Sehingga dapat disimpulkan bahwa semakin besar data training maka semakin kecil nilai MSE yang diperoleh Nilai MSE semakin kecil apabila menggunakan data training dalam jumlah besar karena data yang digunakan memiliki rentang jauh dari periode data testing atau data yang akan diramalkan Sedangkan data training yang sedikit memiliki nilai MSE yang besar karena data training yang memiliki kecocokan dengan data testing berada pada periode yang jauh dengan data testing sehingga nilai MSE menjadi tinggi Dalam hal ini terbukti bahwa metode yang digunakan pada penelitian ini memerlukan jumlah data training yang banyak sehingga dapat menurunkan nilai kesalahannya Dari hasil percobaan diatas hasil MSE terbesar adalah 786586 dan
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE
88
hasil MSE terkecil adalah 539698 Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoPeramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Seriesrdquo yang menyatakan bahwa semakin besar jumlah data training maka semakin kecil nilai kesalahannya (Elfajar et al 2017)
624 Pengujian validasi sistem
Pada pengujian ini dilakukan untuk mengetahui kestabilan dari sistem dengan menggunakan order threshold terbaik dari pengujian sebelumnya Pada pengujian ini akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai data training menggunakan 36 data yang berbeda agar dapat menunjukkan gambaran variasi dari nilai kesalahan MSE pada peramalan nilai order adalah 18 dan konstanta adalah 10 sehingga nilai threshold adalah 92 Berikut adalah hasil pengujian validasi sistem yang ditunjukkan pada Tabel 64
Tabel 64 Hasil pengujian validasi sistem
Percobaan ke- MSE
1 714290
2 703856
3 732564
4 732815
5 6973958
6 7532825
7 741726
8 760457
9 709961
10 6256204
Dari hasil pengujian validasi sistem seperti yang telah ditunjukkan pada Tabel 64 maka dapat digambarkan dengan grafik yang ditunjukkan oleh Gambar 64
Gambar 64 Grafik hasil pengujian validasi sistem
89
Berdasarkan dari gambar grafik Gambar 64 bahwa pengujian dari validasi sistem memiliki hasil MSE yang tidak terlalu jauh berbeda dari penggunaan data yang berbeda - beda Oleh karena itu dapat disimpulkan bahwa implementasi dari metode High Order Fuzzy Time Series Multi Factors yang telah digunakan sudah cukup baik untuk digunakan peramalan
Berdasarkan dari pengujian yang dilakukan diatas dapat diketahui bahwa nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun 2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016 Nilai order adalah 90 dan konstanta adalah 10 Berikut adalah perbandingan data aktual dengan hasil peramalan yang ditunjukkan pada grafik Gambar 65
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan
90
BAB 7 PENUTUP
Pada bab ini terdiri dari dua sub bab yaitu kesimpulan dan saran Kesimpulan adalah tahapan yang berisi hasil penelitian yang dilakukan dan jawaban semua rumusan masalah yang sudah ditetapkan sebelumnya dan saran adalah tahapan yang berisi hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
71 Kesimpulan
Pada kesimpulan ini mengacu pada penelitian yang telah dilakukan yang meliputi perancangan implementasi serta pengujian dan analisis terhadap hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diambil kesimpulan sebagai berikut
1 Berdasarkan dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam melakukan peramalan curah hujan dasarian dilakukan dengan beberapa langkah yaitu langkah pertama perhitungan Universe of Discourse yang terdiri perhitungan mean standar deviasi dan perhitungan Dmin serta Dmax langkah kedua yaitu perhitungan jumlah cluster langkah ketiga yaitu perhitungan pusat cluster langkah keempat yaitu pembentukan subinterval dan fuzzy set langkah kelima yaitu proses fuzzifikasi langkah keenam yaitu pembentukan Fuzzy Logical Relationship(FLR) langkah ketujuh adalah defuzzifikasi yang hasil outputnya merupakan hasil peramalan curah hujan
2 Berdasarkan dari pengujian peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diketahui bahwa
a Order berpengaruh terhadap nilai error semakin besar nilai order maka hasil peramalan semakin baik
b Threshold berpengaruh terhadap nilai error semakin rendah nilai threshold maka hasil peramalan semakin baik Akan tetapi nilai threshold tidak boleh terlalu rendah karena dapat menyebabkan kegagalan peramalan
c Data training berpengaruh terhadap nilai error semakin besar jumlah data training maka hasil peramalan semakin baik Sehingga peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors memerlukan banyak data training
d Hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors cukup baik digunakan untuk peramalan Hal ini terbukti hasil pengujian validasi sistem menunjukkan grafik yang cukup stabil
Dari pengujian yang telah dilakukan nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun
91
2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016
72 Saran
Pada penelitian ini dilakukan peramalan curah hujan dasarian dengan faktor yang mempengaruhi adalah suhu kelembaban dan kecapatan angin Saran penulis diharapkan untuk penelitian selanjutnya melakukan penambahan faktor yang mempengaruhi curah hujan atau melakukan peramalan objek lain dengan mempertimbangkan faktor ndash faktor yang mempengaruhinya Serta diharapkan pada penelitian selanjutnya untuk menambahkan data yang lebih banyak serta bervariatif sehingga nilai hasil perhitungan akurasi peramalan yang dihasilkan dalam penelitian dapat meningkat Penggunaan data training yang banyak dan bervariatif dapat membuat pola data semakin terlihat sehingga hasil peramalan yang dihasilkan memiliki akurasi yang lebih baik
92
DAFTAR PUSTAKA
Ardiyanto 2016 ldquoTerendam Air Petani Lamongan Terpaksa Panen Dinirdquo Times Indonesia November 18 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
Badan Penelitian dan Pengembangan Pertanian Kementrian Pertanian 2015 ldquoKalender Tanam Terpadu Versi 25 Kota Malang Prov Jawa Timurrdquo httpkatamlitbangpertaniangoidkatam_terpadu2016mh33535733573_tinggipdf (Diakses 25 Februari 2017)
Bagirov M Adil Mahmood Arshad and Barton Andrew 2017 Prediction of monthly rainfall in Victoria Australia Clusterwise linear regression approach Elsevier Atmos Research 188 20-29
BMKG Staklim Karangploso Malang 2015 ldquoAnalisis Dinamika Atmosfer Dan Laut Dasarian III Maret 2015 Update 2 April 2015rdquo httpkarangplosojatimbmkgogoidindexphpanalisis-kondisi-dinamika-atmosfer-laut-dasarian-tahun-2015399-analisis-dinamika-atmosfer-dan-laut-dasarian-iii-maret-2015-update-2-april-2015axzz3X8h9y4fgampgsctab=0 (Diakses 25 Februari 2017)
BPS Kabupaten Malang 2016 ldquoKabupaten Malang Dalam Angka 2016rdquo httpsmalangkabbpsgoidwebsitepdf_publikasiKabupaten-Malang-Dalam-Angka-2016pdf (Diakses 25 Februari 2017)
BPS Jawa Timur 2015 ldquoJawa Timur Dalam Angka 2015rdquo httpsjatimbpsgoid4dmnpdf_publikasiJawa-Timur-Dalam-Angka-2015pdf (Diakses 25 Februari 2017)
Buffa S Elwood Rakesh and Sarin K 1996 Modern Production and Operation Management Eight Edition John Willey and Sons Inc London
Chen M 1996 Forecasting Enrollments based on Fuzzy Time Series Fuzzy Sets and Systems 311-319
Dewi Candra Kartikasari Dani Mursityo Yusi 2014 Prediksi Cuaca Pada Data Time Series Menggunakan Adaptive Neuro Fuzzy Inference System (ANFIS) Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK) Vol 1 No 1 hlm 18-24
Dewi Candra Muslikh M 2013 Perbandingan Akurasi Backpropagation Neural Network dan ANFIS Untuk Memprediksi Cuaca NATURAL-A Journal of Scientific Modeling amp Computation Volume 1 No1
Elfajar Aria Setiawan Budi Dewi Candra 2017 Peramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Series Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer Vol 1 No 2 Hlmn 85-94
93
Fauziah Normalita Wahyuningsih Sri dan Nasution Yuki 2016 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) Vol4 Statistika
Forest Mahyu 2015 ldquoDefenisi amp Pengertian Kelembabanrdquo httpilmupengetahuaalamblogspotcoid201506defenisi-pengertian-kelembabanhtml (Diakses 25 Februari 2017)
Irsyad Muhammad Metarice Sonya 2013 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan Jurnal Sains dan Teknologi Industri Vol 10 No 02
Klawon F 2001 What is About Fuzzy Clustering Understanding and Improving the Concept of the Fuzzier Science Journal httppublic-rzfh-wolfebuetteldeklawon
Kurniawan Carlos 2007 Analisis dan Perancangan Program Aplikasi Peramalan Curah Hujan dengan Metode Wavelet (Studi Kasus BMKG)
Kusumadewi S 2003 ldquoArtificial Intelegence (Teknik amp Aplikasinya)rdquo Graha Ilmu Yogyakarta
Kusumadewi S Purnomo H 2004 ldquoAplikasi Logika Fuzzy untuk Pendukung Keputusanrdquo Graha Ilmu Yogyakarta
Kusumadewi Sri 2002 Analisis amp Desain Sistem Fuzzy Tollbox MATLAB Graha Ilmu Yogyakarta
Lin Yupei Yang Y 2009 Stock Markets Forecasting Based on Fuzzy Time Series Model IEEE Conference Publications 782-886
Makridakis S Steven C Wheelwright Victor E and Gee MC 1999 Metode dan Aplikasi Peramalan Jilid I Edisi Kedua Jakarta Binarupa Aksara
Mirawati T Yasin H and Rusgiyono A 2013 Prediksi Curah Hujan dengan Metode Kalman Filter(Studi Kasus di Kota Semarang 2012) Jurnal Gaussian 2(3) pp 239-248
Pradipta Nur Sembiring Pasukat Bangun Pengarapen 2013 Analisis Pengaruh Curah Hujan di Kota Medan Saintia Matematika Vol 1
Sipayung Putri Metha 2013 Pemodelan Hubungan Kelembapan Udara terhadap Curah Hujan (Studi Kasus Curah Hujan Periode 2001-2009 pada Stasiun Dramaga) httprepositoryipbacidhandle12345678960623 (Diakses 25 Februari 2017)
User 2015 httpstaklimnegaranet[Online] Available at httpwwwstaklimnegaranetindexphpbuletin-hujanpengertian-istilah (Diakses 25 Februari 2017)
Wang Nai-Yi Chen Shyi-Ming 2009 Temperature prediction and TAIFEX forecasting based on automatic clustering techniques and two-factors high-order fuzzy time series Elsevier Expert Systems with Applications 36 2143ndash2154
94
Wardhani Dessy Ratnawati Dian Setiawan Budi 2015 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Saham Repositori Jurnal Mahasiswa PTIIK UB Doro Jurnal Vol 6 No 6
Wiyanti T and Pulungan R 2012 Peramalan Deret Waktu Menggunakan Model Fungsi Basis Radial (RBF) dan Auto Regressive Integrated Moving Average (ARIMA) Jurnal MIPA 35(2) pp 175-182
Yunanto Utomo 2014 ldquoBMKG Akui Prakiraan Cuacanya Masih Kurang Akuratrdquo Kompas Sains Januari 30 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
ii
PENGESAHAN
PERAMALAN CURAH HUJAN MENGGUNAKAN METODE HIGH ORDER FUZZY TIME SERIES MULTI FACTORS
SKRIPSI
Diajukan untuk memenuhi sebagian persyaratan
memperoleh gelar Sarjana Komputer
Disusun Oleh Ahmada Bastomi Wijaya
135150301111033
Skripsi ini telah diuji dan dinyatakan lulus pada 08 Agustus 2017
Telah diperiksa dan disetujui oleh
Dosen Pembimbing I
Candra Dewi SKom MSc NIP 19771114 200312 2 001
Dosen Pembimbing II
Bayu Rahayudi ST MT NIP 19740712 200604 1 001
Mengetahui Ketua Jurusan Teknik Informatika
Tri Astoto Kurniawan ST MT PhD NIP 19710518 200312 1 001
iii
PERNYATAAN ORISINALITAS
Saya menyatakan dengan sebenar-benarnya bahwa sepanjang pengetahuan saya di dalam naskah skripsi ini tidak terdapat karya ilmiah yang pernah diajukan oleh orang lain untuk memperoleh gelar akademik di suatu perguruan tinggi dan tidak terdapat karya atau pendapat yang pernah ditulis atau diterbitkan oleh orang lain kecuali yang secara tertulis disitasi dalam naskah ini dan disebutkan dalam daftar pustaka
Apabila ternyata didalam naskah skripsi ini dapat dibuktikan terdapat unsur-unsur plagiasi saya bersedia skripsi ini digugurkan dan gelar akademik yang telah saya peroleh (sarjana) dibatalkan serta diproses sesuai dengan peraturan perundang-undangan yang berlaku (UU No 20 Tahun 2003 Pasal 25 ayat 2 dan Pasal 70)
Malang 10 Agustus 2017
Ahmada Bastomi Wijaya
135150301111033
iv
KATA PENGANTAR
Puji syukur penulis panjatkan kepada Allah SWT yang telah memberikan rahmat dan hidayah-Nya kepada penulis sehingga penulis dapat menyelesaikan skripsi dengan judul ldquoPeramalan Curah Hujan Menggunakan Metode High Order Fuzzy Time Series Multi Factorsrdquo
Melalui kesempatan ini penulis ingin menyampaikan terima kasih kepada semua pihak yang telah memberikan bantuan serta dukungan kepada penulis dalam menyelesaikan skripsi ini diantaranya
1 Kedua orang tua penulis Bapak Wahyudi Rianto amp Ibu Sugihartiwi yang selalu memberikan dorsquoa kasih sayang dan semangat kepada penulis
2 Ibu Candra Dewi SKom MSc selaku dosen pembimbing I yang telah memberikan ilmu serta saran selama proses pengerjaan skripsi ini
3 Bapak Bayu Rahayudi ST MT selaku dosen pembimbing II yang juga telah memberikan ilmu serta saran selama proses pengerjaan skripsi ini
4 Ibu Hurriyatul Fitriyah ST MSc selaku dosen penasihat akademik yang telah memberikan banyak kritik dan saran selama proses perkuliahan
5 Bapak Wayan Firdaus Mahmudy S Si MT PhD selaku Dekan Fakultas Ilmu Komputer Universitas Brawijaya
6 Bapak Tri Astoto Kurniawan ST MT PhD selaku Ketua Jurusan Teknik Informatika Fakultas Ilmu Komputer Universitas Brawijaya
7 Bapak Agus Wahyu Widodo ST MCs selaku Ketua Program Studi Teknik Informatika Fakultas Ilmu Komputer Universitas Brawijaya
8 Semua teman FILKOM khususnya angkatan 2013 yang telah memberikan bantuan serta dukungan selama masa perkuliahan dan pengerjaan skripsi
9 Semua pihak yang tidak dapat disebutkan satu persatu yang terlibat baik secara langsung mapun tidak langsung yang telah membantu penulis dalam menyelesaikan skripsi ini
Penulis menyadari bahwa skripsi ini masih banyak kekurangan sehingga penulis dengan terbuka menerima kritik serta saran yang membangun Akhir kata penulis berharap skripsi ini dapat bermanfaat dan berguna bagi semua pihak yang menggunakannya
Malang 10 Agustus 2017
Penulis
ahmadabastomigmailcom
v
ABSTRAK
Kabupaten Malang merupakan salah satu kabupaten di Jawa Timur yang memiliki tingkat produksi pertanian yang cukup tinggi dimana hampir disetiap kecamatanya memiliki lahan pertanian Permasalahannya adalah pada saat curah hujan yang tinggi tidak sedikit petani yang mengalami gagal panen Curah hujan adalah salah satu dari beberapa faktor yang mempengaruhi perubahan iklim sehingga sangat menentukan hasil panen yang diperoleh Permasalahan gagal panen ini dapat diatasi dengan melakukan peramalan curah hujan dengan adanya peramalan curah hujan petani dapat menentukan waktu pola tanam yang sesuai sehingga dapat mengantisipasi terjadinya gagal panen Pada penelitian ini peramalan curah hujan dalam dasarian berdasarkan beberapa faktor yaitu suhu kelembaban dan kecepatan angin Metode yang digunakan untuk peramalan curah hujan dasarian adalah High Order Fuzzy Time Series Multi factors Pada metode ini pembentukan subinterval dilakukan dengan menggunakan fuzzy C-means Dalam menghitung kesalahan hasil peramalan menggunakan Mean Square Error (MSE) Berdasarkan hasil pengujian yang dilakukan semakin kecil threshold serta semakin besar data training dan order maka nilai kesalahan yang diperoleh semakin rendah Hasil peramalan curah hujan dasarian untuk peramalan satu tahun kedepan menggunakan metode ini mendapatkan hasil MSE terbaik sebesar 539698
Kata kunci curah hujan fuzzy C-means fuzzy time series peramalan
vi
ABSTRACT
Malang Regency is one of the regencies in East Java which has a high level of agricultural production in almost every district has agricultural land The problem is when high rainfall is not a few farmers who experienced crop failure Rainfall is one of several factors that affect climate change so it is very important to determine the yields obtained The problem of this harvest failure can be overcome by forecasting rainfall with rainfall forecasting farmers can determine the time of the appropriate cropping patterns so as to anticipate the occurrence of crop failure On the research of forecasting rainfall in dasarian based on several factors namely temperature humidity and wind speed The methods used for forecasting rainfall dasarian is a High-Order Fuzzy Time Series Multi factors In this method the formation of subinterval using fuzzy C-means In calculating the error of forecasting result using Mean Square Error (MSE) Based on the results of tests conducted the smaller threshold and the greater data training as well order the value error is obtained increasingly low The result of forecasting dasarian rainfall for forecasting one year ahead using this method get the best MSE result of 539698 Keywords rain fall fuzzy C-means fuzzy time series forecasting
vii
DAFTAR ISI
PENGESAHAN ii
PERNYATAAN ORISINALITAS iii
KATA PENGANTAR iv
ABSTRAK v
ABSTRACT vi
DAFTAR ISI vii
DAFTAR TABEL xi
DAFTAR GAMBAR xiii
DAFTAR KODE PROGRAM xv
DAFTAR LAMPIRAN xvi
BAB 1 PENDAHULUAN 1
11 Latar belakang 1
12 Rumusan masalah 2
13 Tujuan 3
14 Manfaat 3
15 Batasan masalah 3
16 Sistematika pembahasan 3
BAB 2 LANDASAN KEPUSTAKAAN 5
21 Kajian Pustaka 5
22 Dasar Teori 7
221 Peramalan 8
222 Curah hujan 8
223 Data time series 9
224 Logika Fuzzy 10
225 Metode Fuzzy C-means 13
226 Metode Peramalan dengan Fuzzy Time Series 15
227 Metode High Order Fuzzy Time Series Multi Factors 17
228 Perhitungan keakuratan metode peramalan 20
BAB 3 METODOLOGI 22
31 Studi Literatur 22
viii
32 Pengumpulan Data 23
33 Perancangan 23
34 Implementasi 23
35 Pengujian dan Analisis 23
36 Kesimpulan dan Saran 24
BAB 4 PERANCANGAN 25
41 Perancangan Proses 25
411 Proses perhitungan Universe of Discourse 26
4111 Proses perhitungan Mean 28
4112 Proses perhitungan standar deviasi 29
4113 Proses perhitungan nilai Dmin dan Dmax 30
412 Proses perhitungan jumlah cluster 31
413 Proses perhitungan pusat cluster 32
414 Proses pembentukan subinterval dan Fuzzy set 37
415 Proses Fuzzifikasi 38
416 Proses pembentukan Fuzzy Logical Relationship 41
417 Proses Defuzzifikasi 43
42 Perhitungan Manual 46
421 Perhitungan Universe of Discourse (U) 46
422 Perhitungan jumlah cluster (k) 48
423 Perhitungan pusat cluster dan subinterval 49
4231 Penentuan pusat cluster 49
4232 Perhitungan batas subinterval 55
424 Pembentukan Fuzzy Set 56
425 Fuzzifikasi 56
426 Pembentukan Fuzzy Logical Relationship (FLR) 58
427 Defuzzifikasi 58
43 Perancangan antarmuka 60
431 Halaman input 60
432 Halaman tampil data 61
433 Halaman proses 62
434 Halaman hasil 63
ix
435 Halaman perhitungan error 64
44 Perancangan pengujian 64
441 Perancangan pengaruh order terhadap nilai MSE 64
442 Perancangan pengaruh threshold terhadap nilai MSE 65
443 Perancangan pengaruh jumlah data training terhadap nilai MSE 65
444 Perancangan validasi sistem 65
BAB 5 IMPLEMENTASI 67
51 Spesifikasi Sistem 67
511 Spesifikasi Perangkat Keras 67
512 Spesifikasi Perangkat Lunak 67
52 Implementasi Algoritma 67
521 Implementasi Proses Universe of Discourse 68
5211 Implementasi proses mean 68
5212 Implementasi proses standar deviasi 68
5213 Implementasi proses Dmin dan Dmax 69
522 Implementasi Proses Jumlah Cluster 69
523 Implementasi Proses Pusat Cluster 70
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set 72
525 Implementasi proses fuzzifikasi 74
526 Implementasi Pembentukan Fuzzy Logical Relationship 75
527 Implementasi Proses Defuzzifikasi 77
53 Implementasi Antarmuka 79
531 Implementasi antarmuka halaman input 79
532 Implementasi antarmuka halaman tampil data 80
533 Implementasi antarmuka halaman proses 80
534 Implementasi antarmuka halaman hasil 82
535 Implementasi antarmuka halaman perhitungan error 82
BAB 6 PENGUJIAN DAN ANALISIS 83
61 Sistematika Pengujian 83
62 Hasil dan Analisis Pembahasan 83
621 Pengujian pengaruh order terhadap nilai MSE 83
x
622 Pengujian pengaruh threshold terhadap nilai MSE 85
623 Pengujian pengaruh jumlah data training terhadap nilai MSE 86
624 Pengujian validasi sistem 88
BAB 7 PENUTUP 90
71 Kesimpulan 90
72 Saran 91
DAFTAR PUSTAKA 92
LAMPIRAN 95
Lampiran 1 Data Sampel 95
xi
DAFTAR TABEL
Tabel 21 Kajian Pustaka 5
Tabel 22 Fuzzy Logic Relationship 19
Tabel 23 Peramalan fuzzy set 20
Tabel 41 Data Sampel Perhitungan Manual 46
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean 47
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi 47
Tabel 44 Hasil Universe of Discourse 48
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya 48
Tabel 46 Hasil jumlah cluster data 49
Tabel 47 Matriks partisi awal pada cluster data A 50
Tabel 48 Derajat keanggotaan matriks partisi data A 51
Tabel 49 Perhitungan pusat cluster data A 52
Tabel 410 Fungsi objektif data A 53
Tabel 411 Perbaikan matriks partisi 54
Tabel 412 Hasil perbaikan matriks partisi 54
Tabel 413 Hasil pusat cluster 55
Tabel 414 Batas subinterval masing ndash masing atribut data 55
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A 57
Tabel 416 Hasil fuzzifikasi semua data attribut 57
Tabel 417 Hasil pembentukan FLR data training 58
Tabel 418 Hasil pembentukan FLR data testing 58
Tabel 419 Frekuensi FLR yang cocok dengan data testing 59
Tabel 420 Perbandingan data aktual dan hasil peramalan 60
Tabel 421 Rancangan pengujian order terhadap nilai MSE 64
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE 65
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE 65
Tabel 424 Rancangan pengujian validasi sistem 66
Tabel 51 Spesifikasi Perangkat Keras 67
Tabel 52 Spesifikasi Perangkat Lunak 67
Tabel 61 Hasil pengujian order terhadap nilai MSE 83
xii
Tabel 62 Hasil pengujian threshold terhadap nilai MSE 85
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE 87
Tabel 64 Hasil pengujian validasi sistem 88
xiii
DAFTAR GAMBAR
Gambar 21 Representasi linear naik 11
Gambar 22 Representasi linear turun 12
Gambar 23 Representasi kurva segitiga 12
Gambar 31 Diagram blok metodologi penelitian 22
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1) 25
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2) 26
Gambar 43 Diagram alir proses perhitungan Universe of Discourse 27
Gambar 44 Diagram alir proses perhitungan mean 28
Gambar 45 Diagram alir proses perhitungan standar deviasi 29
Gambar 46 Diagram alir perhitungan nilai Min dan Max 30
Gambar 47 Diagram alir proses perhitungan jumlah cluster 31
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1) 32
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2) 33
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3) 34
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4) 35
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5) 36
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1) 37
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2) 38
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1) 39
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2) 40
Gambar 417 Diagram alir proses Pembentukan FLR (bagian 1) 41
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2) 42
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3) 43
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1) 44
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2) 45
Gambar 422 Grafik fuzzy set data A 56
Gambar 423 Rancangan antarmuka halaman input 61
Gambar 424 Rancangan antarmuka halaman tampil data 61
Gambar 425 Rancangan antarmuka halaman proses clustering 62
Gambar 426 Rancangan antarmuka proses fuzzifikasi 62
xiv
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship 63
Gambar 428 Rancangan antarmuka halaman hasil peramalan 63
Gambar 429 Rancangan antarmuka halaman perhitungan error 64
Gambar 51 Implementasi antarmuka halaman input 79
Gambar 52 Implementasi antarmuka halaman tampil data 80
Gambar 53 Implementasi antarmuka halaman proses clustering 80
Gambar 54 Implementasi antarmuka halaman proses fuzzification 81
Gambar 55 Implementasi halaman antarmuka proses FLR 81
Gambar 56 Implementasi halaman antarmuka hasil 82
Gambar 57 Implementasi halaman antarmuka perhitungan error 82
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE 84
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE 86
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE 87
Gambar 64 Grafik hasil pengujian validasi sistem 88
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan 89
xv
DAFTAR KODE PROGRAM
Kode Program 51 Implementasi proses Universe of Discourse 68
Kode Program 52 Implementasi proses mean 68
Kode Program 53 Implementasi proses standar deviasi 69
Kode Program 54 Implementasi proses Dmin dan Dmax 69
Kode Program 55 Implementasi proses jumlah cluster 70
Kode Program 56 Implementasi proses pusat cluster 72
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set 74
Kode Program 58 Implementasi proses fuzzifikasi 75
Kode Program 59 Implementasi pembentukan FLR 77
Kode Program 510 Implementasi proses defuzzifikasi 79
xvi
DAFTAR LAMPIRAN
Lampiran 1 Tabel Data Sampel 95
1
BAB 1 PENDAHULUAN
11 Latar belakang
Kabupaten Malang merupakan salah satu kabupaten di Jawa Timur yang terkenal akan potensi alam yang dimiliki (BPS Kabupaten Malang 2016) Dalam hal ini terkenal akan potensi alamnya karena kabupaten Malang memiliki tingkat produksi di sektor pertanian yang cukup tinggi dimana hampir seluruh kecamatan di kabupaten Malang memiliki lahan pertaniaaan (BPS Jatim 2015) Permasalahan yang terjadi pada sektor pertanian yaitu terjadinya gagal panen apabila memasuki musim penghujan dengan curah hujan yang tinggi yaitu diatas 200 mm per bulan serta apabila memasuki musim kemarau dengan curah hujan yang rendah yaitu dibawah 100 mm per bulan (BMKG Staklim Karangploso Malang 2015) Dalam mengatasi hal tersebut upaya yang dilakukan petani selama ini hanya melakukan tindakan seperti melakukan panen secara dini Upaya ini dianggap petani cukup efektif dalam mengurangi besarnya kerugian gagal panen akan tetapi sebaiknya yang dilakukan adalah melakukan suatu tindakan agar kerugian yang dialami petani tidak terjadi lagi (Ardiyanto 2016)
Salah satu contoh tindakan yang dapat dilakukan adalah membuat Kalender Tanam (KATAM) KATAM dapat digunakan petani sebagai alat bantu atau pedoman dalam menentukan awal musim tanam terbaik seperti yang telah dilakukan oleh Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian Dalam pembuatan KATAM Balitbang menggunakan data peramalan curah hujan dari Badan Meteorologi Klimatologi dan Geofisika (BMKG) Akan tetapi BMKG mengakui bahwa prakiraan cuacanya saat ini memang masih kurang akurat dan masih kalah dengan prakiraan cuaca di Amerika Serikat (Yunanto 2014) Pentingnya akan prakiraan cuaca terbukti adanya beberapa penelitian sebelumnya yaitu penelitian prakiraan cuaca dengan input faktor yang mempengaruhi cuaca yang berupa data time series menggunakan metode Adaptive Neuro Fuzzy Inference System (ANFIS) (Dewi 2014) dan penelitian mengenai prediksi cuaca menggunakan metode Backpropagation Neural Network yang terbukti memiliki nilai akurasi yang baik dalam prediksi cuaca (Dewi 2013)
Teknik atau metode peramalan curah hujan yang sering digunakan BMKG adalah metode Autoregressive Integrated Moving Average (ARIMA) ANFIS dan Wavelet (Kurniawan 2007) Namun dalam penerapannya gabungan dari ketiga metode tersebut masih kurang memuaskan yaitu tingkat akurasinya hanya mencapai 60 - 70 Menurut BMKG kurangnya tingkat akurasinya ini disebabkan oleh keadaan pola atmosfer di Indonesia yang selalu berubah ndash ubah dan kurang menentu
Selain metode yang digunakan oleh BMKG adapun penelitian sebelumnya yang meramalkan curah hujan yaitu penelitian menggunakan metode Fuzzy Time Series Chen dengan studi kasus curah hujan di Samarinda dalam penelitian ini menggunakan data time series curah hujan bulanan dengan kesimpulan pengunaan data yang sedikit memiliki tingkat akurasi lebih tinggi dibandingkan
2
menggunakan data yang banyak yaitu menghasilkan nilai RMSE terkecil 7368 dan MAE terkecil 539 (Fauziah et al 2016)
Selain peramalan yang hanya menggunakan data time series dari data yang akan diramalkan juga terdapat penelitian sebelumnya yang menggunakan faktor - faktor yang mempengaruhi dari data yang akan diramalkan Salah satunya yaitu penelitian dengan menggunakan metode Clusterwise Linear Regression (CLR) Penelitian ini menggunakan data bulanan pada delapan stasiun cuaca di kota Victoria Australia Peramalan curah hujan pada penelitian ini menggunakan faktor yang mempengaruhi yaitu suhu maksimum suhu minimum penguapan tekanan uap dan radiasi matahari Hasil penelitian ini terbukti dapat melakukan peramalan curah hujan dengan hasil yang cukup baik yaitu dengan nilai RMSE terkecil 197 dan MAE terkecil 129 (Bagirov et al 2017)
Berdasarkan paparan yang telah dijelaskan penulis memiliki ide untuk melakukan penelitian dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Pada metode ini dilakukan klasterisasi data untuk membangun subinterval dengan menggunakan metode fuzzy C-means (LinYang 2009) Dari proses hasil klasterisasi akan digunakan untuk membagi data semesta yang selanjutnya menghasilkan fuzzy set atau himpunan fuzzy yang menggambarkan fitur data (LinYang 2009) Keunggulan dari metode fuzzy time series dengan multi faktor yaitu dengan berdasarkan pada penelitian ndash penelitian sebelumnya yang menggunakan metode tersebut yaitu penelitian prediksi harga emas dengan beberapa faktor yang mempengaruhi menggunakan metode Multi-factors High order Fuzzy Time Series Model dari hasil penelitian ini dengan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 (Wardhani et al 2015) dan penelitian peramalan Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen menggunakan metode Fuzzy Time Series Model dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 (Lin Yang 2009) terbukti menghasilkan hasil peramalan dengan tingkat akurasi yang cukup tinggi Penggunaan metode ini juga sesuai dengan curah hujan yang dipengaruhi oleh beberapa faktor yaitu kelembaban udara kecepatan angin dan suhu (Pradipta 2013) Penelitian ini diharapkan dapat memberikan hasil peramalan curah hujan yang lebih akurat dan memiliki nilai kesalahan yang lebih sedikit
12 Rumusan masalah
Berdasarkan latar belakang yang telah dipaparkan dibuatlah beberapa rumusan masalah sebagai berikut
1 Bagaimana mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Berapa tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
3
13 Tujuan
Adapun maksud dan tujuan dari penelitian ini adalah sebagai berikut
1 Mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Mengetahui tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
14 Manfaat
Adapun manfaat dari penelitian ini adalah sebagai berikut
1 Bagi Badan Meteorologi dan Geofisika (BMKG) untuk dapat memberikan peramalan curah hujan yang lebih akurat dari sebelumnya
2 Bagi Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian untuk dapat membuat Kalender tanam (KATAM) dengan menggunakan data ramalan curah hujan yang lebih akurat
3 Bagi penduduk kabupaten Malang khususnya yang bekerja pada sektor pertanian agar dapat mengoptimalkan hasil produksi dengan menyesuaikan penanaman sesuai dengan Kalender Tanam (KATAM) yang telah dibuat Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian
15 Batasan masalah
Penelitian ini dibatasi oleh hal ndash hal sebagai berikut
1 Data curah hujan kelembaban udara kecepatan angin dan suhu udara yang digunakan pada penelitian ini merupakan data berdasarkan dasarian dan hanya mencakup wilayah kabupaten Malang dan data diperoleh dari BMKG Karangkates Kabupaten Malang dengan data time series yang digunakan pada penelitian ini yaitu dari tahun 2011 - 2016
2 Model peramalan yang diterapkan adalah semua nilai yang membentuk pola dataset training dan testing diketahui nilainya
3 Perhitungan nilai tingkat kesalahan permalan menggunakan metode Mean Square Error (MSE)
16 Sistematika pembahasan
Sistematika pembahasan penelitian ditunjukkan untuk memberikan gambaran dan uraian dari penyusunan proposal yang meliputi beberapa bab sebagai berikut
BAB 1 PENDAHULUAN
Pada bab ini berisi latar belakang rumusan masalah tujuan penelitian manfaat penelitian batasan masalah sistematika pembahasan dan rencana kerja atau jadwal penelitian
4
BAB 2 LANDASAN KEPUSTAKAAN
Pada bab ini berisi tentang kajian pustaka dan dasar teori yang menjadi dasar dalam melakukan implementasi peramalan curah hujan dengan Metode High Order Fuzzy Time Series Multi Factors
BAB 3 METODOLOGI
Pada bab ini diuraikan tentang tahapan atau langkah ndash langkah yang dilakukan dalam proses penelitian tentang peramalan curah hujan dengan metode High Order Fuzzy Time Series Multi Factors Langkah ndash langkah tersebut terdiri dari tahapan penelitian teknik pengumpulan data algoritma yang digunakan lingkungan pengujian dan pengujian algoritma yang digunakan serta pengambilan kesimpulan
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan proses algoritma perhitungan manual metode High Order Fuzzy Time Series Multi Factors perancangan antar muka dan perancangan pengujian
BAB 5 IMPLEMENTASI
Pada bab ini berisi tentang penjelasan peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors bagaimana user interface dan source code dalam pengimplementasian metode ini
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini berisi tentang penjelasan proses dan hasil pengujian dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam peramalan curah hujan serta analisis dari pengujian tersebut
BAB 7 PENUTUP
Pada bab ini berisi kesimpulan yang diperoleh dari hasil pengujian dan saran ndash saran untuk pengembangan penelitian selan
5
BAB 2 LANDASAN KEPUSTAKAAN
Bab ini berisi mengenai kajian pustaka dan dasar ndash dasar teori yang akan dibahas serta digunakan untuk menunjang topik ndash topik pembahasan Pada kajian akan dibahas perbedaan antara penelitian yang telah ada dengan penelitian yang diusulkan oleh penulis Sedangkan pada dasar teori akan dibahas mengenai teori ndash teori yang digunakan pada penelitian yang diusulkan
21 Kajian Pustaka
Pada kajian pustaka disini berisi mengenai perbandingan antara penelitian yang diusulkan oleh penulis dengan penelitian sebelumnya yang relevan Perbandingan tersebut dapat dilihat padat Tabel 21
Tabel 21 Kajian Pustaka
No Judul Objek dan Input Penelitian Metode
1 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan (Irsyad Metarice 2013)
Objek Curah hujan
Input Penelitian
Data aktual curah hujan
Metode High Order Fuzzy Time Series dan Automatic Clustering
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
2 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) (Fauziah et al 2016)
Objek Curah Hujan
Input Penelitian
Data aktual curah hujan
Metode Fuzzy Time Series Chen
Nilai evaluasi
Mean Absolute Error (MAE) Root Mean of Square Error (RMSE)
3 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emas (Wardhani et al 2015)
Objek Harga Emas
Input Penelitian
Kurs Dollar hari sebelumnya
Kurs Euro hari sebelumnya
Harga Emas London hari sebelumnya
Harga Emas hari sebelumnya
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
4 Stock Markets Forecasting Based on Fuzzy Time Series Model (Lin Yang 2009)
Objek Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
6
Input Penelitian
Historical return
Historical turnover volume
Rata ndash rata selisih pergerakan harga selama lima hari
Selisih antara kekuatan bull dan bear
Indeks komposit bursa efek harian Shanghai sebelumnya
Indeks komposit bursa efek harian Shenzhen
Nilai evalusi
Average Relative Error (ARError)
5 Peramalan Curah Hujan Menggunakan Metode High Order Fuzzy Time Series Multi Factors
Objek Curah hujan
Input Penelitian
Suhu
Kelembaban
Kecepatan angin
Curah hujan
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Square Error (MSE)
Sumber (Irsyad Metarice 2013) (Fauziah et al 2016) (Wardhani et al 2015) dan (Lin Yang 2009)
Pada penelitian yang pertama yaitu penelitian yang dilakukan oleh Muhammad Irsyad dan Sonya Metarice pada tahun 2013 dengan objek penelitian yang diramalkan adalah curah hujan Inputan yang digunakan pada penelitian ini merupakan data aktual curah hujan bulanan Metode yang digunakan penelitian ini adalah Automatic Clustering dan High Order Fuzzy Time Series Pada penelitian ini metode Automatic Clustering digunakan untuk membangun interval dan High Order Fuzzy Time Series untuk melakukan peramalan curah hujan Kesimpulan yang diperoleh dari penelitian ini yaitu metode ini dapat diterapkan untuk permalan curah hujan dan hasil evaluasi menggunakan metode Mean Absolute Percentage Error(MAPE) dari beberapa bercobaan dapat diperoleh nilai kesalahan sebesar 437 Berdasarkan dari hasil nilai kesalahan tersebut maka tingkat kesalahan data pada permalan ini termasuk rendah
Pada tahun 2016 Normalita Fauziah Sri Wahyuningsih dan Yuki Novia Nasution melakukan penelitian dengan objek penelitian curah hujan di kota Samarinda Inputan yang digunakan pada penelitian berupa data aktual bulanan curah hujan di kota Samarinda Metode yang digunakan pada penelitian ini adalah Fuzzy Time Series Chen dengan dalam pembentukkan panjang interval berbasis rata ndash rata atau average based Pada penelitian ini permalan curah hujan terbaik yaitu dengan menggunkan data sebanyak 29 data dengan menghasilkan tingkat nilai kesalahan terkecil yaitu dengan metode Root Mean of Squared Error (RMSE) sebesar 7368 dan metode Mean Absolute Error (MAE) sebesar 539 Pada
(Lanjutan) Tabel 21 Kajian Pustaka
7
penelitian ini disimpulkan bahwa data sebanyak 29 data memiliki tingkat kesalahan lebih kecil dibandingkan dengan menggunakan data dengan jumlah sampel yang lebih banyak
Pada penelitian selanjutnya adalah penelitian yang dilakukan oleh Dessy Kusuma Wardhani Dian Eka Ratnawati dan Budi Darma Setiawan pada tahun 2015 dengan objek penelitian yang diramalkan adalah harga emas harian Inputan yang digunakan pada penelitian ini data aktual harian harga emas indonesia harga emas london kurs dollar ke rupiah dan kurs euro ke rupiah Metode yang digunakan pada penelitian pada pembentukkan sub interval menggunakan metode fuzzy C-means dan untuk peramalan menggunakan metode High Order Fuzzy Time Series Model Hasil pada penelitian ini berdasarkan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 karena nilai error lebih kecil dari 10 menunjukkan bahwa metode ini sangat baik digunakan untuk peramalan harga emas
Pada tahun 2009 Yupei Lin dan Yiwei Yang melakukan penelitian dengan objek yang diramalkan adalah indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen Data input penelitian ini meliputi historical return historical turnover volume dan rata ndash rata selisih pergerakan harga selama lima hari serta selisih antara kekuatan bull dan bear Dalam penelitian ini pembentukan subinterval yang berfungsi dalam pendefinisian himpunan fuzzy dilakukan dengan menggunakan klasterisasi fuzzy C-means Hasil dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 Dalam hal ini membuktikan bahwa penelitian dapat menghasilkan peramalan yang cukup baik karena memiliki nilai ARError kurang dari 5
Pada penelitian ini membahas tentang peramalan curah hujan dasarian menggunakan metode High Order Fuzzy Time Series Multi Factors Terdapat empat inputan yang juga dijadikan sebagai variabel dalam penelitian ini yaitu kelembaban udara kecepatan angin suhu udara dan curah hujan Pembentukan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan klasterisasi fuzzy C-means Penelitian ini menggunakan high order fuzzy logic relationship yaitu membentuk fuzzy logic relationship berdasarkan data dalam kurun waktu beberapa dasarian sebelum dasarian yang akan diramal Pada penelitian ini dalam melakukan perhitungan nilai error untuk mendapatkan hasil evaluasi menggunakan metode Mean Square Error (MSE)
22 Dasar Teori
Pada dasar teori disini dijelaskan tentang metode ndash metode yang digunakan pada penelitian ini yang meliputi peramalan curah hujan data time series logika fuzzy fuzzy C-means metode peramalan dengan Fuzzy Time Series High Order Fuzzy Time Series Multi Factors dan metode perhitungan keakuratan metode peramalan
8
221 Peramalan
Terdapat beberapa definisi tentang peramalan menurut Kamus Besar Bahasa Indonesia (KBBI) yaitu
a Peramalan merupakan prediksi rencana atau estimasi kejadian masa depan yang tidak pasti (KBBI)
b Peramalan adalah sebagai penggunaan teknik ndash teknik statistik dalam bentuk gambaran masa depan berdasarkan pengolahan angka ndash angka yang terjadi pada masa lalu (Buffa et al1996)
c Peramalan adalah bagian internal dari pengambilan keputusan manajemen (Makridakis et al1999)
Berdasarkan beberapa definisi diatas dapat disimpulkan bahwa peramalan merupakan tindakan apa yang akan terjadi di masa mendatang peramalan diperlukan untuk mengambil sebuah keputusan Dalam pengambilan keputusan harus diambil dari pertimbangan ndash pertimbangan yang ada Oleh karena itu peramalan sangat penting hubungannya dengan pengambilan keputusan sehingga kejadian di masa yang akan datang dapat dipersiapkan tindakan apa yang perlu dilakukan
222 Curah hujan
Curah hujan merupakan salah satu faktor penting yang mempengaruhi perubahan iklim suatu wilayah (Mirawati et al 2013) Salah satu contoh kasus nyata yaitu terjadinya perubahan iklim secara tiba ndash tiba atau bisa disebut dengan cuaca ekstrim Curah hujan dapat dijelaskan dengan air hujan yang terkumpul pada suatu wadah datar dimana air hujan tersebut tidak meresap tidak menguap dan tidak mengalir sehingga dapat diukur ketinggiannya Sebagai contoh curah hujan 1 (satu) milimeter dapat dijelaskan dalam suatu wadah datar dengan luas satu meter persegi tertampung air dengan ketinggian sekitar satu milimeter atau tertampung air sebanyak satu liter Metode dalam mendapatkan data curah hujan adalah dengan menggunakan penakar hujan yang kemudian diukur dengan satuan milimeter (mm) (User2015) Intensitas curah hujan dapat dikategorikan ringan jika dibawah 20mm dalam 24 jam dikategorikan lebat jika di atas 50mm dan dikategorikan sedang jika selang 20mm hingga 50mm (User 2015)
Curah hujan mempengaruhi beberapa sektor diantarannya sektor komunikasi dimana penggunaan frekuensi diatas 10 GHz dapat terkena redaman hujan (Mauludiyanto et al 2009) Akan tetapi curah hujan paling berpengaruh terhadap sektor pertanian Hal ini terbukti bahwa sebagian besar terjadinya penurunan produktifitas dan gagal panen di sektor pertanian adalah terjadinya curah hujan yang tinggi
Tinggi dan rendahnya curah hujan dipengaruhi oleh beberapa faktor yaitu kelembaban udara temperatur dan kecepatan angin Pada tahun 2013 Nur Suri Pradipta Pasukat Sembiring dan Pengarapen Bangun melakukan penelitian mengenai pengaruh curah hujan di kota Medan (Pradipta et al 2013)
9
Berdasarkan penelitian tersebut faktor yang mempengaruhi dan digunakan dalam peramalan curah hujan yaitu
1 Kelembaban udara
Kelembaban udara adalah banyaknya kandungan uap air di atmosfer Udara atmosfer adalah campuran dari udara kering dan uap air selain itu kelembaban udara merupakan komponen cuaca yang mempunyai peranan sangat penting bagi stabilitas kehidupan organisme di bumi maupun unsur-unsur cuaca yang lain (Forest 2015) Kelembaban udara berpengaruh terhadap curah hujan Hal ini didukung penelitian oleh (Sipayung et al 2013) yang menyatakan Kelembaban udara berpengaruh positif terhadap curah hujan
2 Kecepatan angin
Kecepatan angin merupakan kecepatan udara yang bergerak secara horizontal pada ketinggian 2 meter diatas tanah Dalam hal ini faktor yang menentukan kecepatan angin adalah perbedaan tekanan udara antara asal dan tujuan angin Kecepatan angin berpengaruh positif terhadap curah hujan artinya jika kecepatan angin tinggi maka curah hujan akan tinggi (Pradipta et al2013)
3 Suhu udara
Suhu udara merupakan ukuran energi kinetik rata ndash rata dari pergerakan molekul ndash molekul Suhu udara berpengaruh negatif terhadap curah hujan artinya jika suhu udara tinggi maka curah hujan akan berkurang (Pradipta et al2013)
223 Data time series
Data time series adalah data statistik yang telah dihimpun dari masa lampau hingga sekarang dan dapat digunakan sebagai acuan dalam melakukan peramalan terhadap data yang akan datang (Wiyanti amp Pulungan 2012) Data time series juga dapat didefinisikan sebagai sebuah kegiatan mengamati data statistik dimana terdapat korelasi (dependensi) antar datanya sehingga data yang sekarang sedang diamati memiliki ketergantungan dengan satu atau lebih data pengamatan sebelumnya (Mirawati et al 2013)
Terdapat dua teknik prediksi yang menggunakan basis data time series yaitu teknik model matematika statistik dan berdasarkan kecerdasan buatan (Wiyanti amp Pulungan 2012) Analisa time series sendiri memiliki beberapa peruntukan salah satunya digunakan dalam melakukan peramalan untuk masa yang akan datang Dalam penggunaan data time series merupakan salah satu proses peramalan kuantitatif dimana berdasar data kuantitatif masa lampau yang direpresentasikan dalam bentuk angka atau nilai (Mirawati et al 2013)
10
224 Logika Fuzzy
Pada tahun 1965 Prof Lotfi A Zadeh memperkenalkan teori logika fuzzy Logika fuzzy merupakan suatu komponen soft computing dan juga suatu cara yang tepat untuk memetakan suatu ruang input ke dalam ruang output Antara ruang input dan ruang output terdapat black box yang berfungsi memetakan input ke ruang output yang sesuai Dasar logika fuzzy adalah teori fuzzy set Pada teori fuzzy set peranan derajat keanggotaan sebagai penentu keberadaan elemen dalam suatu himpunan sangatlah penting Oleh karena itu derajat keanggotaan menjadi ciri utama dalam penalaran dengan logika fuzzy Logika fuzzy bekerja dengan menggunakan derajat keanggotan dari sebuah nilai yang kemudian digunakan untuk menentukan hasil yang ingin dihasilkan berdasarkan atas kriteria yang telah ditentukan (Kusumadewi 2003)
Berikut adalah beberapa alasan digunakannya logika fuzzy (Kusumadewi 2002)
1 Logika fuzzy sangat fleksibel
2 Konsep logika fuzzy mudah dimengerti dan dipahami
3 Logika fuzzy memiliki toleransi terhadap data ndash data yang homogen dan data ndash data yang kurang tepat
4 Logika fuzzy didasari pada bahasa alami atau bahasa sehari - hari sehingga mudah dimengerti
5 Logika fuzzy dapat bekerjasama dengan teknik ndash teknik kendali secara konvensional
6 Logika fuzzy mampu membangun dan mengaplikasikan pengalaman ndash pengalaman para pakar secara langsung tanpa harus melalui tahap atau proses pelatihan
A Himpunan Fuzzy
Himpunan fuzzy atau fuzzy set merupakan perluasan himpunan tegas atau himpunan crisp jadi fungsi karakteristik mencakup bilangan real pada interval [01] Dalam definisi lain himpunan fuzzy adalah suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dalam suatu variabel fuzzy Keanggotaan fuzzy berbeda dengan probabilitas jika keanggotaan fuzzy pada setiap fungsi karakteristik memberikan suatu pendapat atau keputusan sedangkan probabilitas menunjukan seberapa besar nilai kebenaran dalam fungsi karakteristik tersebut Contohnya yaitu nilai keanggotaan suatu himpunan fuzzy umur muda 09 berarti nilai dalam himpunan tersebut memiliki kemungkinan 90 anggotanya berumur muda dan 10 diharapkan tidak muda Dalam himpunan fuzzy suatu bilangan bisa memiliki dua keanggotaan sekaligus Himpunan fuzzy memiliki dua attribut (Kusumadewi2003)
11
1 Linguistik merupakan penamaan suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami misalnya muda parobaya tua
2 Numeris merupakan suatu nilai (angka) yang menunjukkan ukuran dari suatu
variabel seperti 402550 dan sebagainya
B Fungsi Keanggotaan
Fungsi keanggotaan adalah suatu kurva yang menunjukkan pemetaan titik ndash titik input data ke dalam derajat keanggotaannya yang memiliki subinterval antara 0 sampai 1 (Kusumadewi Purnomo 2004) Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi Ada beberapa fungsi keanggotaa yang dapat digunakan
1 Fungsi representasi linear
Pada fungsi representasi linear pemetaan input ke derajat keanggotaannya digambarkan sebagai suatu garis lurus Bentuk ini paling sederhana dan menjadi pilihan yang baik untuk mendekati suatu konsep yang kurang jelas Keadaan linear himpunan fuzzy terdiri dari dua keadaan yaitu keadaan linear naik dan keadaan linear turun Pada keadaan linear naik kenaikan himpunan dimulai pada nilai domain yang memiliki nilai derajat keanggotaan nol bergerak ke kanan menuju ke nilai domain yang memiliki derajat keanggotaan yang lebih tinggi seperti yang ditunjukkan Gambar 21 Persamaan fungsi keanggotaan pada representasi linear naik ditunjukkan oleh Persamaan 21
Fungsi Keanggotaan
120583(119909) = 0
(119909 minus 119886)(119887 minus 119886)1
119909 le 119886 119886 le 119909 le 119887119909 ge 119887
(21)
b a 0
1
Gambar 21 Representasi linear naik
Sumber Kusumadewi (2002)
120583(119909)
12
Pada keadaan linear turun berbanding terbalik dengan keadaan linear naik Garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi pada sisi kiri kemudian bergerak menurun ke nilai domain yang memiliki derajat keanggotaan lebih rendah yang ditunjukkan Gambar 22 Persamaan fungsi keanggotaan pada representasi linear turun ditunjukkan oleh Persamaan 22
Fungsi Keanggotaan
120583(119909) = (119887 minus 119909)(119887 minus 119886)0
119886 le 119909 le 119887
119909 ge 119887 (22)
2 Fungsi representasi kurva segitiga
Representasi kurva segitiga pada dasarnya merupakan gabungan antara 2 garis linear yaitu linear naik dan linear turun Fungsi representasi kurva segitiga ditandai oleh adanya tiga parameter abc yang akan menentukan koordinat x dari tiga sudut seperti ditunjukkan pada Gambar 23 Persamaan fungsi keanggotaan pada representasi kurva segitiga ditunjukkan oleh Persamaan 23
b a 0
1
Sumber Kusumadewi (2002)
Gambar 22 Representasi linear turun
120583(119909)
c a 0
1
b
Sumber Kusumadewi (2002)
Gambar 23 Representasi kurva segitiga
120583(119909)
13
Fungsi Keanggotaan
120583(119909) =
0 (119909 minus 119886)(119887 minus 119886) (119887 minus 119909)(119888 minus 119887)
119909 le 119886 119886119905119886119906 119909 ge 119888
119886 le 119909 le 119887 119887 le 119909 le 119888
(23)
225 Metode Fuzzy C-means
Fuzzy C-means (FCM) pertama kali diperkenalkan oleh Dunn dan dikembangkan oleh Bezdek yang banyak digunakan dalam pengenalan pola Metode ini merupakan pengembangan dari metode non-hierarkhi K-Means Cluster selanjutnya dilakukan iterasi sampai mendapatkan keanggotaan kelompok tersebut (Klawon 2001)
FCM merupakan salah satu algoritma fuzzy clustering dan juga teknik klasterisasi dimana tiap data ditentukan oleh derajat keanggotaanya Tujuan penggunaan algoritma FCM yaitu untuk menemukan pusat cluster atau centroid dengan meminimumkan fungsi objektif (Bazdek 1984) Ouput dari FCM bukan merupakan fuzzy inference system melainkan deretan pusat cluster dan beberapa derajat keanggotaan untuk setiap titik data Hasil output ini dapat digunakan untuk membangun suatu fuzzy inference system Berikut adalah langkah ndash langkah dari FCM (Kusumadewi 2004)
1 Langkah pertama menentukan jumlah cluster (c ge 2) pembobot (infin gt 119908 gt1) (Bazdek 1984) maksimum iterasi (maxIter) error minimum yang diharapkan yaitu nilai positif yang sangat kecil (120585) fungsi objektif awal (P0 = 0) iterasi awal dideklarasikan 1
2 Langkah kedua memasukkan data X yang akan diklasterisasi berupa matriks berukuran m x n (m = jumlah sampel data n = attribut setiap data) Contoh Xij = data sampel ke-i (i = 1234m) attribu ke-j (j=1234n)
3 Langkah ketiga yaitu dengan membuat bilangan random microik i = 1234n dan k = 123c (n = jumlah sampel pada data c = jumlah cluster yang akan dibentuk) sebagai elemen ndash elemen matriks partisi awal Untuk bilangan penyusun matriks partisi awal dihitung dihitung jumlahnya setiap kolom yang ditunjukkan pada pada Persamaan 24 (Kusumadewi 2004)
119876119896 = sum 120583119894119896119888119896=1 (24)
Dimana
119876119896 = jumlah bilangan pada kolom k
120583119894119896 = bilangan random pada baris i kolom k
119888 = jumlah kolom
14
Selanjutnya untuk menghitung derajat keanggotaan awal dengan melakukan normalisasi pada matiks partisi pada normalisasi dilakukan menggunakan Persamaan 25 (Kusumadewi 2004)
120583119894119896 = 120583119894119896119876119896 (25)
4 Langkah keempat melakukan perhitungan cluster ke-k Vkj dengan k = 1234c dan j = 1234m Perhitungan pusat cluster ditunjukkan pada Persamaan 26 (Kusumadewi 2004)
119881119896119895 = sum ((120583119894119896)119908 times 119883119894119895)119899
119894=1
sum (120583119894119896)119908119899119894=1
(26)
Dimana
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
120583119894119896 = derajat keanggotaan pada data ke-i cluster ke-k
119883119894119895 = data sampel pada data ke-i attribut ke-j
119908 = pembobot
5 Langkah kelima melakukan perhitungan fungsi objektif pada iterasi ke-t P1 Perhitungan fungsi objektif ditunjukkan pada Persamaan 27 (Kusumadewi 2004)
119875119905 = sum sum ([sum (119883119894119895 minus 119881119896119895)119898119895=1
2](120583119894119896)119908)119888
119896=1119899119894=1 (27)
Dimana
119875119905 = fungsi objektif
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
6 Langkah keenam melakukan perhitungan perbaikan matriks partisi yang telah ditunjukkan Persamaan 28 (Kusumadewi 2004)
120583119894119896 = [sum (119883119894119895minus119881119896119895)119898
119895=12
]
minus1119908minus1
sum [sum (119883119894119895minus119881119896119895)119898119895=1
2]
minus1119908minus1119888
119896minus1
(28)
Dimana
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
119908 = pembobot
7 Langkah ketujuh yaitu melakukan pemerikasaan kondisi berhenti dengan kondisi sebagai berikut
a Jika (|119875119905 minus 119875119905minus1| lt 120585) atau ( t gt MaxIter) maka berhenti
b Jika tidak memenuhi t = t +1 ulangi mulai dari langkah ke-4
15
226 Metode Peramalan dengan Fuzzy Time Series
Pada tahun 1996 Chen memperkenalkan metode peramalan dengan menggunakan metode Fuzzy Time Series Metode Fuzzy Time Series memiliki perbedaan dengan metode peramalan time series biasa atau konvensional yaitu terdapat pada data yang digunakan untuk peramalan Fuzzy Time Series data yang digunakan adalah berupa fuzzy set atau himpunan fuzzy dari bilangan ndash bilangan real atas himpunan semesta yang ditentukan Jadi Fuzzy Time Series merupakan metode dengan menggunakan data berupa fuzzy set yang berasal dari bilangan real atas Universe of Discorse pada data aktual Universe of Discourse adalah himpunan semesta dari data penelitian
Berikut adalah langkah ndash langkah metode Fuzzy Time Series yang telah diperkenalkan oleh Chen terdapat enam langkah yaitu
1 Langkah pertama yaitu membagi Universe of Discourse dari bilangan aktual ke dalam subinterval dengan jumlah interval yang sama Perhitungan Universe of Discourse ditunjukkan pada Persamaan 29 (Chen 1996)
119880 = [119863119898119894119899 minus 1198631 119863119898119886119909 + 1198632] (29)
Dimana
119880 = Universe of Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
1198631 dan 1198632 = bilangan positif yang ditentukan oleh user untuk menentukan Universe of Discourse dari himpunan data sampel
2 Langkah kedua adalah mendefinisikan fuzzy set dari Universe of Discourse (U) menjadikan A1 A2 A3 An ke dalam fuzzy set dengan nilai linguistik sesuai dengan keadaan U Selanjutnya mendefinisikan fuzzy set tersebut ditunjukkan pada Persamaan 210 (Chen 1996)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (210)
1198602 =11989121
1199061+
11989122
1199062+
11989123
1199063+ ⋯ +
1198912119896
119906119896
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
Dimana 119891119894119895120598 [01] 1 le 119894 le 119896 dan 1 le 119895 le 119898 Variabel 119891119894119895 menunjukkan
derajat keanggotaan dari subinterval 119906119895 dari fuzzy set 1198601 Pada konsep ini
Chen menggunakan nilai linguistik 1198601 = (not many) 1198602 = (not too many) 1198603= (many) 1198604 = (many many) 1198605 = (very many) 1198606 = (too many) 1198607= (too many many) Kemudian nilai linguistik tersebut dimasukkan ke tiap fuzzy set Dari U tersebut dapat dibangun fuzzy set sebagai berikut
16
1198601 = 1
1199061+
05
1199062+
0
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198602 = 05
1199061+
1
1199062+
05
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198603 = 0
1199061+
05
1199062+
1
1199063+
05
1199064+
0
1199065+
0
1199066+
0
1199067
1198604 = 0
1199061+
0
1199062+
05
1199063+
1
1199064+
05
1199065+
0
1199066+
0
1199067
1198605 = 0
1199061+
0
1199062+
0
1199063+
05
1199064+
1
1199065+
05
1199066+
0
1199067
1198606 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
05
1199065+
1
1199066+
05
1199067
1198607 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
0
1199065+
05
1199066+
1
1199067
3 Langkah ketiga yaitu melakukan fuzzifikasi data historis proses fuzzifikasi merupakan proses merubah data aktual yang merupakan bilangan crisp ke dalam bentuk bilangan fuzzy Bilangan fuzzy yang dimaksudkan adalah dalam bentuk derajat keanggotaan Dari beberapa derajat keanggotaan yang terbentuk kemudian dipilih satu fuzzy set yang memiliki derajat keanggotaan teringgi Fuzzifikasi dinotasikan sebagai berikut jika F(t-1) berada pada fuzzy set Ak maka F(t-1) difuzzifikasikan sebagai Ak
4 Langkah keempat adalah mengidentifikasi Fuzzy Logic Relationship (FLR) FLR diidentifikasikan sebagai Ai dan F(t) difuzzifikasikan sebagai Ai rarr Aj Ai sebagai sisi kiri relationship disebut sebagai current state dan Aj sebagai sisi kanan relationship disebut next state Jika terjadi perulangan relationship maka tetap dihitung satu kali
5 Langkah kelima yaitu mengelompokkan menjadi Fuzzy Logical Relationship Group (FLRG) FLRG dibangun berdasarkan sisi kiri (current state) yang sama
6 Langkah terakhir yaitu langkah keenam adalah melakukan defuzzifikasi nilai keluaran peramalan Defuzzifikasi adalah mengubah nilai keluaran fuzzy menjadi bilangan crisp kembali sehingga diperoleh hasil akhir peramalan Defuzzifikasi didasarkan pada tiga (3) rule aturan yaitu (Chen 1996)
I Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai hanya memiliki satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj dimana nilai maksimum fungsi keanggotaanya berada pada 119906119895 maka nilai peramalan untuk n+1 adalah
nilai tengah dari 119906119895 atau didefinisikan dengan 119898119895
II Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai memiliki lebih dari satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj1 Aj2 Ajp Dimana nilai tengah untuk masing ndash masing Aj1 Aj2 Aj3 Ajp adalah mj1 mj2 mj3 mjp
maka nilai peramalan untuk n+1 adalah (mj1 mj2 mj3 mjp) p
III Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai tidak memiliki FLR pada FLRG dimana nilai maksimum fungsi keanggotaannya berada pada 119906119895
17
maka nilai peramalan untuk n+1 adalah nilai tengah dari 119906119895 atau
didefinisikan dengan 119898119895
227 Metode High Order Fuzzy Time Series Multi Factors
Metode High Order Fuzzy Time Series Multi Factors adalah metode Fuzzy Time Series (FTS) yang melibatkan beberapa faktor yang mempengaruhi peramalan dengan berdasarkan beberapa periode waktu sebelum periode yang akan diramalkan dalam proses pembentukkan Fuzzy Logical Relationship (FLR) Hasil peramalan dengan banyak faktor yang mempengaruhi dinilai lebih baik dari pada dengan hanya satu faktor yang mempengaruhi (LinYang 2009) Pada metode ini pembentukkan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan teknik klasterisasi fuzzy C-means Berikut adalah langkah ndash langkah Metode High Order Fuzzy Time Series Multi Factors (LinYang 2009)
1 Langkah pertama adalah melakukan perhitungan Universe of Discourse (U) Sebelum menghitung nilai U terlebih dulu menghitung nilai mean (rata ndash rata) sampel lalu menghitung nilai standar deviasi (120590) Mean merupakan perhitungan jumlah dari semua nilai dalam kumpulan data kemudian dibagi dengan jumlah total data untuk menghitung nilai mean ditunjukkan pada Persamaan 211 (Weisstein 2015) Standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel untuk menghitung nilai standar deviasi (120590) ditunjukkan pada Persamaan 212 (Weisstein 2015) Perhitungan U ditunjukkan pada Persamaan 213 (LinYang 2009)
119909 =sum 119909119894
119899119894=1
119899 (211)
Dimana
= mean (rata ndash rata)
119909119894 = nilai data ke-i
119899 = banyak data
120590 = radicsum (119909119894minus ) 2119899
119894=1
119899minus1 (212)
Dimana
120590 = Standar deviasi data
119880 = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590] (213)
Dimana
119880 = Universal 0f Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
18
2 Langkah kedua yaitu menentukan jumlah cluster data Proses klasterisasi bertujuan untuk membagi U kedalam beberapa subinterval Hasil perhitungan banyaknya cluster apabila bernilai pecahan maka harus dibulatkan menjadi bilangan bulat Perhitungan banyaknya cluster ditunjukkan pada Persamaan 214 (LinYang 2009)
119896 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905)minus119883(119905minus1)|119899
119905=1
119899minus1| (214)
Dimana
119896 = banyaknya jumlah cluster
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
119899 = banyaknya data sampel
119883(119905) = data pada waktu ke-t
3 Langkah ketiga yaitu melakukan pembentukan pusat cluster Pada metode ini proses klasterisasi data menggunakan fuzzy C-means (FCM) untuk mendapatkan pusat cluster sebanyak k Tahapannya U dibagi kedalam k subinterval (119863119898119894119899 1198891) (1198891 1198892) (1198892 1198893) hellip (119889119896minus1 119863119898119886119909) dimana di (i = 123k-1) merupakan titik tengah antara dua pusat cluster k subinterval didefinisikan sebagai 1199061 1199062 1199063 hellip 119906119896 Sehingga dalam hal ini subinterval
dengan panjang berbeda dapat menggambarkan struktur data kompleks dengan baik dan dapat meningkatkan peramalan dibandingkan menggunakan subinterval dengan panjang yang sama (LinYang 2009)
4 Langkah keempat yaitu melakukan pembentukan himpunan fuzzy atau fuzzy set Pada langkah ini fuzzy set direpresentasikan dengan kurva bahu Pembentukkan fuzy set ditunjukkan pada Persamaan 215 (LinYang 2009)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (215)
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
5 Langkah kelima yaitu proses fuzzifikasi Proses fuzzifikasi bertujuan untuk mengubah data sampel yang masih berupa bilangan crisp sehingga menjadi bilangan fuzzy Masing ndash masing data dihitung derajat keanggotaannya terhadap fuzzy set yang sudah terbentuk selajutnya derajat kanggotaan dihitung berdasarkan kurva bahu dan derajat keanggotaan tertinggi menunjukkan hasil fuzzifikasi data tersebut Contohnya A(t) B(t) C(t) dan D(t) dimana t= 123n merupakan time series dari faktor yang mempengaruhi serta n merupakan banyaknya data Berdasarkan pembagian subinterval masing ndash masing time series ini difuzzifikasikan Misalkan hasil dari Persamaan 215 yaitu menghitung banyak cluster dari k1 k2 k3 k4 Jadi time series difuzzifikasikan menjadi empat fuzzy time series yaitu
19
A(ti) dimana i = 1234k1
B(tj) dimana j = 1234k2
C(tp) dimana p = 1234k3
D(tq) dimana q = 1234k4 t = 123n
6 Langkah keenam yaitu melakukan pembentukkan Fuzzy Logical relationship (FLR) Data sampel sebanyak n periode dipilih sebagai data training untuk membentuk fuzzy time series model Misalkan t merupakan periode waktu yang akan diramal dengan menggunakan order ndash 3 maka tiga periode sebelum periode t adalah t-3 t-2 dan t-1 dimana t = 456n Maka FLR yang dihasilkan ditunjukkan pada Persamaan 216 dan berdasarkan persamaan tersebut maka akan membentuk sebuah kumpulan FLR dari data training (LinYang 2009)
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023)) (216)
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
Tabel 22 Fuzzy Logic Relationship
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023))
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
(119860(119905minus21198943) 119861(119905minus21198953) 119862(119905minus21199013) 119863(119905minus21199023))
(119860(119905minus11198942) 119861(119905minus11198952) 119862(119905minus11199012) 119863(119905minus21199022))
(119860(1199051198941) 119861(1199051198951) 119862(1199051199011) 119863(1199051199021)) rarr 119860(119905+11198944)
(119860(119905+119899minus71198943) 119861(119905+119899minus71198953) 119862(119905+119899minus71199013) 119863(119905+119899minus71199023))
(119860(119905+119899minus61198942) 119861(119905+119899minus61198952) 119862(119905+119899minus61199012) 119863(119905+119899minus61199022))
(119860(119905+119899minus51198941) 119861(119905+119899minus51198951) 119862(119905+119899minus51199011) 119863(119905+119899minus51199021)) rarr 119860(119905+119899minus41198944)
Sumber (LinYang 2009)
7 Langkah terakhir adalah proses Defuzzifikasi Berdasarkan langkah sebelumnya maka dapat diambil hasil fuzzy ke- H yaitu yang digunakan sebagai data testing atau data uji seperti yang ditunjukkan pada Persamaan 217 (LinYang 2009)
(119860(119867minus31198943) 119861(119867minus31198953) 119862(119867minus31199013) 119863(119867minus31199023)) (217)
(119860(119867minus21198942) 119861(119867minus21198952) 119862(119867minus21199012) 119863(119867minus21199022))
(119860(119867minus11198941) 119861(119867minus11198951) 119862(119867minus11199011) 119863(119867minus11199021)) rarr 119860(1198671198944)
20
Faktor ndash faktor di ruas kiri pada Persaman 217 dibandingkan satu per satu dengan FLR data training yang sudah dicatat sebelumnya pada Tabel 22 membandingkannya yaitu dengan cara menghitung nilai absolut dari selisih antara pangkat bawah kedua faktor pada posisi yang sama di FLR Terdapat 12 fuzzy set di ruas kiri pada masing ndash masing FLR sehingga dari hasil perbandingan diperoleh 12 nilai absolut yang kemudian dijumlahkan untuk mendapat total selisihnya Jadi jika total selisih lebih kecil dari threshold yang ditentukan maka FLR tersebut dinyatakan cocok (LinYang 2009)
Selanjutnya jika FLR menemukan N pasangan yang cocok pada Tabel 22 maka N faktor di ruas kanan dari N FLR ini mendasari peramalan fuzzy set A() yang mana jumlah dari setiap fuzzy set pada umumnya berbeda Untuk peramalan dengan fuzzy set ditunjukkan pada Tabel 23 (LinYang 2009)
Tabel 23 Peramalan fuzzy set
Ruas Kanan A(1) A(2) A(3) A(k1)
Pusat cluster c1 c2 c3 ck1
Frekuensi f1 f2 f3 fk1
Sumber (Lin Yang 2009)
Berdasarkan Tabel 23 dengan menggunakan metode centroid untuk melakukan proses defuzzifikasi Proses defuzzifikasi dapat ditunjukkan pada Persamaan 218 (LinYang 2009)
119903119867 =sum 119888119894times 119891119894
1198961119894=1
sum 119891119894119896119894119894=1
(218)
Dimana
119903119867 = hasil (result) peramalan data ke-H
119888119894 = pusat cluster i dimana A(i) adalah ruas kanan dari FLR hasil proses pencocokan
119891119894 = frekuensi banyaknya muncul A(i) pada saat proses pencocokan
228 Perhitungan keakuratan metode peramalan
Dalam perencanaan peramalan tentu menginginkan hasil ramalan yang tepat atau paling tidak hampir mendekati sehingga rencana yang dibuat menjadi rencana yang realistis Keakuratan atau ketepatan merupakan yang menjadi kriteria performance suatu metode peramalan Keakuratan tersebut dapat dinyatakan sebagai kesalahan peramalan (forecast error) Semaikin kecil nilai kesalahan peramalan maka semaikin tinggi keakuratan metode peramalan yang digunakan dan sebaliknya semakin tinggi nilai kesalahan maka semakin rendah keakuratan metode peramalan yang digunakan
Mean Square Error (MSE) adalah salah satu metode yang digunakan untuk menghitung nilai akurasi atau keakuratan dari metode yang digunakan sebagai peramalan atau prediksi MSE merupakan perhitungan pangkat dua dari selisih
21
antara nilai data hasil peramalan dengan nilai data aktual dan kemudian dibagi dengan banyaknya data yang telah diramalkan Pada penentuan nilai evaluasi memilih menggunakan metode MSE karena metode ini dapat menunjukan hasil skala kemiripan antara hasil data peramalan dengan data aktual Berikut merupakan metode Mean Square Error (MSE) yang ditunjukan pada Persamaan 219 (Wang Chen 2009)
119872119878119864 = sum (119865119905minus119860119905)2119899
119894=1
119899 (219)
Dimana 119872119878119864 = nilai Mean Square Error Rate 119860119905 = nilai aktual pada data ke-t 119865119905 = nilai hasil peramalan untuk data ke-t n = banyaknya data
22
BAB 3 METODOLOGI
Pada bab ini akan dibahas mengenai metode yang digunakan beserta tahap ndash tahap pengerjaan penelitian skripsi dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Penilitian ini digolongkan sebagai penelitian implementatif dengan pendekatan perancangan (design)
Metode penelitian ini meliputi studi literatur pengumpulan data perancangan implementasi pengujian dan analisis pengambilan kesimpulan Berikut adalah alur dari metode penelitian dapat ditunjukkan pada Gambar 31
31 Studi Literatur
Pada tahap studi literatur penelitian ini bertujuan untuk mempelajari literatur dan konsep dari beberapa informasi dan pustaka yang berkaitan dengan penelitian ini Literatur dan sumber ilmu dari penelitian ini diperoleh dari internet buku dan bimbingan oleh dosen pembimbing Adapun literatur yang dipelajari yaitu tentang curah hujan serta faktor ndash faktor yang mempengaruhinya dan metode High Order Fuzzy Time Series Multi Factors
Studi Literatur
Pengumpulan Data
Perancangan
Implementasi
Pengujian dan Analisis
Kesimpulan dan Saran
Gambar 31 Diagram blok metodologi penelitian
23
32 Pengumpulan Data
Pada tahap pengumpulan penelitian ini sumber data yang diperoleh yaitu dari Badan Meteorologi Klimatologi dan Geofisikia (BMKG) Stasiun Klimatologi Kelas III Karangkates Kabupaten Malang Data yang diperoleh untuk peramalan curah hujan yaitu data aktual time series (2011 - 2016) Data yang digunakan dalam bentuk dasarian yaitu dalam rentang waktu sepuluh hari sehingga dalam satu bulan dibagi menjadi tiga dasarian
Dasarian pertama yaitu pada tanggal 1 sampai dengan 10
Dasarian kedua yaitu pada tanggal 11 sampai dengan 20
Dasarian ketiga yaitu pada tanggal 21 sampai dengan akhir bulan
Pada penelitian ini data curah hujan dalam satuan milimeter (mm) kelembaban dalam persen () suhu udara dalam satuan celsius (˚C) kecepatan angin dalam satuan kilometer per jam (kmjam)
33 Perancangan
Pada tahap perancangan penelitian ini bertujuan untuk mengetahui rancangan ndash rancangan yang merupakan langkah yang dilakukan saat melakukan tahap implementasi Pada tahap ini terdapat beberapa perancangan yaitu perancangan proses yang berisi tahapan ndash tahapan proses metode High Order Fuzzy Time Series Multi Factors perhitungan manual yang merupakan manualisasi dari metode yang digunakan pada penelitian ini perancangan antar muka atau user interface yang berisi gambaran kasar dari tampilan antar muka prototype aplikasi yang nantinya diterapkan pada tahap implementasi selanjutnya adalah perancangan pengujian yang berisi rancangan ndash rancangan pengujian metode yang digunakan untuk mengetahui berapa tingkat kesalahan atau error yang dimiliki metode pada penelitian ini dalam melakukan peramalan curah hujan
34 Implementasi
Pada tahap implementasi peneltian ini dilakukan sesuai dengan perancangan yang telah dibuat pada tahapan perancangan sebelumnya Implementasi dari metode High Order Fuzzy Time Series Multi Factors dilakukan menggunakan bahasa pemrograman java serta Integrated Development Environment (IDE) yang digunakan adalah Netbeans Sehingga nantinya hasil dari tahap ini berupa prototype aplikasi dari implementasi metode High Order Fuzzy Time Series Multi Factors untuk peramalan curah hujan
35 Pengujian dan Analisis
Pada tahapan penelitian pengujian ini diperlukan perangkat lunak dan perangkat keras agar pengujian dari hasil implementasi dapat berjalan dengan baik maka pengujian perangkat lunak dijalankan pada laptop ataupun PC (Personal Computer) dengan spesifikasi sebagai berikut
24
1 Prosesor Intel Core i3
2 Memory RAM 8 Gigabytes
3 Sistem Operasi menggunakan Windows 7 64bit
4 Hardisk dengan kapasitas 500 GB
5 Netbeans 81 JDK 7
Pengujian hasil peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors yaitu menggunakan metode Mean Square Error (MSE) Dimana rumus pengujian sesuai dengan Persamaan 219 Dalam pengujian menggunakan metode ini semakin kecil nilai MSE maka semakin tinggi tingkat akurasi hasil peramalan tersebut Pada penelitian ini untuk keperluan pengujian dari proses implementasi dilakukan empat pengujian yaitu pengujian terhadap perbedaan nilai order pengujian terhadap perbedaan nilai threshold pengujian terhadap data training untuk mengetahui pengaruhnya terhadap nilai MSE dan pengujian validasi sistem untuk mengetahui bahwa hasil implementasi metode High Order Fuzzy Time Series Multi Factors dapat melakukan peramalan
36 Kesimpulan dan Saran
Pada pengambilan kesimpulan akan dilakukan apabila semua tahapan ndash tahapan penelitian sudah dilakukan yaitu yang meliputi perancangan implementasi dan pengujian dan analisis telah selesai dilakukan Kesimpulan merupakan tahapan dimana semua rumusan masalah yang sudah ditetapkan sebelumnya dapat terjawab semua Selanjutnya pada saran merupakan berkenaan dengan hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
25
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan yang nantinya digunakan sebagai dasar dalam tahap implementasi Hal yang dibahas meliputi perancangan proses perhitungan manual perancangan pengujian dan perancangan antar muka
41 Perancangan Proses
Pada perancangan proses ini berisi mengenai tahapan ndash tahapan dari metode yang digunakan yaitu metode High Order Fuzzy Time Series Multi Factors Pada penelitian ini melibatkan faktor ndash faktor yang mempengaruhi curah hujan yaitu suhu udara kelembaban udara dan kecepatan angin Data time series dari curah hujan merupakan faktor utama dalam proses peramalan pada penelitian ini Inputan pada peneltian ini yaitu data time series curah hujan serta faktor ndash faktor yang mempengaruhinya Order yang digunakan pada metode ini merupakan order lebih dari satu oleh karena itu disebut dengan High Order Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Berikut merupakan diagram alir dari proses peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors yang ditunjukkan pada Gambar 41 dan Gambar 42
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1)
Mulai
Data curah hujan suhu kelembaban kecepatan angin jmlh_Banyakdata jmlh_Faktor
Universe_of_Discourse
A
Jumlah_Cluster
26
411 Proses perhitungan Universe of Discourse
Pada perhitungan Universe of Discourse harus sudah dilakukan inputan data agar dapat memulai tahapan perhitungan Tahapan dari proses perhitungannya yaitu pada langkah pertama dilakukan perhitungan nilai mean (rata ndash rata) sesuai dengan Persamaan 211 Setelah mendapatkan nilai mean dapat dilakukan perhitungan untuk mencari nilai standar deviasi sesuai dengan Persamaan 212 Selanjutnya dicari nilai terkecil (119863119898119894119899) dan nilai terbesar (119863119898119886119909) Setelah menyelesaikan tahap ndash tahap tersebut dapat dilakukan perhitungan untuk
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2)
A
Perhitungan Pusat Cluster
Fuzzifikasi
Pembentukan Fuzzy Logical Relationship
Defuzzifikasi
Nilai hasil peramalan
Berhenti
Pembentukan Subinterval dan Fuzzy set
27
mencari Universe of Discourse sesuai dengan Persamaan 213 Berikut merupakan diagram alir dari proses perhitungan Universe of Discourse yang ditunjukkan pada Gambar 43
Perhitungan Universe of Discourse
Mulai
Min_dan_Max
mean
standar_deviasi
for i = 0 to jmlh_Faktor-1
i
hsl_uMin ke i = hsl_min ke i ndash hsl_stdev ke i
hsl_uMax ke i = hsl_max ke i + hsl_stdev ke i
hsl_uMin hsl_uMax
Berhenti
Gambar 43 Diagram alir proses perhitungan Universe of Discourse
28
4111 Proses perhitungan Mean
Pada proses perhitungan mean merupakan nilai rata ndash rata dari setiap faktor dimana nilai mean ini nantinya dibutuhkan untuk melakukan proses perhitungan standar deviasi Berikut merupakan diagram alir dari proses perhitungan mean yang ditunjukkan pada Gambar 44
mean
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
tmp_jmlh = 0
tmp_jmlh = tmp_jmlh + data ke ij
j
hsl_mean ke i = tmp_jmlhjmlh_DataTraining
i
hsl_mean
Berhenti
Gambar 44 Diagram alir proses perhitungan mean
29
4112 Proses perhitungan standar deviasi
Pada proses perhitungan standar deviasi dapat dilakukan setelah mendapatkan nilai mean dari setiap data sesuai proses sebelumnya Berikut merupakan diagram alir dari proses perhitungan standar deviasi yang ditunjukkan pada Gambar 45
standar_deviasi
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
result = 0
result = result + (data ke ij ndash mean ke i)2
j
hsl_stdev ke i = radicresult
jmlh_DataTrainingminus1
i
hsl_stdev
Berhenti
Gambar 45 Diagram alir proses perhitungan standar deviasi
30
4113 Proses perhitungan nilai Dmin dan Dmax
Pada proses perhitungan ini merupakan proses perhitungan untuk mencari nilai terkecil dan terbesar dari setiap faktor data Setelah mendapat nilai terkecil dan terbesar maka data dilakukan proses perhitungan Universe of Discourse Berikut merupakan diagran alir dari proses perhitungan nilai Dmin dan Dmax yang ditunjukkan pada Gambar 46
Gambar 46 Diagram alir perhitungan nilai Min dan Max
ya
ya
tidak
tidak
Min_dan_Max
Mulai
for i = 0 to jmlh_Faktor-1
besar = data ke i0
kecil = data ke i0
for j=0 to jmlh_DataTraining
data ke ij gt besar
besar = data ke ij
data ke ij lt kecil
kecil = data ke ij
j
hsl_max ke i = besar
hsl_min ke i = kecil
i
hsl_max hsl_min
Berhenti 1
1
2
2
3
4
4
5
5
3
31
412 Proses perhitungan jumlah cluster
Pada proses perhitungan jumlah cluster memiliki masukkan proses Dmin dan Dmax
dari proses perhitungan sebelumnya Pada proses ini terdapat perhitungan nilai dari selisih setiap data Pada perhitungan jumlah cluster sesuai dengan Persamaan 214 Berikut merupakan langkah ndash langkah perhitungan jumlah cluster yang ditunjukkan pada Gambar 47
jumlah_Cluster
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to (jmlh_DataTraining-1)
Berhenti
hsl_max hsl_min
selisih = 0
selisih = selisih + |data ke ij ndash data ke i (j+1)|
j
jmlh_Cluster ke i = |ℎ119904119897_119898119894119899 119896119890 119894minusℎ119904119897_119898119886119909 119896119890 119894|
119904119890119897119894119904119894ℎ
119895119898119897ℎ_119863119886119905119886119879119903119886119894119899119894119899119892minus1
i
jmlh_Cluster
Gambar 47 Diagram alir proses perhitungan jumlah cluster
32
413 Proses perhitungan pusat cluster
Pada proses perhitungan pusat cluster ini diperlukan beberapa variabel yang harus dideklarasikan terlebih dahulu yaitu nilai bobot fungsi objektif nilai iterasi awal nilai iterasi maksimum dan error terkecil Perhitungan subinterval ini menggunakan metode fuzzy C-means yang diawali dengan pencarian pusat cluster terlebih dahulu Berikut merupakan langkah ndash langkah perhitungan subinterval yang ditunjukkan pada Gambar 48 Gambar 49 Gambar 410 Gambar 411 Gambar 412
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1)
Perhitungan pusat cluster
Mulai
jmlh_Cluster
for i = 0 to jmlh_Faktor-1
Deklarasi bobot selisih_f_objektif
iter_maksimum error_min
Pembentukan Matriks partisi faktor A jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor A
for iter = iter to iter_maksimum
A
i == 0
Perhitungan pusat_cluster1 faktor A
B C D
tidak
ya
33
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2)
ya
tidak
tidak
ya
Perhitungan f_objektif faktor A
A B C D
Perhitungan selisih_f_objektif faktor A
Perbaikan matriks partisi faktor A
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster1 faktor A
Iter = iter_maksimum
iter
i == 1
Pembentukan Matriks partisi faktor B jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor B
for iter = iter to iter_maksimum
F A G E
34
tidak
tidak
ya
A E F G
Perhitungan pusat_cluster2 faktor B
Perhitungan f_objektif faktor B
Perhitungan selisih_f_objektif faktor B
Perbaikan matriks partisi faktor B
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster2 faktor B
Iter = iter_maksimum
iter
i == 2
Pembentukan Matriks partisi faktor C jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor C
I A H
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3)
ya
35
tidak
tidak
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4)
ya
A H I
for iter = iter to iter_maksimum
Perhitungan pusat_cluster3 faktor C
Perhitungan f_objektif faktor C
Perhitungan selisih_f_objektif faktor C
Perbaikan matriks partisi faktor C
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster3 faktor C
Iter = iter_maksimum
iter
i == 3
Pembentukan Matriks partisi faktor D jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor D
J A K
ya
36
tidak
ya
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5)
A K J
for iter = iter to iter_maksimum
Perhitungan pusat_cluster4 faktor D
Perhitungan f_objektif faktor D
Perhitungan selisih_f_objektif faktor D
Perbaikan matriks partisi faktor D
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster4 faktor D
Iter = iter_maksimum
iter
i
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
Berhenti
37
tidak
ya
tidak
ya
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1)
414 Proses pembentukan subinterval dan Fuzzy set
Pada proses pembentukan fuzzy set atau himpunan fuzzy pada penelitian ini dapat dilakukan setelah perhitungan subinterval selesai dilakukan Nilai subniterval merupakan masukan utama pada pembentukkan fuzzy set Pembentukan fuzzy sesuai dengan Persamaan 215 Berikut merupakan langkah ndash langkah proses pembentukan fuzzy set yang ditunjukkan pada Gambar 413 dan Gambar 414
Pembentukan subinteval dan Fuzzy set
Mulai
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
for i = 0 to jmlh_Faktor-1
Menentukan batas_subintervalMinA dan
batas_subintervalMaxA
Menentukan batas_fuzzysetMinA dan batas_fuzzysetMaxA
i == 0
i == 1
Menentukan batas_subintervalMinB dan
batas_subintervalMaxB
Menentukan batas_fuzzysetMinB dan batas_fuzzysetMaxB
A C B
38
tidak
tidak
ya
ya
415 Proses Fuzzifikasi
Pada proses fuzzifikasi ini pembentukanya sesuai derajat keanggotaan pada setiap data Pada proses ini derajat keanggotaan dihitung berdassarkan fungsi keanggotaan kurva bahu Hasil dari proses ini merupakan data yang sudah difuzzifikasikan menjadi data fuzzy Berikut langkah ndash langkah dari proses fuzzifikasi ditunjukkan pada Gambar 415 dan Gambar 416
i == 2
A B C
Menentukan batas_subintervalMinC dan batas_subintervalMaxC
Menentukan batas_fuzzysetMinC dan batas_fuzzysetMaxC
i == 3
Menentukan batas_subintervalMinD dan batas_subintervalMaxD
Menentukan batas_fuzzysetMinD dan batas_fuzzysetMaxD
i
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
Berhenti
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2)
39
tidak
ya
ya
tidak
Fuzzifikasi
Mulai
for i = 0 to jmlh_Faktor-1
Menentukan hasil_fuzzifikasiA dari faktor A
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinA batas_fuzzysetMaxA
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1)
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
DD
i == 0
i == 1
Menentukan hasil_fuzzifikasiB
dari faktor B
Menghitung derajat keanggotaan
berdasarkan batas_fuzzysetMinB
batas_fuzzysetMaxB
C A B
40
tidak
ya
ya
tidak
ya
i == 2
A B C
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinC batas_fuzzysetMaxC
Menentukan hasil_fuzzifikasiC dari faktor C
i == 3
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinD
batas_fuzzysetMaxD
Menentukan hasil_fuzzifikasiD dari faktor D
i
hasil_fuzzifikasiA hasil_fuzzifikasiB hasil_fuzzifikasiC hasil_fuzzifikasiD
Berhenti
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2)
41
tidak
ya
416 Proses pembentukan Fuzzy Logical Relationship
Setelah data melalui proses fuzzifikasi dan sudah menjadi data fuzzy maka dapat dilakukan pembentukan Fuzzy Logical Relationship (FLR) Pembentukan FLR dilakukan sesuai dengan Persamaan 216Berikut adalah langkah ndash langkah proses pembentukan Fuzzy Logical Relationship (FLR) yang ditunjukkan pada Gambar 417 Gambar 418 dan Gambar 419
Gambar 417 Diagram alir proses Pembentukan FLR
(bagian 1)
Pembentukan Fuzzy Logical Relationship
Mulai
hasil_fuzzifikasiAhasil_fuzzifikasiB hasil_fuzzifikasiChasil_fuzzifikasiD order
for i = 0 to jmlh_dataTraining
max_inc = order jmlh_dataTraining = dataTraining - order
for j = i to max_inc
for k = 0 to jmlh_Faktor-1
j == 0
FLR_kiri_training ke ijk = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D)
ke j
E A B C D
42
ya
tidak
ya
tidak
A B C E D
FLR_kiri_training ke i(j-i)k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
j = 0
k
j
FLR_kanan_training ke i = hasil_fuzzifikasiA ke (i+order)
Max_inc lt (jmlh_DataTraining-1)
i
tmp_JmlhDatatraining = tmp_JmlhDatatraining +1
max_inc = max_inc + 1 tmp_JmlhDatatraining = i
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2)
for j = 0 to tmp_JmlhDatatraining
for j = tmp_JmlhDatatraining to max_inc
for k = 0 to jmlh_Faktor-1
I H G F
43
tidak
ya
417 Proses Defuzzifikasi
Proses defuzzifikasi merupakan proses akhir dimana keluaran dari proses ini merupakan nilai hasil peramalan Data yang diperlukan pada proses defuzzifikasi adalah hasil dari proses pembentukan Fuzzy Logical Relationship (FLR) nilai threshold yang harus dideklarasikan sebelumnya jumlah data training dan jumlah data testing Dalam proses ini dilakukan perhitungan selisih pada FLR antara data testing dan data training FLR yang dihitung nilai selisihnya adalah FLR pangkat bawah yang terdapat pada ruas kiri Setelah dilakukan perhitungan selisih dan total jumlah selisih lebih kecil dari nilai threshold maka pada setiap FLR yang
I H G F
FLR_kiri_testing ke i(j-tmp_jmlhDatatraining) k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
k
j
FLR_kanan_testing ke i = hasil_fuzzifikasiA ke (i+order)
i
Max_inc lt (jmlh_DataTraining-1)
max_inc = max_inc + 1 tmp_JmlhDatatraining++
FLR_kiri_training FLR_kanan_training FLR_kiri_testing FLR_kanan_testing
Mulai
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3)
44
ya
tidak
sesuai dengan kondisi tersebut dapat dikatakan cocok atau dapat dilakukan ke tahap perhitungan selanjutnya Setelah mendapatkan FLR yang cocok maka dilakukan pengelompokkan berdasarkan FLR ruas kanan Pengelompokkan ini dihitung jumlah frekuensi yang sama sesuai dengan fuzzy set di ruas kanan Selanjutnya untuk memperoleh hasil peramalan dilakukan proses perhitungan sesuai dengan Persamaan 218 Berikut adalah langkah ndash langkah proses defuzzifikasi yang ditunjukkan pada Gambar 420 dan Gambar 421
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1)
Defuzzifikasi
Mulai
FLR_kiri FLR_kanan order dataTraining dataTesting konstanta
threshold = (jmlh_Faktor x order)+konstanta
for i = 0 to dataTesting
for j = 0 to (dataTraining-i)
Perhitungan hitung_selisih antara FLR_kiri data training dan data testing
hitung_selisih lt threshold
match ke ij = hitung_selisih
j
i
A
45
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2)
A
Menghitung jumlah total FLR_kiri yang cocok untuk setiap data testing
Mencocokan FLR_kiri yang cocok dengan FLR_kanan untuk setiap data testing
for i = 0 to dataTesting
Menghitung frekuensi setiap FLR_kanan yang cocok untuk setap data testing
for j = 0 to jumlah total FLR kiri yang cocok
peramalan = peramalan + Frekuensi setiap FLR_kanan yang cocok x pusat_cluster1
sesuai dengan value FLR_kanannya
j
hasil_peramlan ke i = peramalan jumlah total FLR kiri yang cocok
i
Hasil_permalan
Berhenti
46
42 Perhitungan Manual
Dalam perhitungan manual ini data sampel yang digunakan merupakan data time series dasarian ke-2 pada periode April 2014 sampai dengan dasarian ke-2 Juli 2014 data sampel ditunjukkan pada Tabel 41
Tabel 41 Data Sampel Perhitungan Manual
No Dasarian Curah Hujan
(A)
Suhu (B) Kelembaban (C)
Kecepatan Angin(D)
1 Dasarian 2 (April 2014) 95 2615 8248 629
2 Dasarian 3 (April 2014) 90 2612 8247 628
3 Dasarian 1 (Mei 2014) 94 2607 8247 627
4 Dasarian 2 (Mei 2014) 83 2625 8232 623
5 Dasarian 3 (Mei 2014) 85 2628 8235 623
6 Dasarian 1 (Juni 2014) 92 2609 8241 626
7 Dasarian 2 (Juni 2014) 86 2627 8235 624
8 Dasarian 3 (Juni 2014) 89 2621 8238 624
9 Dasarian 1 (Juli 2014) 93 2607 8242 626
10 Dasarian 2 (Juli 2014) 86 2626 8237 623
Sumber BMKG Kelas III Karangkates Malang
421 Perhitungan Universe of Discourse (U)
Sebelum melakukan perhitungan U maka harus dicari terlebih dahulu nilai 119863119898119894119899 119863119898119886119909 dan standar deviasi 119863119898119894119899 adalah nilai minimum atau nilai terkecil dari data sampel yang ada sedangkan 119863119898119886119909 adalah nilai maksimum atau nilai paling besar dari data sampel yang ada Untuk mencari nilai standar deviasi harus menghitung nilai mean (rata ndash rata) terlebih dahulu sesuai dengan Persamaan 211 Mean dari data curah hujan (A) dihitung dengan cara sebagai berikut
Mean = (data ke-1 + data ke-2 + data ke-3 + + data ke-10) 10
= (95 + 90 + 94 + 83 + 85 + 92 + 86 + 89 + 93 + 86) 10
= 893 10
= 893
Selanjutnya setelah diperoleh nilai mean dilanjutkan melakukan perhitungan standar deviasi sesuai dengan Persamaan 212 Standar deviasi adalah akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Untuk menghitung standar deviasi agar lebih mudah kita terlebih dahulu melakukan perhitungan nilai kuadrat dari selisih data ke-i dan mean yang ditunjukkan pada Tabel 42
47
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean
i Data ke-i Data ke-i mean (Data ke-i - mean)sup2
1 95 57 32490
2 90 07 0490
3 94 47 22090
4 83 -63 39690
5 85 -43 18490
6 92 27 7290
7 86 -33 10890
8 89 -03 0090
9 93 37 13690
10 86 -33 10890
Jumlah 1561
Setelah mendapatkan hasil nilai kuadrat dari selisih data ke-i dan mean sesuai dengan Tabel 42 maka dapat dilanjutkan melakukan perhitungan standar deviasi dengan cara sebagai berikut
Standar_deviasi = radic1
10minus1sum (119889119886119905119886 119896119890 minus 119894 minus 119898119890119886119899)10
119894=1
2
= radic1
9 times 1561
= 4165
Untuk perhitungan standar deviasi juga dilakukan pada faktor lainnya yaitu suhu (B) kelembaban (C) dan kecepatan angin (D) Hasil perhitungan 119863119898119894119899 119863119898119886119909 dan standar deviasi ditunjukkan pada Tabel 43
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi
Data D min D max Standar Deviasi
A 83 95 4165
B 2607 2628 0086
C 8232 8248 0057
D 623 629 0022
Berdasarkan hasil yang ditunjukkan Tabel 43 selanjutnya dapat dilakukan perhitungan nilai U sesuai dengan Persamaan 213 Berikut adalah perhitungan U pada data A
U = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590]
= [(83 ndash 4165) (95 ndash 4165)]
= [78835 99165]
48
Untuk perhitungan U juga dilakukan pada semua faktor yaitu data B C dan D Sehingga diperoleh nilai U yang ditunjukkan pada Tabel 44
Tabel 44 Hasil Universe of Discourse
Data U
Batas Bawah Batas Atas
A 78835 99165
B 25984 26366
C 82263 82537
D 6208 6312
422 Perhitungan jumlah cluster (k)
Pada perhitungan jumlah cluster langkah pertamanya adalah mencari nilai absolut dari selisih data hari ke-t dengan hari sebelumnya Perhitungan selisih dilakukan hingga data ke-10 Perhitungan nilai selisih dilakukan pada semua data A B C dan D Selanjutnya masing ndash masing nilai selisih dijumlah sehingga hasilnya seperti ditunjukkan pada Tabel 45
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya
No Tanggal A B C D
1 Dasarian 3 (April 2014) 5 003 001 001
2 Dasarian 1 (Mei 2014) 4 005 0 001
3 Dasarian 2 (Mei 2014) 11 018 015 004
4 Dasarian 3 (Mei 2014) 2 003 003 0
5 Dasarian 1 (Juni 2014) 7 019 006 003
6 Dasarian 2 (Juni 2014) 6 018 006 002
7 Dasarian 3 (Juni 2014) 3 006 003 0
8 Dasarian 1 (Juli 2014) 4 014 004 002
9 Dasarian 2 (Juli 2014) 7 019 005 003
Jumlah 49 105 043 016
Setelah mendapatkan nilai absolut selisih data hari ke-t dengan hari sebelumnya dapat dilanjutkan dengan menghitung jumlah cluster sesuai dengan Persamaan 214 Perhitungan jumlah cluster pada data A (k1) berdasarkan pada Tabel 43 diketahui nilai 119863119898119894119899 adalah 171 nilai 119863119898119886119909 adalah 2048 maka jumlah cluster data A dapat ditunjukkan sebagai berikut
49
1198961 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905) minus 119883(119905 minus 1)|119899
119905=1
119899 minus 1|
= |83 minus 9549
10minus1| = 2204
Apabila hasil perhitungan jumlah cluster merupakan bilangan pecahan maka hasilnya harus dibulatkan Sehingga jumlah cluster pada data A adalah 2 Perhitungan jumlah cluster juga dilakukan pada data B (k2) C (k3) dan D (k4) Berikut merupakan hasil semua perhitungan jumlah cluster yang ditunjukkan pada Tabel 46
Tabel 46 Hasil jumlah cluster data
No Cluster Jumlah Cluster
1 k1 2
2 k2 2
3 k3 3
4 k4 3
423 Perhitungan pusat cluster dan subinterval
Pada pembentukan subinterval berdasarkan pada Tabel 46 yang menunjukkan jumlah subinterval yang selanjutnya digunakan untuk menentukan pusat cluster menggunakan algoritma fuzzy C-means (FCM)
4231 Penentuan pusat cluster
a Penentuan nilai variabel
Pada penentuan subinterval diawali dengan klasterisasi menggunakan algoritma FCM pada awal proses ditentukkan beberapa variabel sebagai berikut
Banyak cluster = k1 = 2
Bobot (w) = 2
Fungsi objektif awal = 0
Iterasi awal = 1
Iterasi maksimum = 100
Error terkecil = 001 b Pembentukan matriks partisi awal (micro)
Data pada pembentukan matriks partisi awal merupakan nilai random diantara nilai 0 sampai 1 Dimensi pada matriks partisi awal dibentuk dengan dimensi jumlah data (i) x jumlah cluster (k) Dalam hal ini telah diketahui jumlah data adalah 10 dan k1 adalah 2 maka partisi dimensi matriks awal adalah 10 x 2 Hasil pembentukan matriks partisi awal ditunjukkan pada Tabel 47 dimana Cluster disimbolkan dengan C
50
Tabel 47 Matriks partisi awal pada cluster data A
c Normalisasi matriks partisi awal
Langkah pertama normalisasi matriks partisi awal adalah dengan menghitung jumlah bilangan penyusun matriks pada setiap kolom yang dapat dilihat pada Tabel 47 dijumlah berdasarkan dengan Persamaan 24 Diketahui jumlah kolom matriks sebanyak 2 sehingga diperoleh Q1 untuk penjumlahan kolom c1 Q2 untuk penjumlahan kolom c2
Q1 = 0355 + 0174 + 02 + 0387 + 0598 + 0819 + 0702 + 0719 + 0349 +
0852
= 5154
Q2 = 0170 + 0815 + 0190 + 0456 + 0526 + 0170 + 0232 + 0572 + 0102 +
0322
= 3554
Langkah selanjutnya dilakukan proses normalisasi menggunakan Persamaan 25 Dimana setiap bilangan penyusun matriks awal dibagi dengan nilai Q sesuai dengan kolomnya masing ndash masing Bilangan penyusun matriks disimbolkan dengan microik dimana i menunjukkan baris dan k menunjukkan kolom posisi bilangan tersebut pada matriks
i micro
c1 c2
1 0355 0170
2 0174 0815
3 0200 0190
4 0387 0456
5 0598 0526
6 0819 0170
7 0702 0232
8 0719 0572
9 0349 0102
10 0852 0322
51
μ11 = bilangan matriks partisi pada baris 1 kolom 1
Q1
= 0355
5154
= 0069
μ12 = bilangan matriks partisi pada baris 1 kolom 2
Q2
= 0170
3554
= 0048
Setelah melakukan perhitungan seperti diatas untuk semua bilangan matriks sehingga matriks partisi sudah ternormalisasi seperti yang ditunjukkan pada Tabel 48
Tabel 48 Derajat keanggotaan matriks partisi data A
i micro
C1 C2
1 0069 0048
2 0034 0229
3 0039 0054
4 0075 0128
5 0116 0148
6 0159 0048
7 0136 0065
8 0140 0161
9 0068 0029
10 0165 0090
d Perhitungan pusat cluster (V)
Pada perhitungan pusat cluster (V) berdasarkan Persamaan 26 Dimana setiap bilangan penyusun matriks partisi (micro) dipangkatkan dengan w dimana variabel w yang sudah dideklarisakan terlebih dahulu dengan nilai sama dengan 2 dan dikalikan dengan bilangan penyusun matriks X yang merupakan matriks berisi data yang ada pada Tabel 41 Selanjutnya hasil perkalian tersebut dijumlah dan dibagi dengan jumlah hasil kuadrat dari bilangan penyusun matriks partisi Hasil perhitungan ditunjukkan pada Tabel 49
52
Tabel 49 Perhitungan pusat cluster data A
Berdasarkan jumlah cluster dari data A yaitu 2 maka terdapat 2 pusat cluster (V) yaitu V1 V2 Perhitungan nilai V adalah sebagai berikut
V1 = sum ((μic1)2 times Xi)10
i=1
sum (μic1)210i=1
= 10730216
0121620
= 8822718207
V2 = sum ((μic2)2 times Xi)10
i=1
sum (μic2)210i=1
= 12111287
0137572
= 8803592572
Jadi berdasarkan perhitungan diatas pusat cluster untuk data A pada iterasi ke-1 adalah 8822718207 8803592572
e Perhitungan fungsi objektif (P)
Pada perhitungan P menggunakan Persamaan 27 dimana setiap baris pada data matriks X dikurangi pusat cluster (V) selanjutnya dikuadratkan Hasilnya
i X microsup2 microsup2 x X
C1 C2 C1 C2
1 95 0004731 0002292 0449450 0217718
2 90 0001137 0052633 0102304 4736927
3 94 0001512 0002864 0142117 0269234
4 83 0005630 0016427 0467258 1363472
5 85 0013448 0021907 1143107 1862112
6 92 0025233 0002291 2321422 0210787
7 86 0018542 0004243 1594602 0364916
8 89 0019487 0025916 1734356 2306543
9 93 0004590 0000816 0426841 0075870
10 86 0027311 0008183 2348759 0703706
Jumlah 0121620 0137572 10730216 12111287
53
kemudian dikalikan dengan micro yang sudah dipangkatkan dengan bobot (w) seperti yang telah ditunjukkan pada Tabel 49 Selanjutnya hasil tersebut dijumlah per kolom seperti yang ditunjukkan pada Tabel 410
Tabel 410 Fungsi objektif data A
i X (X-V)sup2 (X-V)sup2 x microsup2
C1 C2 C1 C2
1 95 458711 484983 02170 01111
2 90 31429 38576 00036 02030
3 94 333254 355702 00504 01019
4 83 273234 253605 01538 04166
5 85 104147 92168 01401 02019
6 92 142342 157139 03592 00360
7 86 49603 41450 00920 00176
8 89 05972 09294 00116 00241
9 93 227798 246420 01046 00201
10 86 49603 41450 01355 00339
Jumlah 1267661573 1166282827
Fungsi Objektif (P) 24339444
Perhitungan nilai fungsi objektif dilakukan seperti Persamaan 27 Nilai fungsi objektif diperoleh dengan cara sebagai berikut P = sum sum ([(Xi minus Vc)2](μik)2)3
c=110i=1
P = 1267661573 + 1166282827
= 24339444
f Perbaikan matriks partisi
Pada langkah ini perbaikan matriks partisi dilakukan berdasarkan Persamaan 28 Data matriks X untuk setiap barisnya dikurangi pusat cluster lalu dikuadratkan seperti yang ditunjukkan pada Tabel 410 Selanjutnya hasilnya dipangkatkan dengan -11 karena w-1 = 1 Hasil pangkat -1 terhadap (X-V)2 ditunjukkan pada Tabel 411
54
Tabel 411 Perbaikan matriks partisi
i ((X-V)sup2)^-1
Jumlah C1 C2
1 0022 0021 0042
2 0318 0259 0577
3 0030 0028 0058
4 0037 0039 0076
5 0096 0108 0205
6 0070 0064 0134
7 0202 0241 0443
8 1674 1076 2750
9 0044 0041 0084
10 0202 0241 0443
Berdasarkan tabel diatas bilangan penyusun matriks partisi yang baru atau yang telah diperbaiki diperoleh dari hasil pembagian data terhadap jumlah per barisnya
12058311 = 0022
0042= 0514
12058312 = 0021
0042= 0486
Pada perhitungan nilai matriks yang sudah diperbaiki dilakukan pada semua elemen matriks sehingga hasil perbaikan matriks seperti yang ditunjukkan pada Tabel 412
Tabel 412 Hasil perbaikan matriks partisi
Setelah mendapatkan hasil perbaikan matriks partisi kita lakukan pengecekan selama iterasi kurang dari iterasi maksimum (maxIter) atau selisih antara fungsi objektif iterasi saat ini dengan iterasi sebelumnya bernilai lebih dari nilai error terkecil yaitu 001 maka proses berlanjut dengan kembali melakukan perhitungan pusat cluster hingga perbaikan matriks partisi Hasil
i micro
C1 C2
1 0514 0486
2 0551 0449
3 0516 0484
4 0481 0519
5 0469 0531
6 0525 0475
7 0455 0545
8 0609 0391
9 0520 0480
10 0455 0545
55
perhitungan pusat cluster dari data A B C dan D setelah dilakukan proses tiga kali iterasi dan diurutkan mulai dari yang terkecil sampai yang terbesar ditunjukkan pada Tabel 413
Tabel 413 Hasil pusat cluster
4232 Perhitungan batas subinterval
Perhitungan batas subinterval dilakukan dengan mencari nilai tengah (Median) dari setiap pusat cluster Berikut merupakan contoh perhitungan batas subinterval pada data A
a Interval 1 Batas bawah = 78835 (Batas bawah Universe of Discourse pada data A) Batas atas = 89347 (Median 88303 dan 90390)
b Interval 2 Batas bawah = 89347 (Median 88303 dan 90390) Batas atas = 99165 (Batas atas Universe of Discourse pada data A)
Seperti perhitungan diatas juga dilakukan pada data suhu (B) kelembaban (C) dan kecepatan angin (D) Dalam hal ini jumlah subinterval setiap atribut berbeda ndash beda sesuai dengan jumlah cluster yang sebelumnya ditunjukkan pada Tabel 46 Berikut merupakan batas subinterval masing ndash masing atribut yang ditunjukkan pada Tabel 414
Tabel 414 Batas subinterval masing ndash masing atribut data
Interval (micro)
A B C D
1
78835 25984 751708 6208
sd sd sd sd
89347 26181 823863 6249
2
89347 26181 823863 6249
sd sd sd sd
99165 26366 82411 6256
3
82411 6256
- - sd sd
82537 6312
Cluster A B C D
1 88303 26165 82391 62497
2 90390 26197 82408 62499
3 - - 82415 62613
56
424 Pembentukan Fuzzy Set
Pembentukan fuzzy set berdasarkan pada derajat keanggotaan dari subinterval (micro) fuzzy set dari data A ditentukan dengan derajat keanggotaan sebagai berikut
A1 = 1micro1 + 05micro2
A2 = 05micro1 + 1micro2
Pada derajat keanggotaan data A diatas simbol ldquo+rdquo menunjukkan operator himpunan gabungan Berdasarkan subinterval pada Tabel 414 nilai batas fuzzy set dari data atribut A dapat ditentukan dengan cara sebagai berikut
A1 = 78835 sd 94256 (Batas bawah interval 1 sd titik tengah interval 2)
A2 = 84091 sd 99165 (Titik tengah interval 1 sd batas atas interval 2)
Setelah diketahui batas masing ndash masing fuzzy set grafik fungsi keanggotaan fuzzy set data A yang direpresentasikan dalam kurva bahu yang ditunjukkan pada Gambar 422 Dengan cara yang sama juga ditentukan pula fuzzy set dari data attribut B C dan D
425 Fuzzifikasi
Pada langkah fuzzifikasi dilakukan dengan mencari derajat keanggotaan yang memiliki nilai paling besar (maksimum) dari masing ndash masing data terhadap fuzzy set yang sudah terbentuk Derajat keanggotaan dicari berdasarkan fungsi keanggotaan kurva bentuk bahu Berikut ini adalah perhitungan derajat keanggotaan dari data attribut A
Data aktual curah hujan (A) pada April 2014 dasarian ke-3 = 90
1198601 = 942558 ndash 90
942558minus840911= 041868427
Gambar 422 Grafik fuzzy set data A
57
1198602 = 90minus840911
942558minus840911= 058131636
Derajat keanggotaan paling besar berada pada A2 sehingga data attribut A pada April 2014 dasarian ke-3 difuzzifikasikan ke fuzzy set A2 Perhitungan yang sama dilakukan pada seluruh data attribut A sehingga didapat derajat keanggotaan dan hasil fuzzifikasi dari data A ditunjukkan pada Tabel 415
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A
i Data A1 A2 Fuzzyfikasi
1 95 0 1 A2
2 90 041868363 058131636 A2
3 94 002516357 097483642 A2
4 83 1 0 A1
5 85 09105837 008941629 A1
6 92 02219236 077807639 A2
7 86 08122036 018779631 A1
8 89 05170636 048293635 A1
9 93 01235436 087645641 A2
10 86 08122037 018779631 A1
Perhitungan yang sama juga dilakukan pada semua attribut yaitu attribut B C dan D Sehingga dapat diperoleh hasil fuzzifikasi sesuai derajat keanggotaan dengan nilai paling besar Berikut adalah hasil fuzzifikasi untuk semua attribut yang dapat dilihat pada Tabel 416
Tabel 416 Hasil fuzzifikasi semua data attribut
No Tanggal A B C D
1 Dasarian 2 (April 2014) A2 B1 C3 D3
2 Dasarian 3 (April 2014) A2 B1 C3 D3
3 Dasarian 1 (Mei 2014) A2 B1 C3 D3
4 Dasarian 2 (Mei 2014) A1 B2 C1 D1
5 Dasarian 3 (Mei 2014) A1 B2 C1 D1
6 Dasarian 1 (Juni 2014) A2 B1 C2 D2
7 Dasarian 2 (Juni 2014) A1 B2 C1 D1
8 Dasarian 3 (Juni 2014) A1 B2 C2 D1
9 Dasarian 1 (Juli 2014) A2 B1 C2 D2
10 Dasarian 2 (Juli 2014) A1 B2 C2 D1
58
426 Pembentukan Fuzzy Logical Relationship (FLR)
Pada tahap pembentukan FLR dengan berdasarkan nilai order yang sudah ditentukan Pada manualisasi ini berdasarkan dari Tabel 416 di misalkan nilai order kita deklarasikan dengan nilai 3 sehingga dapat menghasilkan 7 FLR Hasil pembentukan FLR Data training dapat ditunjukkan pada Tabel 417 Hasil pembentukan FLR Data testing dapat ditunjukkan pada Tabel 418
Tabel 417 Hasil pembentukan FLR data training
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(32)B(31)C(33)D(33)) rarr A1
2 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(31)B(32)C(31)D(31)) rarr A1
3 (A(12)B(11)C(13)D(13)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(31)D(31)) rarr A2
4 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(21)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
5 (A(11)B(12)C(11)D(11)) (A(22)B(21)C(22)D(22)) (A(31)B(32)C(31)D(31)) rarr A1
Tabel 418 Hasil pembentukan FLR data testing
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(12)D(12)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(32)D(31)) rarr A2
2 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(22)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
427 Defuzzifikasi
Pada tahap ini misalkan jumlah data yang digunakan untuk data uji atau data testing adalah dua yaitu yang pertama data periode ke-9 dan yang kedua data periode ke-10 Sehingga yang digunakan data latih atau data training adalah data pada periode ke-1 sampai data periode ke-8 Pada data testing yang pertama melibatkan FLR ke-1 sampai FLR ke-5 untuk disesuaikan dengan FLR ke-6 yang berdasarkan pada Tabel 417 Pada data testing yang kedua melibatkan FLR ke-1 sampai FLR ke-6 untuk disesuaikan dengan FLR ke-7 yang berdasarkan pada Tabel 417 Selanjutnya setiap ruas kiri FLR data testing dibandingkan dengan FLR data training yaitu pada bilang pangkat bawah fuzzy set dibandingkan sesuai dengan posisinya dan dihitung selisihnya Hasil dari perhitungan selisih tersebut dijumlahkan dan apabila jumlah selisihnya kurang dari threshold maka FLR tersebut dikatakan cocok Threshold merupakan dari hasil mengalikan jumlah order dengan jumlah faktor kemudian dijumlahkan dengan dengan sebuah konstanta Contoh perhitungan selisih nilai ruas kiri FLR pada data testing pertama adalah sebagai berikut
59
Data testing = (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(32) B(31) C(33) D(33)) rarr A1
Data training =
1 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
2 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
3 (A(12) B(11) C(13) D(13)) (A(21) B(22) C(21) D(21)) (A(31) B(32) C(31) D(31)) rarr A2
4 (A(11) B(12) C(11) D(11)) (A(21) B(22) C(21) D(21)) (A(32) B(31) C(32) D(32)) rarr A1
5 (A(11) B(12) C(11) D(11)) (A(22) B(21) C(22) D(22)) (A(31) B(32) C(31) D(31)) rarr A1
Selisih data ke- 1 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|2-1|+|1-2|+|3-2|+|3-1| = 13
Selisih data ke- 2 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Selisih data ke- 3 = |2-2|+|1-1|+|3-2|+|3-2|+|1-1|+|2-2|+|1-1|+|1-1|+|1-1|+|2-2|+|1-2|+|1-1| = 3
Selisih data ke- 4 = |1-2|+|2-1|+|1-2|+|1-2|+|1-1|+|2-2|+|1-1|+|1-1|+|2-1|+|1-2|+|2-2|+|2-1| = 7
Selisih data ke- 5 = |1-2|+|2-1|+|1-2|+|1-2|+|2-1|+|1-2|+|2-1|+|2-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Pada perhitungan selisih nilai ruas kiri FLR pada data testing juga dilakukan pada semua data testing yang sudah dideklarasikan sebelumnya Dalam hal ini agar dapat menemukan FLR yang cocok dengan data testing Tahap selanjutnya adalah proses defuzzifikasi menggunakan threshold yang dimisalkan 18 sehingga FLR yang memiliki kecocokan dengan data testing pertama adalah semua FLR dari ke-1 sampai ke-5 karena memiliki hasil selisih kurang dari 18 Semua FLR yang cocok ditampung dikelompokkan berdasarkan FLR pada ruas kanan yang sama kemudian dhitung frekuensinya Berikut adalah frekuensi dan pusat cluster dari ruas kanan FLR yang cocok dengan data testing pertama dan kedua ditunjukkan pada Tabel 419
Tabel 419 Frekuensi FLR yang cocok dengan data testing
Data testing 1 Data testing 2
Ruas kanan A1 A2 A1 A2
Pusat Cluster 88303 90390 88303 90390
Frekuensi 4 1 4 2
Berdasarkan pada Tabel 419 dilakukan defuzzifikasi sesuai dengan Persamaan 218 sebagai berikut
119863119886119905119886 119905119890119904119905119894119899119892 1 = (88303times4)+(90390times1)
5= 887204
60
119863119886119905119886 119905119890119904119905119894119899119892 2 = (88303times4)+(90390times2)
6= 889987
Jadi berdasarkan perhitungan diatas diperoleh hasil peramalan curah hujan pada pada April 2014 dasarian ke-3 adalah 1384601636 sedangkan pada tanggal 10012016 adalah 2769203272 Perbandingan data curah hujan aktual dan hasil peramalan dengan metode High Order Fuzzy Time Series Multi Factors dapat dilihat pada Tabel 420
Tabel 420 Perbandingan data aktual dan hasil peramalan
No Data Aktual Hasil Peramalan
1 93 887204
2 86 889987
Dari hasil peramalan yang ditunjukkan pada Tabel 420 dapat dilakukan perhitungan kesalahan peramalan menggunakan metode Mean Square Error (MSE) seperti Persamaan 219
119872119878119864 = ((93minus887206)2+(86minus889989)2)
2
= 136536
43 Perancangan antarmuka
Perancangan antarmuka merupakan perancangan dari tampilan antarmuka atau interface yang nantinya akan diterapkan pada tahapan implementasi Pada perancangan antarmuka ini terdapat lima halaman utama dan juga terdapat dalam menu berupa button yaitu halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
431 Halaman input
Pada halaman input terdapat inputan data dengan nama button Browse Data pada inputan data ini pengguna diharuskan memasukkan inputan file data dalam bentuk ekstensi xls serta direktori lokasi file yang di inputkan akan ditampilkan pada textfield dan juga terdapat label yang menampilkan jumlah banyaknya data yang terdapat pada file yang telah di inputkan Selanjutnya juga terdata inputan textfield data training data testing order dan nilai konstanta Pada halaman input ini juga terdapat button fuzzification yang berfungsi untuk melakukan proses clustering fuzzifikasi dan FLR Selanjutnya pada button forecasting berfungsi untuk melakukan peramalan atau defuzzifikasi dari hasil proses fuzzifikasi serta menghitung nilai error dari hasil peramalan Berikut
61
merupakan rancangan tampilan antarmuka dari halaman input yang ditunjukkan pada Gambar 423
432 Halaman tampil data
Pada halaman tampil data terdapat tabel yang menampilkan isi data dari xls yang sudah dimasukkan terlebih dahulu pada halaman input Tabel tampil data akan menampilkan tanggal curah hujan kelembaban suhu dan kecepatan angin Berikut merupakan tampilan rancangan halaman tampil data yang ditunjukkan pada Gambar 424
Gambar 423 Rancangan antarmuka halaman input
Gambar 424 Rancangan antarmuka halaman tampil data
62
433 Halaman proses
Pada halaman proses akan menampilkan hasil clustering fuzzifikasi dan fuzzy logical relationship Pada tampilan halaman clustering akan menampilkan Universe of Discourse curah hujan suhu kelembaban dan kecepatan angin Selanjutnya tampilan dibawahnya akan menampilkan jumlah cluster dari setiap faktor yaitu jumlah cluster curah hujan suhu kelembaban dan kecepatan angin Berikut merupakan tampilan perancangan halaman proses clustering yang ditunjukkan Gambar 425
Selanjutnya pada tampilan proses fuzzifikasi akan menampilkan tabel hasil fuzzifikasi dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzifikasi yang ditunjukkan pada Gambar 426
Gambar 425 Rancangan antarmuka halaman proses clustering
Gambar 426 Rancangan antarmuka proses fuzzifikasi
63
Pada tampilan proses fuzzy logical relationship (FLR) akan menampilkan textarea berisi hasil proses FLR dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzy logical relationship yang ditunjukkan pada Gambar 427
434 Halaman hasil
Pada halaman hasil peramalan akan menampilkan tabel yang berisi hasil peramalan curah hujan dan data curah hujan yang sebenarnya Serta terdapat text link yang akan menampilkan grafik perbandingan data hasil peramalan dan data yang sebenarnya Berikut adalah tampilan rancangan halaman hasil yang ditunjukkan pada Gambar 428
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship
Gambar 428 Rancangan antarmuka halaman hasil peramalan
64
435 Halaman perhitungan error
Pada halaman perhitungan error akan menampilkan nilai dari hasil perhitungan Mean Square Error (MSE) pada textfield Berikut adalah tampilan rancangan halaman perhitungan error yang ditunjukkan pada Gambar 429
44 Perancangan pengujian
Pada penelitian ini akan dilakukan empat pengujian yaitu pengujian terhadap nilai order nilai threshold pengujian terhadap jumlah data training untuk mengetahui pengaruhnya terhadap nilai Mean Square Error (MSE) dan pengujian validasi sistem untuk mengetahui kestabilan hasil implementasi
441 Perancangan pengaruh order terhadap nilai MSE
Order merupakan jumlah urutan data yang digunakan dalam pembentukkan Fuzzy Logical Relationship (FLR) Pada pengujian ini dilakukan percobaan dengan order yang berbeda ndash beda Pengujian ini bertujuan untuk mengetahui pengaruh order terhadap hasil peramalan Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Pada setiap pengujian yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan order yang berbeda Berikut adalah perancangan pengujian order terhadap nilai MSE ditunjukkan pada Tabel 421
Tabel 421 Rancangan pengujian order terhadap nilai MSE
No Order Threshold MSE
1
Gambar 429 Rancangan antarmuka halaman perhitungan error
65
442 Perancangan pengaruh threshold terhadap nilai MSE
Nilai threshold bergantung jumlah order karena untuk nilai threshold merupakan dari hasil mengalikan jumlah faktor yang mempengaruhi dengan order selanjutnya dijumlah dengan sebuah konstanta Pada pengujian ini dilakukan percobaan dengan konstanta yang berbeda ndash beda sehingga menghasilkan threshold yang berbeda pula Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan konstanta dan threshold yang berbeda Berikut merupakan rancangan pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 422
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1
443 Perancangan pengaruh jumlah data training terhadap nilai MSE
Data training sangat berperan penting dalam proses defuzzifikasi sehingga pada penelitian ini dilakukan pengujian pengaruh jumlah data training terhadap tingkat kesalahan dari hasil peramalan Pada pengujian ini dilakukan percobaan dengan jumlah data training yang berbeda ndash beda Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan dilakukan perhitungan nilai MSE untuk mengetahui tingkat kesalahan dari hasil peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors dengan jumlah data training yang berbeda ndash beda Sehingga dari hasil pengujian ini dapat diketahui pengaruh dari jumlah data training Berikut merupakan rancangan pengujian pengaruh jumlah data training yang ditunjukkan pada Tabel 423
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1
444 Perancangan validasi sistem
Pada pengujian validasi sistem akan melakukan pengujian dengan menggunakan order threshold terbaik seperti yang telah dilakukan pada
66
pengujian ndash pengujian sebelumnya yang menghasilkan hasil error MSE terendah Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Berikut merupakan rancangan pengujian validasi sistem yang ditunjukkan pada Tabel 424
Tabel 424 Rancangan pengujian validasi sistem
Percobaan ke- MSE
1
67
BAB 5 IMPLEMENTASI
Pada bab ini berisi pembahasan hasil implementasi metode High Order Fuzzy Time Series Multi Factors yang sesuai dengan bab sebelumnya yaitu perancangan Bab ini terdiri dari spesifikasi sistem implementasi algoritma dan implementasi antarmuka
51 Spesifikasi Sistem
Pada spesifikasi sistem ini dibagi mejadi dua yaitu spesifikasi perangkat keras dan spesifikasi perangkat lunak
511 Spesifikasi Perangkat Keras
Spesifikasi perangkat keras merupakan perangkat keras yang digunakan pada implementasi penelitian ini Perangkat keras yang digunakan adalah laptop dengan spesifikasi sesuai dengan pada Tabel 51 berikut
Tabel 51 Spesifikasi Perangkat Keras
Komponen Spesifikasi
Processor Intelcopy Core i3-3217U 180 GHz
Memori (RAM) 8 GB RAM
Harddisk 500 GB RAM
512 Spesifikasi Perangkat Lunak
Spesifikasi perangkat lunak merupakan perangkat lunak yang digunakan pada implementasi penelitian ini Perangkat lunak yang digunakan pada implementasi penelitian sesuai dengan yang ditunjukkan pada Tabel 52 berikut
Tabel 52 Spesifikasi Perangkat Lunak
Sistem Operasi Microsoft Windows 7 (64 bit)
Bahasa Pemrograman Java
Tools Pemrograman Netbeans 81
Data Microsoft Excel 2013
52 Implementasi Algoritma
Pada implementasi algoritma ini membahas mengenai hasil implementasi algoritma metode High Order Fuzzy Time Series Multi Factors yang mengacu pada bab sebelumnya yaitu perancangan Dalam penelitian ini implementasi algoritma menggunakan bahasa pemrograman java berbasis desktop Implementasi algoritma terdiri dari beberapa method sesuai dengan langkah ndash langkah pada algoritma metode High Order Fuzzy Time Series Multi Factors
68
521 Implementasi Proses Universe of Discourse
Pada implementasi Universe of Discourse seperti yang ditunjukkan Kode Program 51 dimana pada source code method Universe_of_Discourse baris 3 - 5 terdapat pemanggilan method mean standar_deviasi dan Min_dan_Max Dimana pemanggilan method tersebut dibutuhkan untuk melakukan proses perhitungan selanjutnya yaitu untuk menghitung batas bawah dan batas atas dari Univers of Discourse Baris 7-10 untuk menghitung hasil Universe of Discourse Berikut merupakan source code dari proses Universe of Discourse yang ditunjukkan pada Kode Program 51
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
private void Universe_of_Discourse()
mean()
standar_deviasi()
Min_dan_Max()
hsl_uMin = new double[jmlh_Faktor]
hsl_uMax = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
hsl_uMin[i] = hsl_min[i] - hsl_stdev[i]
hsl_uMax[i] = hsl_max[i] + hsl_stdev[i]
Kode Program 51 Implementasi proses Universe of Discourse
5211 Implementasi proses mean
Pada implementasi proses mean merupakan proses perhitungan nilai rata ndash rata dari setiap faktor yang nantinya hasilnya diperlukan untuk proses perhitungan standar deviasi Berikut merupakan source code dari proses mean yang ditunjukkan pada Kode Program 52 Perhitungan utama proses mean terdapat pada baris 3 ndash 8
Baris Kode
1 2 3 4 5 6 7 8 9
private void mean()
hsl_mean = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double tmp_jmlh = 0
for (int j = 0 j lt jmlh_DataTraining j++)
tmp_jmlh = tmp_jmlh + data[i][j]
hsl_mean[i] = (tmp_jmlh jmlh_DataTraining)
Kode Program 52 Implementasi proses mean
5212 Implementasi proses standar deviasi
Pada implementasi proses perhitungan standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Standar deviasi dapat dilakukan perhitungan setelah mendapat nilai hasil dari perhitungan mean Berikut merupakan source code dari implementasi proses standar deviasi yang ditunjukkan pada Kode Program 53 Perhitungan utama proses standar deviasi terdapat pada baris 3 ndash 9
69
Baris Kode
1 2 3 4 5 6 7 8 9 10 11
private void standar_deviasi()
hsl_stdev = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double result = 0
for (int j = 0 j lt jmlh_DataTraining j++)
result = result + (Mathpow((data[i][j] ndash
hsl_mean[i]) 2))
hsl_stdev[i]=Mathsqrt(result(jmlh_DataTraining-
1))
Kode Program 53 Implementasi proses standar deviasi
5213 Implementasi proses Dmin dan Dmax
Pada implementasi proses Dmin dan Dmax merukan untuk mencari nilai minimum dan nilai maksimum dari data sampel untuk setiap faktor Berikut merupakan source code dari implementasi dari proses Dmin dan Dmax yang ditunjukkan pada Kode Program 54 Pada baris 8 ndash 10 merupakan bagian dari proses untuk untuk menentukan nilai data terbesar Selanjutnya pada baris 11 ndash 13 untuk menentukan nilai data terkecil
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
19
private void Min_dan_Max()
hsl_max = new double[jmlh_Faktor]
hsl_min = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double besar = data[i][0]
double kecil = data[i][0]
for (int j = 0 j lt jmlh_DataTraining j++)
if (data[i][j] gt besar)
besar = data[i][j]
if (data[i][j] lt kecil)
kecil = data[i][j]
hsl_max[i] = besar
hsl_min[i] = kecil
Kode Program 54 Implementasi proses Dmin dan Dmax
522 Implementasi Proses Jumlah Cluster
Pada implementasi proses jumlah cluster merupakan proses perhitungan jumlah cluster dari setiap faktor Implementasi ini dapat dilakukan apabila sudah mendapatkan hasil output dari method Min_dan_Max() sudah didapatkan Berikut merupakan source code dari implementasi proses jumlah cluster yang ditunjukkan pada Kode Program 55 Pada baris 3 ndash 7 untuk digunakan untuk menghitung selisih data sampel setiap baris dari semua faktor pada data sampel ke t dengan t+1 Selanjutnya pada baris 9 ndash 10 untuk menghitung jumlah cluster dari setiap faktor
70
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
private void jumlah_Cluster()
jmlh_Cluster = new int[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double selisih = 0
for (int j = 0 j lt (jmlh_DataTraining - 1) j++)
selisih = selisih + (Mathabs((data[i][j]
- data[i][(j + 1)])))
jmlh_Cluster[i] = (int) Mathround((Mathabs(
hsl_min[i]-hsl_max[i]))(selisih(jmlh_DataTraining
-1)))
Kode Program 55 Implementasi proses jumlah cluster
523 Implementasi Proses Pusat Cluster
Implementasi proses perhitungan pusat cluster ini menggunakan metode fuzzy C-means untuk mendapatkan pusat cluster yang nantinya digunkan sebagai subinterval Implementasi ini memerlukan hasil dari proses method jumlah_Cluster() agar dapat melakukan perhitungan subinterval Berikut merupakan source code dari implementasi proses subinterval yang ditunjukkan pada Kode Program 56 Pada Kode Program 56 hanya menampilkan source code pembentukan subinterval pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 2 ndash 3 merupakan deklarasi variabel bobot iterasi maksimum selisih fungsi objektif awal dan error minimum Pada baris 8 ndash 20 merupakan proses pembentukan matriks partisi dengan nilai random 0 sampai 1 Pada baris 22 ndash 26 merupakan proses normalisasi matriks partisi yang telah terbentuk Pada baris 28 ndash 63 merupakan proses untuk menentukan pusat cluster Pada baris 65 ndash 86 merupakan proses perhitungan fungsi objektif dari iterasi Pada baris 88 ndash 90 merupakan proses perhitungan selisih fungsi objektif Pada baris 92 ndash 108 adalah proses perbaikan matriks partisi Pada baris 110 ndash 115 adalah proses hasil perbaikan matriks partisi Pada baris 116 - 133 adalah proses dengan pengkondisian apakah selisih fungsi objektif lebih kecil dari error minimum serta apabila memenuhi kondisi maka dilanjutkan ke proses pengurutan pusat cluster secara ascending dari hasil iterasi terakhir dan proses pengkondisian iterasi berhenti
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void pusat_cluster()
int bobot = 2int iter_maksimum = 100
double selisih_f_objektif = 0double error_min = 001
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
Pembentukkan matriks partisi
tmp_Matriks1=new
double[jmlh_Cluster[i]][jmlh_DataTraining]
q1 = new double[jmlh_Cluster[i]]
double jmlh_q1
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_q1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
71
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
double random = ThreadLocalRandomcurrent()
nextDouble(01 1)
tmp_Matriks1[j][k] = random
jmlh_q1 = jmlh_q1 + random
q1[j] = jmlh_q1
normalisasi matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k] q1[j]
Perhitungan pusat cluster
for (int iter = 0 iter lt iter_maksimum iter++)
selisih_f_objektif = 0
jumA1 = new double[iter_maksimum][jmlh_Cluster[i]]
jumA2 = new double[iter_maksimum][jmlh_Cluster[i]]
miu_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
XV_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
pusat_cluster1 = new double[jmlh_Cluster[i]]
double hitung_jum1
double hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(tmp_Matriks1
[j][k]bobot)
miu_Matriks1[j][k] = tmp_Matriks1[j][k]
hitung_jum1 = hitung_jum1 + tmp_Matriks1
[j][k]
jumA1[iter][j] = hitung_jum1
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum2 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
data[i][k]
hitung_jum2 = hitung_jum2 +
tmp_Matriks1[j][k]
jumA2[iter][j] = hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
pusat_cluster1[j] = jumA2[iter][j]
jumA1[iter][j]
perhitungan fungsi objektif
jumA3 = new double[iter_maksimum][jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
double hitung_jum3 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow((data[i][k]
ndash pusat_cluster1[j])
bobot)
XV_Matriks1[j][k] = tmp_Matriks1[j][k]
tmp_Matriks1[j][k] = XV_Matriks1[j][k]
miu_Matriks1[j][k]
hitung_jum3 = hitung_jum3 +
tmp_Matriks1[j][k]
jumA3[iter][j] = hitung_jum3
72
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
double jmlh_f_objektif = 0
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_f_objektif = jmlh_f_objektif
+jumA3[iter][j]
if (iter lt (iter_maksimum - 1))
f_objektif1[iter + 1] = jmlh_f_objektif
perhitungan selisih fungsi objektif
selisih_f_objektif = f_objektif1[iter + 1]
-f_objektif1[iter]
perbaikan matriks partisi
int hitung = bobot - 1int pangkat = -1 hitung
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(XV_Matriks1
[j][k] pangkat)
jumA4 = new
double[iter_maksimum][jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
double hitung_jum4 = 0
for (int k = 0 k lt jmlh_Cluster[i] k++)
hitung_jum4 = hitung_jum4 +
tmp_Matriks1[k][j]
jumA4[iter][j] = hitung_jum4
hasil perbaikan matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
jumA4[iter][k]
if (selisih_f_objektif lt error_min)
pengurutan ascending pusat cluster
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 kltjmlh_Cluster[i]k++)
if (k lt (jmlh_Cluster[i] - 1))
if (pusat_cluster1[k] gt
pusat_cluster1[k + 1])
double tmp =
pusat_cluster1[k]
pusat_cluster1[k]=
pusat_cluster1[k+1]
pusat_cluster1[k+1] = tmp
iter = iter_maksimum
Kode Program 56 Implementasi proses pusat cluster
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set
Pada implementasi proses pembentukan suinterval dan fuzzy set memiliki dua proses yaitu proses menentukan batas subinterval minumum serta maksimum dan proses menentukan batas fuzzy set minimum serta maksimum
73
Proses pembentukan fuzzy dapat menjalankan prosesnya setelah method subinterval() telah diakses Berikut merupakan source code proses pembentukan fuzzy set yang ditunjukkan pada Kode Program 57 Pada Kode Program 57 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 6 ndash 29 merupakan proses pembentukan batas minimum dan batas maksimum subinterval Pada baris 31 ndash 54 merupakan pembentukan batas minimum dan batas maksimum fuzzy set
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
private void subinterval_dan_fuzzy_set()
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
batas subinterval
batas_subintervalMinA = new double[jmlh_Cluster[i]]
batas_subintervalMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_subintervalMinA[j] = hsl_uMin[i]
batas_subintervalMaxA[j]=(pusat_cluster1[j]
+pusat_cluster1[j+
1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1] +pusat_cluster1
[j])2
batas_subintervalMaxA[j]=
hsl_uMax[i]
else if ((0 lt j) ampamp (j lt (jmlh_Cluster[i] -
1)))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1]+
pusat_cluster1[j])2
batas_subintervalMaxA[j]=
(pusat_cluster1[j]+
pusat_cluster1[j+1)2
batas fuzzy set
batas_fuzzysetMinA = new double[jmlh_Cluster[i]]
batas_fuzzysetMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_fuzzysetMinA[j]=
batas_subintervalMinA[j]
batas_fuzzysetMaxA[j]=
(batas_subintervalMinA[j+1]
+batas_subintervalMaxA[j + 1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]
+batas_subintervalMaxA[j - 1])2
batas_fuzzysetMaxA[j] =
batas_subintervalMaxA[j]
else if ((0 lt j) ampamp (jlt(jmlh_Cluster[i]-1)))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]+
batas_subintervalMaxA[j-1])2
batas_fuzzysetMaxA[j]=
74
51
52
53
54
55
56
(batas_subintervalMinA[j+1]+
batas_subintervalMaxA[j + 1])2
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set
525 Implementasi proses fuzzifikasi
Pada Implementasi proses fuzzifikasi memiliki dua proses utama yaitu menentukan derajat keanggotaan dan proses fuzzifikasi Dalam proses ini method fuzzy_set() harus dieksekusi terlebih dahulu karena implementasi proses ini memerlukan output dari method tersebut Berikut merupakan source code fuzzifikasi ditunjukkan pada Kode Program 58 Pada Kode Program 58 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 3 ndash 81 merupakan proses perhitungan derajat keanggotaan Pada baris 83 ndash 94 adalah proses penentuan fuzzifikasi
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
private void fuzzifikasi()
if (i == 0)
hitung_fuzzifikasiA = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
if(j == 0)
if((data[i][k]gtbatas_fuzzysetMinA[j])ampamp
(data[i][k]lt batas_fuzzysetMinA[j + 1]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA[j + 1])
ampamp (data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j] - data[i][k])
(batas_fuzzysetMaxA[j] ndash
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j]) ampamp
(data[i][k] lt batas_fuzzysetMinA[j + 1])
ampamp(data[i][k] gt batas_fuzzysetMinA[j+1])
ampamp(data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
else if (j == (jmlh_Cluster[i] - 1))
if((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
(batas_fuzzysetMaxA[(jmlh_Cluster[i]ndash
2)]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
if((data[i][k] gt batas_fuzzysetMaxA
75
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
[(jmlh_Cluster[i]- 2)]) ampamp (data[i][k]
lt batas_fuzzysetMaxA[(jmlh_Cluster[i]
- 1)]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] gt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 1)]))
hitung_fuzzifikasiA[j][k] = 0
else if ((0 lt j)ampamp(j lt (jmlh_Cluster[i] - 1)))
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA[j
+1]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA[j])
(batas_fuzzysetMinA[j + 1]-
batas_fuzzysetMinA[j])
if ((data[i][k] gt batas_fuzzysetMinA
[j+1])ampamp (data[i][k] lt
batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j]-data[i][k])
(batas_fuzzysetMaxA[j]-
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA
[j + 1]) ampamp (data[i][k] gt
batas_fuzzysetMinA[j + 1]) ampamp
(data[i][k]ltbatas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
hasil_fuzzifikasiA = new int[jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
int cluster = 0
double besar=hitung_fuzzifikasiA[0][j]
for (int k = 0 k lt jmlh_Cluster[i] k++)
if (besar lt hitung_fuzzifikasiA[k][j])
besar = hitung_fuzzifikasiA[k][j]
cluster = k
hasil_fuzzifikasiA[j] = cluster + 1
Kode Program 58 Implementasi proses fuzzifikasi
526 Implementasi Pembentukan Fuzzy Logical Relationship
Pada implementasi pembentukan Fuzzy Logical Relationship (FLR) memiliki dua output yaitu FLR_kiri dan FLR_kanan Dimana FLR_kiri berisi group dari kelima faktor dan pada FLR_kanan merupakan dari faktor yang akan diramalkan yaitu
76
faktor curah hujan (A) Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code pembentukan Fuzzy Logical Relationship (FLR) dapat ditunjukkan pada Kode Program 59 berikut Pada baris 3 ndash 14 merupakan deklarasi variabel Pada baris 15 ndash 55 adalah proses pembentukan fuzzy logical relationship data training Pada baris 56 ndash 58 merupakan deklarasi variabel Pada baris 59 ndash 86 adalah proses pembentukan fuzzy logical relationship data testing
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Fuzzy Logical Relationship
private void fuzzy_logical_relationship()
String input_order = fieldOrdergetText()
order = IntegerparseInt(input_order)
int max_inc = order
String input_dataTraining = fieldDatatraininggetText()
int dataTraining = IntegervalueOf(input_dataTraining)
int tmp_jmlhDatatraining = 0
int tmp_order = 0
int jmlh_dataTraining = dataTraining - order
String input_dataTesting = fieldDatatestinggetText()
int jmlh_dataTesting = IntegervalueOf(input_dataTesting)
FLR_kiri_training = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_training = new int[jmlh_DataTraining]
for (int i = 0 i lt jmlh_dataTraining i++)
for (int j = i j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (j == 0)
if (k == 0)
FLR_kiri_training[i][j][k]=
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiD[j]
else if (j = 0)
if (k == 0)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiD[j]
tmp_order = j
FLR_kanan_training[i] = hasil_fuzzifikasiA[(i + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
77
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
tmp_jmlhDatatraining = i
FLR_kiri_testing = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_testing = new int[(jmlh_DataTraining)]
tmp_jmlhDatatraining = tmp_jmlhDatatraining + 1
for (int i = 0 i lt jmlh_dataTesting i++)
for (int j = tmp_jmlhDatatraining j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (k == 0)
FLR_kiri_testing[i][j - tmp_jmlhDatatraining][k]
= hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiD[j]
FLR_kanan_testing[i] =
hasil_fuzzifikasiA[(tmp_jmlhDatatraining + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
tmp_jmlhDatatraining++
Kode Program 59 Implementasi pembentukan FLR
527 Implementasi Proses Defuzzifikasi
Pada implementasi proses defuzzifikasi merupakan proses dimana menentukan hasil peramalan dari data testing berdasarkan dari bilangan fuzzy yang terbentuk Implementasi ini memiliki beberapa inputan penting yaitu data training data testing order dan konstanta Inputan tersebut sangat berperan penting dalam proses implementasi defuzzifikasi Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code defuzzifikasi dapat ditunjukkan pada Kode Program 510 berikut Pada baris 2 ndash 11 merupakan deklarasi variabel Pada baris 13 ndash 37 merupakan proses perhitungan selisih antara data training dengan data testing Pada baris 40 ndash 47 menghitung jumlah FLR yang cocok Pada baris 49 ndash 65 merupakan proses mencocokan FLR kiri yang cocok dengan FLR kanan Pada baris 67 ndash 81 merupakan proses menghitung jumlah frekuensi FLR kanan yang cocok Pada baris 83 ndash 91 adalah proses perhitungan hasil peramalan
Baris Kode 1
2
3
4
private void defuzifikasi()
String input_dataTraining = fieldDatatraininggetText()
String input_dataTesting = fieldDatatestinggetText()
String input_konstanta = fieldKonstantagetText()
78
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
int dataTraining = IntegervalueOf(input_dataTraining)
int dataTesting = IntegervalueOf(input_dataTesting)
int konstanta = IntegervalueOf(input_konstanta)
int match[][]
match = new int[dataTesting][2000]
int threshold = (jmlh_Faktor order) + konstanta
int hitung_selisih = 0
perhitungan selisih
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
hitung_selisih = 0
for (int k = 0 k lt order k++)
for (int l = 0 l lt jmlh_Faktor l++)
if (i == 0)
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
else if (i gt 0)
FLR_kiri_training[(dataTraining-
1)+i][k][l] = FLR_kiri_testing[i-
1][k][l]
FLR_kanan_training[(dataTraining-1)+i]
= FLR_kanan_testing[i-1]
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
if (hitung_selisih lt threshold)
match[i][j] = hitung_selisih
menghitung jumlah total FLR yang cocok untuk setiap data
testing
int countGroup[] = new int[dataTesting]
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
countGroup[i]++
mencocokan FLR_kiri yang cocok dengan FLR_kanan
group = new int[dataTesting][2000]
for (int i = 0 i lt dataTesting i++)
int tmp_count = 0
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
if (tmp_count lt countGroup[i])
group[i][tmp_count] = j
tmp_count++
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt countGroup[i] j++)
group[i][j] = FLR_kanan[group[i][j]]
mengelompokkan yang sama
MapltInteger Integergt map = new HashMapltInteger Integergt()
hasil_peramalan = new double[dataTesting]
for (int i = 0 i lt dataTesting i++)
79
70
71
72
73
74
75 76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
double peramalan = 0
mapclear()
for (int j = 0 j lt countGroup[i] j++)
int key = group[i][j]
if (mapcontainsKey(key))
int occurrence = mapget(key)
occurrence++
mapput(key occurrence)
else
mapput(key 1)
menghitung hasil peramlaan
Iterator iterator = mapkeySet()iterator()
while (iteratorhasNext())
int key = (Integer) iteratornext()
int occurrence = mapget(key)
peramalan = (peramalan + (pusat_cluster1[(key - 1)]
occurrence))
hasil_peramalan[i] = (peramalan countGroup[i])
Kode Program 510 Implementasi proses defuzzifikasi
53 Implementasi Antarmuka
Pada implementasi antarmuka dijelaskan beberapa halaman antarmuka untuk penggunaan dari program hasil implementasi Implementasi antarmuka berdasarkan perancangan yang telah dijelasakan pada bab sebelumnya yaitu bab perancangan Halaman antarmuka yang dibuat adalah halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
531 Implementasi antarmuka halaman input
Halaman input merupakan halaman yang pertama muncul setelah program dijalankan Pada halaman input ini terdapat beberapa inputan yang harus di masukkan yaitu data input data training data testing order dan konstanta Selain itu pada halaman input juga terdapat tiga button yaitu button browse data button fuzzification dan button forecasting Berikut tampilan antarmuka halaman input yang ditunjukkan pada Gambar 51
Gambar 51 Implementasi antarmuka halaman input
80
532 Implementasi antarmuka halaman tampil data
Halaman tampil data merupakan halaman yang tampil setelah melakukan input data Halaman ini berisi tabel yang menampilkan data curah hujan suhu kecepatan angin dan kelembaban Berikut tampilan antarmuka halaman tampil data yang ditunjukkan pada Gambar 52
533 Implementasi antarmuka halaman proses
Halaman proses merupakan halaman yang muncul setelah button fuzzification telah dieksekusi Halaman proses ini terdiri dari tiga bagian atau tab yaitu clustering fuzzification dan Fuzzy logical relationship Pada halaman antarmuka clustering menampilkan Universe of Discourse dan jumlah cluster pada masing ndash masing faktor Berikut merupakan tampilan antarmuka halaman proses bagian clustering yang ditunjukkan pada Gambar 53
Gambar 52 Implementasi antarmuka halaman tampil data
Gambar 53 Implementasi antarmuka halaman proses clustering
81
Pada tab selanjutnya yaitu pada tab fuzzification tab ini menampilkan hasil proses fuzzifikasi Pada halaman ini menampilkan tabel yang berisi hasil fuzzifikasi dari setiap faktor Berikut merupakan tampilan antarmuka halaman proses bagian fuzzification yang ditunjukkan pada Gambar 54
Pada tab Fuzzy Logical Relationship menampilakn hasil dari proses pembentukan Fuzzy Logical Relationship Tampilan pada halaman ini menampilkan berupa textarea yang berisi dari output proses tersebut Berikut merupakan tampilan antarmuka halaman proses bagian Fuzzy Logical Relationship yang ditunjukkan pada Gambar 55
Gambar 54 Implementasi antarmuka halaman proses fuzzification
Gambar 55 Implementasi halaman antarmuka proses FLR
82
534 Implementasi antarmuka halaman hasil
Pada implementasi antarmuka halaman hasil ini merupakan halaman yang menampilkan hasil dari proses defuzzifikasi Halaman hasil ini menampilkan tabel yang berisi data aktual dan data dari hasil peramlan Berikut merupakan tampilan antarmuka halaman hasil yang ditunjukkan pada Gambar 56
535 Implementasi antarmuka halaman perhitungan error
Pada implementasi antarmuka halaman perhitungan error merupakan halaman yang menampilkan hasil dari proses perhitungan Mean Square Error (MSE) Pada halaman antarmuka ini menampilkan hasil error MSE pada textfield Berikut merupakan tampilan antarmuka halaman perhitungan error yang ditunjukkan pada Gambar 57
Gambar 56 Implementasi halaman antarmuka hasil
Gambar 57 Implementasi halaman antarmuka perhitungan error
83
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini membahas hasil pengujian dan analisis hasil pengujian dari hasil implementasi metode High Order Fuzzy Time Series Multi factors untuk peramalan curah hujan dasarian Pada pengujian ini disesuaikan dengan perancangan pengujian pada bab 4
61 Sistematika Pengujian
Pada bab sebelumnya yaitu bab 4 mengenai perancangan telah dibahas perancangan pengujian dikatakan bahwa pengujian akan dilakukan sebanyak empat pengujian Pengujian order pengujian threshold pengujian jumlah data training dan pengujian validasi sistem Dari semua pengujian tersebut akan di uji dan di analisis bagaimana pengaruhnya terhadap hasil perhitungan Mean Square Error (MSE)
62 Hasil dan Analisis Pembahasan
Berikut hasil pengujian dan analisis yang disesuaikan dengan perancangan pengujian pada bab sebelumnya
621 Pengujian pengaruh order terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh order terhadap nilai MSE Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Jadi jika nilai order adalah 3 maka peramalan akan melibatkan 3 data sebelumnya pada proses pembentukan Fuzzy Logical Relationship (FLR) Pada pengujian ini hanya nilai order yang diubah ndash ubah sedangkan variabel lain akan dibuat tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 konstanta adalah 10 Nilai threshold diperoleh dari perhitungan jumlah faktor dikali order dan dijumlah nilai konstanta Berikut adalah hasil pengujian pengaruh order terhadap nilai MSE yang ditunjukkan pada Tabel 61
Tabel 61 Hasil pengujian order terhadap nilai MSE
No Order Threshold MSE
1 3 22 808585
2 6 34 965547
3 9 46 912631
4 12 58 875884
5 15 70 719284
6 18 82 6801207
7 21 94 5637184
8 24 106 5444184
9 27 118 5433631
10 30 130 5418393
84
Dari hasil pengujian order seperti yang telah ditunjukkan pada Tabel 61 maka pada percobaan pertama dengan order = 3 dan threshold 22 dapat diperoleh MSE sebesar 808585 Selanjutnya pada percobaan kedua dengan order = 6 dan threshold = 34 diperoleh MSE sebesar 965547 Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 61
Berdasarkan Gambar 61 order yang berbeda - beda mempengaruhi besar nilai MSE Dalam penelitian ini menentukan order memiliki ketentuan yaitu nilai order harus lebih dari 0 dan batas maksimal order adalah setengah dari nilai data training (LinYang 2009) Nilai MSE terbesar yang ditunjukkan pada pengujian ini adalah 965547 pada pengujian order 6 dan nilai MSE terkecil adalah 5418393 pada pengujian order 30 Pada Gambar 61 menunjukkan bahwa pada order 3 ke order 6 mengalami peningkatan nilai MSE selanjutnya pada order 6 hingga order 30 mengalami penurunan Pada order 3 memiliki nilai MSE lebih kecil dari order 6 order 9 dan order 12 karena memiliki lebih banyak hasil selisih tingkat kecocokan data time series yang tidak terlalu besar dan kurang dari threshold Selain itu karena data time series dari data sampel yang diperoleh memiliki pola data musiman dimana perubahan pola data dasarian tidak terlalu banyak berubah dari tahun ke tahun Selanjutnya pada order 6 hingga order 30 menunjukkan penurunan nilai MSE dan order terbesar memiliki nilai MSE terkecil sehingga dapat disumpulkan bahwa semakin besar order maka semakin kecil pula nilai MSE Dalam hal ini dengan semakin besarnya order maka data sebelumnya yang digunakan untuk pertimbangan dalam menentukan peramalan semakin banyak Sehingga semakin besar nilai order maka dapat membuat peramalan semakin akurat Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin besar nilai order maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE
85
622 Pengujian pengaruh threshold terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh threshold terhadap nilai MSE Threshold merupakan hasil dari mengalikan jumlah order dengan jumlah faktor pada data kemudian dijumlahkan dengan dengan nilai konstanta Pada proses defuzzifikasi terdapat proses menghitung selisih antara pangkat bawah Fuzzy Logical Relationship (FLR) data training dan pangkat bawah FLR data testing Selanjutnya setelah mendapatkan nilai selisih maka nilai selisih tersebut dibandingkan dengan nilai threshold untuk mencari FLR yang cocok Pada pengujian ini nilai konstanta saja yang diubah ndash ubah sementara variabel lainnya tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 dan Nilai order adalah 30 Pada penentuan input konstanta nilai minimal harus lebih besar dari 0 dan nilai maksimal menyesuaikan data sampel yang digunakan (LinYang 2009) Berikut adalah hasil pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 62
Tabel 62 Hasil pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1 10 130 558485
2 20 140 577498
3 30 150 597364
4 40 160 604660
5 50 170 646951
6 60 180 680257
7 70 190 703013
8 80 200 741484
9 90 210 756749
10 100 220 780600
Dari hasil pengujian threshold seperti yang telah ditunjukkan pada Tabel 62 maka dapat dilihat bahwa konstanta yang dilakukan pengujian dimulai dengan nilai 10 sampai 100 Hasil yang didapat pada percobaan pertama dengan konstanta = 10 dan threshold 130 diperoleh MSE sebesar 558485 Selanjutnya pada percobaan kedua dengan konstanta = 20 dan threshold = 140 diperoleh MSE sebesar 577498 Selanjutnya dapat kita lihat pada percobaan yang telah dilakukan dari percobaan pertama hingga percobaan kesepuluh nilai MSE yang diperoleh mengalami perubahan pada setiap percobaan Dapat dilihat bahwa peningkatan MSE lebih dominan menunjukkan peningkatan sehingga dalam hal ini semakin besar nilai konstanta dan threshold maka semakin besar pula nilai MSE yang diperoleh Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 62
86
Berdasarkan grafik dari Gambar 62 nilai input konstanta yang berbeda - beda mempengaruhi besar nilai MSE semakin besar nilai konstanta maka nilai threshold juga semakin besar karena threshold diperoleh dari perhitungan order dikali jumlah faktor dan selanjutnya dijumlah dengan nilai konstanta Dalam hal ini dengan semakin besar nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR juga semakin luas batasannya dan jika semakin kecil nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR menjadi semakin sempit dan mempermudah proses peramalan karena hanya adanya sedikit data yang cocok dengan data yang akan diramalkan dan mempermudah proses defuzzifikasi Oleh karena itu semakin kecil threshold maka dapat membuat peramalan semakin akurat Akan tetapi nilai threshold tidak boleh terlalu kecil karena dapat menyebabkan kegagalan peramalan Kegagalan peramalan itu terjadi karena tidak adanya data training yang cocok dengan data testing karena pada metode yang digunakan pada penelitian ini sangat bergantung pada data ndash data sebelumnya Dari hasil percobaan diatas hasil MSE terbesar adalah 7806 yaitu pada konstanta 100 serta threshold 220 dan hasil MSE terkecil adalah 558485 yaitu pada konstanta 10 dan threshold 130 Dalam pengujian ini memiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin kecil nilai konstanta maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
623 Pengujian pengaruh jumlah data training terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh jumlah data training terhadap nilai MSE Pada pengujian ini jumlah data training adalah data dasarian yaitu 1 tahun 2 tahun 3 tahun 4 tahun dan 5 tahun dimana dari setiap 1 tahun memiliki 36 data dasarian Pengujian ini akan dilakukan sebanyak lima kali Pada pengujian ini jumlah data testing adalah 36 nilai order adalah setengah dari
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE
87
nilai data training nilai konstanta adalah 20 Berikut adalah hasil pengujian pengaruh jumlah data training terhadap nilai MSE yang ditunjukkan pada Tabel 63
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1 36 786586
2 72 634527
3 108 627190
4 144 614184
5 180 539698
Dari hasil pengujian jumlah data training seperti yang telah ditunjukkan pada Tabel 63 maka pada percobaan pertama dengan data training = 36 dapat diperoleh MSE sebesar 786586 Selanjutnya pada percobaan kedua dengan data training = 72 diperoleh MSE sebesar 634527 Dalam hal ini dari percobaan satu dan dua nilai MSE mengalami penurunan Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 63
Berdasarkan dari Gambar 63 pengujian pertama sampai pengujian kelima mengalami penerunan nilai MSE Sehingga dapat disimpulkan bahwa semakin besar data training maka semakin kecil nilai MSE yang diperoleh Nilai MSE semakin kecil apabila menggunakan data training dalam jumlah besar karena data yang digunakan memiliki rentang jauh dari periode data testing atau data yang akan diramalkan Sedangkan data training yang sedikit memiliki nilai MSE yang besar karena data training yang memiliki kecocokan dengan data testing berada pada periode yang jauh dengan data testing sehingga nilai MSE menjadi tinggi Dalam hal ini terbukti bahwa metode yang digunakan pada penelitian ini memerlukan jumlah data training yang banyak sehingga dapat menurunkan nilai kesalahannya Dari hasil percobaan diatas hasil MSE terbesar adalah 786586 dan
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE
88
hasil MSE terkecil adalah 539698 Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoPeramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Seriesrdquo yang menyatakan bahwa semakin besar jumlah data training maka semakin kecil nilai kesalahannya (Elfajar et al 2017)
624 Pengujian validasi sistem
Pada pengujian ini dilakukan untuk mengetahui kestabilan dari sistem dengan menggunakan order threshold terbaik dari pengujian sebelumnya Pada pengujian ini akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai data training menggunakan 36 data yang berbeda agar dapat menunjukkan gambaran variasi dari nilai kesalahan MSE pada peramalan nilai order adalah 18 dan konstanta adalah 10 sehingga nilai threshold adalah 92 Berikut adalah hasil pengujian validasi sistem yang ditunjukkan pada Tabel 64
Tabel 64 Hasil pengujian validasi sistem
Percobaan ke- MSE
1 714290
2 703856
3 732564
4 732815
5 6973958
6 7532825
7 741726
8 760457
9 709961
10 6256204
Dari hasil pengujian validasi sistem seperti yang telah ditunjukkan pada Tabel 64 maka dapat digambarkan dengan grafik yang ditunjukkan oleh Gambar 64
Gambar 64 Grafik hasil pengujian validasi sistem
89
Berdasarkan dari gambar grafik Gambar 64 bahwa pengujian dari validasi sistem memiliki hasil MSE yang tidak terlalu jauh berbeda dari penggunaan data yang berbeda - beda Oleh karena itu dapat disimpulkan bahwa implementasi dari metode High Order Fuzzy Time Series Multi Factors yang telah digunakan sudah cukup baik untuk digunakan peramalan
Berdasarkan dari pengujian yang dilakukan diatas dapat diketahui bahwa nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun 2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016 Nilai order adalah 90 dan konstanta adalah 10 Berikut adalah perbandingan data aktual dengan hasil peramalan yang ditunjukkan pada grafik Gambar 65
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan
90
BAB 7 PENUTUP
Pada bab ini terdiri dari dua sub bab yaitu kesimpulan dan saran Kesimpulan adalah tahapan yang berisi hasil penelitian yang dilakukan dan jawaban semua rumusan masalah yang sudah ditetapkan sebelumnya dan saran adalah tahapan yang berisi hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
71 Kesimpulan
Pada kesimpulan ini mengacu pada penelitian yang telah dilakukan yang meliputi perancangan implementasi serta pengujian dan analisis terhadap hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diambil kesimpulan sebagai berikut
1 Berdasarkan dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam melakukan peramalan curah hujan dasarian dilakukan dengan beberapa langkah yaitu langkah pertama perhitungan Universe of Discourse yang terdiri perhitungan mean standar deviasi dan perhitungan Dmin serta Dmax langkah kedua yaitu perhitungan jumlah cluster langkah ketiga yaitu perhitungan pusat cluster langkah keempat yaitu pembentukan subinterval dan fuzzy set langkah kelima yaitu proses fuzzifikasi langkah keenam yaitu pembentukan Fuzzy Logical Relationship(FLR) langkah ketujuh adalah defuzzifikasi yang hasil outputnya merupakan hasil peramalan curah hujan
2 Berdasarkan dari pengujian peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diketahui bahwa
a Order berpengaruh terhadap nilai error semakin besar nilai order maka hasil peramalan semakin baik
b Threshold berpengaruh terhadap nilai error semakin rendah nilai threshold maka hasil peramalan semakin baik Akan tetapi nilai threshold tidak boleh terlalu rendah karena dapat menyebabkan kegagalan peramalan
c Data training berpengaruh terhadap nilai error semakin besar jumlah data training maka hasil peramalan semakin baik Sehingga peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors memerlukan banyak data training
d Hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors cukup baik digunakan untuk peramalan Hal ini terbukti hasil pengujian validasi sistem menunjukkan grafik yang cukup stabil
Dari pengujian yang telah dilakukan nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun
91
2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016
72 Saran
Pada penelitian ini dilakukan peramalan curah hujan dasarian dengan faktor yang mempengaruhi adalah suhu kelembaban dan kecapatan angin Saran penulis diharapkan untuk penelitian selanjutnya melakukan penambahan faktor yang mempengaruhi curah hujan atau melakukan peramalan objek lain dengan mempertimbangkan faktor ndash faktor yang mempengaruhinya Serta diharapkan pada penelitian selanjutnya untuk menambahkan data yang lebih banyak serta bervariatif sehingga nilai hasil perhitungan akurasi peramalan yang dihasilkan dalam penelitian dapat meningkat Penggunaan data training yang banyak dan bervariatif dapat membuat pola data semakin terlihat sehingga hasil peramalan yang dihasilkan memiliki akurasi yang lebih baik
92
DAFTAR PUSTAKA
Ardiyanto 2016 ldquoTerendam Air Petani Lamongan Terpaksa Panen Dinirdquo Times Indonesia November 18 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
Badan Penelitian dan Pengembangan Pertanian Kementrian Pertanian 2015 ldquoKalender Tanam Terpadu Versi 25 Kota Malang Prov Jawa Timurrdquo httpkatamlitbangpertaniangoidkatam_terpadu2016mh33535733573_tinggipdf (Diakses 25 Februari 2017)
Bagirov M Adil Mahmood Arshad and Barton Andrew 2017 Prediction of monthly rainfall in Victoria Australia Clusterwise linear regression approach Elsevier Atmos Research 188 20-29
BMKG Staklim Karangploso Malang 2015 ldquoAnalisis Dinamika Atmosfer Dan Laut Dasarian III Maret 2015 Update 2 April 2015rdquo httpkarangplosojatimbmkgogoidindexphpanalisis-kondisi-dinamika-atmosfer-laut-dasarian-tahun-2015399-analisis-dinamika-atmosfer-dan-laut-dasarian-iii-maret-2015-update-2-april-2015axzz3X8h9y4fgampgsctab=0 (Diakses 25 Februari 2017)
BPS Kabupaten Malang 2016 ldquoKabupaten Malang Dalam Angka 2016rdquo httpsmalangkabbpsgoidwebsitepdf_publikasiKabupaten-Malang-Dalam-Angka-2016pdf (Diakses 25 Februari 2017)
BPS Jawa Timur 2015 ldquoJawa Timur Dalam Angka 2015rdquo httpsjatimbpsgoid4dmnpdf_publikasiJawa-Timur-Dalam-Angka-2015pdf (Diakses 25 Februari 2017)
Buffa S Elwood Rakesh and Sarin K 1996 Modern Production and Operation Management Eight Edition John Willey and Sons Inc London
Chen M 1996 Forecasting Enrollments based on Fuzzy Time Series Fuzzy Sets and Systems 311-319
Dewi Candra Kartikasari Dani Mursityo Yusi 2014 Prediksi Cuaca Pada Data Time Series Menggunakan Adaptive Neuro Fuzzy Inference System (ANFIS) Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK) Vol 1 No 1 hlm 18-24
Dewi Candra Muslikh M 2013 Perbandingan Akurasi Backpropagation Neural Network dan ANFIS Untuk Memprediksi Cuaca NATURAL-A Journal of Scientific Modeling amp Computation Volume 1 No1
Elfajar Aria Setiawan Budi Dewi Candra 2017 Peramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Series Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer Vol 1 No 2 Hlmn 85-94
93
Fauziah Normalita Wahyuningsih Sri dan Nasution Yuki 2016 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) Vol4 Statistika
Forest Mahyu 2015 ldquoDefenisi amp Pengertian Kelembabanrdquo httpilmupengetahuaalamblogspotcoid201506defenisi-pengertian-kelembabanhtml (Diakses 25 Februari 2017)
Irsyad Muhammad Metarice Sonya 2013 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan Jurnal Sains dan Teknologi Industri Vol 10 No 02
Klawon F 2001 What is About Fuzzy Clustering Understanding and Improving the Concept of the Fuzzier Science Journal httppublic-rzfh-wolfebuetteldeklawon
Kurniawan Carlos 2007 Analisis dan Perancangan Program Aplikasi Peramalan Curah Hujan dengan Metode Wavelet (Studi Kasus BMKG)
Kusumadewi S 2003 ldquoArtificial Intelegence (Teknik amp Aplikasinya)rdquo Graha Ilmu Yogyakarta
Kusumadewi S Purnomo H 2004 ldquoAplikasi Logika Fuzzy untuk Pendukung Keputusanrdquo Graha Ilmu Yogyakarta
Kusumadewi Sri 2002 Analisis amp Desain Sistem Fuzzy Tollbox MATLAB Graha Ilmu Yogyakarta
Lin Yupei Yang Y 2009 Stock Markets Forecasting Based on Fuzzy Time Series Model IEEE Conference Publications 782-886
Makridakis S Steven C Wheelwright Victor E and Gee MC 1999 Metode dan Aplikasi Peramalan Jilid I Edisi Kedua Jakarta Binarupa Aksara
Mirawati T Yasin H and Rusgiyono A 2013 Prediksi Curah Hujan dengan Metode Kalman Filter(Studi Kasus di Kota Semarang 2012) Jurnal Gaussian 2(3) pp 239-248
Pradipta Nur Sembiring Pasukat Bangun Pengarapen 2013 Analisis Pengaruh Curah Hujan di Kota Medan Saintia Matematika Vol 1
Sipayung Putri Metha 2013 Pemodelan Hubungan Kelembapan Udara terhadap Curah Hujan (Studi Kasus Curah Hujan Periode 2001-2009 pada Stasiun Dramaga) httprepositoryipbacidhandle12345678960623 (Diakses 25 Februari 2017)
User 2015 httpstaklimnegaranet[Online] Available at httpwwwstaklimnegaranetindexphpbuletin-hujanpengertian-istilah (Diakses 25 Februari 2017)
Wang Nai-Yi Chen Shyi-Ming 2009 Temperature prediction and TAIFEX forecasting based on automatic clustering techniques and two-factors high-order fuzzy time series Elsevier Expert Systems with Applications 36 2143ndash2154
94
Wardhani Dessy Ratnawati Dian Setiawan Budi 2015 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Saham Repositori Jurnal Mahasiswa PTIIK UB Doro Jurnal Vol 6 No 6
Wiyanti T and Pulungan R 2012 Peramalan Deret Waktu Menggunakan Model Fungsi Basis Radial (RBF) dan Auto Regressive Integrated Moving Average (ARIMA) Jurnal MIPA 35(2) pp 175-182
Yunanto Utomo 2014 ldquoBMKG Akui Prakiraan Cuacanya Masih Kurang Akuratrdquo Kompas Sains Januari 30 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
iii
PERNYATAAN ORISINALITAS
Saya menyatakan dengan sebenar-benarnya bahwa sepanjang pengetahuan saya di dalam naskah skripsi ini tidak terdapat karya ilmiah yang pernah diajukan oleh orang lain untuk memperoleh gelar akademik di suatu perguruan tinggi dan tidak terdapat karya atau pendapat yang pernah ditulis atau diterbitkan oleh orang lain kecuali yang secara tertulis disitasi dalam naskah ini dan disebutkan dalam daftar pustaka
Apabila ternyata didalam naskah skripsi ini dapat dibuktikan terdapat unsur-unsur plagiasi saya bersedia skripsi ini digugurkan dan gelar akademik yang telah saya peroleh (sarjana) dibatalkan serta diproses sesuai dengan peraturan perundang-undangan yang berlaku (UU No 20 Tahun 2003 Pasal 25 ayat 2 dan Pasal 70)
Malang 10 Agustus 2017
Ahmada Bastomi Wijaya
135150301111033
iv
KATA PENGANTAR
Puji syukur penulis panjatkan kepada Allah SWT yang telah memberikan rahmat dan hidayah-Nya kepada penulis sehingga penulis dapat menyelesaikan skripsi dengan judul ldquoPeramalan Curah Hujan Menggunakan Metode High Order Fuzzy Time Series Multi Factorsrdquo
Melalui kesempatan ini penulis ingin menyampaikan terima kasih kepada semua pihak yang telah memberikan bantuan serta dukungan kepada penulis dalam menyelesaikan skripsi ini diantaranya
1 Kedua orang tua penulis Bapak Wahyudi Rianto amp Ibu Sugihartiwi yang selalu memberikan dorsquoa kasih sayang dan semangat kepada penulis
2 Ibu Candra Dewi SKom MSc selaku dosen pembimbing I yang telah memberikan ilmu serta saran selama proses pengerjaan skripsi ini
3 Bapak Bayu Rahayudi ST MT selaku dosen pembimbing II yang juga telah memberikan ilmu serta saran selama proses pengerjaan skripsi ini
4 Ibu Hurriyatul Fitriyah ST MSc selaku dosen penasihat akademik yang telah memberikan banyak kritik dan saran selama proses perkuliahan
5 Bapak Wayan Firdaus Mahmudy S Si MT PhD selaku Dekan Fakultas Ilmu Komputer Universitas Brawijaya
6 Bapak Tri Astoto Kurniawan ST MT PhD selaku Ketua Jurusan Teknik Informatika Fakultas Ilmu Komputer Universitas Brawijaya
7 Bapak Agus Wahyu Widodo ST MCs selaku Ketua Program Studi Teknik Informatika Fakultas Ilmu Komputer Universitas Brawijaya
8 Semua teman FILKOM khususnya angkatan 2013 yang telah memberikan bantuan serta dukungan selama masa perkuliahan dan pengerjaan skripsi
9 Semua pihak yang tidak dapat disebutkan satu persatu yang terlibat baik secara langsung mapun tidak langsung yang telah membantu penulis dalam menyelesaikan skripsi ini
Penulis menyadari bahwa skripsi ini masih banyak kekurangan sehingga penulis dengan terbuka menerima kritik serta saran yang membangun Akhir kata penulis berharap skripsi ini dapat bermanfaat dan berguna bagi semua pihak yang menggunakannya
Malang 10 Agustus 2017
Penulis
ahmadabastomigmailcom
v
ABSTRAK
Kabupaten Malang merupakan salah satu kabupaten di Jawa Timur yang memiliki tingkat produksi pertanian yang cukup tinggi dimana hampir disetiap kecamatanya memiliki lahan pertanian Permasalahannya adalah pada saat curah hujan yang tinggi tidak sedikit petani yang mengalami gagal panen Curah hujan adalah salah satu dari beberapa faktor yang mempengaruhi perubahan iklim sehingga sangat menentukan hasil panen yang diperoleh Permasalahan gagal panen ini dapat diatasi dengan melakukan peramalan curah hujan dengan adanya peramalan curah hujan petani dapat menentukan waktu pola tanam yang sesuai sehingga dapat mengantisipasi terjadinya gagal panen Pada penelitian ini peramalan curah hujan dalam dasarian berdasarkan beberapa faktor yaitu suhu kelembaban dan kecepatan angin Metode yang digunakan untuk peramalan curah hujan dasarian adalah High Order Fuzzy Time Series Multi factors Pada metode ini pembentukan subinterval dilakukan dengan menggunakan fuzzy C-means Dalam menghitung kesalahan hasil peramalan menggunakan Mean Square Error (MSE) Berdasarkan hasil pengujian yang dilakukan semakin kecil threshold serta semakin besar data training dan order maka nilai kesalahan yang diperoleh semakin rendah Hasil peramalan curah hujan dasarian untuk peramalan satu tahun kedepan menggunakan metode ini mendapatkan hasil MSE terbaik sebesar 539698
Kata kunci curah hujan fuzzy C-means fuzzy time series peramalan
vi
ABSTRACT
Malang Regency is one of the regencies in East Java which has a high level of agricultural production in almost every district has agricultural land The problem is when high rainfall is not a few farmers who experienced crop failure Rainfall is one of several factors that affect climate change so it is very important to determine the yields obtained The problem of this harvest failure can be overcome by forecasting rainfall with rainfall forecasting farmers can determine the time of the appropriate cropping patterns so as to anticipate the occurrence of crop failure On the research of forecasting rainfall in dasarian based on several factors namely temperature humidity and wind speed The methods used for forecasting rainfall dasarian is a High-Order Fuzzy Time Series Multi factors In this method the formation of subinterval using fuzzy C-means In calculating the error of forecasting result using Mean Square Error (MSE) Based on the results of tests conducted the smaller threshold and the greater data training as well order the value error is obtained increasingly low The result of forecasting dasarian rainfall for forecasting one year ahead using this method get the best MSE result of 539698 Keywords rain fall fuzzy C-means fuzzy time series forecasting
vii
DAFTAR ISI
PENGESAHAN ii
PERNYATAAN ORISINALITAS iii
KATA PENGANTAR iv
ABSTRAK v
ABSTRACT vi
DAFTAR ISI vii
DAFTAR TABEL xi
DAFTAR GAMBAR xiii
DAFTAR KODE PROGRAM xv
DAFTAR LAMPIRAN xvi
BAB 1 PENDAHULUAN 1
11 Latar belakang 1
12 Rumusan masalah 2
13 Tujuan 3
14 Manfaat 3
15 Batasan masalah 3
16 Sistematika pembahasan 3
BAB 2 LANDASAN KEPUSTAKAAN 5
21 Kajian Pustaka 5
22 Dasar Teori 7
221 Peramalan 8
222 Curah hujan 8
223 Data time series 9
224 Logika Fuzzy 10
225 Metode Fuzzy C-means 13
226 Metode Peramalan dengan Fuzzy Time Series 15
227 Metode High Order Fuzzy Time Series Multi Factors 17
228 Perhitungan keakuratan metode peramalan 20
BAB 3 METODOLOGI 22
31 Studi Literatur 22
viii
32 Pengumpulan Data 23
33 Perancangan 23
34 Implementasi 23
35 Pengujian dan Analisis 23
36 Kesimpulan dan Saran 24
BAB 4 PERANCANGAN 25
41 Perancangan Proses 25
411 Proses perhitungan Universe of Discourse 26
4111 Proses perhitungan Mean 28
4112 Proses perhitungan standar deviasi 29
4113 Proses perhitungan nilai Dmin dan Dmax 30
412 Proses perhitungan jumlah cluster 31
413 Proses perhitungan pusat cluster 32
414 Proses pembentukan subinterval dan Fuzzy set 37
415 Proses Fuzzifikasi 38
416 Proses pembentukan Fuzzy Logical Relationship 41
417 Proses Defuzzifikasi 43
42 Perhitungan Manual 46
421 Perhitungan Universe of Discourse (U) 46
422 Perhitungan jumlah cluster (k) 48
423 Perhitungan pusat cluster dan subinterval 49
4231 Penentuan pusat cluster 49
4232 Perhitungan batas subinterval 55
424 Pembentukan Fuzzy Set 56
425 Fuzzifikasi 56
426 Pembentukan Fuzzy Logical Relationship (FLR) 58
427 Defuzzifikasi 58
43 Perancangan antarmuka 60
431 Halaman input 60
432 Halaman tampil data 61
433 Halaman proses 62
434 Halaman hasil 63
ix
435 Halaman perhitungan error 64
44 Perancangan pengujian 64
441 Perancangan pengaruh order terhadap nilai MSE 64
442 Perancangan pengaruh threshold terhadap nilai MSE 65
443 Perancangan pengaruh jumlah data training terhadap nilai MSE 65
444 Perancangan validasi sistem 65
BAB 5 IMPLEMENTASI 67
51 Spesifikasi Sistem 67
511 Spesifikasi Perangkat Keras 67
512 Spesifikasi Perangkat Lunak 67
52 Implementasi Algoritma 67
521 Implementasi Proses Universe of Discourse 68
5211 Implementasi proses mean 68
5212 Implementasi proses standar deviasi 68
5213 Implementasi proses Dmin dan Dmax 69
522 Implementasi Proses Jumlah Cluster 69
523 Implementasi Proses Pusat Cluster 70
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set 72
525 Implementasi proses fuzzifikasi 74
526 Implementasi Pembentukan Fuzzy Logical Relationship 75
527 Implementasi Proses Defuzzifikasi 77
53 Implementasi Antarmuka 79
531 Implementasi antarmuka halaman input 79
532 Implementasi antarmuka halaman tampil data 80
533 Implementasi antarmuka halaman proses 80
534 Implementasi antarmuka halaman hasil 82
535 Implementasi antarmuka halaman perhitungan error 82
BAB 6 PENGUJIAN DAN ANALISIS 83
61 Sistematika Pengujian 83
62 Hasil dan Analisis Pembahasan 83
621 Pengujian pengaruh order terhadap nilai MSE 83
x
622 Pengujian pengaruh threshold terhadap nilai MSE 85
623 Pengujian pengaruh jumlah data training terhadap nilai MSE 86
624 Pengujian validasi sistem 88
BAB 7 PENUTUP 90
71 Kesimpulan 90
72 Saran 91
DAFTAR PUSTAKA 92
LAMPIRAN 95
Lampiran 1 Data Sampel 95
xi
DAFTAR TABEL
Tabel 21 Kajian Pustaka 5
Tabel 22 Fuzzy Logic Relationship 19
Tabel 23 Peramalan fuzzy set 20
Tabel 41 Data Sampel Perhitungan Manual 46
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean 47
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi 47
Tabel 44 Hasil Universe of Discourse 48
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya 48
Tabel 46 Hasil jumlah cluster data 49
Tabel 47 Matriks partisi awal pada cluster data A 50
Tabel 48 Derajat keanggotaan matriks partisi data A 51
Tabel 49 Perhitungan pusat cluster data A 52
Tabel 410 Fungsi objektif data A 53
Tabel 411 Perbaikan matriks partisi 54
Tabel 412 Hasil perbaikan matriks partisi 54
Tabel 413 Hasil pusat cluster 55
Tabel 414 Batas subinterval masing ndash masing atribut data 55
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A 57
Tabel 416 Hasil fuzzifikasi semua data attribut 57
Tabel 417 Hasil pembentukan FLR data training 58
Tabel 418 Hasil pembentukan FLR data testing 58
Tabel 419 Frekuensi FLR yang cocok dengan data testing 59
Tabel 420 Perbandingan data aktual dan hasil peramalan 60
Tabel 421 Rancangan pengujian order terhadap nilai MSE 64
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE 65
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE 65
Tabel 424 Rancangan pengujian validasi sistem 66
Tabel 51 Spesifikasi Perangkat Keras 67
Tabel 52 Spesifikasi Perangkat Lunak 67
Tabel 61 Hasil pengujian order terhadap nilai MSE 83
xii
Tabel 62 Hasil pengujian threshold terhadap nilai MSE 85
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE 87
Tabel 64 Hasil pengujian validasi sistem 88
xiii
DAFTAR GAMBAR
Gambar 21 Representasi linear naik 11
Gambar 22 Representasi linear turun 12
Gambar 23 Representasi kurva segitiga 12
Gambar 31 Diagram blok metodologi penelitian 22
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1) 25
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2) 26
Gambar 43 Diagram alir proses perhitungan Universe of Discourse 27
Gambar 44 Diagram alir proses perhitungan mean 28
Gambar 45 Diagram alir proses perhitungan standar deviasi 29
Gambar 46 Diagram alir perhitungan nilai Min dan Max 30
Gambar 47 Diagram alir proses perhitungan jumlah cluster 31
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1) 32
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2) 33
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3) 34
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4) 35
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5) 36
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1) 37
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2) 38
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1) 39
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2) 40
Gambar 417 Diagram alir proses Pembentukan FLR (bagian 1) 41
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2) 42
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3) 43
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1) 44
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2) 45
Gambar 422 Grafik fuzzy set data A 56
Gambar 423 Rancangan antarmuka halaman input 61
Gambar 424 Rancangan antarmuka halaman tampil data 61
Gambar 425 Rancangan antarmuka halaman proses clustering 62
Gambar 426 Rancangan antarmuka proses fuzzifikasi 62
xiv
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship 63
Gambar 428 Rancangan antarmuka halaman hasil peramalan 63
Gambar 429 Rancangan antarmuka halaman perhitungan error 64
Gambar 51 Implementasi antarmuka halaman input 79
Gambar 52 Implementasi antarmuka halaman tampil data 80
Gambar 53 Implementasi antarmuka halaman proses clustering 80
Gambar 54 Implementasi antarmuka halaman proses fuzzification 81
Gambar 55 Implementasi halaman antarmuka proses FLR 81
Gambar 56 Implementasi halaman antarmuka hasil 82
Gambar 57 Implementasi halaman antarmuka perhitungan error 82
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE 84
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE 86
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE 87
Gambar 64 Grafik hasil pengujian validasi sistem 88
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan 89
xv
DAFTAR KODE PROGRAM
Kode Program 51 Implementasi proses Universe of Discourse 68
Kode Program 52 Implementasi proses mean 68
Kode Program 53 Implementasi proses standar deviasi 69
Kode Program 54 Implementasi proses Dmin dan Dmax 69
Kode Program 55 Implementasi proses jumlah cluster 70
Kode Program 56 Implementasi proses pusat cluster 72
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set 74
Kode Program 58 Implementasi proses fuzzifikasi 75
Kode Program 59 Implementasi pembentukan FLR 77
Kode Program 510 Implementasi proses defuzzifikasi 79
xvi
DAFTAR LAMPIRAN
Lampiran 1 Tabel Data Sampel 95
1
BAB 1 PENDAHULUAN
11 Latar belakang
Kabupaten Malang merupakan salah satu kabupaten di Jawa Timur yang terkenal akan potensi alam yang dimiliki (BPS Kabupaten Malang 2016) Dalam hal ini terkenal akan potensi alamnya karena kabupaten Malang memiliki tingkat produksi di sektor pertanian yang cukup tinggi dimana hampir seluruh kecamatan di kabupaten Malang memiliki lahan pertaniaaan (BPS Jatim 2015) Permasalahan yang terjadi pada sektor pertanian yaitu terjadinya gagal panen apabila memasuki musim penghujan dengan curah hujan yang tinggi yaitu diatas 200 mm per bulan serta apabila memasuki musim kemarau dengan curah hujan yang rendah yaitu dibawah 100 mm per bulan (BMKG Staklim Karangploso Malang 2015) Dalam mengatasi hal tersebut upaya yang dilakukan petani selama ini hanya melakukan tindakan seperti melakukan panen secara dini Upaya ini dianggap petani cukup efektif dalam mengurangi besarnya kerugian gagal panen akan tetapi sebaiknya yang dilakukan adalah melakukan suatu tindakan agar kerugian yang dialami petani tidak terjadi lagi (Ardiyanto 2016)
Salah satu contoh tindakan yang dapat dilakukan adalah membuat Kalender Tanam (KATAM) KATAM dapat digunakan petani sebagai alat bantu atau pedoman dalam menentukan awal musim tanam terbaik seperti yang telah dilakukan oleh Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian Dalam pembuatan KATAM Balitbang menggunakan data peramalan curah hujan dari Badan Meteorologi Klimatologi dan Geofisika (BMKG) Akan tetapi BMKG mengakui bahwa prakiraan cuacanya saat ini memang masih kurang akurat dan masih kalah dengan prakiraan cuaca di Amerika Serikat (Yunanto 2014) Pentingnya akan prakiraan cuaca terbukti adanya beberapa penelitian sebelumnya yaitu penelitian prakiraan cuaca dengan input faktor yang mempengaruhi cuaca yang berupa data time series menggunakan metode Adaptive Neuro Fuzzy Inference System (ANFIS) (Dewi 2014) dan penelitian mengenai prediksi cuaca menggunakan metode Backpropagation Neural Network yang terbukti memiliki nilai akurasi yang baik dalam prediksi cuaca (Dewi 2013)
Teknik atau metode peramalan curah hujan yang sering digunakan BMKG adalah metode Autoregressive Integrated Moving Average (ARIMA) ANFIS dan Wavelet (Kurniawan 2007) Namun dalam penerapannya gabungan dari ketiga metode tersebut masih kurang memuaskan yaitu tingkat akurasinya hanya mencapai 60 - 70 Menurut BMKG kurangnya tingkat akurasinya ini disebabkan oleh keadaan pola atmosfer di Indonesia yang selalu berubah ndash ubah dan kurang menentu
Selain metode yang digunakan oleh BMKG adapun penelitian sebelumnya yang meramalkan curah hujan yaitu penelitian menggunakan metode Fuzzy Time Series Chen dengan studi kasus curah hujan di Samarinda dalam penelitian ini menggunakan data time series curah hujan bulanan dengan kesimpulan pengunaan data yang sedikit memiliki tingkat akurasi lebih tinggi dibandingkan
2
menggunakan data yang banyak yaitu menghasilkan nilai RMSE terkecil 7368 dan MAE terkecil 539 (Fauziah et al 2016)
Selain peramalan yang hanya menggunakan data time series dari data yang akan diramalkan juga terdapat penelitian sebelumnya yang menggunakan faktor - faktor yang mempengaruhi dari data yang akan diramalkan Salah satunya yaitu penelitian dengan menggunakan metode Clusterwise Linear Regression (CLR) Penelitian ini menggunakan data bulanan pada delapan stasiun cuaca di kota Victoria Australia Peramalan curah hujan pada penelitian ini menggunakan faktor yang mempengaruhi yaitu suhu maksimum suhu minimum penguapan tekanan uap dan radiasi matahari Hasil penelitian ini terbukti dapat melakukan peramalan curah hujan dengan hasil yang cukup baik yaitu dengan nilai RMSE terkecil 197 dan MAE terkecil 129 (Bagirov et al 2017)
Berdasarkan paparan yang telah dijelaskan penulis memiliki ide untuk melakukan penelitian dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Pada metode ini dilakukan klasterisasi data untuk membangun subinterval dengan menggunakan metode fuzzy C-means (LinYang 2009) Dari proses hasil klasterisasi akan digunakan untuk membagi data semesta yang selanjutnya menghasilkan fuzzy set atau himpunan fuzzy yang menggambarkan fitur data (LinYang 2009) Keunggulan dari metode fuzzy time series dengan multi faktor yaitu dengan berdasarkan pada penelitian ndash penelitian sebelumnya yang menggunakan metode tersebut yaitu penelitian prediksi harga emas dengan beberapa faktor yang mempengaruhi menggunakan metode Multi-factors High order Fuzzy Time Series Model dari hasil penelitian ini dengan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 (Wardhani et al 2015) dan penelitian peramalan Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen menggunakan metode Fuzzy Time Series Model dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 (Lin Yang 2009) terbukti menghasilkan hasil peramalan dengan tingkat akurasi yang cukup tinggi Penggunaan metode ini juga sesuai dengan curah hujan yang dipengaruhi oleh beberapa faktor yaitu kelembaban udara kecepatan angin dan suhu (Pradipta 2013) Penelitian ini diharapkan dapat memberikan hasil peramalan curah hujan yang lebih akurat dan memiliki nilai kesalahan yang lebih sedikit
12 Rumusan masalah
Berdasarkan latar belakang yang telah dipaparkan dibuatlah beberapa rumusan masalah sebagai berikut
1 Bagaimana mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Berapa tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
3
13 Tujuan
Adapun maksud dan tujuan dari penelitian ini adalah sebagai berikut
1 Mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Mengetahui tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
14 Manfaat
Adapun manfaat dari penelitian ini adalah sebagai berikut
1 Bagi Badan Meteorologi dan Geofisika (BMKG) untuk dapat memberikan peramalan curah hujan yang lebih akurat dari sebelumnya
2 Bagi Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian untuk dapat membuat Kalender tanam (KATAM) dengan menggunakan data ramalan curah hujan yang lebih akurat
3 Bagi penduduk kabupaten Malang khususnya yang bekerja pada sektor pertanian agar dapat mengoptimalkan hasil produksi dengan menyesuaikan penanaman sesuai dengan Kalender Tanam (KATAM) yang telah dibuat Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian
15 Batasan masalah
Penelitian ini dibatasi oleh hal ndash hal sebagai berikut
1 Data curah hujan kelembaban udara kecepatan angin dan suhu udara yang digunakan pada penelitian ini merupakan data berdasarkan dasarian dan hanya mencakup wilayah kabupaten Malang dan data diperoleh dari BMKG Karangkates Kabupaten Malang dengan data time series yang digunakan pada penelitian ini yaitu dari tahun 2011 - 2016
2 Model peramalan yang diterapkan adalah semua nilai yang membentuk pola dataset training dan testing diketahui nilainya
3 Perhitungan nilai tingkat kesalahan permalan menggunakan metode Mean Square Error (MSE)
16 Sistematika pembahasan
Sistematika pembahasan penelitian ditunjukkan untuk memberikan gambaran dan uraian dari penyusunan proposal yang meliputi beberapa bab sebagai berikut
BAB 1 PENDAHULUAN
Pada bab ini berisi latar belakang rumusan masalah tujuan penelitian manfaat penelitian batasan masalah sistematika pembahasan dan rencana kerja atau jadwal penelitian
4
BAB 2 LANDASAN KEPUSTAKAAN
Pada bab ini berisi tentang kajian pustaka dan dasar teori yang menjadi dasar dalam melakukan implementasi peramalan curah hujan dengan Metode High Order Fuzzy Time Series Multi Factors
BAB 3 METODOLOGI
Pada bab ini diuraikan tentang tahapan atau langkah ndash langkah yang dilakukan dalam proses penelitian tentang peramalan curah hujan dengan metode High Order Fuzzy Time Series Multi Factors Langkah ndash langkah tersebut terdiri dari tahapan penelitian teknik pengumpulan data algoritma yang digunakan lingkungan pengujian dan pengujian algoritma yang digunakan serta pengambilan kesimpulan
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan proses algoritma perhitungan manual metode High Order Fuzzy Time Series Multi Factors perancangan antar muka dan perancangan pengujian
BAB 5 IMPLEMENTASI
Pada bab ini berisi tentang penjelasan peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors bagaimana user interface dan source code dalam pengimplementasian metode ini
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini berisi tentang penjelasan proses dan hasil pengujian dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam peramalan curah hujan serta analisis dari pengujian tersebut
BAB 7 PENUTUP
Pada bab ini berisi kesimpulan yang diperoleh dari hasil pengujian dan saran ndash saran untuk pengembangan penelitian selan
5
BAB 2 LANDASAN KEPUSTAKAAN
Bab ini berisi mengenai kajian pustaka dan dasar ndash dasar teori yang akan dibahas serta digunakan untuk menunjang topik ndash topik pembahasan Pada kajian akan dibahas perbedaan antara penelitian yang telah ada dengan penelitian yang diusulkan oleh penulis Sedangkan pada dasar teori akan dibahas mengenai teori ndash teori yang digunakan pada penelitian yang diusulkan
21 Kajian Pustaka
Pada kajian pustaka disini berisi mengenai perbandingan antara penelitian yang diusulkan oleh penulis dengan penelitian sebelumnya yang relevan Perbandingan tersebut dapat dilihat padat Tabel 21
Tabel 21 Kajian Pustaka
No Judul Objek dan Input Penelitian Metode
1 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan (Irsyad Metarice 2013)
Objek Curah hujan
Input Penelitian
Data aktual curah hujan
Metode High Order Fuzzy Time Series dan Automatic Clustering
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
2 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) (Fauziah et al 2016)
Objek Curah Hujan
Input Penelitian
Data aktual curah hujan
Metode Fuzzy Time Series Chen
Nilai evaluasi
Mean Absolute Error (MAE) Root Mean of Square Error (RMSE)
3 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emas (Wardhani et al 2015)
Objek Harga Emas
Input Penelitian
Kurs Dollar hari sebelumnya
Kurs Euro hari sebelumnya
Harga Emas London hari sebelumnya
Harga Emas hari sebelumnya
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
4 Stock Markets Forecasting Based on Fuzzy Time Series Model (Lin Yang 2009)
Objek Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
6
Input Penelitian
Historical return
Historical turnover volume
Rata ndash rata selisih pergerakan harga selama lima hari
Selisih antara kekuatan bull dan bear
Indeks komposit bursa efek harian Shanghai sebelumnya
Indeks komposit bursa efek harian Shenzhen
Nilai evalusi
Average Relative Error (ARError)
5 Peramalan Curah Hujan Menggunakan Metode High Order Fuzzy Time Series Multi Factors
Objek Curah hujan
Input Penelitian
Suhu
Kelembaban
Kecepatan angin
Curah hujan
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Square Error (MSE)
Sumber (Irsyad Metarice 2013) (Fauziah et al 2016) (Wardhani et al 2015) dan (Lin Yang 2009)
Pada penelitian yang pertama yaitu penelitian yang dilakukan oleh Muhammad Irsyad dan Sonya Metarice pada tahun 2013 dengan objek penelitian yang diramalkan adalah curah hujan Inputan yang digunakan pada penelitian ini merupakan data aktual curah hujan bulanan Metode yang digunakan penelitian ini adalah Automatic Clustering dan High Order Fuzzy Time Series Pada penelitian ini metode Automatic Clustering digunakan untuk membangun interval dan High Order Fuzzy Time Series untuk melakukan peramalan curah hujan Kesimpulan yang diperoleh dari penelitian ini yaitu metode ini dapat diterapkan untuk permalan curah hujan dan hasil evaluasi menggunakan metode Mean Absolute Percentage Error(MAPE) dari beberapa bercobaan dapat diperoleh nilai kesalahan sebesar 437 Berdasarkan dari hasil nilai kesalahan tersebut maka tingkat kesalahan data pada permalan ini termasuk rendah
Pada tahun 2016 Normalita Fauziah Sri Wahyuningsih dan Yuki Novia Nasution melakukan penelitian dengan objek penelitian curah hujan di kota Samarinda Inputan yang digunakan pada penelitian berupa data aktual bulanan curah hujan di kota Samarinda Metode yang digunakan pada penelitian ini adalah Fuzzy Time Series Chen dengan dalam pembentukkan panjang interval berbasis rata ndash rata atau average based Pada penelitian ini permalan curah hujan terbaik yaitu dengan menggunkan data sebanyak 29 data dengan menghasilkan tingkat nilai kesalahan terkecil yaitu dengan metode Root Mean of Squared Error (RMSE) sebesar 7368 dan metode Mean Absolute Error (MAE) sebesar 539 Pada
(Lanjutan) Tabel 21 Kajian Pustaka
7
penelitian ini disimpulkan bahwa data sebanyak 29 data memiliki tingkat kesalahan lebih kecil dibandingkan dengan menggunakan data dengan jumlah sampel yang lebih banyak
Pada penelitian selanjutnya adalah penelitian yang dilakukan oleh Dessy Kusuma Wardhani Dian Eka Ratnawati dan Budi Darma Setiawan pada tahun 2015 dengan objek penelitian yang diramalkan adalah harga emas harian Inputan yang digunakan pada penelitian ini data aktual harian harga emas indonesia harga emas london kurs dollar ke rupiah dan kurs euro ke rupiah Metode yang digunakan pada penelitian pada pembentukkan sub interval menggunakan metode fuzzy C-means dan untuk peramalan menggunakan metode High Order Fuzzy Time Series Model Hasil pada penelitian ini berdasarkan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 karena nilai error lebih kecil dari 10 menunjukkan bahwa metode ini sangat baik digunakan untuk peramalan harga emas
Pada tahun 2009 Yupei Lin dan Yiwei Yang melakukan penelitian dengan objek yang diramalkan adalah indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen Data input penelitian ini meliputi historical return historical turnover volume dan rata ndash rata selisih pergerakan harga selama lima hari serta selisih antara kekuatan bull dan bear Dalam penelitian ini pembentukan subinterval yang berfungsi dalam pendefinisian himpunan fuzzy dilakukan dengan menggunakan klasterisasi fuzzy C-means Hasil dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 Dalam hal ini membuktikan bahwa penelitian dapat menghasilkan peramalan yang cukup baik karena memiliki nilai ARError kurang dari 5
Pada penelitian ini membahas tentang peramalan curah hujan dasarian menggunakan metode High Order Fuzzy Time Series Multi Factors Terdapat empat inputan yang juga dijadikan sebagai variabel dalam penelitian ini yaitu kelembaban udara kecepatan angin suhu udara dan curah hujan Pembentukan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan klasterisasi fuzzy C-means Penelitian ini menggunakan high order fuzzy logic relationship yaitu membentuk fuzzy logic relationship berdasarkan data dalam kurun waktu beberapa dasarian sebelum dasarian yang akan diramal Pada penelitian ini dalam melakukan perhitungan nilai error untuk mendapatkan hasil evaluasi menggunakan metode Mean Square Error (MSE)
22 Dasar Teori
Pada dasar teori disini dijelaskan tentang metode ndash metode yang digunakan pada penelitian ini yang meliputi peramalan curah hujan data time series logika fuzzy fuzzy C-means metode peramalan dengan Fuzzy Time Series High Order Fuzzy Time Series Multi Factors dan metode perhitungan keakuratan metode peramalan
8
221 Peramalan
Terdapat beberapa definisi tentang peramalan menurut Kamus Besar Bahasa Indonesia (KBBI) yaitu
a Peramalan merupakan prediksi rencana atau estimasi kejadian masa depan yang tidak pasti (KBBI)
b Peramalan adalah sebagai penggunaan teknik ndash teknik statistik dalam bentuk gambaran masa depan berdasarkan pengolahan angka ndash angka yang terjadi pada masa lalu (Buffa et al1996)
c Peramalan adalah bagian internal dari pengambilan keputusan manajemen (Makridakis et al1999)
Berdasarkan beberapa definisi diatas dapat disimpulkan bahwa peramalan merupakan tindakan apa yang akan terjadi di masa mendatang peramalan diperlukan untuk mengambil sebuah keputusan Dalam pengambilan keputusan harus diambil dari pertimbangan ndash pertimbangan yang ada Oleh karena itu peramalan sangat penting hubungannya dengan pengambilan keputusan sehingga kejadian di masa yang akan datang dapat dipersiapkan tindakan apa yang perlu dilakukan
222 Curah hujan
Curah hujan merupakan salah satu faktor penting yang mempengaruhi perubahan iklim suatu wilayah (Mirawati et al 2013) Salah satu contoh kasus nyata yaitu terjadinya perubahan iklim secara tiba ndash tiba atau bisa disebut dengan cuaca ekstrim Curah hujan dapat dijelaskan dengan air hujan yang terkumpul pada suatu wadah datar dimana air hujan tersebut tidak meresap tidak menguap dan tidak mengalir sehingga dapat diukur ketinggiannya Sebagai contoh curah hujan 1 (satu) milimeter dapat dijelaskan dalam suatu wadah datar dengan luas satu meter persegi tertampung air dengan ketinggian sekitar satu milimeter atau tertampung air sebanyak satu liter Metode dalam mendapatkan data curah hujan adalah dengan menggunakan penakar hujan yang kemudian diukur dengan satuan milimeter (mm) (User2015) Intensitas curah hujan dapat dikategorikan ringan jika dibawah 20mm dalam 24 jam dikategorikan lebat jika di atas 50mm dan dikategorikan sedang jika selang 20mm hingga 50mm (User 2015)
Curah hujan mempengaruhi beberapa sektor diantarannya sektor komunikasi dimana penggunaan frekuensi diatas 10 GHz dapat terkena redaman hujan (Mauludiyanto et al 2009) Akan tetapi curah hujan paling berpengaruh terhadap sektor pertanian Hal ini terbukti bahwa sebagian besar terjadinya penurunan produktifitas dan gagal panen di sektor pertanian adalah terjadinya curah hujan yang tinggi
Tinggi dan rendahnya curah hujan dipengaruhi oleh beberapa faktor yaitu kelembaban udara temperatur dan kecepatan angin Pada tahun 2013 Nur Suri Pradipta Pasukat Sembiring dan Pengarapen Bangun melakukan penelitian mengenai pengaruh curah hujan di kota Medan (Pradipta et al 2013)
9
Berdasarkan penelitian tersebut faktor yang mempengaruhi dan digunakan dalam peramalan curah hujan yaitu
1 Kelembaban udara
Kelembaban udara adalah banyaknya kandungan uap air di atmosfer Udara atmosfer adalah campuran dari udara kering dan uap air selain itu kelembaban udara merupakan komponen cuaca yang mempunyai peranan sangat penting bagi stabilitas kehidupan organisme di bumi maupun unsur-unsur cuaca yang lain (Forest 2015) Kelembaban udara berpengaruh terhadap curah hujan Hal ini didukung penelitian oleh (Sipayung et al 2013) yang menyatakan Kelembaban udara berpengaruh positif terhadap curah hujan
2 Kecepatan angin
Kecepatan angin merupakan kecepatan udara yang bergerak secara horizontal pada ketinggian 2 meter diatas tanah Dalam hal ini faktor yang menentukan kecepatan angin adalah perbedaan tekanan udara antara asal dan tujuan angin Kecepatan angin berpengaruh positif terhadap curah hujan artinya jika kecepatan angin tinggi maka curah hujan akan tinggi (Pradipta et al2013)
3 Suhu udara
Suhu udara merupakan ukuran energi kinetik rata ndash rata dari pergerakan molekul ndash molekul Suhu udara berpengaruh negatif terhadap curah hujan artinya jika suhu udara tinggi maka curah hujan akan berkurang (Pradipta et al2013)
223 Data time series
Data time series adalah data statistik yang telah dihimpun dari masa lampau hingga sekarang dan dapat digunakan sebagai acuan dalam melakukan peramalan terhadap data yang akan datang (Wiyanti amp Pulungan 2012) Data time series juga dapat didefinisikan sebagai sebuah kegiatan mengamati data statistik dimana terdapat korelasi (dependensi) antar datanya sehingga data yang sekarang sedang diamati memiliki ketergantungan dengan satu atau lebih data pengamatan sebelumnya (Mirawati et al 2013)
Terdapat dua teknik prediksi yang menggunakan basis data time series yaitu teknik model matematika statistik dan berdasarkan kecerdasan buatan (Wiyanti amp Pulungan 2012) Analisa time series sendiri memiliki beberapa peruntukan salah satunya digunakan dalam melakukan peramalan untuk masa yang akan datang Dalam penggunaan data time series merupakan salah satu proses peramalan kuantitatif dimana berdasar data kuantitatif masa lampau yang direpresentasikan dalam bentuk angka atau nilai (Mirawati et al 2013)
10
224 Logika Fuzzy
Pada tahun 1965 Prof Lotfi A Zadeh memperkenalkan teori logika fuzzy Logika fuzzy merupakan suatu komponen soft computing dan juga suatu cara yang tepat untuk memetakan suatu ruang input ke dalam ruang output Antara ruang input dan ruang output terdapat black box yang berfungsi memetakan input ke ruang output yang sesuai Dasar logika fuzzy adalah teori fuzzy set Pada teori fuzzy set peranan derajat keanggotaan sebagai penentu keberadaan elemen dalam suatu himpunan sangatlah penting Oleh karena itu derajat keanggotaan menjadi ciri utama dalam penalaran dengan logika fuzzy Logika fuzzy bekerja dengan menggunakan derajat keanggotan dari sebuah nilai yang kemudian digunakan untuk menentukan hasil yang ingin dihasilkan berdasarkan atas kriteria yang telah ditentukan (Kusumadewi 2003)
Berikut adalah beberapa alasan digunakannya logika fuzzy (Kusumadewi 2002)
1 Logika fuzzy sangat fleksibel
2 Konsep logika fuzzy mudah dimengerti dan dipahami
3 Logika fuzzy memiliki toleransi terhadap data ndash data yang homogen dan data ndash data yang kurang tepat
4 Logika fuzzy didasari pada bahasa alami atau bahasa sehari - hari sehingga mudah dimengerti
5 Logika fuzzy dapat bekerjasama dengan teknik ndash teknik kendali secara konvensional
6 Logika fuzzy mampu membangun dan mengaplikasikan pengalaman ndash pengalaman para pakar secara langsung tanpa harus melalui tahap atau proses pelatihan
A Himpunan Fuzzy
Himpunan fuzzy atau fuzzy set merupakan perluasan himpunan tegas atau himpunan crisp jadi fungsi karakteristik mencakup bilangan real pada interval [01] Dalam definisi lain himpunan fuzzy adalah suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dalam suatu variabel fuzzy Keanggotaan fuzzy berbeda dengan probabilitas jika keanggotaan fuzzy pada setiap fungsi karakteristik memberikan suatu pendapat atau keputusan sedangkan probabilitas menunjukan seberapa besar nilai kebenaran dalam fungsi karakteristik tersebut Contohnya yaitu nilai keanggotaan suatu himpunan fuzzy umur muda 09 berarti nilai dalam himpunan tersebut memiliki kemungkinan 90 anggotanya berumur muda dan 10 diharapkan tidak muda Dalam himpunan fuzzy suatu bilangan bisa memiliki dua keanggotaan sekaligus Himpunan fuzzy memiliki dua attribut (Kusumadewi2003)
11
1 Linguistik merupakan penamaan suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami misalnya muda parobaya tua
2 Numeris merupakan suatu nilai (angka) yang menunjukkan ukuran dari suatu
variabel seperti 402550 dan sebagainya
B Fungsi Keanggotaan
Fungsi keanggotaan adalah suatu kurva yang menunjukkan pemetaan titik ndash titik input data ke dalam derajat keanggotaannya yang memiliki subinterval antara 0 sampai 1 (Kusumadewi Purnomo 2004) Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi Ada beberapa fungsi keanggotaa yang dapat digunakan
1 Fungsi representasi linear
Pada fungsi representasi linear pemetaan input ke derajat keanggotaannya digambarkan sebagai suatu garis lurus Bentuk ini paling sederhana dan menjadi pilihan yang baik untuk mendekati suatu konsep yang kurang jelas Keadaan linear himpunan fuzzy terdiri dari dua keadaan yaitu keadaan linear naik dan keadaan linear turun Pada keadaan linear naik kenaikan himpunan dimulai pada nilai domain yang memiliki nilai derajat keanggotaan nol bergerak ke kanan menuju ke nilai domain yang memiliki derajat keanggotaan yang lebih tinggi seperti yang ditunjukkan Gambar 21 Persamaan fungsi keanggotaan pada representasi linear naik ditunjukkan oleh Persamaan 21
Fungsi Keanggotaan
120583(119909) = 0
(119909 minus 119886)(119887 minus 119886)1
119909 le 119886 119886 le 119909 le 119887119909 ge 119887
(21)
b a 0
1
Gambar 21 Representasi linear naik
Sumber Kusumadewi (2002)
120583(119909)
12
Pada keadaan linear turun berbanding terbalik dengan keadaan linear naik Garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi pada sisi kiri kemudian bergerak menurun ke nilai domain yang memiliki derajat keanggotaan lebih rendah yang ditunjukkan Gambar 22 Persamaan fungsi keanggotaan pada representasi linear turun ditunjukkan oleh Persamaan 22
Fungsi Keanggotaan
120583(119909) = (119887 minus 119909)(119887 minus 119886)0
119886 le 119909 le 119887
119909 ge 119887 (22)
2 Fungsi representasi kurva segitiga
Representasi kurva segitiga pada dasarnya merupakan gabungan antara 2 garis linear yaitu linear naik dan linear turun Fungsi representasi kurva segitiga ditandai oleh adanya tiga parameter abc yang akan menentukan koordinat x dari tiga sudut seperti ditunjukkan pada Gambar 23 Persamaan fungsi keanggotaan pada representasi kurva segitiga ditunjukkan oleh Persamaan 23
b a 0
1
Sumber Kusumadewi (2002)
Gambar 22 Representasi linear turun
120583(119909)
c a 0
1
b
Sumber Kusumadewi (2002)
Gambar 23 Representasi kurva segitiga
120583(119909)
13
Fungsi Keanggotaan
120583(119909) =
0 (119909 minus 119886)(119887 minus 119886) (119887 minus 119909)(119888 minus 119887)
119909 le 119886 119886119905119886119906 119909 ge 119888
119886 le 119909 le 119887 119887 le 119909 le 119888
(23)
225 Metode Fuzzy C-means
Fuzzy C-means (FCM) pertama kali diperkenalkan oleh Dunn dan dikembangkan oleh Bezdek yang banyak digunakan dalam pengenalan pola Metode ini merupakan pengembangan dari metode non-hierarkhi K-Means Cluster selanjutnya dilakukan iterasi sampai mendapatkan keanggotaan kelompok tersebut (Klawon 2001)
FCM merupakan salah satu algoritma fuzzy clustering dan juga teknik klasterisasi dimana tiap data ditentukan oleh derajat keanggotaanya Tujuan penggunaan algoritma FCM yaitu untuk menemukan pusat cluster atau centroid dengan meminimumkan fungsi objektif (Bazdek 1984) Ouput dari FCM bukan merupakan fuzzy inference system melainkan deretan pusat cluster dan beberapa derajat keanggotaan untuk setiap titik data Hasil output ini dapat digunakan untuk membangun suatu fuzzy inference system Berikut adalah langkah ndash langkah dari FCM (Kusumadewi 2004)
1 Langkah pertama menentukan jumlah cluster (c ge 2) pembobot (infin gt 119908 gt1) (Bazdek 1984) maksimum iterasi (maxIter) error minimum yang diharapkan yaitu nilai positif yang sangat kecil (120585) fungsi objektif awal (P0 = 0) iterasi awal dideklarasikan 1
2 Langkah kedua memasukkan data X yang akan diklasterisasi berupa matriks berukuran m x n (m = jumlah sampel data n = attribut setiap data) Contoh Xij = data sampel ke-i (i = 1234m) attribu ke-j (j=1234n)
3 Langkah ketiga yaitu dengan membuat bilangan random microik i = 1234n dan k = 123c (n = jumlah sampel pada data c = jumlah cluster yang akan dibentuk) sebagai elemen ndash elemen matriks partisi awal Untuk bilangan penyusun matriks partisi awal dihitung dihitung jumlahnya setiap kolom yang ditunjukkan pada pada Persamaan 24 (Kusumadewi 2004)
119876119896 = sum 120583119894119896119888119896=1 (24)
Dimana
119876119896 = jumlah bilangan pada kolom k
120583119894119896 = bilangan random pada baris i kolom k
119888 = jumlah kolom
14
Selanjutnya untuk menghitung derajat keanggotaan awal dengan melakukan normalisasi pada matiks partisi pada normalisasi dilakukan menggunakan Persamaan 25 (Kusumadewi 2004)
120583119894119896 = 120583119894119896119876119896 (25)
4 Langkah keempat melakukan perhitungan cluster ke-k Vkj dengan k = 1234c dan j = 1234m Perhitungan pusat cluster ditunjukkan pada Persamaan 26 (Kusumadewi 2004)
119881119896119895 = sum ((120583119894119896)119908 times 119883119894119895)119899
119894=1
sum (120583119894119896)119908119899119894=1
(26)
Dimana
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
120583119894119896 = derajat keanggotaan pada data ke-i cluster ke-k
119883119894119895 = data sampel pada data ke-i attribut ke-j
119908 = pembobot
5 Langkah kelima melakukan perhitungan fungsi objektif pada iterasi ke-t P1 Perhitungan fungsi objektif ditunjukkan pada Persamaan 27 (Kusumadewi 2004)
119875119905 = sum sum ([sum (119883119894119895 minus 119881119896119895)119898119895=1
2](120583119894119896)119908)119888
119896=1119899119894=1 (27)
Dimana
119875119905 = fungsi objektif
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
6 Langkah keenam melakukan perhitungan perbaikan matriks partisi yang telah ditunjukkan Persamaan 28 (Kusumadewi 2004)
120583119894119896 = [sum (119883119894119895minus119881119896119895)119898
119895=12
]
minus1119908minus1
sum [sum (119883119894119895minus119881119896119895)119898119895=1
2]
minus1119908minus1119888
119896minus1
(28)
Dimana
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
119908 = pembobot
7 Langkah ketujuh yaitu melakukan pemerikasaan kondisi berhenti dengan kondisi sebagai berikut
a Jika (|119875119905 minus 119875119905minus1| lt 120585) atau ( t gt MaxIter) maka berhenti
b Jika tidak memenuhi t = t +1 ulangi mulai dari langkah ke-4
15
226 Metode Peramalan dengan Fuzzy Time Series
Pada tahun 1996 Chen memperkenalkan metode peramalan dengan menggunakan metode Fuzzy Time Series Metode Fuzzy Time Series memiliki perbedaan dengan metode peramalan time series biasa atau konvensional yaitu terdapat pada data yang digunakan untuk peramalan Fuzzy Time Series data yang digunakan adalah berupa fuzzy set atau himpunan fuzzy dari bilangan ndash bilangan real atas himpunan semesta yang ditentukan Jadi Fuzzy Time Series merupakan metode dengan menggunakan data berupa fuzzy set yang berasal dari bilangan real atas Universe of Discorse pada data aktual Universe of Discourse adalah himpunan semesta dari data penelitian
Berikut adalah langkah ndash langkah metode Fuzzy Time Series yang telah diperkenalkan oleh Chen terdapat enam langkah yaitu
1 Langkah pertama yaitu membagi Universe of Discourse dari bilangan aktual ke dalam subinterval dengan jumlah interval yang sama Perhitungan Universe of Discourse ditunjukkan pada Persamaan 29 (Chen 1996)
119880 = [119863119898119894119899 minus 1198631 119863119898119886119909 + 1198632] (29)
Dimana
119880 = Universe of Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
1198631 dan 1198632 = bilangan positif yang ditentukan oleh user untuk menentukan Universe of Discourse dari himpunan data sampel
2 Langkah kedua adalah mendefinisikan fuzzy set dari Universe of Discourse (U) menjadikan A1 A2 A3 An ke dalam fuzzy set dengan nilai linguistik sesuai dengan keadaan U Selanjutnya mendefinisikan fuzzy set tersebut ditunjukkan pada Persamaan 210 (Chen 1996)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (210)
1198602 =11989121
1199061+
11989122
1199062+
11989123
1199063+ ⋯ +
1198912119896
119906119896
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
Dimana 119891119894119895120598 [01] 1 le 119894 le 119896 dan 1 le 119895 le 119898 Variabel 119891119894119895 menunjukkan
derajat keanggotaan dari subinterval 119906119895 dari fuzzy set 1198601 Pada konsep ini
Chen menggunakan nilai linguistik 1198601 = (not many) 1198602 = (not too many) 1198603= (many) 1198604 = (many many) 1198605 = (very many) 1198606 = (too many) 1198607= (too many many) Kemudian nilai linguistik tersebut dimasukkan ke tiap fuzzy set Dari U tersebut dapat dibangun fuzzy set sebagai berikut
16
1198601 = 1
1199061+
05
1199062+
0
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198602 = 05
1199061+
1
1199062+
05
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198603 = 0
1199061+
05
1199062+
1
1199063+
05
1199064+
0
1199065+
0
1199066+
0
1199067
1198604 = 0
1199061+
0
1199062+
05
1199063+
1
1199064+
05
1199065+
0
1199066+
0
1199067
1198605 = 0
1199061+
0
1199062+
0
1199063+
05
1199064+
1
1199065+
05
1199066+
0
1199067
1198606 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
05
1199065+
1
1199066+
05
1199067
1198607 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
0
1199065+
05
1199066+
1
1199067
3 Langkah ketiga yaitu melakukan fuzzifikasi data historis proses fuzzifikasi merupakan proses merubah data aktual yang merupakan bilangan crisp ke dalam bentuk bilangan fuzzy Bilangan fuzzy yang dimaksudkan adalah dalam bentuk derajat keanggotaan Dari beberapa derajat keanggotaan yang terbentuk kemudian dipilih satu fuzzy set yang memiliki derajat keanggotaan teringgi Fuzzifikasi dinotasikan sebagai berikut jika F(t-1) berada pada fuzzy set Ak maka F(t-1) difuzzifikasikan sebagai Ak
4 Langkah keempat adalah mengidentifikasi Fuzzy Logic Relationship (FLR) FLR diidentifikasikan sebagai Ai dan F(t) difuzzifikasikan sebagai Ai rarr Aj Ai sebagai sisi kiri relationship disebut sebagai current state dan Aj sebagai sisi kanan relationship disebut next state Jika terjadi perulangan relationship maka tetap dihitung satu kali
5 Langkah kelima yaitu mengelompokkan menjadi Fuzzy Logical Relationship Group (FLRG) FLRG dibangun berdasarkan sisi kiri (current state) yang sama
6 Langkah terakhir yaitu langkah keenam adalah melakukan defuzzifikasi nilai keluaran peramalan Defuzzifikasi adalah mengubah nilai keluaran fuzzy menjadi bilangan crisp kembali sehingga diperoleh hasil akhir peramalan Defuzzifikasi didasarkan pada tiga (3) rule aturan yaitu (Chen 1996)
I Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai hanya memiliki satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj dimana nilai maksimum fungsi keanggotaanya berada pada 119906119895 maka nilai peramalan untuk n+1 adalah
nilai tengah dari 119906119895 atau didefinisikan dengan 119898119895
II Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai memiliki lebih dari satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj1 Aj2 Ajp Dimana nilai tengah untuk masing ndash masing Aj1 Aj2 Aj3 Ajp adalah mj1 mj2 mj3 mjp
maka nilai peramalan untuk n+1 adalah (mj1 mj2 mj3 mjp) p
III Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai tidak memiliki FLR pada FLRG dimana nilai maksimum fungsi keanggotaannya berada pada 119906119895
17
maka nilai peramalan untuk n+1 adalah nilai tengah dari 119906119895 atau
didefinisikan dengan 119898119895
227 Metode High Order Fuzzy Time Series Multi Factors
Metode High Order Fuzzy Time Series Multi Factors adalah metode Fuzzy Time Series (FTS) yang melibatkan beberapa faktor yang mempengaruhi peramalan dengan berdasarkan beberapa periode waktu sebelum periode yang akan diramalkan dalam proses pembentukkan Fuzzy Logical Relationship (FLR) Hasil peramalan dengan banyak faktor yang mempengaruhi dinilai lebih baik dari pada dengan hanya satu faktor yang mempengaruhi (LinYang 2009) Pada metode ini pembentukkan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan teknik klasterisasi fuzzy C-means Berikut adalah langkah ndash langkah Metode High Order Fuzzy Time Series Multi Factors (LinYang 2009)
1 Langkah pertama adalah melakukan perhitungan Universe of Discourse (U) Sebelum menghitung nilai U terlebih dulu menghitung nilai mean (rata ndash rata) sampel lalu menghitung nilai standar deviasi (120590) Mean merupakan perhitungan jumlah dari semua nilai dalam kumpulan data kemudian dibagi dengan jumlah total data untuk menghitung nilai mean ditunjukkan pada Persamaan 211 (Weisstein 2015) Standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel untuk menghitung nilai standar deviasi (120590) ditunjukkan pada Persamaan 212 (Weisstein 2015) Perhitungan U ditunjukkan pada Persamaan 213 (LinYang 2009)
119909 =sum 119909119894
119899119894=1
119899 (211)
Dimana
= mean (rata ndash rata)
119909119894 = nilai data ke-i
119899 = banyak data
120590 = radicsum (119909119894minus ) 2119899
119894=1
119899minus1 (212)
Dimana
120590 = Standar deviasi data
119880 = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590] (213)
Dimana
119880 = Universal 0f Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
18
2 Langkah kedua yaitu menentukan jumlah cluster data Proses klasterisasi bertujuan untuk membagi U kedalam beberapa subinterval Hasil perhitungan banyaknya cluster apabila bernilai pecahan maka harus dibulatkan menjadi bilangan bulat Perhitungan banyaknya cluster ditunjukkan pada Persamaan 214 (LinYang 2009)
119896 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905)minus119883(119905minus1)|119899
119905=1
119899minus1| (214)
Dimana
119896 = banyaknya jumlah cluster
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
119899 = banyaknya data sampel
119883(119905) = data pada waktu ke-t
3 Langkah ketiga yaitu melakukan pembentukan pusat cluster Pada metode ini proses klasterisasi data menggunakan fuzzy C-means (FCM) untuk mendapatkan pusat cluster sebanyak k Tahapannya U dibagi kedalam k subinterval (119863119898119894119899 1198891) (1198891 1198892) (1198892 1198893) hellip (119889119896minus1 119863119898119886119909) dimana di (i = 123k-1) merupakan titik tengah antara dua pusat cluster k subinterval didefinisikan sebagai 1199061 1199062 1199063 hellip 119906119896 Sehingga dalam hal ini subinterval
dengan panjang berbeda dapat menggambarkan struktur data kompleks dengan baik dan dapat meningkatkan peramalan dibandingkan menggunakan subinterval dengan panjang yang sama (LinYang 2009)
4 Langkah keempat yaitu melakukan pembentukan himpunan fuzzy atau fuzzy set Pada langkah ini fuzzy set direpresentasikan dengan kurva bahu Pembentukkan fuzy set ditunjukkan pada Persamaan 215 (LinYang 2009)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (215)
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
5 Langkah kelima yaitu proses fuzzifikasi Proses fuzzifikasi bertujuan untuk mengubah data sampel yang masih berupa bilangan crisp sehingga menjadi bilangan fuzzy Masing ndash masing data dihitung derajat keanggotaannya terhadap fuzzy set yang sudah terbentuk selajutnya derajat kanggotaan dihitung berdasarkan kurva bahu dan derajat keanggotaan tertinggi menunjukkan hasil fuzzifikasi data tersebut Contohnya A(t) B(t) C(t) dan D(t) dimana t= 123n merupakan time series dari faktor yang mempengaruhi serta n merupakan banyaknya data Berdasarkan pembagian subinterval masing ndash masing time series ini difuzzifikasikan Misalkan hasil dari Persamaan 215 yaitu menghitung banyak cluster dari k1 k2 k3 k4 Jadi time series difuzzifikasikan menjadi empat fuzzy time series yaitu
19
A(ti) dimana i = 1234k1
B(tj) dimana j = 1234k2
C(tp) dimana p = 1234k3
D(tq) dimana q = 1234k4 t = 123n
6 Langkah keenam yaitu melakukan pembentukkan Fuzzy Logical relationship (FLR) Data sampel sebanyak n periode dipilih sebagai data training untuk membentuk fuzzy time series model Misalkan t merupakan periode waktu yang akan diramal dengan menggunakan order ndash 3 maka tiga periode sebelum periode t adalah t-3 t-2 dan t-1 dimana t = 456n Maka FLR yang dihasilkan ditunjukkan pada Persamaan 216 dan berdasarkan persamaan tersebut maka akan membentuk sebuah kumpulan FLR dari data training (LinYang 2009)
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023)) (216)
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
Tabel 22 Fuzzy Logic Relationship
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023))
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
(119860(119905minus21198943) 119861(119905minus21198953) 119862(119905minus21199013) 119863(119905minus21199023))
(119860(119905minus11198942) 119861(119905minus11198952) 119862(119905minus11199012) 119863(119905minus21199022))
(119860(1199051198941) 119861(1199051198951) 119862(1199051199011) 119863(1199051199021)) rarr 119860(119905+11198944)
(119860(119905+119899minus71198943) 119861(119905+119899minus71198953) 119862(119905+119899minus71199013) 119863(119905+119899minus71199023))
(119860(119905+119899minus61198942) 119861(119905+119899minus61198952) 119862(119905+119899minus61199012) 119863(119905+119899minus61199022))
(119860(119905+119899minus51198941) 119861(119905+119899minus51198951) 119862(119905+119899minus51199011) 119863(119905+119899minus51199021)) rarr 119860(119905+119899minus41198944)
Sumber (LinYang 2009)
7 Langkah terakhir adalah proses Defuzzifikasi Berdasarkan langkah sebelumnya maka dapat diambil hasil fuzzy ke- H yaitu yang digunakan sebagai data testing atau data uji seperti yang ditunjukkan pada Persamaan 217 (LinYang 2009)
(119860(119867minus31198943) 119861(119867minus31198953) 119862(119867minus31199013) 119863(119867minus31199023)) (217)
(119860(119867minus21198942) 119861(119867minus21198952) 119862(119867minus21199012) 119863(119867minus21199022))
(119860(119867minus11198941) 119861(119867minus11198951) 119862(119867minus11199011) 119863(119867minus11199021)) rarr 119860(1198671198944)
20
Faktor ndash faktor di ruas kiri pada Persaman 217 dibandingkan satu per satu dengan FLR data training yang sudah dicatat sebelumnya pada Tabel 22 membandingkannya yaitu dengan cara menghitung nilai absolut dari selisih antara pangkat bawah kedua faktor pada posisi yang sama di FLR Terdapat 12 fuzzy set di ruas kiri pada masing ndash masing FLR sehingga dari hasil perbandingan diperoleh 12 nilai absolut yang kemudian dijumlahkan untuk mendapat total selisihnya Jadi jika total selisih lebih kecil dari threshold yang ditentukan maka FLR tersebut dinyatakan cocok (LinYang 2009)
Selanjutnya jika FLR menemukan N pasangan yang cocok pada Tabel 22 maka N faktor di ruas kanan dari N FLR ini mendasari peramalan fuzzy set A() yang mana jumlah dari setiap fuzzy set pada umumnya berbeda Untuk peramalan dengan fuzzy set ditunjukkan pada Tabel 23 (LinYang 2009)
Tabel 23 Peramalan fuzzy set
Ruas Kanan A(1) A(2) A(3) A(k1)
Pusat cluster c1 c2 c3 ck1
Frekuensi f1 f2 f3 fk1
Sumber (Lin Yang 2009)
Berdasarkan Tabel 23 dengan menggunakan metode centroid untuk melakukan proses defuzzifikasi Proses defuzzifikasi dapat ditunjukkan pada Persamaan 218 (LinYang 2009)
119903119867 =sum 119888119894times 119891119894
1198961119894=1
sum 119891119894119896119894119894=1
(218)
Dimana
119903119867 = hasil (result) peramalan data ke-H
119888119894 = pusat cluster i dimana A(i) adalah ruas kanan dari FLR hasil proses pencocokan
119891119894 = frekuensi banyaknya muncul A(i) pada saat proses pencocokan
228 Perhitungan keakuratan metode peramalan
Dalam perencanaan peramalan tentu menginginkan hasil ramalan yang tepat atau paling tidak hampir mendekati sehingga rencana yang dibuat menjadi rencana yang realistis Keakuratan atau ketepatan merupakan yang menjadi kriteria performance suatu metode peramalan Keakuratan tersebut dapat dinyatakan sebagai kesalahan peramalan (forecast error) Semaikin kecil nilai kesalahan peramalan maka semaikin tinggi keakuratan metode peramalan yang digunakan dan sebaliknya semakin tinggi nilai kesalahan maka semakin rendah keakuratan metode peramalan yang digunakan
Mean Square Error (MSE) adalah salah satu metode yang digunakan untuk menghitung nilai akurasi atau keakuratan dari metode yang digunakan sebagai peramalan atau prediksi MSE merupakan perhitungan pangkat dua dari selisih
21
antara nilai data hasil peramalan dengan nilai data aktual dan kemudian dibagi dengan banyaknya data yang telah diramalkan Pada penentuan nilai evaluasi memilih menggunakan metode MSE karena metode ini dapat menunjukan hasil skala kemiripan antara hasil data peramalan dengan data aktual Berikut merupakan metode Mean Square Error (MSE) yang ditunjukan pada Persamaan 219 (Wang Chen 2009)
119872119878119864 = sum (119865119905minus119860119905)2119899
119894=1
119899 (219)
Dimana 119872119878119864 = nilai Mean Square Error Rate 119860119905 = nilai aktual pada data ke-t 119865119905 = nilai hasil peramalan untuk data ke-t n = banyaknya data
22
BAB 3 METODOLOGI
Pada bab ini akan dibahas mengenai metode yang digunakan beserta tahap ndash tahap pengerjaan penelitian skripsi dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Penilitian ini digolongkan sebagai penelitian implementatif dengan pendekatan perancangan (design)
Metode penelitian ini meliputi studi literatur pengumpulan data perancangan implementasi pengujian dan analisis pengambilan kesimpulan Berikut adalah alur dari metode penelitian dapat ditunjukkan pada Gambar 31
31 Studi Literatur
Pada tahap studi literatur penelitian ini bertujuan untuk mempelajari literatur dan konsep dari beberapa informasi dan pustaka yang berkaitan dengan penelitian ini Literatur dan sumber ilmu dari penelitian ini diperoleh dari internet buku dan bimbingan oleh dosen pembimbing Adapun literatur yang dipelajari yaitu tentang curah hujan serta faktor ndash faktor yang mempengaruhinya dan metode High Order Fuzzy Time Series Multi Factors
Studi Literatur
Pengumpulan Data
Perancangan
Implementasi
Pengujian dan Analisis
Kesimpulan dan Saran
Gambar 31 Diagram blok metodologi penelitian
23
32 Pengumpulan Data
Pada tahap pengumpulan penelitian ini sumber data yang diperoleh yaitu dari Badan Meteorologi Klimatologi dan Geofisikia (BMKG) Stasiun Klimatologi Kelas III Karangkates Kabupaten Malang Data yang diperoleh untuk peramalan curah hujan yaitu data aktual time series (2011 - 2016) Data yang digunakan dalam bentuk dasarian yaitu dalam rentang waktu sepuluh hari sehingga dalam satu bulan dibagi menjadi tiga dasarian
Dasarian pertama yaitu pada tanggal 1 sampai dengan 10
Dasarian kedua yaitu pada tanggal 11 sampai dengan 20
Dasarian ketiga yaitu pada tanggal 21 sampai dengan akhir bulan
Pada penelitian ini data curah hujan dalam satuan milimeter (mm) kelembaban dalam persen () suhu udara dalam satuan celsius (˚C) kecepatan angin dalam satuan kilometer per jam (kmjam)
33 Perancangan
Pada tahap perancangan penelitian ini bertujuan untuk mengetahui rancangan ndash rancangan yang merupakan langkah yang dilakukan saat melakukan tahap implementasi Pada tahap ini terdapat beberapa perancangan yaitu perancangan proses yang berisi tahapan ndash tahapan proses metode High Order Fuzzy Time Series Multi Factors perhitungan manual yang merupakan manualisasi dari metode yang digunakan pada penelitian ini perancangan antar muka atau user interface yang berisi gambaran kasar dari tampilan antar muka prototype aplikasi yang nantinya diterapkan pada tahap implementasi selanjutnya adalah perancangan pengujian yang berisi rancangan ndash rancangan pengujian metode yang digunakan untuk mengetahui berapa tingkat kesalahan atau error yang dimiliki metode pada penelitian ini dalam melakukan peramalan curah hujan
34 Implementasi
Pada tahap implementasi peneltian ini dilakukan sesuai dengan perancangan yang telah dibuat pada tahapan perancangan sebelumnya Implementasi dari metode High Order Fuzzy Time Series Multi Factors dilakukan menggunakan bahasa pemrograman java serta Integrated Development Environment (IDE) yang digunakan adalah Netbeans Sehingga nantinya hasil dari tahap ini berupa prototype aplikasi dari implementasi metode High Order Fuzzy Time Series Multi Factors untuk peramalan curah hujan
35 Pengujian dan Analisis
Pada tahapan penelitian pengujian ini diperlukan perangkat lunak dan perangkat keras agar pengujian dari hasil implementasi dapat berjalan dengan baik maka pengujian perangkat lunak dijalankan pada laptop ataupun PC (Personal Computer) dengan spesifikasi sebagai berikut
24
1 Prosesor Intel Core i3
2 Memory RAM 8 Gigabytes
3 Sistem Operasi menggunakan Windows 7 64bit
4 Hardisk dengan kapasitas 500 GB
5 Netbeans 81 JDK 7
Pengujian hasil peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors yaitu menggunakan metode Mean Square Error (MSE) Dimana rumus pengujian sesuai dengan Persamaan 219 Dalam pengujian menggunakan metode ini semakin kecil nilai MSE maka semakin tinggi tingkat akurasi hasil peramalan tersebut Pada penelitian ini untuk keperluan pengujian dari proses implementasi dilakukan empat pengujian yaitu pengujian terhadap perbedaan nilai order pengujian terhadap perbedaan nilai threshold pengujian terhadap data training untuk mengetahui pengaruhnya terhadap nilai MSE dan pengujian validasi sistem untuk mengetahui bahwa hasil implementasi metode High Order Fuzzy Time Series Multi Factors dapat melakukan peramalan
36 Kesimpulan dan Saran
Pada pengambilan kesimpulan akan dilakukan apabila semua tahapan ndash tahapan penelitian sudah dilakukan yaitu yang meliputi perancangan implementasi dan pengujian dan analisis telah selesai dilakukan Kesimpulan merupakan tahapan dimana semua rumusan masalah yang sudah ditetapkan sebelumnya dapat terjawab semua Selanjutnya pada saran merupakan berkenaan dengan hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
25
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan yang nantinya digunakan sebagai dasar dalam tahap implementasi Hal yang dibahas meliputi perancangan proses perhitungan manual perancangan pengujian dan perancangan antar muka
41 Perancangan Proses
Pada perancangan proses ini berisi mengenai tahapan ndash tahapan dari metode yang digunakan yaitu metode High Order Fuzzy Time Series Multi Factors Pada penelitian ini melibatkan faktor ndash faktor yang mempengaruhi curah hujan yaitu suhu udara kelembaban udara dan kecepatan angin Data time series dari curah hujan merupakan faktor utama dalam proses peramalan pada penelitian ini Inputan pada peneltian ini yaitu data time series curah hujan serta faktor ndash faktor yang mempengaruhinya Order yang digunakan pada metode ini merupakan order lebih dari satu oleh karena itu disebut dengan High Order Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Berikut merupakan diagram alir dari proses peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors yang ditunjukkan pada Gambar 41 dan Gambar 42
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1)
Mulai
Data curah hujan suhu kelembaban kecepatan angin jmlh_Banyakdata jmlh_Faktor
Universe_of_Discourse
A
Jumlah_Cluster
26
411 Proses perhitungan Universe of Discourse
Pada perhitungan Universe of Discourse harus sudah dilakukan inputan data agar dapat memulai tahapan perhitungan Tahapan dari proses perhitungannya yaitu pada langkah pertama dilakukan perhitungan nilai mean (rata ndash rata) sesuai dengan Persamaan 211 Setelah mendapatkan nilai mean dapat dilakukan perhitungan untuk mencari nilai standar deviasi sesuai dengan Persamaan 212 Selanjutnya dicari nilai terkecil (119863119898119894119899) dan nilai terbesar (119863119898119886119909) Setelah menyelesaikan tahap ndash tahap tersebut dapat dilakukan perhitungan untuk
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2)
A
Perhitungan Pusat Cluster
Fuzzifikasi
Pembentukan Fuzzy Logical Relationship
Defuzzifikasi
Nilai hasil peramalan
Berhenti
Pembentukan Subinterval dan Fuzzy set
27
mencari Universe of Discourse sesuai dengan Persamaan 213 Berikut merupakan diagram alir dari proses perhitungan Universe of Discourse yang ditunjukkan pada Gambar 43
Perhitungan Universe of Discourse
Mulai
Min_dan_Max
mean
standar_deviasi
for i = 0 to jmlh_Faktor-1
i
hsl_uMin ke i = hsl_min ke i ndash hsl_stdev ke i
hsl_uMax ke i = hsl_max ke i + hsl_stdev ke i
hsl_uMin hsl_uMax
Berhenti
Gambar 43 Diagram alir proses perhitungan Universe of Discourse
28
4111 Proses perhitungan Mean
Pada proses perhitungan mean merupakan nilai rata ndash rata dari setiap faktor dimana nilai mean ini nantinya dibutuhkan untuk melakukan proses perhitungan standar deviasi Berikut merupakan diagram alir dari proses perhitungan mean yang ditunjukkan pada Gambar 44
mean
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
tmp_jmlh = 0
tmp_jmlh = tmp_jmlh + data ke ij
j
hsl_mean ke i = tmp_jmlhjmlh_DataTraining
i
hsl_mean
Berhenti
Gambar 44 Diagram alir proses perhitungan mean
29
4112 Proses perhitungan standar deviasi
Pada proses perhitungan standar deviasi dapat dilakukan setelah mendapatkan nilai mean dari setiap data sesuai proses sebelumnya Berikut merupakan diagram alir dari proses perhitungan standar deviasi yang ditunjukkan pada Gambar 45
standar_deviasi
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
result = 0
result = result + (data ke ij ndash mean ke i)2
j
hsl_stdev ke i = radicresult
jmlh_DataTrainingminus1
i
hsl_stdev
Berhenti
Gambar 45 Diagram alir proses perhitungan standar deviasi
30
4113 Proses perhitungan nilai Dmin dan Dmax
Pada proses perhitungan ini merupakan proses perhitungan untuk mencari nilai terkecil dan terbesar dari setiap faktor data Setelah mendapat nilai terkecil dan terbesar maka data dilakukan proses perhitungan Universe of Discourse Berikut merupakan diagran alir dari proses perhitungan nilai Dmin dan Dmax yang ditunjukkan pada Gambar 46
Gambar 46 Diagram alir perhitungan nilai Min dan Max
ya
ya
tidak
tidak
Min_dan_Max
Mulai
for i = 0 to jmlh_Faktor-1
besar = data ke i0
kecil = data ke i0
for j=0 to jmlh_DataTraining
data ke ij gt besar
besar = data ke ij
data ke ij lt kecil
kecil = data ke ij
j
hsl_max ke i = besar
hsl_min ke i = kecil
i
hsl_max hsl_min
Berhenti 1
1
2
2
3
4
4
5
5
3
31
412 Proses perhitungan jumlah cluster
Pada proses perhitungan jumlah cluster memiliki masukkan proses Dmin dan Dmax
dari proses perhitungan sebelumnya Pada proses ini terdapat perhitungan nilai dari selisih setiap data Pada perhitungan jumlah cluster sesuai dengan Persamaan 214 Berikut merupakan langkah ndash langkah perhitungan jumlah cluster yang ditunjukkan pada Gambar 47
jumlah_Cluster
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to (jmlh_DataTraining-1)
Berhenti
hsl_max hsl_min
selisih = 0
selisih = selisih + |data ke ij ndash data ke i (j+1)|
j
jmlh_Cluster ke i = |ℎ119904119897_119898119894119899 119896119890 119894minusℎ119904119897_119898119886119909 119896119890 119894|
119904119890119897119894119904119894ℎ
119895119898119897ℎ_119863119886119905119886119879119903119886119894119899119894119899119892minus1
i
jmlh_Cluster
Gambar 47 Diagram alir proses perhitungan jumlah cluster
32
413 Proses perhitungan pusat cluster
Pada proses perhitungan pusat cluster ini diperlukan beberapa variabel yang harus dideklarasikan terlebih dahulu yaitu nilai bobot fungsi objektif nilai iterasi awal nilai iterasi maksimum dan error terkecil Perhitungan subinterval ini menggunakan metode fuzzy C-means yang diawali dengan pencarian pusat cluster terlebih dahulu Berikut merupakan langkah ndash langkah perhitungan subinterval yang ditunjukkan pada Gambar 48 Gambar 49 Gambar 410 Gambar 411 Gambar 412
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1)
Perhitungan pusat cluster
Mulai
jmlh_Cluster
for i = 0 to jmlh_Faktor-1
Deklarasi bobot selisih_f_objektif
iter_maksimum error_min
Pembentukan Matriks partisi faktor A jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor A
for iter = iter to iter_maksimum
A
i == 0
Perhitungan pusat_cluster1 faktor A
B C D
tidak
ya
33
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2)
ya
tidak
tidak
ya
Perhitungan f_objektif faktor A
A B C D
Perhitungan selisih_f_objektif faktor A
Perbaikan matriks partisi faktor A
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster1 faktor A
Iter = iter_maksimum
iter
i == 1
Pembentukan Matriks partisi faktor B jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor B
for iter = iter to iter_maksimum
F A G E
34
tidak
tidak
ya
A E F G
Perhitungan pusat_cluster2 faktor B
Perhitungan f_objektif faktor B
Perhitungan selisih_f_objektif faktor B
Perbaikan matriks partisi faktor B
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster2 faktor B
Iter = iter_maksimum
iter
i == 2
Pembentukan Matriks partisi faktor C jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor C
I A H
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3)
ya
35
tidak
tidak
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4)
ya
A H I
for iter = iter to iter_maksimum
Perhitungan pusat_cluster3 faktor C
Perhitungan f_objektif faktor C
Perhitungan selisih_f_objektif faktor C
Perbaikan matriks partisi faktor C
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster3 faktor C
Iter = iter_maksimum
iter
i == 3
Pembentukan Matriks partisi faktor D jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor D
J A K
ya
36
tidak
ya
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5)
A K J
for iter = iter to iter_maksimum
Perhitungan pusat_cluster4 faktor D
Perhitungan f_objektif faktor D
Perhitungan selisih_f_objektif faktor D
Perbaikan matriks partisi faktor D
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster4 faktor D
Iter = iter_maksimum
iter
i
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
Berhenti
37
tidak
ya
tidak
ya
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1)
414 Proses pembentukan subinterval dan Fuzzy set
Pada proses pembentukan fuzzy set atau himpunan fuzzy pada penelitian ini dapat dilakukan setelah perhitungan subinterval selesai dilakukan Nilai subniterval merupakan masukan utama pada pembentukkan fuzzy set Pembentukan fuzzy sesuai dengan Persamaan 215 Berikut merupakan langkah ndash langkah proses pembentukan fuzzy set yang ditunjukkan pada Gambar 413 dan Gambar 414
Pembentukan subinteval dan Fuzzy set
Mulai
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
for i = 0 to jmlh_Faktor-1
Menentukan batas_subintervalMinA dan
batas_subintervalMaxA
Menentukan batas_fuzzysetMinA dan batas_fuzzysetMaxA
i == 0
i == 1
Menentukan batas_subintervalMinB dan
batas_subintervalMaxB
Menentukan batas_fuzzysetMinB dan batas_fuzzysetMaxB
A C B
38
tidak
tidak
ya
ya
415 Proses Fuzzifikasi
Pada proses fuzzifikasi ini pembentukanya sesuai derajat keanggotaan pada setiap data Pada proses ini derajat keanggotaan dihitung berdassarkan fungsi keanggotaan kurva bahu Hasil dari proses ini merupakan data yang sudah difuzzifikasikan menjadi data fuzzy Berikut langkah ndash langkah dari proses fuzzifikasi ditunjukkan pada Gambar 415 dan Gambar 416
i == 2
A B C
Menentukan batas_subintervalMinC dan batas_subintervalMaxC
Menentukan batas_fuzzysetMinC dan batas_fuzzysetMaxC
i == 3
Menentukan batas_subintervalMinD dan batas_subintervalMaxD
Menentukan batas_fuzzysetMinD dan batas_fuzzysetMaxD
i
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
Berhenti
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2)
39
tidak
ya
ya
tidak
Fuzzifikasi
Mulai
for i = 0 to jmlh_Faktor-1
Menentukan hasil_fuzzifikasiA dari faktor A
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinA batas_fuzzysetMaxA
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1)
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
DD
i == 0
i == 1
Menentukan hasil_fuzzifikasiB
dari faktor B
Menghitung derajat keanggotaan
berdasarkan batas_fuzzysetMinB
batas_fuzzysetMaxB
C A B
40
tidak
ya
ya
tidak
ya
i == 2
A B C
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinC batas_fuzzysetMaxC
Menentukan hasil_fuzzifikasiC dari faktor C
i == 3
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinD
batas_fuzzysetMaxD
Menentukan hasil_fuzzifikasiD dari faktor D
i
hasil_fuzzifikasiA hasil_fuzzifikasiB hasil_fuzzifikasiC hasil_fuzzifikasiD
Berhenti
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2)
41
tidak
ya
416 Proses pembentukan Fuzzy Logical Relationship
Setelah data melalui proses fuzzifikasi dan sudah menjadi data fuzzy maka dapat dilakukan pembentukan Fuzzy Logical Relationship (FLR) Pembentukan FLR dilakukan sesuai dengan Persamaan 216Berikut adalah langkah ndash langkah proses pembentukan Fuzzy Logical Relationship (FLR) yang ditunjukkan pada Gambar 417 Gambar 418 dan Gambar 419
Gambar 417 Diagram alir proses Pembentukan FLR
(bagian 1)
Pembentukan Fuzzy Logical Relationship
Mulai
hasil_fuzzifikasiAhasil_fuzzifikasiB hasil_fuzzifikasiChasil_fuzzifikasiD order
for i = 0 to jmlh_dataTraining
max_inc = order jmlh_dataTraining = dataTraining - order
for j = i to max_inc
for k = 0 to jmlh_Faktor-1
j == 0
FLR_kiri_training ke ijk = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D)
ke j
E A B C D
42
ya
tidak
ya
tidak
A B C E D
FLR_kiri_training ke i(j-i)k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
j = 0
k
j
FLR_kanan_training ke i = hasil_fuzzifikasiA ke (i+order)
Max_inc lt (jmlh_DataTraining-1)
i
tmp_JmlhDatatraining = tmp_JmlhDatatraining +1
max_inc = max_inc + 1 tmp_JmlhDatatraining = i
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2)
for j = 0 to tmp_JmlhDatatraining
for j = tmp_JmlhDatatraining to max_inc
for k = 0 to jmlh_Faktor-1
I H G F
43
tidak
ya
417 Proses Defuzzifikasi
Proses defuzzifikasi merupakan proses akhir dimana keluaran dari proses ini merupakan nilai hasil peramalan Data yang diperlukan pada proses defuzzifikasi adalah hasil dari proses pembentukan Fuzzy Logical Relationship (FLR) nilai threshold yang harus dideklarasikan sebelumnya jumlah data training dan jumlah data testing Dalam proses ini dilakukan perhitungan selisih pada FLR antara data testing dan data training FLR yang dihitung nilai selisihnya adalah FLR pangkat bawah yang terdapat pada ruas kiri Setelah dilakukan perhitungan selisih dan total jumlah selisih lebih kecil dari nilai threshold maka pada setiap FLR yang
I H G F
FLR_kiri_testing ke i(j-tmp_jmlhDatatraining) k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
k
j
FLR_kanan_testing ke i = hasil_fuzzifikasiA ke (i+order)
i
Max_inc lt (jmlh_DataTraining-1)
max_inc = max_inc + 1 tmp_JmlhDatatraining++
FLR_kiri_training FLR_kanan_training FLR_kiri_testing FLR_kanan_testing
Mulai
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3)
44
ya
tidak
sesuai dengan kondisi tersebut dapat dikatakan cocok atau dapat dilakukan ke tahap perhitungan selanjutnya Setelah mendapatkan FLR yang cocok maka dilakukan pengelompokkan berdasarkan FLR ruas kanan Pengelompokkan ini dihitung jumlah frekuensi yang sama sesuai dengan fuzzy set di ruas kanan Selanjutnya untuk memperoleh hasil peramalan dilakukan proses perhitungan sesuai dengan Persamaan 218 Berikut adalah langkah ndash langkah proses defuzzifikasi yang ditunjukkan pada Gambar 420 dan Gambar 421
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1)
Defuzzifikasi
Mulai
FLR_kiri FLR_kanan order dataTraining dataTesting konstanta
threshold = (jmlh_Faktor x order)+konstanta
for i = 0 to dataTesting
for j = 0 to (dataTraining-i)
Perhitungan hitung_selisih antara FLR_kiri data training dan data testing
hitung_selisih lt threshold
match ke ij = hitung_selisih
j
i
A
45
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2)
A
Menghitung jumlah total FLR_kiri yang cocok untuk setiap data testing
Mencocokan FLR_kiri yang cocok dengan FLR_kanan untuk setiap data testing
for i = 0 to dataTesting
Menghitung frekuensi setiap FLR_kanan yang cocok untuk setap data testing
for j = 0 to jumlah total FLR kiri yang cocok
peramalan = peramalan + Frekuensi setiap FLR_kanan yang cocok x pusat_cluster1
sesuai dengan value FLR_kanannya
j
hasil_peramlan ke i = peramalan jumlah total FLR kiri yang cocok
i
Hasil_permalan
Berhenti
46
42 Perhitungan Manual
Dalam perhitungan manual ini data sampel yang digunakan merupakan data time series dasarian ke-2 pada periode April 2014 sampai dengan dasarian ke-2 Juli 2014 data sampel ditunjukkan pada Tabel 41
Tabel 41 Data Sampel Perhitungan Manual
No Dasarian Curah Hujan
(A)
Suhu (B) Kelembaban (C)
Kecepatan Angin(D)
1 Dasarian 2 (April 2014) 95 2615 8248 629
2 Dasarian 3 (April 2014) 90 2612 8247 628
3 Dasarian 1 (Mei 2014) 94 2607 8247 627
4 Dasarian 2 (Mei 2014) 83 2625 8232 623
5 Dasarian 3 (Mei 2014) 85 2628 8235 623
6 Dasarian 1 (Juni 2014) 92 2609 8241 626
7 Dasarian 2 (Juni 2014) 86 2627 8235 624
8 Dasarian 3 (Juni 2014) 89 2621 8238 624
9 Dasarian 1 (Juli 2014) 93 2607 8242 626
10 Dasarian 2 (Juli 2014) 86 2626 8237 623
Sumber BMKG Kelas III Karangkates Malang
421 Perhitungan Universe of Discourse (U)
Sebelum melakukan perhitungan U maka harus dicari terlebih dahulu nilai 119863119898119894119899 119863119898119886119909 dan standar deviasi 119863119898119894119899 adalah nilai minimum atau nilai terkecil dari data sampel yang ada sedangkan 119863119898119886119909 adalah nilai maksimum atau nilai paling besar dari data sampel yang ada Untuk mencari nilai standar deviasi harus menghitung nilai mean (rata ndash rata) terlebih dahulu sesuai dengan Persamaan 211 Mean dari data curah hujan (A) dihitung dengan cara sebagai berikut
Mean = (data ke-1 + data ke-2 + data ke-3 + + data ke-10) 10
= (95 + 90 + 94 + 83 + 85 + 92 + 86 + 89 + 93 + 86) 10
= 893 10
= 893
Selanjutnya setelah diperoleh nilai mean dilanjutkan melakukan perhitungan standar deviasi sesuai dengan Persamaan 212 Standar deviasi adalah akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Untuk menghitung standar deviasi agar lebih mudah kita terlebih dahulu melakukan perhitungan nilai kuadrat dari selisih data ke-i dan mean yang ditunjukkan pada Tabel 42
47
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean
i Data ke-i Data ke-i mean (Data ke-i - mean)sup2
1 95 57 32490
2 90 07 0490
3 94 47 22090
4 83 -63 39690
5 85 -43 18490
6 92 27 7290
7 86 -33 10890
8 89 -03 0090
9 93 37 13690
10 86 -33 10890
Jumlah 1561
Setelah mendapatkan hasil nilai kuadrat dari selisih data ke-i dan mean sesuai dengan Tabel 42 maka dapat dilanjutkan melakukan perhitungan standar deviasi dengan cara sebagai berikut
Standar_deviasi = radic1
10minus1sum (119889119886119905119886 119896119890 minus 119894 minus 119898119890119886119899)10
119894=1
2
= radic1
9 times 1561
= 4165
Untuk perhitungan standar deviasi juga dilakukan pada faktor lainnya yaitu suhu (B) kelembaban (C) dan kecepatan angin (D) Hasil perhitungan 119863119898119894119899 119863119898119886119909 dan standar deviasi ditunjukkan pada Tabel 43
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi
Data D min D max Standar Deviasi
A 83 95 4165
B 2607 2628 0086
C 8232 8248 0057
D 623 629 0022
Berdasarkan hasil yang ditunjukkan Tabel 43 selanjutnya dapat dilakukan perhitungan nilai U sesuai dengan Persamaan 213 Berikut adalah perhitungan U pada data A
U = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590]
= [(83 ndash 4165) (95 ndash 4165)]
= [78835 99165]
48
Untuk perhitungan U juga dilakukan pada semua faktor yaitu data B C dan D Sehingga diperoleh nilai U yang ditunjukkan pada Tabel 44
Tabel 44 Hasil Universe of Discourse
Data U
Batas Bawah Batas Atas
A 78835 99165
B 25984 26366
C 82263 82537
D 6208 6312
422 Perhitungan jumlah cluster (k)
Pada perhitungan jumlah cluster langkah pertamanya adalah mencari nilai absolut dari selisih data hari ke-t dengan hari sebelumnya Perhitungan selisih dilakukan hingga data ke-10 Perhitungan nilai selisih dilakukan pada semua data A B C dan D Selanjutnya masing ndash masing nilai selisih dijumlah sehingga hasilnya seperti ditunjukkan pada Tabel 45
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya
No Tanggal A B C D
1 Dasarian 3 (April 2014) 5 003 001 001
2 Dasarian 1 (Mei 2014) 4 005 0 001
3 Dasarian 2 (Mei 2014) 11 018 015 004
4 Dasarian 3 (Mei 2014) 2 003 003 0
5 Dasarian 1 (Juni 2014) 7 019 006 003
6 Dasarian 2 (Juni 2014) 6 018 006 002
7 Dasarian 3 (Juni 2014) 3 006 003 0
8 Dasarian 1 (Juli 2014) 4 014 004 002
9 Dasarian 2 (Juli 2014) 7 019 005 003
Jumlah 49 105 043 016
Setelah mendapatkan nilai absolut selisih data hari ke-t dengan hari sebelumnya dapat dilanjutkan dengan menghitung jumlah cluster sesuai dengan Persamaan 214 Perhitungan jumlah cluster pada data A (k1) berdasarkan pada Tabel 43 diketahui nilai 119863119898119894119899 adalah 171 nilai 119863119898119886119909 adalah 2048 maka jumlah cluster data A dapat ditunjukkan sebagai berikut
49
1198961 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905) minus 119883(119905 minus 1)|119899
119905=1
119899 minus 1|
= |83 minus 9549
10minus1| = 2204
Apabila hasil perhitungan jumlah cluster merupakan bilangan pecahan maka hasilnya harus dibulatkan Sehingga jumlah cluster pada data A adalah 2 Perhitungan jumlah cluster juga dilakukan pada data B (k2) C (k3) dan D (k4) Berikut merupakan hasil semua perhitungan jumlah cluster yang ditunjukkan pada Tabel 46
Tabel 46 Hasil jumlah cluster data
No Cluster Jumlah Cluster
1 k1 2
2 k2 2
3 k3 3
4 k4 3
423 Perhitungan pusat cluster dan subinterval
Pada pembentukan subinterval berdasarkan pada Tabel 46 yang menunjukkan jumlah subinterval yang selanjutnya digunakan untuk menentukan pusat cluster menggunakan algoritma fuzzy C-means (FCM)
4231 Penentuan pusat cluster
a Penentuan nilai variabel
Pada penentuan subinterval diawali dengan klasterisasi menggunakan algoritma FCM pada awal proses ditentukkan beberapa variabel sebagai berikut
Banyak cluster = k1 = 2
Bobot (w) = 2
Fungsi objektif awal = 0
Iterasi awal = 1
Iterasi maksimum = 100
Error terkecil = 001 b Pembentukan matriks partisi awal (micro)
Data pada pembentukan matriks partisi awal merupakan nilai random diantara nilai 0 sampai 1 Dimensi pada matriks partisi awal dibentuk dengan dimensi jumlah data (i) x jumlah cluster (k) Dalam hal ini telah diketahui jumlah data adalah 10 dan k1 adalah 2 maka partisi dimensi matriks awal adalah 10 x 2 Hasil pembentukan matriks partisi awal ditunjukkan pada Tabel 47 dimana Cluster disimbolkan dengan C
50
Tabel 47 Matriks partisi awal pada cluster data A
c Normalisasi matriks partisi awal
Langkah pertama normalisasi matriks partisi awal adalah dengan menghitung jumlah bilangan penyusun matriks pada setiap kolom yang dapat dilihat pada Tabel 47 dijumlah berdasarkan dengan Persamaan 24 Diketahui jumlah kolom matriks sebanyak 2 sehingga diperoleh Q1 untuk penjumlahan kolom c1 Q2 untuk penjumlahan kolom c2
Q1 = 0355 + 0174 + 02 + 0387 + 0598 + 0819 + 0702 + 0719 + 0349 +
0852
= 5154
Q2 = 0170 + 0815 + 0190 + 0456 + 0526 + 0170 + 0232 + 0572 + 0102 +
0322
= 3554
Langkah selanjutnya dilakukan proses normalisasi menggunakan Persamaan 25 Dimana setiap bilangan penyusun matriks awal dibagi dengan nilai Q sesuai dengan kolomnya masing ndash masing Bilangan penyusun matriks disimbolkan dengan microik dimana i menunjukkan baris dan k menunjukkan kolom posisi bilangan tersebut pada matriks
i micro
c1 c2
1 0355 0170
2 0174 0815
3 0200 0190
4 0387 0456
5 0598 0526
6 0819 0170
7 0702 0232
8 0719 0572
9 0349 0102
10 0852 0322
51
μ11 = bilangan matriks partisi pada baris 1 kolom 1
Q1
= 0355
5154
= 0069
μ12 = bilangan matriks partisi pada baris 1 kolom 2
Q2
= 0170
3554
= 0048
Setelah melakukan perhitungan seperti diatas untuk semua bilangan matriks sehingga matriks partisi sudah ternormalisasi seperti yang ditunjukkan pada Tabel 48
Tabel 48 Derajat keanggotaan matriks partisi data A
i micro
C1 C2
1 0069 0048
2 0034 0229
3 0039 0054
4 0075 0128
5 0116 0148
6 0159 0048
7 0136 0065
8 0140 0161
9 0068 0029
10 0165 0090
d Perhitungan pusat cluster (V)
Pada perhitungan pusat cluster (V) berdasarkan Persamaan 26 Dimana setiap bilangan penyusun matriks partisi (micro) dipangkatkan dengan w dimana variabel w yang sudah dideklarisakan terlebih dahulu dengan nilai sama dengan 2 dan dikalikan dengan bilangan penyusun matriks X yang merupakan matriks berisi data yang ada pada Tabel 41 Selanjutnya hasil perkalian tersebut dijumlah dan dibagi dengan jumlah hasil kuadrat dari bilangan penyusun matriks partisi Hasil perhitungan ditunjukkan pada Tabel 49
52
Tabel 49 Perhitungan pusat cluster data A
Berdasarkan jumlah cluster dari data A yaitu 2 maka terdapat 2 pusat cluster (V) yaitu V1 V2 Perhitungan nilai V adalah sebagai berikut
V1 = sum ((μic1)2 times Xi)10
i=1
sum (μic1)210i=1
= 10730216
0121620
= 8822718207
V2 = sum ((μic2)2 times Xi)10
i=1
sum (μic2)210i=1
= 12111287
0137572
= 8803592572
Jadi berdasarkan perhitungan diatas pusat cluster untuk data A pada iterasi ke-1 adalah 8822718207 8803592572
e Perhitungan fungsi objektif (P)
Pada perhitungan P menggunakan Persamaan 27 dimana setiap baris pada data matriks X dikurangi pusat cluster (V) selanjutnya dikuadratkan Hasilnya
i X microsup2 microsup2 x X
C1 C2 C1 C2
1 95 0004731 0002292 0449450 0217718
2 90 0001137 0052633 0102304 4736927
3 94 0001512 0002864 0142117 0269234
4 83 0005630 0016427 0467258 1363472
5 85 0013448 0021907 1143107 1862112
6 92 0025233 0002291 2321422 0210787
7 86 0018542 0004243 1594602 0364916
8 89 0019487 0025916 1734356 2306543
9 93 0004590 0000816 0426841 0075870
10 86 0027311 0008183 2348759 0703706
Jumlah 0121620 0137572 10730216 12111287
53
kemudian dikalikan dengan micro yang sudah dipangkatkan dengan bobot (w) seperti yang telah ditunjukkan pada Tabel 49 Selanjutnya hasil tersebut dijumlah per kolom seperti yang ditunjukkan pada Tabel 410
Tabel 410 Fungsi objektif data A
i X (X-V)sup2 (X-V)sup2 x microsup2
C1 C2 C1 C2
1 95 458711 484983 02170 01111
2 90 31429 38576 00036 02030
3 94 333254 355702 00504 01019
4 83 273234 253605 01538 04166
5 85 104147 92168 01401 02019
6 92 142342 157139 03592 00360
7 86 49603 41450 00920 00176
8 89 05972 09294 00116 00241
9 93 227798 246420 01046 00201
10 86 49603 41450 01355 00339
Jumlah 1267661573 1166282827
Fungsi Objektif (P) 24339444
Perhitungan nilai fungsi objektif dilakukan seperti Persamaan 27 Nilai fungsi objektif diperoleh dengan cara sebagai berikut P = sum sum ([(Xi minus Vc)2](μik)2)3
c=110i=1
P = 1267661573 + 1166282827
= 24339444
f Perbaikan matriks partisi
Pada langkah ini perbaikan matriks partisi dilakukan berdasarkan Persamaan 28 Data matriks X untuk setiap barisnya dikurangi pusat cluster lalu dikuadratkan seperti yang ditunjukkan pada Tabel 410 Selanjutnya hasilnya dipangkatkan dengan -11 karena w-1 = 1 Hasil pangkat -1 terhadap (X-V)2 ditunjukkan pada Tabel 411
54
Tabel 411 Perbaikan matriks partisi
i ((X-V)sup2)^-1
Jumlah C1 C2
1 0022 0021 0042
2 0318 0259 0577
3 0030 0028 0058
4 0037 0039 0076
5 0096 0108 0205
6 0070 0064 0134
7 0202 0241 0443
8 1674 1076 2750
9 0044 0041 0084
10 0202 0241 0443
Berdasarkan tabel diatas bilangan penyusun matriks partisi yang baru atau yang telah diperbaiki diperoleh dari hasil pembagian data terhadap jumlah per barisnya
12058311 = 0022
0042= 0514
12058312 = 0021
0042= 0486
Pada perhitungan nilai matriks yang sudah diperbaiki dilakukan pada semua elemen matriks sehingga hasil perbaikan matriks seperti yang ditunjukkan pada Tabel 412
Tabel 412 Hasil perbaikan matriks partisi
Setelah mendapatkan hasil perbaikan matriks partisi kita lakukan pengecekan selama iterasi kurang dari iterasi maksimum (maxIter) atau selisih antara fungsi objektif iterasi saat ini dengan iterasi sebelumnya bernilai lebih dari nilai error terkecil yaitu 001 maka proses berlanjut dengan kembali melakukan perhitungan pusat cluster hingga perbaikan matriks partisi Hasil
i micro
C1 C2
1 0514 0486
2 0551 0449
3 0516 0484
4 0481 0519
5 0469 0531
6 0525 0475
7 0455 0545
8 0609 0391
9 0520 0480
10 0455 0545
55
perhitungan pusat cluster dari data A B C dan D setelah dilakukan proses tiga kali iterasi dan diurutkan mulai dari yang terkecil sampai yang terbesar ditunjukkan pada Tabel 413
Tabel 413 Hasil pusat cluster
4232 Perhitungan batas subinterval
Perhitungan batas subinterval dilakukan dengan mencari nilai tengah (Median) dari setiap pusat cluster Berikut merupakan contoh perhitungan batas subinterval pada data A
a Interval 1 Batas bawah = 78835 (Batas bawah Universe of Discourse pada data A) Batas atas = 89347 (Median 88303 dan 90390)
b Interval 2 Batas bawah = 89347 (Median 88303 dan 90390) Batas atas = 99165 (Batas atas Universe of Discourse pada data A)
Seperti perhitungan diatas juga dilakukan pada data suhu (B) kelembaban (C) dan kecepatan angin (D) Dalam hal ini jumlah subinterval setiap atribut berbeda ndash beda sesuai dengan jumlah cluster yang sebelumnya ditunjukkan pada Tabel 46 Berikut merupakan batas subinterval masing ndash masing atribut yang ditunjukkan pada Tabel 414
Tabel 414 Batas subinterval masing ndash masing atribut data
Interval (micro)
A B C D
1
78835 25984 751708 6208
sd sd sd sd
89347 26181 823863 6249
2
89347 26181 823863 6249
sd sd sd sd
99165 26366 82411 6256
3
82411 6256
- - sd sd
82537 6312
Cluster A B C D
1 88303 26165 82391 62497
2 90390 26197 82408 62499
3 - - 82415 62613
56
424 Pembentukan Fuzzy Set
Pembentukan fuzzy set berdasarkan pada derajat keanggotaan dari subinterval (micro) fuzzy set dari data A ditentukan dengan derajat keanggotaan sebagai berikut
A1 = 1micro1 + 05micro2
A2 = 05micro1 + 1micro2
Pada derajat keanggotaan data A diatas simbol ldquo+rdquo menunjukkan operator himpunan gabungan Berdasarkan subinterval pada Tabel 414 nilai batas fuzzy set dari data atribut A dapat ditentukan dengan cara sebagai berikut
A1 = 78835 sd 94256 (Batas bawah interval 1 sd titik tengah interval 2)
A2 = 84091 sd 99165 (Titik tengah interval 1 sd batas atas interval 2)
Setelah diketahui batas masing ndash masing fuzzy set grafik fungsi keanggotaan fuzzy set data A yang direpresentasikan dalam kurva bahu yang ditunjukkan pada Gambar 422 Dengan cara yang sama juga ditentukan pula fuzzy set dari data attribut B C dan D
425 Fuzzifikasi
Pada langkah fuzzifikasi dilakukan dengan mencari derajat keanggotaan yang memiliki nilai paling besar (maksimum) dari masing ndash masing data terhadap fuzzy set yang sudah terbentuk Derajat keanggotaan dicari berdasarkan fungsi keanggotaan kurva bentuk bahu Berikut ini adalah perhitungan derajat keanggotaan dari data attribut A
Data aktual curah hujan (A) pada April 2014 dasarian ke-3 = 90
1198601 = 942558 ndash 90
942558minus840911= 041868427
Gambar 422 Grafik fuzzy set data A
57
1198602 = 90minus840911
942558minus840911= 058131636
Derajat keanggotaan paling besar berada pada A2 sehingga data attribut A pada April 2014 dasarian ke-3 difuzzifikasikan ke fuzzy set A2 Perhitungan yang sama dilakukan pada seluruh data attribut A sehingga didapat derajat keanggotaan dan hasil fuzzifikasi dari data A ditunjukkan pada Tabel 415
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A
i Data A1 A2 Fuzzyfikasi
1 95 0 1 A2
2 90 041868363 058131636 A2
3 94 002516357 097483642 A2
4 83 1 0 A1
5 85 09105837 008941629 A1
6 92 02219236 077807639 A2
7 86 08122036 018779631 A1
8 89 05170636 048293635 A1
9 93 01235436 087645641 A2
10 86 08122037 018779631 A1
Perhitungan yang sama juga dilakukan pada semua attribut yaitu attribut B C dan D Sehingga dapat diperoleh hasil fuzzifikasi sesuai derajat keanggotaan dengan nilai paling besar Berikut adalah hasil fuzzifikasi untuk semua attribut yang dapat dilihat pada Tabel 416
Tabel 416 Hasil fuzzifikasi semua data attribut
No Tanggal A B C D
1 Dasarian 2 (April 2014) A2 B1 C3 D3
2 Dasarian 3 (April 2014) A2 B1 C3 D3
3 Dasarian 1 (Mei 2014) A2 B1 C3 D3
4 Dasarian 2 (Mei 2014) A1 B2 C1 D1
5 Dasarian 3 (Mei 2014) A1 B2 C1 D1
6 Dasarian 1 (Juni 2014) A2 B1 C2 D2
7 Dasarian 2 (Juni 2014) A1 B2 C1 D1
8 Dasarian 3 (Juni 2014) A1 B2 C2 D1
9 Dasarian 1 (Juli 2014) A2 B1 C2 D2
10 Dasarian 2 (Juli 2014) A1 B2 C2 D1
58
426 Pembentukan Fuzzy Logical Relationship (FLR)
Pada tahap pembentukan FLR dengan berdasarkan nilai order yang sudah ditentukan Pada manualisasi ini berdasarkan dari Tabel 416 di misalkan nilai order kita deklarasikan dengan nilai 3 sehingga dapat menghasilkan 7 FLR Hasil pembentukan FLR Data training dapat ditunjukkan pada Tabel 417 Hasil pembentukan FLR Data testing dapat ditunjukkan pada Tabel 418
Tabel 417 Hasil pembentukan FLR data training
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(32)B(31)C(33)D(33)) rarr A1
2 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(31)B(32)C(31)D(31)) rarr A1
3 (A(12)B(11)C(13)D(13)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(31)D(31)) rarr A2
4 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(21)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
5 (A(11)B(12)C(11)D(11)) (A(22)B(21)C(22)D(22)) (A(31)B(32)C(31)D(31)) rarr A1
Tabel 418 Hasil pembentukan FLR data testing
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(12)D(12)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(32)D(31)) rarr A2
2 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(22)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
427 Defuzzifikasi
Pada tahap ini misalkan jumlah data yang digunakan untuk data uji atau data testing adalah dua yaitu yang pertama data periode ke-9 dan yang kedua data periode ke-10 Sehingga yang digunakan data latih atau data training adalah data pada periode ke-1 sampai data periode ke-8 Pada data testing yang pertama melibatkan FLR ke-1 sampai FLR ke-5 untuk disesuaikan dengan FLR ke-6 yang berdasarkan pada Tabel 417 Pada data testing yang kedua melibatkan FLR ke-1 sampai FLR ke-6 untuk disesuaikan dengan FLR ke-7 yang berdasarkan pada Tabel 417 Selanjutnya setiap ruas kiri FLR data testing dibandingkan dengan FLR data training yaitu pada bilang pangkat bawah fuzzy set dibandingkan sesuai dengan posisinya dan dihitung selisihnya Hasil dari perhitungan selisih tersebut dijumlahkan dan apabila jumlah selisihnya kurang dari threshold maka FLR tersebut dikatakan cocok Threshold merupakan dari hasil mengalikan jumlah order dengan jumlah faktor kemudian dijumlahkan dengan dengan sebuah konstanta Contoh perhitungan selisih nilai ruas kiri FLR pada data testing pertama adalah sebagai berikut
59
Data testing = (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(32) B(31) C(33) D(33)) rarr A1
Data training =
1 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
2 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
3 (A(12) B(11) C(13) D(13)) (A(21) B(22) C(21) D(21)) (A(31) B(32) C(31) D(31)) rarr A2
4 (A(11) B(12) C(11) D(11)) (A(21) B(22) C(21) D(21)) (A(32) B(31) C(32) D(32)) rarr A1
5 (A(11) B(12) C(11) D(11)) (A(22) B(21) C(22) D(22)) (A(31) B(32) C(31) D(31)) rarr A1
Selisih data ke- 1 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|2-1|+|1-2|+|3-2|+|3-1| = 13
Selisih data ke- 2 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Selisih data ke- 3 = |2-2|+|1-1|+|3-2|+|3-2|+|1-1|+|2-2|+|1-1|+|1-1|+|1-1|+|2-2|+|1-2|+|1-1| = 3
Selisih data ke- 4 = |1-2|+|2-1|+|1-2|+|1-2|+|1-1|+|2-2|+|1-1|+|1-1|+|2-1|+|1-2|+|2-2|+|2-1| = 7
Selisih data ke- 5 = |1-2|+|2-1|+|1-2|+|1-2|+|2-1|+|1-2|+|2-1|+|2-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Pada perhitungan selisih nilai ruas kiri FLR pada data testing juga dilakukan pada semua data testing yang sudah dideklarasikan sebelumnya Dalam hal ini agar dapat menemukan FLR yang cocok dengan data testing Tahap selanjutnya adalah proses defuzzifikasi menggunakan threshold yang dimisalkan 18 sehingga FLR yang memiliki kecocokan dengan data testing pertama adalah semua FLR dari ke-1 sampai ke-5 karena memiliki hasil selisih kurang dari 18 Semua FLR yang cocok ditampung dikelompokkan berdasarkan FLR pada ruas kanan yang sama kemudian dhitung frekuensinya Berikut adalah frekuensi dan pusat cluster dari ruas kanan FLR yang cocok dengan data testing pertama dan kedua ditunjukkan pada Tabel 419
Tabel 419 Frekuensi FLR yang cocok dengan data testing
Data testing 1 Data testing 2
Ruas kanan A1 A2 A1 A2
Pusat Cluster 88303 90390 88303 90390
Frekuensi 4 1 4 2
Berdasarkan pada Tabel 419 dilakukan defuzzifikasi sesuai dengan Persamaan 218 sebagai berikut
119863119886119905119886 119905119890119904119905119894119899119892 1 = (88303times4)+(90390times1)
5= 887204
60
119863119886119905119886 119905119890119904119905119894119899119892 2 = (88303times4)+(90390times2)
6= 889987
Jadi berdasarkan perhitungan diatas diperoleh hasil peramalan curah hujan pada pada April 2014 dasarian ke-3 adalah 1384601636 sedangkan pada tanggal 10012016 adalah 2769203272 Perbandingan data curah hujan aktual dan hasil peramalan dengan metode High Order Fuzzy Time Series Multi Factors dapat dilihat pada Tabel 420
Tabel 420 Perbandingan data aktual dan hasil peramalan
No Data Aktual Hasil Peramalan
1 93 887204
2 86 889987
Dari hasil peramalan yang ditunjukkan pada Tabel 420 dapat dilakukan perhitungan kesalahan peramalan menggunakan metode Mean Square Error (MSE) seperti Persamaan 219
119872119878119864 = ((93minus887206)2+(86minus889989)2)
2
= 136536
43 Perancangan antarmuka
Perancangan antarmuka merupakan perancangan dari tampilan antarmuka atau interface yang nantinya akan diterapkan pada tahapan implementasi Pada perancangan antarmuka ini terdapat lima halaman utama dan juga terdapat dalam menu berupa button yaitu halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
431 Halaman input
Pada halaman input terdapat inputan data dengan nama button Browse Data pada inputan data ini pengguna diharuskan memasukkan inputan file data dalam bentuk ekstensi xls serta direktori lokasi file yang di inputkan akan ditampilkan pada textfield dan juga terdapat label yang menampilkan jumlah banyaknya data yang terdapat pada file yang telah di inputkan Selanjutnya juga terdata inputan textfield data training data testing order dan nilai konstanta Pada halaman input ini juga terdapat button fuzzification yang berfungsi untuk melakukan proses clustering fuzzifikasi dan FLR Selanjutnya pada button forecasting berfungsi untuk melakukan peramalan atau defuzzifikasi dari hasil proses fuzzifikasi serta menghitung nilai error dari hasil peramalan Berikut
61
merupakan rancangan tampilan antarmuka dari halaman input yang ditunjukkan pada Gambar 423
432 Halaman tampil data
Pada halaman tampil data terdapat tabel yang menampilkan isi data dari xls yang sudah dimasukkan terlebih dahulu pada halaman input Tabel tampil data akan menampilkan tanggal curah hujan kelembaban suhu dan kecepatan angin Berikut merupakan tampilan rancangan halaman tampil data yang ditunjukkan pada Gambar 424
Gambar 423 Rancangan antarmuka halaman input
Gambar 424 Rancangan antarmuka halaman tampil data
62
433 Halaman proses
Pada halaman proses akan menampilkan hasil clustering fuzzifikasi dan fuzzy logical relationship Pada tampilan halaman clustering akan menampilkan Universe of Discourse curah hujan suhu kelembaban dan kecepatan angin Selanjutnya tampilan dibawahnya akan menampilkan jumlah cluster dari setiap faktor yaitu jumlah cluster curah hujan suhu kelembaban dan kecepatan angin Berikut merupakan tampilan perancangan halaman proses clustering yang ditunjukkan Gambar 425
Selanjutnya pada tampilan proses fuzzifikasi akan menampilkan tabel hasil fuzzifikasi dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzifikasi yang ditunjukkan pada Gambar 426
Gambar 425 Rancangan antarmuka halaman proses clustering
Gambar 426 Rancangan antarmuka proses fuzzifikasi
63
Pada tampilan proses fuzzy logical relationship (FLR) akan menampilkan textarea berisi hasil proses FLR dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzy logical relationship yang ditunjukkan pada Gambar 427
434 Halaman hasil
Pada halaman hasil peramalan akan menampilkan tabel yang berisi hasil peramalan curah hujan dan data curah hujan yang sebenarnya Serta terdapat text link yang akan menampilkan grafik perbandingan data hasil peramalan dan data yang sebenarnya Berikut adalah tampilan rancangan halaman hasil yang ditunjukkan pada Gambar 428
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship
Gambar 428 Rancangan antarmuka halaman hasil peramalan
64
435 Halaman perhitungan error
Pada halaman perhitungan error akan menampilkan nilai dari hasil perhitungan Mean Square Error (MSE) pada textfield Berikut adalah tampilan rancangan halaman perhitungan error yang ditunjukkan pada Gambar 429
44 Perancangan pengujian
Pada penelitian ini akan dilakukan empat pengujian yaitu pengujian terhadap nilai order nilai threshold pengujian terhadap jumlah data training untuk mengetahui pengaruhnya terhadap nilai Mean Square Error (MSE) dan pengujian validasi sistem untuk mengetahui kestabilan hasil implementasi
441 Perancangan pengaruh order terhadap nilai MSE
Order merupakan jumlah urutan data yang digunakan dalam pembentukkan Fuzzy Logical Relationship (FLR) Pada pengujian ini dilakukan percobaan dengan order yang berbeda ndash beda Pengujian ini bertujuan untuk mengetahui pengaruh order terhadap hasil peramalan Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Pada setiap pengujian yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan order yang berbeda Berikut adalah perancangan pengujian order terhadap nilai MSE ditunjukkan pada Tabel 421
Tabel 421 Rancangan pengujian order terhadap nilai MSE
No Order Threshold MSE
1
Gambar 429 Rancangan antarmuka halaman perhitungan error
65
442 Perancangan pengaruh threshold terhadap nilai MSE
Nilai threshold bergantung jumlah order karena untuk nilai threshold merupakan dari hasil mengalikan jumlah faktor yang mempengaruhi dengan order selanjutnya dijumlah dengan sebuah konstanta Pada pengujian ini dilakukan percobaan dengan konstanta yang berbeda ndash beda sehingga menghasilkan threshold yang berbeda pula Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan konstanta dan threshold yang berbeda Berikut merupakan rancangan pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 422
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1
443 Perancangan pengaruh jumlah data training terhadap nilai MSE
Data training sangat berperan penting dalam proses defuzzifikasi sehingga pada penelitian ini dilakukan pengujian pengaruh jumlah data training terhadap tingkat kesalahan dari hasil peramalan Pada pengujian ini dilakukan percobaan dengan jumlah data training yang berbeda ndash beda Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan dilakukan perhitungan nilai MSE untuk mengetahui tingkat kesalahan dari hasil peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors dengan jumlah data training yang berbeda ndash beda Sehingga dari hasil pengujian ini dapat diketahui pengaruh dari jumlah data training Berikut merupakan rancangan pengujian pengaruh jumlah data training yang ditunjukkan pada Tabel 423
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1
444 Perancangan validasi sistem
Pada pengujian validasi sistem akan melakukan pengujian dengan menggunakan order threshold terbaik seperti yang telah dilakukan pada
66
pengujian ndash pengujian sebelumnya yang menghasilkan hasil error MSE terendah Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Berikut merupakan rancangan pengujian validasi sistem yang ditunjukkan pada Tabel 424
Tabel 424 Rancangan pengujian validasi sistem
Percobaan ke- MSE
1
67
BAB 5 IMPLEMENTASI
Pada bab ini berisi pembahasan hasil implementasi metode High Order Fuzzy Time Series Multi Factors yang sesuai dengan bab sebelumnya yaitu perancangan Bab ini terdiri dari spesifikasi sistem implementasi algoritma dan implementasi antarmuka
51 Spesifikasi Sistem
Pada spesifikasi sistem ini dibagi mejadi dua yaitu spesifikasi perangkat keras dan spesifikasi perangkat lunak
511 Spesifikasi Perangkat Keras
Spesifikasi perangkat keras merupakan perangkat keras yang digunakan pada implementasi penelitian ini Perangkat keras yang digunakan adalah laptop dengan spesifikasi sesuai dengan pada Tabel 51 berikut
Tabel 51 Spesifikasi Perangkat Keras
Komponen Spesifikasi
Processor Intelcopy Core i3-3217U 180 GHz
Memori (RAM) 8 GB RAM
Harddisk 500 GB RAM
512 Spesifikasi Perangkat Lunak
Spesifikasi perangkat lunak merupakan perangkat lunak yang digunakan pada implementasi penelitian ini Perangkat lunak yang digunakan pada implementasi penelitian sesuai dengan yang ditunjukkan pada Tabel 52 berikut
Tabel 52 Spesifikasi Perangkat Lunak
Sistem Operasi Microsoft Windows 7 (64 bit)
Bahasa Pemrograman Java
Tools Pemrograman Netbeans 81
Data Microsoft Excel 2013
52 Implementasi Algoritma
Pada implementasi algoritma ini membahas mengenai hasil implementasi algoritma metode High Order Fuzzy Time Series Multi Factors yang mengacu pada bab sebelumnya yaitu perancangan Dalam penelitian ini implementasi algoritma menggunakan bahasa pemrograman java berbasis desktop Implementasi algoritma terdiri dari beberapa method sesuai dengan langkah ndash langkah pada algoritma metode High Order Fuzzy Time Series Multi Factors
68
521 Implementasi Proses Universe of Discourse
Pada implementasi Universe of Discourse seperti yang ditunjukkan Kode Program 51 dimana pada source code method Universe_of_Discourse baris 3 - 5 terdapat pemanggilan method mean standar_deviasi dan Min_dan_Max Dimana pemanggilan method tersebut dibutuhkan untuk melakukan proses perhitungan selanjutnya yaitu untuk menghitung batas bawah dan batas atas dari Univers of Discourse Baris 7-10 untuk menghitung hasil Universe of Discourse Berikut merupakan source code dari proses Universe of Discourse yang ditunjukkan pada Kode Program 51
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
private void Universe_of_Discourse()
mean()
standar_deviasi()
Min_dan_Max()
hsl_uMin = new double[jmlh_Faktor]
hsl_uMax = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
hsl_uMin[i] = hsl_min[i] - hsl_stdev[i]
hsl_uMax[i] = hsl_max[i] + hsl_stdev[i]
Kode Program 51 Implementasi proses Universe of Discourse
5211 Implementasi proses mean
Pada implementasi proses mean merupakan proses perhitungan nilai rata ndash rata dari setiap faktor yang nantinya hasilnya diperlukan untuk proses perhitungan standar deviasi Berikut merupakan source code dari proses mean yang ditunjukkan pada Kode Program 52 Perhitungan utama proses mean terdapat pada baris 3 ndash 8
Baris Kode
1 2 3 4 5 6 7 8 9
private void mean()
hsl_mean = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double tmp_jmlh = 0
for (int j = 0 j lt jmlh_DataTraining j++)
tmp_jmlh = tmp_jmlh + data[i][j]
hsl_mean[i] = (tmp_jmlh jmlh_DataTraining)
Kode Program 52 Implementasi proses mean
5212 Implementasi proses standar deviasi
Pada implementasi proses perhitungan standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Standar deviasi dapat dilakukan perhitungan setelah mendapat nilai hasil dari perhitungan mean Berikut merupakan source code dari implementasi proses standar deviasi yang ditunjukkan pada Kode Program 53 Perhitungan utama proses standar deviasi terdapat pada baris 3 ndash 9
69
Baris Kode
1 2 3 4 5 6 7 8 9 10 11
private void standar_deviasi()
hsl_stdev = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double result = 0
for (int j = 0 j lt jmlh_DataTraining j++)
result = result + (Mathpow((data[i][j] ndash
hsl_mean[i]) 2))
hsl_stdev[i]=Mathsqrt(result(jmlh_DataTraining-
1))
Kode Program 53 Implementasi proses standar deviasi
5213 Implementasi proses Dmin dan Dmax
Pada implementasi proses Dmin dan Dmax merukan untuk mencari nilai minimum dan nilai maksimum dari data sampel untuk setiap faktor Berikut merupakan source code dari implementasi dari proses Dmin dan Dmax yang ditunjukkan pada Kode Program 54 Pada baris 8 ndash 10 merupakan bagian dari proses untuk untuk menentukan nilai data terbesar Selanjutnya pada baris 11 ndash 13 untuk menentukan nilai data terkecil
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
19
private void Min_dan_Max()
hsl_max = new double[jmlh_Faktor]
hsl_min = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double besar = data[i][0]
double kecil = data[i][0]
for (int j = 0 j lt jmlh_DataTraining j++)
if (data[i][j] gt besar)
besar = data[i][j]
if (data[i][j] lt kecil)
kecil = data[i][j]
hsl_max[i] = besar
hsl_min[i] = kecil
Kode Program 54 Implementasi proses Dmin dan Dmax
522 Implementasi Proses Jumlah Cluster
Pada implementasi proses jumlah cluster merupakan proses perhitungan jumlah cluster dari setiap faktor Implementasi ini dapat dilakukan apabila sudah mendapatkan hasil output dari method Min_dan_Max() sudah didapatkan Berikut merupakan source code dari implementasi proses jumlah cluster yang ditunjukkan pada Kode Program 55 Pada baris 3 ndash 7 untuk digunakan untuk menghitung selisih data sampel setiap baris dari semua faktor pada data sampel ke t dengan t+1 Selanjutnya pada baris 9 ndash 10 untuk menghitung jumlah cluster dari setiap faktor
70
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
private void jumlah_Cluster()
jmlh_Cluster = new int[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double selisih = 0
for (int j = 0 j lt (jmlh_DataTraining - 1) j++)
selisih = selisih + (Mathabs((data[i][j]
- data[i][(j + 1)])))
jmlh_Cluster[i] = (int) Mathround((Mathabs(
hsl_min[i]-hsl_max[i]))(selisih(jmlh_DataTraining
-1)))
Kode Program 55 Implementasi proses jumlah cluster
523 Implementasi Proses Pusat Cluster
Implementasi proses perhitungan pusat cluster ini menggunakan metode fuzzy C-means untuk mendapatkan pusat cluster yang nantinya digunkan sebagai subinterval Implementasi ini memerlukan hasil dari proses method jumlah_Cluster() agar dapat melakukan perhitungan subinterval Berikut merupakan source code dari implementasi proses subinterval yang ditunjukkan pada Kode Program 56 Pada Kode Program 56 hanya menampilkan source code pembentukan subinterval pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 2 ndash 3 merupakan deklarasi variabel bobot iterasi maksimum selisih fungsi objektif awal dan error minimum Pada baris 8 ndash 20 merupakan proses pembentukan matriks partisi dengan nilai random 0 sampai 1 Pada baris 22 ndash 26 merupakan proses normalisasi matriks partisi yang telah terbentuk Pada baris 28 ndash 63 merupakan proses untuk menentukan pusat cluster Pada baris 65 ndash 86 merupakan proses perhitungan fungsi objektif dari iterasi Pada baris 88 ndash 90 merupakan proses perhitungan selisih fungsi objektif Pada baris 92 ndash 108 adalah proses perbaikan matriks partisi Pada baris 110 ndash 115 adalah proses hasil perbaikan matriks partisi Pada baris 116 - 133 adalah proses dengan pengkondisian apakah selisih fungsi objektif lebih kecil dari error minimum serta apabila memenuhi kondisi maka dilanjutkan ke proses pengurutan pusat cluster secara ascending dari hasil iterasi terakhir dan proses pengkondisian iterasi berhenti
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void pusat_cluster()
int bobot = 2int iter_maksimum = 100
double selisih_f_objektif = 0double error_min = 001
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
Pembentukkan matriks partisi
tmp_Matriks1=new
double[jmlh_Cluster[i]][jmlh_DataTraining]
q1 = new double[jmlh_Cluster[i]]
double jmlh_q1
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_q1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
71
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
double random = ThreadLocalRandomcurrent()
nextDouble(01 1)
tmp_Matriks1[j][k] = random
jmlh_q1 = jmlh_q1 + random
q1[j] = jmlh_q1
normalisasi matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k] q1[j]
Perhitungan pusat cluster
for (int iter = 0 iter lt iter_maksimum iter++)
selisih_f_objektif = 0
jumA1 = new double[iter_maksimum][jmlh_Cluster[i]]
jumA2 = new double[iter_maksimum][jmlh_Cluster[i]]
miu_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
XV_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
pusat_cluster1 = new double[jmlh_Cluster[i]]
double hitung_jum1
double hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(tmp_Matriks1
[j][k]bobot)
miu_Matriks1[j][k] = tmp_Matriks1[j][k]
hitung_jum1 = hitung_jum1 + tmp_Matriks1
[j][k]
jumA1[iter][j] = hitung_jum1
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum2 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
data[i][k]
hitung_jum2 = hitung_jum2 +
tmp_Matriks1[j][k]
jumA2[iter][j] = hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
pusat_cluster1[j] = jumA2[iter][j]
jumA1[iter][j]
perhitungan fungsi objektif
jumA3 = new double[iter_maksimum][jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
double hitung_jum3 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow((data[i][k]
ndash pusat_cluster1[j])
bobot)
XV_Matriks1[j][k] = tmp_Matriks1[j][k]
tmp_Matriks1[j][k] = XV_Matriks1[j][k]
miu_Matriks1[j][k]
hitung_jum3 = hitung_jum3 +
tmp_Matriks1[j][k]
jumA3[iter][j] = hitung_jum3
72
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
double jmlh_f_objektif = 0
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_f_objektif = jmlh_f_objektif
+jumA3[iter][j]
if (iter lt (iter_maksimum - 1))
f_objektif1[iter + 1] = jmlh_f_objektif
perhitungan selisih fungsi objektif
selisih_f_objektif = f_objektif1[iter + 1]
-f_objektif1[iter]
perbaikan matriks partisi
int hitung = bobot - 1int pangkat = -1 hitung
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(XV_Matriks1
[j][k] pangkat)
jumA4 = new
double[iter_maksimum][jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
double hitung_jum4 = 0
for (int k = 0 k lt jmlh_Cluster[i] k++)
hitung_jum4 = hitung_jum4 +
tmp_Matriks1[k][j]
jumA4[iter][j] = hitung_jum4
hasil perbaikan matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
jumA4[iter][k]
if (selisih_f_objektif lt error_min)
pengurutan ascending pusat cluster
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 kltjmlh_Cluster[i]k++)
if (k lt (jmlh_Cluster[i] - 1))
if (pusat_cluster1[k] gt
pusat_cluster1[k + 1])
double tmp =
pusat_cluster1[k]
pusat_cluster1[k]=
pusat_cluster1[k+1]
pusat_cluster1[k+1] = tmp
iter = iter_maksimum
Kode Program 56 Implementasi proses pusat cluster
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set
Pada implementasi proses pembentukan suinterval dan fuzzy set memiliki dua proses yaitu proses menentukan batas subinterval minumum serta maksimum dan proses menentukan batas fuzzy set minimum serta maksimum
73
Proses pembentukan fuzzy dapat menjalankan prosesnya setelah method subinterval() telah diakses Berikut merupakan source code proses pembentukan fuzzy set yang ditunjukkan pada Kode Program 57 Pada Kode Program 57 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 6 ndash 29 merupakan proses pembentukan batas minimum dan batas maksimum subinterval Pada baris 31 ndash 54 merupakan pembentukan batas minimum dan batas maksimum fuzzy set
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
private void subinterval_dan_fuzzy_set()
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
batas subinterval
batas_subintervalMinA = new double[jmlh_Cluster[i]]
batas_subintervalMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_subintervalMinA[j] = hsl_uMin[i]
batas_subintervalMaxA[j]=(pusat_cluster1[j]
+pusat_cluster1[j+
1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1] +pusat_cluster1
[j])2
batas_subintervalMaxA[j]=
hsl_uMax[i]
else if ((0 lt j) ampamp (j lt (jmlh_Cluster[i] -
1)))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1]+
pusat_cluster1[j])2
batas_subintervalMaxA[j]=
(pusat_cluster1[j]+
pusat_cluster1[j+1)2
batas fuzzy set
batas_fuzzysetMinA = new double[jmlh_Cluster[i]]
batas_fuzzysetMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_fuzzysetMinA[j]=
batas_subintervalMinA[j]
batas_fuzzysetMaxA[j]=
(batas_subintervalMinA[j+1]
+batas_subintervalMaxA[j + 1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]
+batas_subintervalMaxA[j - 1])2
batas_fuzzysetMaxA[j] =
batas_subintervalMaxA[j]
else if ((0 lt j) ampamp (jlt(jmlh_Cluster[i]-1)))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]+
batas_subintervalMaxA[j-1])2
batas_fuzzysetMaxA[j]=
74
51
52
53
54
55
56
(batas_subintervalMinA[j+1]+
batas_subintervalMaxA[j + 1])2
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set
525 Implementasi proses fuzzifikasi
Pada Implementasi proses fuzzifikasi memiliki dua proses utama yaitu menentukan derajat keanggotaan dan proses fuzzifikasi Dalam proses ini method fuzzy_set() harus dieksekusi terlebih dahulu karena implementasi proses ini memerlukan output dari method tersebut Berikut merupakan source code fuzzifikasi ditunjukkan pada Kode Program 58 Pada Kode Program 58 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 3 ndash 81 merupakan proses perhitungan derajat keanggotaan Pada baris 83 ndash 94 adalah proses penentuan fuzzifikasi
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
private void fuzzifikasi()
if (i == 0)
hitung_fuzzifikasiA = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
if(j == 0)
if((data[i][k]gtbatas_fuzzysetMinA[j])ampamp
(data[i][k]lt batas_fuzzysetMinA[j + 1]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA[j + 1])
ampamp (data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j] - data[i][k])
(batas_fuzzysetMaxA[j] ndash
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j]) ampamp
(data[i][k] lt batas_fuzzysetMinA[j + 1])
ampamp(data[i][k] gt batas_fuzzysetMinA[j+1])
ampamp(data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
else if (j == (jmlh_Cluster[i] - 1))
if((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
(batas_fuzzysetMaxA[(jmlh_Cluster[i]ndash
2)]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
if((data[i][k] gt batas_fuzzysetMaxA
75
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
[(jmlh_Cluster[i]- 2)]) ampamp (data[i][k]
lt batas_fuzzysetMaxA[(jmlh_Cluster[i]
- 1)]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] gt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 1)]))
hitung_fuzzifikasiA[j][k] = 0
else if ((0 lt j)ampamp(j lt (jmlh_Cluster[i] - 1)))
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA[j
+1]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA[j])
(batas_fuzzysetMinA[j + 1]-
batas_fuzzysetMinA[j])
if ((data[i][k] gt batas_fuzzysetMinA
[j+1])ampamp (data[i][k] lt
batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j]-data[i][k])
(batas_fuzzysetMaxA[j]-
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA
[j + 1]) ampamp (data[i][k] gt
batas_fuzzysetMinA[j + 1]) ampamp
(data[i][k]ltbatas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
hasil_fuzzifikasiA = new int[jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
int cluster = 0
double besar=hitung_fuzzifikasiA[0][j]
for (int k = 0 k lt jmlh_Cluster[i] k++)
if (besar lt hitung_fuzzifikasiA[k][j])
besar = hitung_fuzzifikasiA[k][j]
cluster = k
hasil_fuzzifikasiA[j] = cluster + 1
Kode Program 58 Implementasi proses fuzzifikasi
526 Implementasi Pembentukan Fuzzy Logical Relationship
Pada implementasi pembentukan Fuzzy Logical Relationship (FLR) memiliki dua output yaitu FLR_kiri dan FLR_kanan Dimana FLR_kiri berisi group dari kelima faktor dan pada FLR_kanan merupakan dari faktor yang akan diramalkan yaitu
76
faktor curah hujan (A) Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code pembentukan Fuzzy Logical Relationship (FLR) dapat ditunjukkan pada Kode Program 59 berikut Pada baris 3 ndash 14 merupakan deklarasi variabel Pada baris 15 ndash 55 adalah proses pembentukan fuzzy logical relationship data training Pada baris 56 ndash 58 merupakan deklarasi variabel Pada baris 59 ndash 86 adalah proses pembentukan fuzzy logical relationship data testing
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Fuzzy Logical Relationship
private void fuzzy_logical_relationship()
String input_order = fieldOrdergetText()
order = IntegerparseInt(input_order)
int max_inc = order
String input_dataTraining = fieldDatatraininggetText()
int dataTraining = IntegervalueOf(input_dataTraining)
int tmp_jmlhDatatraining = 0
int tmp_order = 0
int jmlh_dataTraining = dataTraining - order
String input_dataTesting = fieldDatatestinggetText()
int jmlh_dataTesting = IntegervalueOf(input_dataTesting)
FLR_kiri_training = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_training = new int[jmlh_DataTraining]
for (int i = 0 i lt jmlh_dataTraining i++)
for (int j = i j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (j == 0)
if (k == 0)
FLR_kiri_training[i][j][k]=
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiD[j]
else if (j = 0)
if (k == 0)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiD[j]
tmp_order = j
FLR_kanan_training[i] = hasil_fuzzifikasiA[(i + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
77
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
tmp_jmlhDatatraining = i
FLR_kiri_testing = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_testing = new int[(jmlh_DataTraining)]
tmp_jmlhDatatraining = tmp_jmlhDatatraining + 1
for (int i = 0 i lt jmlh_dataTesting i++)
for (int j = tmp_jmlhDatatraining j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (k == 0)
FLR_kiri_testing[i][j - tmp_jmlhDatatraining][k]
= hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiD[j]
FLR_kanan_testing[i] =
hasil_fuzzifikasiA[(tmp_jmlhDatatraining + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
tmp_jmlhDatatraining++
Kode Program 59 Implementasi pembentukan FLR
527 Implementasi Proses Defuzzifikasi
Pada implementasi proses defuzzifikasi merupakan proses dimana menentukan hasil peramalan dari data testing berdasarkan dari bilangan fuzzy yang terbentuk Implementasi ini memiliki beberapa inputan penting yaitu data training data testing order dan konstanta Inputan tersebut sangat berperan penting dalam proses implementasi defuzzifikasi Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code defuzzifikasi dapat ditunjukkan pada Kode Program 510 berikut Pada baris 2 ndash 11 merupakan deklarasi variabel Pada baris 13 ndash 37 merupakan proses perhitungan selisih antara data training dengan data testing Pada baris 40 ndash 47 menghitung jumlah FLR yang cocok Pada baris 49 ndash 65 merupakan proses mencocokan FLR kiri yang cocok dengan FLR kanan Pada baris 67 ndash 81 merupakan proses menghitung jumlah frekuensi FLR kanan yang cocok Pada baris 83 ndash 91 adalah proses perhitungan hasil peramalan
Baris Kode 1
2
3
4
private void defuzifikasi()
String input_dataTraining = fieldDatatraininggetText()
String input_dataTesting = fieldDatatestinggetText()
String input_konstanta = fieldKonstantagetText()
78
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
int dataTraining = IntegervalueOf(input_dataTraining)
int dataTesting = IntegervalueOf(input_dataTesting)
int konstanta = IntegervalueOf(input_konstanta)
int match[][]
match = new int[dataTesting][2000]
int threshold = (jmlh_Faktor order) + konstanta
int hitung_selisih = 0
perhitungan selisih
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
hitung_selisih = 0
for (int k = 0 k lt order k++)
for (int l = 0 l lt jmlh_Faktor l++)
if (i == 0)
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
else if (i gt 0)
FLR_kiri_training[(dataTraining-
1)+i][k][l] = FLR_kiri_testing[i-
1][k][l]
FLR_kanan_training[(dataTraining-1)+i]
= FLR_kanan_testing[i-1]
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
if (hitung_selisih lt threshold)
match[i][j] = hitung_selisih
menghitung jumlah total FLR yang cocok untuk setiap data
testing
int countGroup[] = new int[dataTesting]
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
countGroup[i]++
mencocokan FLR_kiri yang cocok dengan FLR_kanan
group = new int[dataTesting][2000]
for (int i = 0 i lt dataTesting i++)
int tmp_count = 0
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
if (tmp_count lt countGroup[i])
group[i][tmp_count] = j
tmp_count++
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt countGroup[i] j++)
group[i][j] = FLR_kanan[group[i][j]]
mengelompokkan yang sama
MapltInteger Integergt map = new HashMapltInteger Integergt()
hasil_peramalan = new double[dataTesting]
for (int i = 0 i lt dataTesting i++)
79
70
71
72
73
74
75 76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
double peramalan = 0
mapclear()
for (int j = 0 j lt countGroup[i] j++)
int key = group[i][j]
if (mapcontainsKey(key))
int occurrence = mapget(key)
occurrence++
mapput(key occurrence)
else
mapput(key 1)
menghitung hasil peramlaan
Iterator iterator = mapkeySet()iterator()
while (iteratorhasNext())
int key = (Integer) iteratornext()
int occurrence = mapget(key)
peramalan = (peramalan + (pusat_cluster1[(key - 1)]
occurrence))
hasil_peramalan[i] = (peramalan countGroup[i])
Kode Program 510 Implementasi proses defuzzifikasi
53 Implementasi Antarmuka
Pada implementasi antarmuka dijelaskan beberapa halaman antarmuka untuk penggunaan dari program hasil implementasi Implementasi antarmuka berdasarkan perancangan yang telah dijelasakan pada bab sebelumnya yaitu bab perancangan Halaman antarmuka yang dibuat adalah halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
531 Implementasi antarmuka halaman input
Halaman input merupakan halaman yang pertama muncul setelah program dijalankan Pada halaman input ini terdapat beberapa inputan yang harus di masukkan yaitu data input data training data testing order dan konstanta Selain itu pada halaman input juga terdapat tiga button yaitu button browse data button fuzzification dan button forecasting Berikut tampilan antarmuka halaman input yang ditunjukkan pada Gambar 51
Gambar 51 Implementasi antarmuka halaman input
80
532 Implementasi antarmuka halaman tampil data
Halaman tampil data merupakan halaman yang tampil setelah melakukan input data Halaman ini berisi tabel yang menampilkan data curah hujan suhu kecepatan angin dan kelembaban Berikut tampilan antarmuka halaman tampil data yang ditunjukkan pada Gambar 52
533 Implementasi antarmuka halaman proses
Halaman proses merupakan halaman yang muncul setelah button fuzzification telah dieksekusi Halaman proses ini terdiri dari tiga bagian atau tab yaitu clustering fuzzification dan Fuzzy logical relationship Pada halaman antarmuka clustering menampilkan Universe of Discourse dan jumlah cluster pada masing ndash masing faktor Berikut merupakan tampilan antarmuka halaman proses bagian clustering yang ditunjukkan pada Gambar 53
Gambar 52 Implementasi antarmuka halaman tampil data
Gambar 53 Implementasi antarmuka halaman proses clustering
81
Pada tab selanjutnya yaitu pada tab fuzzification tab ini menampilkan hasil proses fuzzifikasi Pada halaman ini menampilkan tabel yang berisi hasil fuzzifikasi dari setiap faktor Berikut merupakan tampilan antarmuka halaman proses bagian fuzzification yang ditunjukkan pada Gambar 54
Pada tab Fuzzy Logical Relationship menampilakn hasil dari proses pembentukan Fuzzy Logical Relationship Tampilan pada halaman ini menampilkan berupa textarea yang berisi dari output proses tersebut Berikut merupakan tampilan antarmuka halaman proses bagian Fuzzy Logical Relationship yang ditunjukkan pada Gambar 55
Gambar 54 Implementasi antarmuka halaman proses fuzzification
Gambar 55 Implementasi halaman antarmuka proses FLR
82
534 Implementasi antarmuka halaman hasil
Pada implementasi antarmuka halaman hasil ini merupakan halaman yang menampilkan hasil dari proses defuzzifikasi Halaman hasil ini menampilkan tabel yang berisi data aktual dan data dari hasil peramlan Berikut merupakan tampilan antarmuka halaman hasil yang ditunjukkan pada Gambar 56
535 Implementasi antarmuka halaman perhitungan error
Pada implementasi antarmuka halaman perhitungan error merupakan halaman yang menampilkan hasil dari proses perhitungan Mean Square Error (MSE) Pada halaman antarmuka ini menampilkan hasil error MSE pada textfield Berikut merupakan tampilan antarmuka halaman perhitungan error yang ditunjukkan pada Gambar 57
Gambar 56 Implementasi halaman antarmuka hasil
Gambar 57 Implementasi halaman antarmuka perhitungan error
83
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini membahas hasil pengujian dan analisis hasil pengujian dari hasil implementasi metode High Order Fuzzy Time Series Multi factors untuk peramalan curah hujan dasarian Pada pengujian ini disesuaikan dengan perancangan pengujian pada bab 4
61 Sistematika Pengujian
Pada bab sebelumnya yaitu bab 4 mengenai perancangan telah dibahas perancangan pengujian dikatakan bahwa pengujian akan dilakukan sebanyak empat pengujian Pengujian order pengujian threshold pengujian jumlah data training dan pengujian validasi sistem Dari semua pengujian tersebut akan di uji dan di analisis bagaimana pengaruhnya terhadap hasil perhitungan Mean Square Error (MSE)
62 Hasil dan Analisis Pembahasan
Berikut hasil pengujian dan analisis yang disesuaikan dengan perancangan pengujian pada bab sebelumnya
621 Pengujian pengaruh order terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh order terhadap nilai MSE Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Jadi jika nilai order adalah 3 maka peramalan akan melibatkan 3 data sebelumnya pada proses pembentukan Fuzzy Logical Relationship (FLR) Pada pengujian ini hanya nilai order yang diubah ndash ubah sedangkan variabel lain akan dibuat tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 konstanta adalah 10 Nilai threshold diperoleh dari perhitungan jumlah faktor dikali order dan dijumlah nilai konstanta Berikut adalah hasil pengujian pengaruh order terhadap nilai MSE yang ditunjukkan pada Tabel 61
Tabel 61 Hasil pengujian order terhadap nilai MSE
No Order Threshold MSE
1 3 22 808585
2 6 34 965547
3 9 46 912631
4 12 58 875884
5 15 70 719284
6 18 82 6801207
7 21 94 5637184
8 24 106 5444184
9 27 118 5433631
10 30 130 5418393
84
Dari hasil pengujian order seperti yang telah ditunjukkan pada Tabel 61 maka pada percobaan pertama dengan order = 3 dan threshold 22 dapat diperoleh MSE sebesar 808585 Selanjutnya pada percobaan kedua dengan order = 6 dan threshold = 34 diperoleh MSE sebesar 965547 Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 61
Berdasarkan Gambar 61 order yang berbeda - beda mempengaruhi besar nilai MSE Dalam penelitian ini menentukan order memiliki ketentuan yaitu nilai order harus lebih dari 0 dan batas maksimal order adalah setengah dari nilai data training (LinYang 2009) Nilai MSE terbesar yang ditunjukkan pada pengujian ini adalah 965547 pada pengujian order 6 dan nilai MSE terkecil adalah 5418393 pada pengujian order 30 Pada Gambar 61 menunjukkan bahwa pada order 3 ke order 6 mengalami peningkatan nilai MSE selanjutnya pada order 6 hingga order 30 mengalami penurunan Pada order 3 memiliki nilai MSE lebih kecil dari order 6 order 9 dan order 12 karena memiliki lebih banyak hasil selisih tingkat kecocokan data time series yang tidak terlalu besar dan kurang dari threshold Selain itu karena data time series dari data sampel yang diperoleh memiliki pola data musiman dimana perubahan pola data dasarian tidak terlalu banyak berubah dari tahun ke tahun Selanjutnya pada order 6 hingga order 30 menunjukkan penurunan nilai MSE dan order terbesar memiliki nilai MSE terkecil sehingga dapat disumpulkan bahwa semakin besar order maka semakin kecil pula nilai MSE Dalam hal ini dengan semakin besarnya order maka data sebelumnya yang digunakan untuk pertimbangan dalam menentukan peramalan semakin banyak Sehingga semakin besar nilai order maka dapat membuat peramalan semakin akurat Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin besar nilai order maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE
85
622 Pengujian pengaruh threshold terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh threshold terhadap nilai MSE Threshold merupakan hasil dari mengalikan jumlah order dengan jumlah faktor pada data kemudian dijumlahkan dengan dengan nilai konstanta Pada proses defuzzifikasi terdapat proses menghitung selisih antara pangkat bawah Fuzzy Logical Relationship (FLR) data training dan pangkat bawah FLR data testing Selanjutnya setelah mendapatkan nilai selisih maka nilai selisih tersebut dibandingkan dengan nilai threshold untuk mencari FLR yang cocok Pada pengujian ini nilai konstanta saja yang diubah ndash ubah sementara variabel lainnya tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 dan Nilai order adalah 30 Pada penentuan input konstanta nilai minimal harus lebih besar dari 0 dan nilai maksimal menyesuaikan data sampel yang digunakan (LinYang 2009) Berikut adalah hasil pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 62
Tabel 62 Hasil pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1 10 130 558485
2 20 140 577498
3 30 150 597364
4 40 160 604660
5 50 170 646951
6 60 180 680257
7 70 190 703013
8 80 200 741484
9 90 210 756749
10 100 220 780600
Dari hasil pengujian threshold seperti yang telah ditunjukkan pada Tabel 62 maka dapat dilihat bahwa konstanta yang dilakukan pengujian dimulai dengan nilai 10 sampai 100 Hasil yang didapat pada percobaan pertama dengan konstanta = 10 dan threshold 130 diperoleh MSE sebesar 558485 Selanjutnya pada percobaan kedua dengan konstanta = 20 dan threshold = 140 diperoleh MSE sebesar 577498 Selanjutnya dapat kita lihat pada percobaan yang telah dilakukan dari percobaan pertama hingga percobaan kesepuluh nilai MSE yang diperoleh mengalami perubahan pada setiap percobaan Dapat dilihat bahwa peningkatan MSE lebih dominan menunjukkan peningkatan sehingga dalam hal ini semakin besar nilai konstanta dan threshold maka semakin besar pula nilai MSE yang diperoleh Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 62
86
Berdasarkan grafik dari Gambar 62 nilai input konstanta yang berbeda - beda mempengaruhi besar nilai MSE semakin besar nilai konstanta maka nilai threshold juga semakin besar karena threshold diperoleh dari perhitungan order dikali jumlah faktor dan selanjutnya dijumlah dengan nilai konstanta Dalam hal ini dengan semakin besar nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR juga semakin luas batasannya dan jika semakin kecil nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR menjadi semakin sempit dan mempermudah proses peramalan karena hanya adanya sedikit data yang cocok dengan data yang akan diramalkan dan mempermudah proses defuzzifikasi Oleh karena itu semakin kecil threshold maka dapat membuat peramalan semakin akurat Akan tetapi nilai threshold tidak boleh terlalu kecil karena dapat menyebabkan kegagalan peramalan Kegagalan peramalan itu terjadi karena tidak adanya data training yang cocok dengan data testing karena pada metode yang digunakan pada penelitian ini sangat bergantung pada data ndash data sebelumnya Dari hasil percobaan diatas hasil MSE terbesar adalah 7806 yaitu pada konstanta 100 serta threshold 220 dan hasil MSE terkecil adalah 558485 yaitu pada konstanta 10 dan threshold 130 Dalam pengujian ini memiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin kecil nilai konstanta maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
623 Pengujian pengaruh jumlah data training terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh jumlah data training terhadap nilai MSE Pada pengujian ini jumlah data training adalah data dasarian yaitu 1 tahun 2 tahun 3 tahun 4 tahun dan 5 tahun dimana dari setiap 1 tahun memiliki 36 data dasarian Pengujian ini akan dilakukan sebanyak lima kali Pada pengujian ini jumlah data testing adalah 36 nilai order adalah setengah dari
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE
87
nilai data training nilai konstanta adalah 20 Berikut adalah hasil pengujian pengaruh jumlah data training terhadap nilai MSE yang ditunjukkan pada Tabel 63
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1 36 786586
2 72 634527
3 108 627190
4 144 614184
5 180 539698
Dari hasil pengujian jumlah data training seperti yang telah ditunjukkan pada Tabel 63 maka pada percobaan pertama dengan data training = 36 dapat diperoleh MSE sebesar 786586 Selanjutnya pada percobaan kedua dengan data training = 72 diperoleh MSE sebesar 634527 Dalam hal ini dari percobaan satu dan dua nilai MSE mengalami penurunan Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 63
Berdasarkan dari Gambar 63 pengujian pertama sampai pengujian kelima mengalami penerunan nilai MSE Sehingga dapat disimpulkan bahwa semakin besar data training maka semakin kecil nilai MSE yang diperoleh Nilai MSE semakin kecil apabila menggunakan data training dalam jumlah besar karena data yang digunakan memiliki rentang jauh dari periode data testing atau data yang akan diramalkan Sedangkan data training yang sedikit memiliki nilai MSE yang besar karena data training yang memiliki kecocokan dengan data testing berada pada periode yang jauh dengan data testing sehingga nilai MSE menjadi tinggi Dalam hal ini terbukti bahwa metode yang digunakan pada penelitian ini memerlukan jumlah data training yang banyak sehingga dapat menurunkan nilai kesalahannya Dari hasil percobaan diatas hasil MSE terbesar adalah 786586 dan
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE
88
hasil MSE terkecil adalah 539698 Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoPeramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Seriesrdquo yang menyatakan bahwa semakin besar jumlah data training maka semakin kecil nilai kesalahannya (Elfajar et al 2017)
624 Pengujian validasi sistem
Pada pengujian ini dilakukan untuk mengetahui kestabilan dari sistem dengan menggunakan order threshold terbaik dari pengujian sebelumnya Pada pengujian ini akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai data training menggunakan 36 data yang berbeda agar dapat menunjukkan gambaran variasi dari nilai kesalahan MSE pada peramalan nilai order adalah 18 dan konstanta adalah 10 sehingga nilai threshold adalah 92 Berikut adalah hasil pengujian validasi sistem yang ditunjukkan pada Tabel 64
Tabel 64 Hasil pengujian validasi sistem
Percobaan ke- MSE
1 714290
2 703856
3 732564
4 732815
5 6973958
6 7532825
7 741726
8 760457
9 709961
10 6256204
Dari hasil pengujian validasi sistem seperti yang telah ditunjukkan pada Tabel 64 maka dapat digambarkan dengan grafik yang ditunjukkan oleh Gambar 64
Gambar 64 Grafik hasil pengujian validasi sistem
89
Berdasarkan dari gambar grafik Gambar 64 bahwa pengujian dari validasi sistem memiliki hasil MSE yang tidak terlalu jauh berbeda dari penggunaan data yang berbeda - beda Oleh karena itu dapat disimpulkan bahwa implementasi dari metode High Order Fuzzy Time Series Multi Factors yang telah digunakan sudah cukup baik untuk digunakan peramalan
Berdasarkan dari pengujian yang dilakukan diatas dapat diketahui bahwa nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun 2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016 Nilai order adalah 90 dan konstanta adalah 10 Berikut adalah perbandingan data aktual dengan hasil peramalan yang ditunjukkan pada grafik Gambar 65
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan
90
BAB 7 PENUTUP
Pada bab ini terdiri dari dua sub bab yaitu kesimpulan dan saran Kesimpulan adalah tahapan yang berisi hasil penelitian yang dilakukan dan jawaban semua rumusan masalah yang sudah ditetapkan sebelumnya dan saran adalah tahapan yang berisi hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
71 Kesimpulan
Pada kesimpulan ini mengacu pada penelitian yang telah dilakukan yang meliputi perancangan implementasi serta pengujian dan analisis terhadap hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diambil kesimpulan sebagai berikut
1 Berdasarkan dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam melakukan peramalan curah hujan dasarian dilakukan dengan beberapa langkah yaitu langkah pertama perhitungan Universe of Discourse yang terdiri perhitungan mean standar deviasi dan perhitungan Dmin serta Dmax langkah kedua yaitu perhitungan jumlah cluster langkah ketiga yaitu perhitungan pusat cluster langkah keempat yaitu pembentukan subinterval dan fuzzy set langkah kelima yaitu proses fuzzifikasi langkah keenam yaitu pembentukan Fuzzy Logical Relationship(FLR) langkah ketujuh adalah defuzzifikasi yang hasil outputnya merupakan hasil peramalan curah hujan
2 Berdasarkan dari pengujian peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diketahui bahwa
a Order berpengaruh terhadap nilai error semakin besar nilai order maka hasil peramalan semakin baik
b Threshold berpengaruh terhadap nilai error semakin rendah nilai threshold maka hasil peramalan semakin baik Akan tetapi nilai threshold tidak boleh terlalu rendah karena dapat menyebabkan kegagalan peramalan
c Data training berpengaruh terhadap nilai error semakin besar jumlah data training maka hasil peramalan semakin baik Sehingga peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors memerlukan banyak data training
d Hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors cukup baik digunakan untuk peramalan Hal ini terbukti hasil pengujian validasi sistem menunjukkan grafik yang cukup stabil
Dari pengujian yang telah dilakukan nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun
91
2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016
72 Saran
Pada penelitian ini dilakukan peramalan curah hujan dasarian dengan faktor yang mempengaruhi adalah suhu kelembaban dan kecapatan angin Saran penulis diharapkan untuk penelitian selanjutnya melakukan penambahan faktor yang mempengaruhi curah hujan atau melakukan peramalan objek lain dengan mempertimbangkan faktor ndash faktor yang mempengaruhinya Serta diharapkan pada penelitian selanjutnya untuk menambahkan data yang lebih banyak serta bervariatif sehingga nilai hasil perhitungan akurasi peramalan yang dihasilkan dalam penelitian dapat meningkat Penggunaan data training yang banyak dan bervariatif dapat membuat pola data semakin terlihat sehingga hasil peramalan yang dihasilkan memiliki akurasi yang lebih baik
92
DAFTAR PUSTAKA
Ardiyanto 2016 ldquoTerendam Air Petani Lamongan Terpaksa Panen Dinirdquo Times Indonesia November 18 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
Badan Penelitian dan Pengembangan Pertanian Kementrian Pertanian 2015 ldquoKalender Tanam Terpadu Versi 25 Kota Malang Prov Jawa Timurrdquo httpkatamlitbangpertaniangoidkatam_terpadu2016mh33535733573_tinggipdf (Diakses 25 Februari 2017)
Bagirov M Adil Mahmood Arshad and Barton Andrew 2017 Prediction of monthly rainfall in Victoria Australia Clusterwise linear regression approach Elsevier Atmos Research 188 20-29
BMKG Staklim Karangploso Malang 2015 ldquoAnalisis Dinamika Atmosfer Dan Laut Dasarian III Maret 2015 Update 2 April 2015rdquo httpkarangplosojatimbmkgogoidindexphpanalisis-kondisi-dinamika-atmosfer-laut-dasarian-tahun-2015399-analisis-dinamika-atmosfer-dan-laut-dasarian-iii-maret-2015-update-2-april-2015axzz3X8h9y4fgampgsctab=0 (Diakses 25 Februari 2017)
BPS Kabupaten Malang 2016 ldquoKabupaten Malang Dalam Angka 2016rdquo httpsmalangkabbpsgoidwebsitepdf_publikasiKabupaten-Malang-Dalam-Angka-2016pdf (Diakses 25 Februari 2017)
BPS Jawa Timur 2015 ldquoJawa Timur Dalam Angka 2015rdquo httpsjatimbpsgoid4dmnpdf_publikasiJawa-Timur-Dalam-Angka-2015pdf (Diakses 25 Februari 2017)
Buffa S Elwood Rakesh and Sarin K 1996 Modern Production and Operation Management Eight Edition John Willey and Sons Inc London
Chen M 1996 Forecasting Enrollments based on Fuzzy Time Series Fuzzy Sets and Systems 311-319
Dewi Candra Kartikasari Dani Mursityo Yusi 2014 Prediksi Cuaca Pada Data Time Series Menggunakan Adaptive Neuro Fuzzy Inference System (ANFIS) Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK) Vol 1 No 1 hlm 18-24
Dewi Candra Muslikh M 2013 Perbandingan Akurasi Backpropagation Neural Network dan ANFIS Untuk Memprediksi Cuaca NATURAL-A Journal of Scientific Modeling amp Computation Volume 1 No1
Elfajar Aria Setiawan Budi Dewi Candra 2017 Peramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Series Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer Vol 1 No 2 Hlmn 85-94
93
Fauziah Normalita Wahyuningsih Sri dan Nasution Yuki 2016 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) Vol4 Statistika
Forest Mahyu 2015 ldquoDefenisi amp Pengertian Kelembabanrdquo httpilmupengetahuaalamblogspotcoid201506defenisi-pengertian-kelembabanhtml (Diakses 25 Februari 2017)
Irsyad Muhammad Metarice Sonya 2013 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan Jurnal Sains dan Teknologi Industri Vol 10 No 02
Klawon F 2001 What is About Fuzzy Clustering Understanding and Improving the Concept of the Fuzzier Science Journal httppublic-rzfh-wolfebuetteldeklawon
Kurniawan Carlos 2007 Analisis dan Perancangan Program Aplikasi Peramalan Curah Hujan dengan Metode Wavelet (Studi Kasus BMKG)
Kusumadewi S 2003 ldquoArtificial Intelegence (Teknik amp Aplikasinya)rdquo Graha Ilmu Yogyakarta
Kusumadewi S Purnomo H 2004 ldquoAplikasi Logika Fuzzy untuk Pendukung Keputusanrdquo Graha Ilmu Yogyakarta
Kusumadewi Sri 2002 Analisis amp Desain Sistem Fuzzy Tollbox MATLAB Graha Ilmu Yogyakarta
Lin Yupei Yang Y 2009 Stock Markets Forecasting Based on Fuzzy Time Series Model IEEE Conference Publications 782-886
Makridakis S Steven C Wheelwright Victor E and Gee MC 1999 Metode dan Aplikasi Peramalan Jilid I Edisi Kedua Jakarta Binarupa Aksara
Mirawati T Yasin H and Rusgiyono A 2013 Prediksi Curah Hujan dengan Metode Kalman Filter(Studi Kasus di Kota Semarang 2012) Jurnal Gaussian 2(3) pp 239-248
Pradipta Nur Sembiring Pasukat Bangun Pengarapen 2013 Analisis Pengaruh Curah Hujan di Kota Medan Saintia Matematika Vol 1
Sipayung Putri Metha 2013 Pemodelan Hubungan Kelembapan Udara terhadap Curah Hujan (Studi Kasus Curah Hujan Periode 2001-2009 pada Stasiun Dramaga) httprepositoryipbacidhandle12345678960623 (Diakses 25 Februari 2017)
User 2015 httpstaklimnegaranet[Online] Available at httpwwwstaklimnegaranetindexphpbuletin-hujanpengertian-istilah (Diakses 25 Februari 2017)
Wang Nai-Yi Chen Shyi-Ming 2009 Temperature prediction and TAIFEX forecasting based on automatic clustering techniques and two-factors high-order fuzzy time series Elsevier Expert Systems with Applications 36 2143ndash2154
94
Wardhani Dessy Ratnawati Dian Setiawan Budi 2015 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Saham Repositori Jurnal Mahasiswa PTIIK UB Doro Jurnal Vol 6 No 6
Wiyanti T and Pulungan R 2012 Peramalan Deret Waktu Menggunakan Model Fungsi Basis Radial (RBF) dan Auto Regressive Integrated Moving Average (ARIMA) Jurnal MIPA 35(2) pp 175-182
Yunanto Utomo 2014 ldquoBMKG Akui Prakiraan Cuacanya Masih Kurang Akuratrdquo Kompas Sains Januari 30 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
iv
KATA PENGANTAR
Puji syukur penulis panjatkan kepada Allah SWT yang telah memberikan rahmat dan hidayah-Nya kepada penulis sehingga penulis dapat menyelesaikan skripsi dengan judul ldquoPeramalan Curah Hujan Menggunakan Metode High Order Fuzzy Time Series Multi Factorsrdquo
Melalui kesempatan ini penulis ingin menyampaikan terima kasih kepada semua pihak yang telah memberikan bantuan serta dukungan kepada penulis dalam menyelesaikan skripsi ini diantaranya
1 Kedua orang tua penulis Bapak Wahyudi Rianto amp Ibu Sugihartiwi yang selalu memberikan dorsquoa kasih sayang dan semangat kepada penulis
2 Ibu Candra Dewi SKom MSc selaku dosen pembimbing I yang telah memberikan ilmu serta saran selama proses pengerjaan skripsi ini
3 Bapak Bayu Rahayudi ST MT selaku dosen pembimbing II yang juga telah memberikan ilmu serta saran selama proses pengerjaan skripsi ini
4 Ibu Hurriyatul Fitriyah ST MSc selaku dosen penasihat akademik yang telah memberikan banyak kritik dan saran selama proses perkuliahan
5 Bapak Wayan Firdaus Mahmudy S Si MT PhD selaku Dekan Fakultas Ilmu Komputer Universitas Brawijaya
6 Bapak Tri Astoto Kurniawan ST MT PhD selaku Ketua Jurusan Teknik Informatika Fakultas Ilmu Komputer Universitas Brawijaya
7 Bapak Agus Wahyu Widodo ST MCs selaku Ketua Program Studi Teknik Informatika Fakultas Ilmu Komputer Universitas Brawijaya
8 Semua teman FILKOM khususnya angkatan 2013 yang telah memberikan bantuan serta dukungan selama masa perkuliahan dan pengerjaan skripsi
9 Semua pihak yang tidak dapat disebutkan satu persatu yang terlibat baik secara langsung mapun tidak langsung yang telah membantu penulis dalam menyelesaikan skripsi ini
Penulis menyadari bahwa skripsi ini masih banyak kekurangan sehingga penulis dengan terbuka menerima kritik serta saran yang membangun Akhir kata penulis berharap skripsi ini dapat bermanfaat dan berguna bagi semua pihak yang menggunakannya
Malang 10 Agustus 2017
Penulis
ahmadabastomigmailcom
v
ABSTRAK
Kabupaten Malang merupakan salah satu kabupaten di Jawa Timur yang memiliki tingkat produksi pertanian yang cukup tinggi dimana hampir disetiap kecamatanya memiliki lahan pertanian Permasalahannya adalah pada saat curah hujan yang tinggi tidak sedikit petani yang mengalami gagal panen Curah hujan adalah salah satu dari beberapa faktor yang mempengaruhi perubahan iklim sehingga sangat menentukan hasil panen yang diperoleh Permasalahan gagal panen ini dapat diatasi dengan melakukan peramalan curah hujan dengan adanya peramalan curah hujan petani dapat menentukan waktu pola tanam yang sesuai sehingga dapat mengantisipasi terjadinya gagal panen Pada penelitian ini peramalan curah hujan dalam dasarian berdasarkan beberapa faktor yaitu suhu kelembaban dan kecepatan angin Metode yang digunakan untuk peramalan curah hujan dasarian adalah High Order Fuzzy Time Series Multi factors Pada metode ini pembentukan subinterval dilakukan dengan menggunakan fuzzy C-means Dalam menghitung kesalahan hasil peramalan menggunakan Mean Square Error (MSE) Berdasarkan hasil pengujian yang dilakukan semakin kecil threshold serta semakin besar data training dan order maka nilai kesalahan yang diperoleh semakin rendah Hasil peramalan curah hujan dasarian untuk peramalan satu tahun kedepan menggunakan metode ini mendapatkan hasil MSE terbaik sebesar 539698
Kata kunci curah hujan fuzzy C-means fuzzy time series peramalan
vi
ABSTRACT
Malang Regency is one of the regencies in East Java which has a high level of agricultural production in almost every district has agricultural land The problem is when high rainfall is not a few farmers who experienced crop failure Rainfall is one of several factors that affect climate change so it is very important to determine the yields obtained The problem of this harvest failure can be overcome by forecasting rainfall with rainfall forecasting farmers can determine the time of the appropriate cropping patterns so as to anticipate the occurrence of crop failure On the research of forecasting rainfall in dasarian based on several factors namely temperature humidity and wind speed The methods used for forecasting rainfall dasarian is a High-Order Fuzzy Time Series Multi factors In this method the formation of subinterval using fuzzy C-means In calculating the error of forecasting result using Mean Square Error (MSE) Based on the results of tests conducted the smaller threshold and the greater data training as well order the value error is obtained increasingly low The result of forecasting dasarian rainfall for forecasting one year ahead using this method get the best MSE result of 539698 Keywords rain fall fuzzy C-means fuzzy time series forecasting
vii
DAFTAR ISI
PENGESAHAN ii
PERNYATAAN ORISINALITAS iii
KATA PENGANTAR iv
ABSTRAK v
ABSTRACT vi
DAFTAR ISI vii
DAFTAR TABEL xi
DAFTAR GAMBAR xiii
DAFTAR KODE PROGRAM xv
DAFTAR LAMPIRAN xvi
BAB 1 PENDAHULUAN 1
11 Latar belakang 1
12 Rumusan masalah 2
13 Tujuan 3
14 Manfaat 3
15 Batasan masalah 3
16 Sistematika pembahasan 3
BAB 2 LANDASAN KEPUSTAKAAN 5
21 Kajian Pustaka 5
22 Dasar Teori 7
221 Peramalan 8
222 Curah hujan 8
223 Data time series 9
224 Logika Fuzzy 10
225 Metode Fuzzy C-means 13
226 Metode Peramalan dengan Fuzzy Time Series 15
227 Metode High Order Fuzzy Time Series Multi Factors 17
228 Perhitungan keakuratan metode peramalan 20
BAB 3 METODOLOGI 22
31 Studi Literatur 22
viii
32 Pengumpulan Data 23
33 Perancangan 23
34 Implementasi 23
35 Pengujian dan Analisis 23
36 Kesimpulan dan Saran 24
BAB 4 PERANCANGAN 25
41 Perancangan Proses 25
411 Proses perhitungan Universe of Discourse 26
4111 Proses perhitungan Mean 28
4112 Proses perhitungan standar deviasi 29
4113 Proses perhitungan nilai Dmin dan Dmax 30
412 Proses perhitungan jumlah cluster 31
413 Proses perhitungan pusat cluster 32
414 Proses pembentukan subinterval dan Fuzzy set 37
415 Proses Fuzzifikasi 38
416 Proses pembentukan Fuzzy Logical Relationship 41
417 Proses Defuzzifikasi 43
42 Perhitungan Manual 46
421 Perhitungan Universe of Discourse (U) 46
422 Perhitungan jumlah cluster (k) 48
423 Perhitungan pusat cluster dan subinterval 49
4231 Penentuan pusat cluster 49
4232 Perhitungan batas subinterval 55
424 Pembentukan Fuzzy Set 56
425 Fuzzifikasi 56
426 Pembentukan Fuzzy Logical Relationship (FLR) 58
427 Defuzzifikasi 58
43 Perancangan antarmuka 60
431 Halaman input 60
432 Halaman tampil data 61
433 Halaman proses 62
434 Halaman hasil 63
ix
435 Halaman perhitungan error 64
44 Perancangan pengujian 64
441 Perancangan pengaruh order terhadap nilai MSE 64
442 Perancangan pengaruh threshold terhadap nilai MSE 65
443 Perancangan pengaruh jumlah data training terhadap nilai MSE 65
444 Perancangan validasi sistem 65
BAB 5 IMPLEMENTASI 67
51 Spesifikasi Sistem 67
511 Spesifikasi Perangkat Keras 67
512 Spesifikasi Perangkat Lunak 67
52 Implementasi Algoritma 67
521 Implementasi Proses Universe of Discourse 68
5211 Implementasi proses mean 68
5212 Implementasi proses standar deviasi 68
5213 Implementasi proses Dmin dan Dmax 69
522 Implementasi Proses Jumlah Cluster 69
523 Implementasi Proses Pusat Cluster 70
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set 72
525 Implementasi proses fuzzifikasi 74
526 Implementasi Pembentukan Fuzzy Logical Relationship 75
527 Implementasi Proses Defuzzifikasi 77
53 Implementasi Antarmuka 79
531 Implementasi antarmuka halaman input 79
532 Implementasi antarmuka halaman tampil data 80
533 Implementasi antarmuka halaman proses 80
534 Implementasi antarmuka halaman hasil 82
535 Implementasi antarmuka halaman perhitungan error 82
BAB 6 PENGUJIAN DAN ANALISIS 83
61 Sistematika Pengujian 83
62 Hasil dan Analisis Pembahasan 83
621 Pengujian pengaruh order terhadap nilai MSE 83
x
622 Pengujian pengaruh threshold terhadap nilai MSE 85
623 Pengujian pengaruh jumlah data training terhadap nilai MSE 86
624 Pengujian validasi sistem 88
BAB 7 PENUTUP 90
71 Kesimpulan 90
72 Saran 91
DAFTAR PUSTAKA 92
LAMPIRAN 95
Lampiran 1 Data Sampel 95
xi
DAFTAR TABEL
Tabel 21 Kajian Pustaka 5
Tabel 22 Fuzzy Logic Relationship 19
Tabel 23 Peramalan fuzzy set 20
Tabel 41 Data Sampel Perhitungan Manual 46
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean 47
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi 47
Tabel 44 Hasil Universe of Discourse 48
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya 48
Tabel 46 Hasil jumlah cluster data 49
Tabel 47 Matriks partisi awal pada cluster data A 50
Tabel 48 Derajat keanggotaan matriks partisi data A 51
Tabel 49 Perhitungan pusat cluster data A 52
Tabel 410 Fungsi objektif data A 53
Tabel 411 Perbaikan matriks partisi 54
Tabel 412 Hasil perbaikan matriks partisi 54
Tabel 413 Hasil pusat cluster 55
Tabel 414 Batas subinterval masing ndash masing atribut data 55
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A 57
Tabel 416 Hasil fuzzifikasi semua data attribut 57
Tabel 417 Hasil pembentukan FLR data training 58
Tabel 418 Hasil pembentukan FLR data testing 58
Tabel 419 Frekuensi FLR yang cocok dengan data testing 59
Tabel 420 Perbandingan data aktual dan hasil peramalan 60
Tabel 421 Rancangan pengujian order terhadap nilai MSE 64
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE 65
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE 65
Tabel 424 Rancangan pengujian validasi sistem 66
Tabel 51 Spesifikasi Perangkat Keras 67
Tabel 52 Spesifikasi Perangkat Lunak 67
Tabel 61 Hasil pengujian order terhadap nilai MSE 83
xii
Tabel 62 Hasil pengujian threshold terhadap nilai MSE 85
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE 87
Tabel 64 Hasil pengujian validasi sistem 88
xiii
DAFTAR GAMBAR
Gambar 21 Representasi linear naik 11
Gambar 22 Representasi linear turun 12
Gambar 23 Representasi kurva segitiga 12
Gambar 31 Diagram blok metodologi penelitian 22
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1) 25
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2) 26
Gambar 43 Diagram alir proses perhitungan Universe of Discourse 27
Gambar 44 Diagram alir proses perhitungan mean 28
Gambar 45 Diagram alir proses perhitungan standar deviasi 29
Gambar 46 Diagram alir perhitungan nilai Min dan Max 30
Gambar 47 Diagram alir proses perhitungan jumlah cluster 31
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1) 32
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2) 33
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3) 34
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4) 35
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5) 36
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1) 37
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2) 38
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1) 39
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2) 40
Gambar 417 Diagram alir proses Pembentukan FLR (bagian 1) 41
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2) 42
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3) 43
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1) 44
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2) 45
Gambar 422 Grafik fuzzy set data A 56
Gambar 423 Rancangan antarmuka halaman input 61
Gambar 424 Rancangan antarmuka halaman tampil data 61
Gambar 425 Rancangan antarmuka halaman proses clustering 62
Gambar 426 Rancangan antarmuka proses fuzzifikasi 62
xiv
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship 63
Gambar 428 Rancangan antarmuka halaman hasil peramalan 63
Gambar 429 Rancangan antarmuka halaman perhitungan error 64
Gambar 51 Implementasi antarmuka halaman input 79
Gambar 52 Implementasi antarmuka halaman tampil data 80
Gambar 53 Implementasi antarmuka halaman proses clustering 80
Gambar 54 Implementasi antarmuka halaman proses fuzzification 81
Gambar 55 Implementasi halaman antarmuka proses FLR 81
Gambar 56 Implementasi halaman antarmuka hasil 82
Gambar 57 Implementasi halaman antarmuka perhitungan error 82
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE 84
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE 86
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE 87
Gambar 64 Grafik hasil pengujian validasi sistem 88
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan 89
xv
DAFTAR KODE PROGRAM
Kode Program 51 Implementasi proses Universe of Discourse 68
Kode Program 52 Implementasi proses mean 68
Kode Program 53 Implementasi proses standar deviasi 69
Kode Program 54 Implementasi proses Dmin dan Dmax 69
Kode Program 55 Implementasi proses jumlah cluster 70
Kode Program 56 Implementasi proses pusat cluster 72
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set 74
Kode Program 58 Implementasi proses fuzzifikasi 75
Kode Program 59 Implementasi pembentukan FLR 77
Kode Program 510 Implementasi proses defuzzifikasi 79
xvi
DAFTAR LAMPIRAN
Lampiran 1 Tabel Data Sampel 95
1
BAB 1 PENDAHULUAN
11 Latar belakang
Kabupaten Malang merupakan salah satu kabupaten di Jawa Timur yang terkenal akan potensi alam yang dimiliki (BPS Kabupaten Malang 2016) Dalam hal ini terkenal akan potensi alamnya karena kabupaten Malang memiliki tingkat produksi di sektor pertanian yang cukup tinggi dimana hampir seluruh kecamatan di kabupaten Malang memiliki lahan pertaniaaan (BPS Jatim 2015) Permasalahan yang terjadi pada sektor pertanian yaitu terjadinya gagal panen apabila memasuki musim penghujan dengan curah hujan yang tinggi yaitu diatas 200 mm per bulan serta apabila memasuki musim kemarau dengan curah hujan yang rendah yaitu dibawah 100 mm per bulan (BMKG Staklim Karangploso Malang 2015) Dalam mengatasi hal tersebut upaya yang dilakukan petani selama ini hanya melakukan tindakan seperti melakukan panen secara dini Upaya ini dianggap petani cukup efektif dalam mengurangi besarnya kerugian gagal panen akan tetapi sebaiknya yang dilakukan adalah melakukan suatu tindakan agar kerugian yang dialami petani tidak terjadi lagi (Ardiyanto 2016)
Salah satu contoh tindakan yang dapat dilakukan adalah membuat Kalender Tanam (KATAM) KATAM dapat digunakan petani sebagai alat bantu atau pedoman dalam menentukan awal musim tanam terbaik seperti yang telah dilakukan oleh Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian Dalam pembuatan KATAM Balitbang menggunakan data peramalan curah hujan dari Badan Meteorologi Klimatologi dan Geofisika (BMKG) Akan tetapi BMKG mengakui bahwa prakiraan cuacanya saat ini memang masih kurang akurat dan masih kalah dengan prakiraan cuaca di Amerika Serikat (Yunanto 2014) Pentingnya akan prakiraan cuaca terbukti adanya beberapa penelitian sebelumnya yaitu penelitian prakiraan cuaca dengan input faktor yang mempengaruhi cuaca yang berupa data time series menggunakan metode Adaptive Neuro Fuzzy Inference System (ANFIS) (Dewi 2014) dan penelitian mengenai prediksi cuaca menggunakan metode Backpropagation Neural Network yang terbukti memiliki nilai akurasi yang baik dalam prediksi cuaca (Dewi 2013)
Teknik atau metode peramalan curah hujan yang sering digunakan BMKG adalah metode Autoregressive Integrated Moving Average (ARIMA) ANFIS dan Wavelet (Kurniawan 2007) Namun dalam penerapannya gabungan dari ketiga metode tersebut masih kurang memuaskan yaitu tingkat akurasinya hanya mencapai 60 - 70 Menurut BMKG kurangnya tingkat akurasinya ini disebabkan oleh keadaan pola atmosfer di Indonesia yang selalu berubah ndash ubah dan kurang menentu
Selain metode yang digunakan oleh BMKG adapun penelitian sebelumnya yang meramalkan curah hujan yaitu penelitian menggunakan metode Fuzzy Time Series Chen dengan studi kasus curah hujan di Samarinda dalam penelitian ini menggunakan data time series curah hujan bulanan dengan kesimpulan pengunaan data yang sedikit memiliki tingkat akurasi lebih tinggi dibandingkan
2
menggunakan data yang banyak yaitu menghasilkan nilai RMSE terkecil 7368 dan MAE terkecil 539 (Fauziah et al 2016)
Selain peramalan yang hanya menggunakan data time series dari data yang akan diramalkan juga terdapat penelitian sebelumnya yang menggunakan faktor - faktor yang mempengaruhi dari data yang akan diramalkan Salah satunya yaitu penelitian dengan menggunakan metode Clusterwise Linear Regression (CLR) Penelitian ini menggunakan data bulanan pada delapan stasiun cuaca di kota Victoria Australia Peramalan curah hujan pada penelitian ini menggunakan faktor yang mempengaruhi yaitu suhu maksimum suhu minimum penguapan tekanan uap dan radiasi matahari Hasil penelitian ini terbukti dapat melakukan peramalan curah hujan dengan hasil yang cukup baik yaitu dengan nilai RMSE terkecil 197 dan MAE terkecil 129 (Bagirov et al 2017)
Berdasarkan paparan yang telah dijelaskan penulis memiliki ide untuk melakukan penelitian dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Pada metode ini dilakukan klasterisasi data untuk membangun subinterval dengan menggunakan metode fuzzy C-means (LinYang 2009) Dari proses hasil klasterisasi akan digunakan untuk membagi data semesta yang selanjutnya menghasilkan fuzzy set atau himpunan fuzzy yang menggambarkan fitur data (LinYang 2009) Keunggulan dari metode fuzzy time series dengan multi faktor yaitu dengan berdasarkan pada penelitian ndash penelitian sebelumnya yang menggunakan metode tersebut yaitu penelitian prediksi harga emas dengan beberapa faktor yang mempengaruhi menggunakan metode Multi-factors High order Fuzzy Time Series Model dari hasil penelitian ini dengan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 (Wardhani et al 2015) dan penelitian peramalan Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen menggunakan metode Fuzzy Time Series Model dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 (Lin Yang 2009) terbukti menghasilkan hasil peramalan dengan tingkat akurasi yang cukup tinggi Penggunaan metode ini juga sesuai dengan curah hujan yang dipengaruhi oleh beberapa faktor yaitu kelembaban udara kecepatan angin dan suhu (Pradipta 2013) Penelitian ini diharapkan dapat memberikan hasil peramalan curah hujan yang lebih akurat dan memiliki nilai kesalahan yang lebih sedikit
12 Rumusan masalah
Berdasarkan latar belakang yang telah dipaparkan dibuatlah beberapa rumusan masalah sebagai berikut
1 Bagaimana mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Berapa tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
3
13 Tujuan
Adapun maksud dan tujuan dari penelitian ini adalah sebagai berikut
1 Mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Mengetahui tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
14 Manfaat
Adapun manfaat dari penelitian ini adalah sebagai berikut
1 Bagi Badan Meteorologi dan Geofisika (BMKG) untuk dapat memberikan peramalan curah hujan yang lebih akurat dari sebelumnya
2 Bagi Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian untuk dapat membuat Kalender tanam (KATAM) dengan menggunakan data ramalan curah hujan yang lebih akurat
3 Bagi penduduk kabupaten Malang khususnya yang bekerja pada sektor pertanian agar dapat mengoptimalkan hasil produksi dengan menyesuaikan penanaman sesuai dengan Kalender Tanam (KATAM) yang telah dibuat Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian
15 Batasan masalah
Penelitian ini dibatasi oleh hal ndash hal sebagai berikut
1 Data curah hujan kelembaban udara kecepatan angin dan suhu udara yang digunakan pada penelitian ini merupakan data berdasarkan dasarian dan hanya mencakup wilayah kabupaten Malang dan data diperoleh dari BMKG Karangkates Kabupaten Malang dengan data time series yang digunakan pada penelitian ini yaitu dari tahun 2011 - 2016
2 Model peramalan yang diterapkan adalah semua nilai yang membentuk pola dataset training dan testing diketahui nilainya
3 Perhitungan nilai tingkat kesalahan permalan menggunakan metode Mean Square Error (MSE)
16 Sistematika pembahasan
Sistematika pembahasan penelitian ditunjukkan untuk memberikan gambaran dan uraian dari penyusunan proposal yang meliputi beberapa bab sebagai berikut
BAB 1 PENDAHULUAN
Pada bab ini berisi latar belakang rumusan masalah tujuan penelitian manfaat penelitian batasan masalah sistematika pembahasan dan rencana kerja atau jadwal penelitian
4
BAB 2 LANDASAN KEPUSTAKAAN
Pada bab ini berisi tentang kajian pustaka dan dasar teori yang menjadi dasar dalam melakukan implementasi peramalan curah hujan dengan Metode High Order Fuzzy Time Series Multi Factors
BAB 3 METODOLOGI
Pada bab ini diuraikan tentang tahapan atau langkah ndash langkah yang dilakukan dalam proses penelitian tentang peramalan curah hujan dengan metode High Order Fuzzy Time Series Multi Factors Langkah ndash langkah tersebut terdiri dari tahapan penelitian teknik pengumpulan data algoritma yang digunakan lingkungan pengujian dan pengujian algoritma yang digunakan serta pengambilan kesimpulan
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan proses algoritma perhitungan manual metode High Order Fuzzy Time Series Multi Factors perancangan antar muka dan perancangan pengujian
BAB 5 IMPLEMENTASI
Pada bab ini berisi tentang penjelasan peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors bagaimana user interface dan source code dalam pengimplementasian metode ini
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini berisi tentang penjelasan proses dan hasil pengujian dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam peramalan curah hujan serta analisis dari pengujian tersebut
BAB 7 PENUTUP
Pada bab ini berisi kesimpulan yang diperoleh dari hasil pengujian dan saran ndash saran untuk pengembangan penelitian selan
5
BAB 2 LANDASAN KEPUSTAKAAN
Bab ini berisi mengenai kajian pustaka dan dasar ndash dasar teori yang akan dibahas serta digunakan untuk menunjang topik ndash topik pembahasan Pada kajian akan dibahas perbedaan antara penelitian yang telah ada dengan penelitian yang diusulkan oleh penulis Sedangkan pada dasar teori akan dibahas mengenai teori ndash teori yang digunakan pada penelitian yang diusulkan
21 Kajian Pustaka
Pada kajian pustaka disini berisi mengenai perbandingan antara penelitian yang diusulkan oleh penulis dengan penelitian sebelumnya yang relevan Perbandingan tersebut dapat dilihat padat Tabel 21
Tabel 21 Kajian Pustaka
No Judul Objek dan Input Penelitian Metode
1 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan (Irsyad Metarice 2013)
Objek Curah hujan
Input Penelitian
Data aktual curah hujan
Metode High Order Fuzzy Time Series dan Automatic Clustering
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
2 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) (Fauziah et al 2016)
Objek Curah Hujan
Input Penelitian
Data aktual curah hujan
Metode Fuzzy Time Series Chen
Nilai evaluasi
Mean Absolute Error (MAE) Root Mean of Square Error (RMSE)
3 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emas (Wardhani et al 2015)
Objek Harga Emas
Input Penelitian
Kurs Dollar hari sebelumnya
Kurs Euro hari sebelumnya
Harga Emas London hari sebelumnya
Harga Emas hari sebelumnya
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
4 Stock Markets Forecasting Based on Fuzzy Time Series Model (Lin Yang 2009)
Objek Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
6
Input Penelitian
Historical return
Historical turnover volume
Rata ndash rata selisih pergerakan harga selama lima hari
Selisih antara kekuatan bull dan bear
Indeks komposit bursa efek harian Shanghai sebelumnya
Indeks komposit bursa efek harian Shenzhen
Nilai evalusi
Average Relative Error (ARError)
5 Peramalan Curah Hujan Menggunakan Metode High Order Fuzzy Time Series Multi Factors
Objek Curah hujan
Input Penelitian
Suhu
Kelembaban
Kecepatan angin
Curah hujan
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Square Error (MSE)
Sumber (Irsyad Metarice 2013) (Fauziah et al 2016) (Wardhani et al 2015) dan (Lin Yang 2009)
Pada penelitian yang pertama yaitu penelitian yang dilakukan oleh Muhammad Irsyad dan Sonya Metarice pada tahun 2013 dengan objek penelitian yang diramalkan adalah curah hujan Inputan yang digunakan pada penelitian ini merupakan data aktual curah hujan bulanan Metode yang digunakan penelitian ini adalah Automatic Clustering dan High Order Fuzzy Time Series Pada penelitian ini metode Automatic Clustering digunakan untuk membangun interval dan High Order Fuzzy Time Series untuk melakukan peramalan curah hujan Kesimpulan yang diperoleh dari penelitian ini yaitu metode ini dapat diterapkan untuk permalan curah hujan dan hasil evaluasi menggunakan metode Mean Absolute Percentage Error(MAPE) dari beberapa bercobaan dapat diperoleh nilai kesalahan sebesar 437 Berdasarkan dari hasil nilai kesalahan tersebut maka tingkat kesalahan data pada permalan ini termasuk rendah
Pada tahun 2016 Normalita Fauziah Sri Wahyuningsih dan Yuki Novia Nasution melakukan penelitian dengan objek penelitian curah hujan di kota Samarinda Inputan yang digunakan pada penelitian berupa data aktual bulanan curah hujan di kota Samarinda Metode yang digunakan pada penelitian ini adalah Fuzzy Time Series Chen dengan dalam pembentukkan panjang interval berbasis rata ndash rata atau average based Pada penelitian ini permalan curah hujan terbaik yaitu dengan menggunkan data sebanyak 29 data dengan menghasilkan tingkat nilai kesalahan terkecil yaitu dengan metode Root Mean of Squared Error (RMSE) sebesar 7368 dan metode Mean Absolute Error (MAE) sebesar 539 Pada
(Lanjutan) Tabel 21 Kajian Pustaka
7
penelitian ini disimpulkan bahwa data sebanyak 29 data memiliki tingkat kesalahan lebih kecil dibandingkan dengan menggunakan data dengan jumlah sampel yang lebih banyak
Pada penelitian selanjutnya adalah penelitian yang dilakukan oleh Dessy Kusuma Wardhani Dian Eka Ratnawati dan Budi Darma Setiawan pada tahun 2015 dengan objek penelitian yang diramalkan adalah harga emas harian Inputan yang digunakan pada penelitian ini data aktual harian harga emas indonesia harga emas london kurs dollar ke rupiah dan kurs euro ke rupiah Metode yang digunakan pada penelitian pada pembentukkan sub interval menggunakan metode fuzzy C-means dan untuk peramalan menggunakan metode High Order Fuzzy Time Series Model Hasil pada penelitian ini berdasarkan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 karena nilai error lebih kecil dari 10 menunjukkan bahwa metode ini sangat baik digunakan untuk peramalan harga emas
Pada tahun 2009 Yupei Lin dan Yiwei Yang melakukan penelitian dengan objek yang diramalkan adalah indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen Data input penelitian ini meliputi historical return historical turnover volume dan rata ndash rata selisih pergerakan harga selama lima hari serta selisih antara kekuatan bull dan bear Dalam penelitian ini pembentukan subinterval yang berfungsi dalam pendefinisian himpunan fuzzy dilakukan dengan menggunakan klasterisasi fuzzy C-means Hasil dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 Dalam hal ini membuktikan bahwa penelitian dapat menghasilkan peramalan yang cukup baik karena memiliki nilai ARError kurang dari 5
Pada penelitian ini membahas tentang peramalan curah hujan dasarian menggunakan metode High Order Fuzzy Time Series Multi Factors Terdapat empat inputan yang juga dijadikan sebagai variabel dalam penelitian ini yaitu kelembaban udara kecepatan angin suhu udara dan curah hujan Pembentukan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan klasterisasi fuzzy C-means Penelitian ini menggunakan high order fuzzy logic relationship yaitu membentuk fuzzy logic relationship berdasarkan data dalam kurun waktu beberapa dasarian sebelum dasarian yang akan diramal Pada penelitian ini dalam melakukan perhitungan nilai error untuk mendapatkan hasil evaluasi menggunakan metode Mean Square Error (MSE)
22 Dasar Teori
Pada dasar teori disini dijelaskan tentang metode ndash metode yang digunakan pada penelitian ini yang meliputi peramalan curah hujan data time series logika fuzzy fuzzy C-means metode peramalan dengan Fuzzy Time Series High Order Fuzzy Time Series Multi Factors dan metode perhitungan keakuratan metode peramalan
8
221 Peramalan
Terdapat beberapa definisi tentang peramalan menurut Kamus Besar Bahasa Indonesia (KBBI) yaitu
a Peramalan merupakan prediksi rencana atau estimasi kejadian masa depan yang tidak pasti (KBBI)
b Peramalan adalah sebagai penggunaan teknik ndash teknik statistik dalam bentuk gambaran masa depan berdasarkan pengolahan angka ndash angka yang terjadi pada masa lalu (Buffa et al1996)
c Peramalan adalah bagian internal dari pengambilan keputusan manajemen (Makridakis et al1999)
Berdasarkan beberapa definisi diatas dapat disimpulkan bahwa peramalan merupakan tindakan apa yang akan terjadi di masa mendatang peramalan diperlukan untuk mengambil sebuah keputusan Dalam pengambilan keputusan harus diambil dari pertimbangan ndash pertimbangan yang ada Oleh karena itu peramalan sangat penting hubungannya dengan pengambilan keputusan sehingga kejadian di masa yang akan datang dapat dipersiapkan tindakan apa yang perlu dilakukan
222 Curah hujan
Curah hujan merupakan salah satu faktor penting yang mempengaruhi perubahan iklim suatu wilayah (Mirawati et al 2013) Salah satu contoh kasus nyata yaitu terjadinya perubahan iklim secara tiba ndash tiba atau bisa disebut dengan cuaca ekstrim Curah hujan dapat dijelaskan dengan air hujan yang terkumpul pada suatu wadah datar dimana air hujan tersebut tidak meresap tidak menguap dan tidak mengalir sehingga dapat diukur ketinggiannya Sebagai contoh curah hujan 1 (satu) milimeter dapat dijelaskan dalam suatu wadah datar dengan luas satu meter persegi tertampung air dengan ketinggian sekitar satu milimeter atau tertampung air sebanyak satu liter Metode dalam mendapatkan data curah hujan adalah dengan menggunakan penakar hujan yang kemudian diukur dengan satuan milimeter (mm) (User2015) Intensitas curah hujan dapat dikategorikan ringan jika dibawah 20mm dalam 24 jam dikategorikan lebat jika di atas 50mm dan dikategorikan sedang jika selang 20mm hingga 50mm (User 2015)
Curah hujan mempengaruhi beberapa sektor diantarannya sektor komunikasi dimana penggunaan frekuensi diatas 10 GHz dapat terkena redaman hujan (Mauludiyanto et al 2009) Akan tetapi curah hujan paling berpengaruh terhadap sektor pertanian Hal ini terbukti bahwa sebagian besar terjadinya penurunan produktifitas dan gagal panen di sektor pertanian adalah terjadinya curah hujan yang tinggi
Tinggi dan rendahnya curah hujan dipengaruhi oleh beberapa faktor yaitu kelembaban udara temperatur dan kecepatan angin Pada tahun 2013 Nur Suri Pradipta Pasukat Sembiring dan Pengarapen Bangun melakukan penelitian mengenai pengaruh curah hujan di kota Medan (Pradipta et al 2013)
9
Berdasarkan penelitian tersebut faktor yang mempengaruhi dan digunakan dalam peramalan curah hujan yaitu
1 Kelembaban udara
Kelembaban udara adalah banyaknya kandungan uap air di atmosfer Udara atmosfer adalah campuran dari udara kering dan uap air selain itu kelembaban udara merupakan komponen cuaca yang mempunyai peranan sangat penting bagi stabilitas kehidupan organisme di bumi maupun unsur-unsur cuaca yang lain (Forest 2015) Kelembaban udara berpengaruh terhadap curah hujan Hal ini didukung penelitian oleh (Sipayung et al 2013) yang menyatakan Kelembaban udara berpengaruh positif terhadap curah hujan
2 Kecepatan angin
Kecepatan angin merupakan kecepatan udara yang bergerak secara horizontal pada ketinggian 2 meter diatas tanah Dalam hal ini faktor yang menentukan kecepatan angin adalah perbedaan tekanan udara antara asal dan tujuan angin Kecepatan angin berpengaruh positif terhadap curah hujan artinya jika kecepatan angin tinggi maka curah hujan akan tinggi (Pradipta et al2013)
3 Suhu udara
Suhu udara merupakan ukuran energi kinetik rata ndash rata dari pergerakan molekul ndash molekul Suhu udara berpengaruh negatif terhadap curah hujan artinya jika suhu udara tinggi maka curah hujan akan berkurang (Pradipta et al2013)
223 Data time series
Data time series adalah data statistik yang telah dihimpun dari masa lampau hingga sekarang dan dapat digunakan sebagai acuan dalam melakukan peramalan terhadap data yang akan datang (Wiyanti amp Pulungan 2012) Data time series juga dapat didefinisikan sebagai sebuah kegiatan mengamati data statistik dimana terdapat korelasi (dependensi) antar datanya sehingga data yang sekarang sedang diamati memiliki ketergantungan dengan satu atau lebih data pengamatan sebelumnya (Mirawati et al 2013)
Terdapat dua teknik prediksi yang menggunakan basis data time series yaitu teknik model matematika statistik dan berdasarkan kecerdasan buatan (Wiyanti amp Pulungan 2012) Analisa time series sendiri memiliki beberapa peruntukan salah satunya digunakan dalam melakukan peramalan untuk masa yang akan datang Dalam penggunaan data time series merupakan salah satu proses peramalan kuantitatif dimana berdasar data kuantitatif masa lampau yang direpresentasikan dalam bentuk angka atau nilai (Mirawati et al 2013)
10
224 Logika Fuzzy
Pada tahun 1965 Prof Lotfi A Zadeh memperkenalkan teori logika fuzzy Logika fuzzy merupakan suatu komponen soft computing dan juga suatu cara yang tepat untuk memetakan suatu ruang input ke dalam ruang output Antara ruang input dan ruang output terdapat black box yang berfungsi memetakan input ke ruang output yang sesuai Dasar logika fuzzy adalah teori fuzzy set Pada teori fuzzy set peranan derajat keanggotaan sebagai penentu keberadaan elemen dalam suatu himpunan sangatlah penting Oleh karena itu derajat keanggotaan menjadi ciri utama dalam penalaran dengan logika fuzzy Logika fuzzy bekerja dengan menggunakan derajat keanggotan dari sebuah nilai yang kemudian digunakan untuk menentukan hasil yang ingin dihasilkan berdasarkan atas kriteria yang telah ditentukan (Kusumadewi 2003)
Berikut adalah beberapa alasan digunakannya logika fuzzy (Kusumadewi 2002)
1 Logika fuzzy sangat fleksibel
2 Konsep logika fuzzy mudah dimengerti dan dipahami
3 Logika fuzzy memiliki toleransi terhadap data ndash data yang homogen dan data ndash data yang kurang tepat
4 Logika fuzzy didasari pada bahasa alami atau bahasa sehari - hari sehingga mudah dimengerti
5 Logika fuzzy dapat bekerjasama dengan teknik ndash teknik kendali secara konvensional
6 Logika fuzzy mampu membangun dan mengaplikasikan pengalaman ndash pengalaman para pakar secara langsung tanpa harus melalui tahap atau proses pelatihan
A Himpunan Fuzzy
Himpunan fuzzy atau fuzzy set merupakan perluasan himpunan tegas atau himpunan crisp jadi fungsi karakteristik mencakup bilangan real pada interval [01] Dalam definisi lain himpunan fuzzy adalah suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dalam suatu variabel fuzzy Keanggotaan fuzzy berbeda dengan probabilitas jika keanggotaan fuzzy pada setiap fungsi karakteristik memberikan suatu pendapat atau keputusan sedangkan probabilitas menunjukan seberapa besar nilai kebenaran dalam fungsi karakteristik tersebut Contohnya yaitu nilai keanggotaan suatu himpunan fuzzy umur muda 09 berarti nilai dalam himpunan tersebut memiliki kemungkinan 90 anggotanya berumur muda dan 10 diharapkan tidak muda Dalam himpunan fuzzy suatu bilangan bisa memiliki dua keanggotaan sekaligus Himpunan fuzzy memiliki dua attribut (Kusumadewi2003)
11
1 Linguistik merupakan penamaan suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami misalnya muda parobaya tua
2 Numeris merupakan suatu nilai (angka) yang menunjukkan ukuran dari suatu
variabel seperti 402550 dan sebagainya
B Fungsi Keanggotaan
Fungsi keanggotaan adalah suatu kurva yang menunjukkan pemetaan titik ndash titik input data ke dalam derajat keanggotaannya yang memiliki subinterval antara 0 sampai 1 (Kusumadewi Purnomo 2004) Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi Ada beberapa fungsi keanggotaa yang dapat digunakan
1 Fungsi representasi linear
Pada fungsi representasi linear pemetaan input ke derajat keanggotaannya digambarkan sebagai suatu garis lurus Bentuk ini paling sederhana dan menjadi pilihan yang baik untuk mendekati suatu konsep yang kurang jelas Keadaan linear himpunan fuzzy terdiri dari dua keadaan yaitu keadaan linear naik dan keadaan linear turun Pada keadaan linear naik kenaikan himpunan dimulai pada nilai domain yang memiliki nilai derajat keanggotaan nol bergerak ke kanan menuju ke nilai domain yang memiliki derajat keanggotaan yang lebih tinggi seperti yang ditunjukkan Gambar 21 Persamaan fungsi keanggotaan pada representasi linear naik ditunjukkan oleh Persamaan 21
Fungsi Keanggotaan
120583(119909) = 0
(119909 minus 119886)(119887 minus 119886)1
119909 le 119886 119886 le 119909 le 119887119909 ge 119887
(21)
b a 0
1
Gambar 21 Representasi linear naik
Sumber Kusumadewi (2002)
120583(119909)
12
Pada keadaan linear turun berbanding terbalik dengan keadaan linear naik Garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi pada sisi kiri kemudian bergerak menurun ke nilai domain yang memiliki derajat keanggotaan lebih rendah yang ditunjukkan Gambar 22 Persamaan fungsi keanggotaan pada representasi linear turun ditunjukkan oleh Persamaan 22
Fungsi Keanggotaan
120583(119909) = (119887 minus 119909)(119887 minus 119886)0
119886 le 119909 le 119887
119909 ge 119887 (22)
2 Fungsi representasi kurva segitiga
Representasi kurva segitiga pada dasarnya merupakan gabungan antara 2 garis linear yaitu linear naik dan linear turun Fungsi representasi kurva segitiga ditandai oleh adanya tiga parameter abc yang akan menentukan koordinat x dari tiga sudut seperti ditunjukkan pada Gambar 23 Persamaan fungsi keanggotaan pada representasi kurva segitiga ditunjukkan oleh Persamaan 23
b a 0
1
Sumber Kusumadewi (2002)
Gambar 22 Representasi linear turun
120583(119909)
c a 0
1
b
Sumber Kusumadewi (2002)
Gambar 23 Representasi kurva segitiga
120583(119909)
13
Fungsi Keanggotaan
120583(119909) =
0 (119909 minus 119886)(119887 minus 119886) (119887 minus 119909)(119888 minus 119887)
119909 le 119886 119886119905119886119906 119909 ge 119888
119886 le 119909 le 119887 119887 le 119909 le 119888
(23)
225 Metode Fuzzy C-means
Fuzzy C-means (FCM) pertama kali diperkenalkan oleh Dunn dan dikembangkan oleh Bezdek yang banyak digunakan dalam pengenalan pola Metode ini merupakan pengembangan dari metode non-hierarkhi K-Means Cluster selanjutnya dilakukan iterasi sampai mendapatkan keanggotaan kelompok tersebut (Klawon 2001)
FCM merupakan salah satu algoritma fuzzy clustering dan juga teknik klasterisasi dimana tiap data ditentukan oleh derajat keanggotaanya Tujuan penggunaan algoritma FCM yaitu untuk menemukan pusat cluster atau centroid dengan meminimumkan fungsi objektif (Bazdek 1984) Ouput dari FCM bukan merupakan fuzzy inference system melainkan deretan pusat cluster dan beberapa derajat keanggotaan untuk setiap titik data Hasil output ini dapat digunakan untuk membangun suatu fuzzy inference system Berikut adalah langkah ndash langkah dari FCM (Kusumadewi 2004)
1 Langkah pertama menentukan jumlah cluster (c ge 2) pembobot (infin gt 119908 gt1) (Bazdek 1984) maksimum iterasi (maxIter) error minimum yang diharapkan yaitu nilai positif yang sangat kecil (120585) fungsi objektif awal (P0 = 0) iterasi awal dideklarasikan 1
2 Langkah kedua memasukkan data X yang akan diklasterisasi berupa matriks berukuran m x n (m = jumlah sampel data n = attribut setiap data) Contoh Xij = data sampel ke-i (i = 1234m) attribu ke-j (j=1234n)
3 Langkah ketiga yaitu dengan membuat bilangan random microik i = 1234n dan k = 123c (n = jumlah sampel pada data c = jumlah cluster yang akan dibentuk) sebagai elemen ndash elemen matriks partisi awal Untuk bilangan penyusun matriks partisi awal dihitung dihitung jumlahnya setiap kolom yang ditunjukkan pada pada Persamaan 24 (Kusumadewi 2004)
119876119896 = sum 120583119894119896119888119896=1 (24)
Dimana
119876119896 = jumlah bilangan pada kolom k
120583119894119896 = bilangan random pada baris i kolom k
119888 = jumlah kolom
14
Selanjutnya untuk menghitung derajat keanggotaan awal dengan melakukan normalisasi pada matiks partisi pada normalisasi dilakukan menggunakan Persamaan 25 (Kusumadewi 2004)
120583119894119896 = 120583119894119896119876119896 (25)
4 Langkah keempat melakukan perhitungan cluster ke-k Vkj dengan k = 1234c dan j = 1234m Perhitungan pusat cluster ditunjukkan pada Persamaan 26 (Kusumadewi 2004)
119881119896119895 = sum ((120583119894119896)119908 times 119883119894119895)119899
119894=1
sum (120583119894119896)119908119899119894=1
(26)
Dimana
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
120583119894119896 = derajat keanggotaan pada data ke-i cluster ke-k
119883119894119895 = data sampel pada data ke-i attribut ke-j
119908 = pembobot
5 Langkah kelima melakukan perhitungan fungsi objektif pada iterasi ke-t P1 Perhitungan fungsi objektif ditunjukkan pada Persamaan 27 (Kusumadewi 2004)
119875119905 = sum sum ([sum (119883119894119895 minus 119881119896119895)119898119895=1
2](120583119894119896)119908)119888
119896=1119899119894=1 (27)
Dimana
119875119905 = fungsi objektif
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
6 Langkah keenam melakukan perhitungan perbaikan matriks partisi yang telah ditunjukkan Persamaan 28 (Kusumadewi 2004)
120583119894119896 = [sum (119883119894119895minus119881119896119895)119898
119895=12
]
minus1119908minus1
sum [sum (119883119894119895minus119881119896119895)119898119895=1
2]
minus1119908minus1119888
119896minus1
(28)
Dimana
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
119908 = pembobot
7 Langkah ketujuh yaitu melakukan pemerikasaan kondisi berhenti dengan kondisi sebagai berikut
a Jika (|119875119905 minus 119875119905minus1| lt 120585) atau ( t gt MaxIter) maka berhenti
b Jika tidak memenuhi t = t +1 ulangi mulai dari langkah ke-4
15
226 Metode Peramalan dengan Fuzzy Time Series
Pada tahun 1996 Chen memperkenalkan metode peramalan dengan menggunakan metode Fuzzy Time Series Metode Fuzzy Time Series memiliki perbedaan dengan metode peramalan time series biasa atau konvensional yaitu terdapat pada data yang digunakan untuk peramalan Fuzzy Time Series data yang digunakan adalah berupa fuzzy set atau himpunan fuzzy dari bilangan ndash bilangan real atas himpunan semesta yang ditentukan Jadi Fuzzy Time Series merupakan metode dengan menggunakan data berupa fuzzy set yang berasal dari bilangan real atas Universe of Discorse pada data aktual Universe of Discourse adalah himpunan semesta dari data penelitian
Berikut adalah langkah ndash langkah metode Fuzzy Time Series yang telah diperkenalkan oleh Chen terdapat enam langkah yaitu
1 Langkah pertama yaitu membagi Universe of Discourse dari bilangan aktual ke dalam subinterval dengan jumlah interval yang sama Perhitungan Universe of Discourse ditunjukkan pada Persamaan 29 (Chen 1996)
119880 = [119863119898119894119899 minus 1198631 119863119898119886119909 + 1198632] (29)
Dimana
119880 = Universe of Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
1198631 dan 1198632 = bilangan positif yang ditentukan oleh user untuk menentukan Universe of Discourse dari himpunan data sampel
2 Langkah kedua adalah mendefinisikan fuzzy set dari Universe of Discourse (U) menjadikan A1 A2 A3 An ke dalam fuzzy set dengan nilai linguistik sesuai dengan keadaan U Selanjutnya mendefinisikan fuzzy set tersebut ditunjukkan pada Persamaan 210 (Chen 1996)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (210)
1198602 =11989121
1199061+
11989122
1199062+
11989123
1199063+ ⋯ +
1198912119896
119906119896
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
Dimana 119891119894119895120598 [01] 1 le 119894 le 119896 dan 1 le 119895 le 119898 Variabel 119891119894119895 menunjukkan
derajat keanggotaan dari subinterval 119906119895 dari fuzzy set 1198601 Pada konsep ini
Chen menggunakan nilai linguistik 1198601 = (not many) 1198602 = (not too many) 1198603= (many) 1198604 = (many many) 1198605 = (very many) 1198606 = (too many) 1198607= (too many many) Kemudian nilai linguistik tersebut dimasukkan ke tiap fuzzy set Dari U tersebut dapat dibangun fuzzy set sebagai berikut
16
1198601 = 1
1199061+
05
1199062+
0
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198602 = 05
1199061+
1
1199062+
05
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198603 = 0
1199061+
05
1199062+
1
1199063+
05
1199064+
0
1199065+
0
1199066+
0
1199067
1198604 = 0
1199061+
0
1199062+
05
1199063+
1
1199064+
05
1199065+
0
1199066+
0
1199067
1198605 = 0
1199061+
0
1199062+
0
1199063+
05
1199064+
1
1199065+
05
1199066+
0
1199067
1198606 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
05
1199065+
1
1199066+
05
1199067
1198607 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
0
1199065+
05
1199066+
1
1199067
3 Langkah ketiga yaitu melakukan fuzzifikasi data historis proses fuzzifikasi merupakan proses merubah data aktual yang merupakan bilangan crisp ke dalam bentuk bilangan fuzzy Bilangan fuzzy yang dimaksudkan adalah dalam bentuk derajat keanggotaan Dari beberapa derajat keanggotaan yang terbentuk kemudian dipilih satu fuzzy set yang memiliki derajat keanggotaan teringgi Fuzzifikasi dinotasikan sebagai berikut jika F(t-1) berada pada fuzzy set Ak maka F(t-1) difuzzifikasikan sebagai Ak
4 Langkah keempat adalah mengidentifikasi Fuzzy Logic Relationship (FLR) FLR diidentifikasikan sebagai Ai dan F(t) difuzzifikasikan sebagai Ai rarr Aj Ai sebagai sisi kiri relationship disebut sebagai current state dan Aj sebagai sisi kanan relationship disebut next state Jika terjadi perulangan relationship maka tetap dihitung satu kali
5 Langkah kelima yaitu mengelompokkan menjadi Fuzzy Logical Relationship Group (FLRG) FLRG dibangun berdasarkan sisi kiri (current state) yang sama
6 Langkah terakhir yaitu langkah keenam adalah melakukan defuzzifikasi nilai keluaran peramalan Defuzzifikasi adalah mengubah nilai keluaran fuzzy menjadi bilangan crisp kembali sehingga diperoleh hasil akhir peramalan Defuzzifikasi didasarkan pada tiga (3) rule aturan yaitu (Chen 1996)
I Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai hanya memiliki satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj dimana nilai maksimum fungsi keanggotaanya berada pada 119906119895 maka nilai peramalan untuk n+1 adalah
nilai tengah dari 119906119895 atau didefinisikan dengan 119898119895
II Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai memiliki lebih dari satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj1 Aj2 Ajp Dimana nilai tengah untuk masing ndash masing Aj1 Aj2 Aj3 Ajp adalah mj1 mj2 mj3 mjp
maka nilai peramalan untuk n+1 adalah (mj1 mj2 mj3 mjp) p
III Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai tidak memiliki FLR pada FLRG dimana nilai maksimum fungsi keanggotaannya berada pada 119906119895
17
maka nilai peramalan untuk n+1 adalah nilai tengah dari 119906119895 atau
didefinisikan dengan 119898119895
227 Metode High Order Fuzzy Time Series Multi Factors
Metode High Order Fuzzy Time Series Multi Factors adalah metode Fuzzy Time Series (FTS) yang melibatkan beberapa faktor yang mempengaruhi peramalan dengan berdasarkan beberapa periode waktu sebelum periode yang akan diramalkan dalam proses pembentukkan Fuzzy Logical Relationship (FLR) Hasil peramalan dengan banyak faktor yang mempengaruhi dinilai lebih baik dari pada dengan hanya satu faktor yang mempengaruhi (LinYang 2009) Pada metode ini pembentukkan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan teknik klasterisasi fuzzy C-means Berikut adalah langkah ndash langkah Metode High Order Fuzzy Time Series Multi Factors (LinYang 2009)
1 Langkah pertama adalah melakukan perhitungan Universe of Discourse (U) Sebelum menghitung nilai U terlebih dulu menghitung nilai mean (rata ndash rata) sampel lalu menghitung nilai standar deviasi (120590) Mean merupakan perhitungan jumlah dari semua nilai dalam kumpulan data kemudian dibagi dengan jumlah total data untuk menghitung nilai mean ditunjukkan pada Persamaan 211 (Weisstein 2015) Standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel untuk menghitung nilai standar deviasi (120590) ditunjukkan pada Persamaan 212 (Weisstein 2015) Perhitungan U ditunjukkan pada Persamaan 213 (LinYang 2009)
119909 =sum 119909119894
119899119894=1
119899 (211)
Dimana
= mean (rata ndash rata)
119909119894 = nilai data ke-i
119899 = banyak data
120590 = radicsum (119909119894minus ) 2119899
119894=1
119899minus1 (212)
Dimana
120590 = Standar deviasi data
119880 = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590] (213)
Dimana
119880 = Universal 0f Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
18
2 Langkah kedua yaitu menentukan jumlah cluster data Proses klasterisasi bertujuan untuk membagi U kedalam beberapa subinterval Hasil perhitungan banyaknya cluster apabila bernilai pecahan maka harus dibulatkan menjadi bilangan bulat Perhitungan banyaknya cluster ditunjukkan pada Persamaan 214 (LinYang 2009)
119896 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905)minus119883(119905minus1)|119899
119905=1
119899minus1| (214)
Dimana
119896 = banyaknya jumlah cluster
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
119899 = banyaknya data sampel
119883(119905) = data pada waktu ke-t
3 Langkah ketiga yaitu melakukan pembentukan pusat cluster Pada metode ini proses klasterisasi data menggunakan fuzzy C-means (FCM) untuk mendapatkan pusat cluster sebanyak k Tahapannya U dibagi kedalam k subinterval (119863119898119894119899 1198891) (1198891 1198892) (1198892 1198893) hellip (119889119896minus1 119863119898119886119909) dimana di (i = 123k-1) merupakan titik tengah antara dua pusat cluster k subinterval didefinisikan sebagai 1199061 1199062 1199063 hellip 119906119896 Sehingga dalam hal ini subinterval
dengan panjang berbeda dapat menggambarkan struktur data kompleks dengan baik dan dapat meningkatkan peramalan dibandingkan menggunakan subinterval dengan panjang yang sama (LinYang 2009)
4 Langkah keempat yaitu melakukan pembentukan himpunan fuzzy atau fuzzy set Pada langkah ini fuzzy set direpresentasikan dengan kurva bahu Pembentukkan fuzy set ditunjukkan pada Persamaan 215 (LinYang 2009)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (215)
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
5 Langkah kelima yaitu proses fuzzifikasi Proses fuzzifikasi bertujuan untuk mengubah data sampel yang masih berupa bilangan crisp sehingga menjadi bilangan fuzzy Masing ndash masing data dihitung derajat keanggotaannya terhadap fuzzy set yang sudah terbentuk selajutnya derajat kanggotaan dihitung berdasarkan kurva bahu dan derajat keanggotaan tertinggi menunjukkan hasil fuzzifikasi data tersebut Contohnya A(t) B(t) C(t) dan D(t) dimana t= 123n merupakan time series dari faktor yang mempengaruhi serta n merupakan banyaknya data Berdasarkan pembagian subinterval masing ndash masing time series ini difuzzifikasikan Misalkan hasil dari Persamaan 215 yaitu menghitung banyak cluster dari k1 k2 k3 k4 Jadi time series difuzzifikasikan menjadi empat fuzzy time series yaitu
19
A(ti) dimana i = 1234k1
B(tj) dimana j = 1234k2
C(tp) dimana p = 1234k3
D(tq) dimana q = 1234k4 t = 123n
6 Langkah keenam yaitu melakukan pembentukkan Fuzzy Logical relationship (FLR) Data sampel sebanyak n periode dipilih sebagai data training untuk membentuk fuzzy time series model Misalkan t merupakan periode waktu yang akan diramal dengan menggunakan order ndash 3 maka tiga periode sebelum periode t adalah t-3 t-2 dan t-1 dimana t = 456n Maka FLR yang dihasilkan ditunjukkan pada Persamaan 216 dan berdasarkan persamaan tersebut maka akan membentuk sebuah kumpulan FLR dari data training (LinYang 2009)
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023)) (216)
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
Tabel 22 Fuzzy Logic Relationship
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023))
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
(119860(119905minus21198943) 119861(119905minus21198953) 119862(119905minus21199013) 119863(119905minus21199023))
(119860(119905minus11198942) 119861(119905minus11198952) 119862(119905minus11199012) 119863(119905minus21199022))
(119860(1199051198941) 119861(1199051198951) 119862(1199051199011) 119863(1199051199021)) rarr 119860(119905+11198944)
(119860(119905+119899minus71198943) 119861(119905+119899minus71198953) 119862(119905+119899minus71199013) 119863(119905+119899minus71199023))
(119860(119905+119899minus61198942) 119861(119905+119899minus61198952) 119862(119905+119899minus61199012) 119863(119905+119899minus61199022))
(119860(119905+119899minus51198941) 119861(119905+119899minus51198951) 119862(119905+119899minus51199011) 119863(119905+119899minus51199021)) rarr 119860(119905+119899minus41198944)
Sumber (LinYang 2009)
7 Langkah terakhir adalah proses Defuzzifikasi Berdasarkan langkah sebelumnya maka dapat diambil hasil fuzzy ke- H yaitu yang digunakan sebagai data testing atau data uji seperti yang ditunjukkan pada Persamaan 217 (LinYang 2009)
(119860(119867minus31198943) 119861(119867minus31198953) 119862(119867minus31199013) 119863(119867minus31199023)) (217)
(119860(119867minus21198942) 119861(119867minus21198952) 119862(119867minus21199012) 119863(119867minus21199022))
(119860(119867minus11198941) 119861(119867minus11198951) 119862(119867minus11199011) 119863(119867minus11199021)) rarr 119860(1198671198944)
20
Faktor ndash faktor di ruas kiri pada Persaman 217 dibandingkan satu per satu dengan FLR data training yang sudah dicatat sebelumnya pada Tabel 22 membandingkannya yaitu dengan cara menghitung nilai absolut dari selisih antara pangkat bawah kedua faktor pada posisi yang sama di FLR Terdapat 12 fuzzy set di ruas kiri pada masing ndash masing FLR sehingga dari hasil perbandingan diperoleh 12 nilai absolut yang kemudian dijumlahkan untuk mendapat total selisihnya Jadi jika total selisih lebih kecil dari threshold yang ditentukan maka FLR tersebut dinyatakan cocok (LinYang 2009)
Selanjutnya jika FLR menemukan N pasangan yang cocok pada Tabel 22 maka N faktor di ruas kanan dari N FLR ini mendasari peramalan fuzzy set A() yang mana jumlah dari setiap fuzzy set pada umumnya berbeda Untuk peramalan dengan fuzzy set ditunjukkan pada Tabel 23 (LinYang 2009)
Tabel 23 Peramalan fuzzy set
Ruas Kanan A(1) A(2) A(3) A(k1)
Pusat cluster c1 c2 c3 ck1
Frekuensi f1 f2 f3 fk1
Sumber (Lin Yang 2009)
Berdasarkan Tabel 23 dengan menggunakan metode centroid untuk melakukan proses defuzzifikasi Proses defuzzifikasi dapat ditunjukkan pada Persamaan 218 (LinYang 2009)
119903119867 =sum 119888119894times 119891119894
1198961119894=1
sum 119891119894119896119894119894=1
(218)
Dimana
119903119867 = hasil (result) peramalan data ke-H
119888119894 = pusat cluster i dimana A(i) adalah ruas kanan dari FLR hasil proses pencocokan
119891119894 = frekuensi banyaknya muncul A(i) pada saat proses pencocokan
228 Perhitungan keakuratan metode peramalan
Dalam perencanaan peramalan tentu menginginkan hasil ramalan yang tepat atau paling tidak hampir mendekati sehingga rencana yang dibuat menjadi rencana yang realistis Keakuratan atau ketepatan merupakan yang menjadi kriteria performance suatu metode peramalan Keakuratan tersebut dapat dinyatakan sebagai kesalahan peramalan (forecast error) Semaikin kecil nilai kesalahan peramalan maka semaikin tinggi keakuratan metode peramalan yang digunakan dan sebaliknya semakin tinggi nilai kesalahan maka semakin rendah keakuratan metode peramalan yang digunakan
Mean Square Error (MSE) adalah salah satu metode yang digunakan untuk menghitung nilai akurasi atau keakuratan dari metode yang digunakan sebagai peramalan atau prediksi MSE merupakan perhitungan pangkat dua dari selisih
21
antara nilai data hasil peramalan dengan nilai data aktual dan kemudian dibagi dengan banyaknya data yang telah diramalkan Pada penentuan nilai evaluasi memilih menggunakan metode MSE karena metode ini dapat menunjukan hasil skala kemiripan antara hasil data peramalan dengan data aktual Berikut merupakan metode Mean Square Error (MSE) yang ditunjukan pada Persamaan 219 (Wang Chen 2009)
119872119878119864 = sum (119865119905minus119860119905)2119899
119894=1
119899 (219)
Dimana 119872119878119864 = nilai Mean Square Error Rate 119860119905 = nilai aktual pada data ke-t 119865119905 = nilai hasil peramalan untuk data ke-t n = banyaknya data
22
BAB 3 METODOLOGI
Pada bab ini akan dibahas mengenai metode yang digunakan beserta tahap ndash tahap pengerjaan penelitian skripsi dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Penilitian ini digolongkan sebagai penelitian implementatif dengan pendekatan perancangan (design)
Metode penelitian ini meliputi studi literatur pengumpulan data perancangan implementasi pengujian dan analisis pengambilan kesimpulan Berikut adalah alur dari metode penelitian dapat ditunjukkan pada Gambar 31
31 Studi Literatur
Pada tahap studi literatur penelitian ini bertujuan untuk mempelajari literatur dan konsep dari beberapa informasi dan pustaka yang berkaitan dengan penelitian ini Literatur dan sumber ilmu dari penelitian ini diperoleh dari internet buku dan bimbingan oleh dosen pembimbing Adapun literatur yang dipelajari yaitu tentang curah hujan serta faktor ndash faktor yang mempengaruhinya dan metode High Order Fuzzy Time Series Multi Factors
Studi Literatur
Pengumpulan Data
Perancangan
Implementasi
Pengujian dan Analisis
Kesimpulan dan Saran
Gambar 31 Diagram blok metodologi penelitian
23
32 Pengumpulan Data
Pada tahap pengumpulan penelitian ini sumber data yang diperoleh yaitu dari Badan Meteorologi Klimatologi dan Geofisikia (BMKG) Stasiun Klimatologi Kelas III Karangkates Kabupaten Malang Data yang diperoleh untuk peramalan curah hujan yaitu data aktual time series (2011 - 2016) Data yang digunakan dalam bentuk dasarian yaitu dalam rentang waktu sepuluh hari sehingga dalam satu bulan dibagi menjadi tiga dasarian
Dasarian pertama yaitu pada tanggal 1 sampai dengan 10
Dasarian kedua yaitu pada tanggal 11 sampai dengan 20
Dasarian ketiga yaitu pada tanggal 21 sampai dengan akhir bulan
Pada penelitian ini data curah hujan dalam satuan milimeter (mm) kelembaban dalam persen () suhu udara dalam satuan celsius (˚C) kecepatan angin dalam satuan kilometer per jam (kmjam)
33 Perancangan
Pada tahap perancangan penelitian ini bertujuan untuk mengetahui rancangan ndash rancangan yang merupakan langkah yang dilakukan saat melakukan tahap implementasi Pada tahap ini terdapat beberapa perancangan yaitu perancangan proses yang berisi tahapan ndash tahapan proses metode High Order Fuzzy Time Series Multi Factors perhitungan manual yang merupakan manualisasi dari metode yang digunakan pada penelitian ini perancangan antar muka atau user interface yang berisi gambaran kasar dari tampilan antar muka prototype aplikasi yang nantinya diterapkan pada tahap implementasi selanjutnya adalah perancangan pengujian yang berisi rancangan ndash rancangan pengujian metode yang digunakan untuk mengetahui berapa tingkat kesalahan atau error yang dimiliki metode pada penelitian ini dalam melakukan peramalan curah hujan
34 Implementasi
Pada tahap implementasi peneltian ini dilakukan sesuai dengan perancangan yang telah dibuat pada tahapan perancangan sebelumnya Implementasi dari metode High Order Fuzzy Time Series Multi Factors dilakukan menggunakan bahasa pemrograman java serta Integrated Development Environment (IDE) yang digunakan adalah Netbeans Sehingga nantinya hasil dari tahap ini berupa prototype aplikasi dari implementasi metode High Order Fuzzy Time Series Multi Factors untuk peramalan curah hujan
35 Pengujian dan Analisis
Pada tahapan penelitian pengujian ini diperlukan perangkat lunak dan perangkat keras agar pengujian dari hasil implementasi dapat berjalan dengan baik maka pengujian perangkat lunak dijalankan pada laptop ataupun PC (Personal Computer) dengan spesifikasi sebagai berikut
24
1 Prosesor Intel Core i3
2 Memory RAM 8 Gigabytes
3 Sistem Operasi menggunakan Windows 7 64bit
4 Hardisk dengan kapasitas 500 GB
5 Netbeans 81 JDK 7
Pengujian hasil peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors yaitu menggunakan metode Mean Square Error (MSE) Dimana rumus pengujian sesuai dengan Persamaan 219 Dalam pengujian menggunakan metode ini semakin kecil nilai MSE maka semakin tinggi tingkat akurasi hasil peramalan tersebut Pada penelitian ini untuk keperluan pengujian dari proses implementasi dilakukan empat pengujian yaitu pengujian terhadap perbedaan nilai order pengujian terhadap perbedaan nilai threshold pengujian terhadap data training untuk mengetahui pengaruhnya terhadap nilai MSE dan pengujian validasi sistem untuk mengetahui bahwa hasil implementasi metode High Order Fuzzy Time Series Multi Factors dapat melakukan peramalan
36 Kesimpulan dan Saran
Pada pengambilan kesimpulan akan dilakukan apabila semua tahapan ndash tahapan penelitian sudah dilakukan yaitu yang meliputi perancangan implementasi dan pengujian dan analisis telah selesai dilakukan Kesimpulan merupakan tahapan dimana semua rumusan masalah yang sudah ditetapkan sebelumnya dapat terjawab semua Selanjutnya pada saran merupakan berkenaan dengan hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
25
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan yang nantinya digunakan sebagai dasar dalam tahap implementasi Hal yang dibahas meliputi perancangan proses perhitungan manual perancangan pengujian dan perancangan antar muka
41 Perancangan Proses
Pada perancangan proses ini berisi mengenai tahapan ndash tahapan dari metode yang digunakan yaitu metode High Order Fuzzy Time Series Multi Factors Pada penelitian ini melibatkan faktor ndash faktor yang mempengaruhi curah hujan yaitu suhu udara kelembaban udara dan kecepatan angin Data time series dari curah hujan merupakan faktor utama dalam proses peramalan pada penelitian ini Inputan pada peneltian ini yaitu data time series curah hujan serta faktor ndash faktor yang mempengaruhinya Order yang digunakan pada metode ini merupakan order lebih dari satu oleh karena itu disebut dengan High Order Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Berikut merupakan diagram alir dari proses peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors yang ditunjukkan pada Gambar 41 dan Gambar 42
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1)
Mulai
Data curah hujan suhu kelembaban kecepatan angin jmlh_Banyakdata jmlh_Faktor
Universe_of_Discourse
A
Jumlah_Cluster
26
411 Proses perhitungan Universe of Discourse
Pada perhitungan Universe of Discourse harus sudah dilakukan inputan data agar dapat memulai tahapan perhitungan Tahapan dari proses perhitungannya yaitu pada langkah pertama dilakukan perhitungan nilai mean (rata ndash rata) sesuai dengan Persamaan 211 Setelah mendapatkan nilai mean dapat dilakukan perhitungan untuk mencari nilai standar deviasi sesuai dengan Persamaan 212 Selanjutnya dicari nilai terkecil (119863119898119894119899) dan nilai terbesar (119863119898119886119909) Setelah menyelesaikan tahap ndash tahap tersebut dapat dilakukan perhitungan untuk
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2)
A
Perhitungan Pusat Cluster
Fuzzifikasi
Pembentukan Fuzzy Logical Relationship
Defuzzifikasi
Nilai hasil peramalan
Berhenti
Pembentukan Subinterval dan Fuzzy set
27
mencari Universe of Discourse sesuai dengan Persamaan 213 Berikut merupakan diagram alir dari proses perhitungan Universe of Discourse yang ditunjukkan pada Gambar 43
Perhitungan Universe of Discourse
Mulai
Min_dan_Max
mean
standar_deviasi
for i = 0 to jmlh_Faktor-1
i
hsl_uMin ke i = hsl_min ke i ndash hsl_stdev ke i
hsl_uMax ke i = hsl_max ke i + hsl_stdev ke i
hsl_uMin hsl_uMax
Berhenti
Gambar 43 Diagram alir proses perhitungan Universe of Discourse
28
4111 Proses perhitungan Mean
Pada proses perhitungan mean merupakan nilai rata ndash rata dari setiap faktor dimana nilai mean ini nantinya dibutuhkan untuk melakukan proses perhitungan standar deviasi Berikut merupakan diagram alir dari proses perhitungan mean yang ditunjukkan pada Gambar 44
mean
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
tmp_jmlh = 0
tmp_jmlh = tmp_jmlh + data ke ij
j
hsl_mean ke i = tmp_jmlhjmlh_DataTraining
i
hsl_mean
Berhenti
Gambar 44 Diagram alir proses perhitungan mean
29
4112 Proses perhitungan standar deviasi
Pada proses perhitungan standar deviasi dapat dilakukan setelah mendapatkan nilai mean dari setiap data sesuai proses sebelumnya Berikut merupakan diagram alir dari proses perhitungan standar deviasi yang ditunjukkan pada Gambar 45
standar_deviasi
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
result = 0
result = result + (data ke ij ndash mean ke i)2
j
hsl_stdev ke i = radicresult
jmlh_DataTrainingminus1
i
hsl_stdev
Berhenti
Gambar 45 Diagram alir proses perhitungan standar deviasi
30
4113 Proses perhitungan nilai Dmin dan Dmax
Pada proses perhitungan ini merupakan proses perhitungan untuk mencari nilai terkecil dan terbesar dari setiap faktor data Setelah mendapat nilai terkecil dan terbesar maka data dilakukan proses perhitungan Universe of Discourse Berikut merupakan diagran alir dari proses perhitungan nilai Dmin dan Dmax yang ditunjukkan pada Gambar 46
Gambar 46 Diagram alir perhitungan nilai Min dan Max
ya
ya
tidak
tidak
Min_dan_Max
Mulai
for i = 0 to jmlh_Faktor-1
besar = data ke i0
kecil = data ke i0
for j=0 to jmlh_DataTraining
data ke ij gt besar
besar = data ke ij
data ke ij lt kecil
kecil = data ke ij
j
hsl_max ke i = besar
hsl_min ke i = kecil
i
hsl_max hsl_min
Berhenti 1
1
2
2
3
4
4
5
5
3
31
412 Proses perhitungan jumlah cluster
Pada proses perhitungan jumlah cluster memiliki masukkan proses Dmin dan Dmax
dari proses perhitungan sebelumnya Pada proses ini terdapat perhitungan nilai dari selisih setiap data Pada perhitungan jumlah cluster sesuai dengan Persamaan 214 Berikut merupakan langkah ndash langkah perhitungan jumlah cluster yang ditunjukkan pada Gambar 47
jumlah_Cluster
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to (jmlh_DataTraining-1)
Berhenti
hsl_max hsl_min
selisih = 0
selisih = selisih + |data ke ij ndash data ke i (j+1)|
j
jmlh_Cluster ke i = |ℎ119904119897_119898119894119899 119896119890 119894minusℎ119904119897_119898119886119909 119896119890 119894|
119904119890119897119894119904119894ℎ
119895119898119897ℎ_119863119886119905119886119879119903119886119894119899119894119899119892minus1
i
jmlh_Cluster
Gambar 47 Diagram alir proses perhitungan jumlah cluster
32
413 Proses perhitungan pusat cluster
Pada proses perhitungan pusat cluster ini diperlukan beberapa variabel yang harus dideklarasikan terlebih dahulu yaitu nilai bobot fungsi objektif nilai iterasi awal nilai iterasi maksimum dan error terkecil Perhitungan subinterval ini menggunakan metode fuzzy C-means yang diawali dengan pencarian pusat cluster terlebih dahulu Berikut merupakan langkah ndash langkah perhitungan subinterval yang ditunjukkan pada Gambar 48 Gambar 49 Gambar 410 Gambar 411 Gambar 412
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1)
Perhitungan pusat cluster
Mulai
jmlh_Cluster
for i = 0 to jmlh_Faktor-1
Deklarasi bobot selisih_f_objektif
iter_maksimum error_min
Pembentukan Matriks partisi faktor A jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor A
for iter = iter to iter_maksimum
A
i == 0
Perhitungan pusat_cluster1 faktor A
B C D
tidak
ya
33
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2)
ya
tidak
tidak
ya
Perhitungan f_objektif faktor A
A B C D
Perhitungan selisih_f_objektif faktor A
Perbaikan matriks partisi faktor A
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster1 faktor A
Iter = iter_maksimum
iter
i == 1
Pembentukan Matriks partisi faktor B jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor B
for iter = iter to iter_maksimum
F A G E
34
tidak
tidak
ya
A E F G
Perhitungan pusat_cluster2 faktor B
Perhitungan f_objektif faktor B
Perhitungan selisih_f_objektif faktor B
Perbaikan matriks partisi faktor B
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster2 faktor B
Iter = iter_maksimum
iter
i == 2
Pembentukan Matriks partisi faktor C jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor C
I A H
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3)
ya
35
tidak
tidak
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4)
ya
A H I
for iter = iter to iter_maksimum
Perhitungan pusat_cluster3 faktor C
Perhitungan f_objektif faktor C
Perhitungan selisih_f_objektif faktor C
Perbaikan matriks partisi faktor C
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster3 faktor C
Iter = iter_maksimum
iter
i == 3
Pembentukan Matriks partisi faktor D jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor D
J A K
ya
36
tidak
ya
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5)
A K J
for iter = iter to iter_maksimum
Perhitungan pusat_cluster4 faktor D
Perhitungan f_objektif faktor D
Perhitungan selisih_f_objektif faktor D
Perbaikan matriks partisi faktor D
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster4 faktor D
Iter = iter_maksimum
iter
i
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
Berhenti
37
tidak
ya
tidak
ya
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1)
414 Proses pembentukan subinterval dan Fuzzy set
Pada proses pembentukan fuzzy set atau himpunan fuzzy pada penelitian ini dapat dilakukan setelah perhitungan subinterval selesai dilakukan Nilai subniterval merupakan masukan utama pada pembentukkan fuzzy set Pembentukan fuzzy sesuai dengan Persamaan 215 Berikut merupakan langkah ndash langkah proses pembentukan fuzzy set yang ditunjukkan pada Gambar 413 dan Gambar 414
Pembentukan subinteval dan Fuzzy set
Mulai
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
for i = 0 to jmlh_Faktor-1
Menentukan batas_subintervalMinA dan
batas_subintervalMaxA
Menentukan batas_fuzzysetMinA dan batas_fuzzysetMaxA
i == 0
i == 1
Menentukan batas_subintervalMinB dan
batas_subintervalMaxB
Menentukan batas_fuzzysetMinB dan batas_fuzzysetMaxB
A C B
38
tidak
tidak
ya
ya
415 Proses Fuzzifikasi
Pada proses fuzzifikasi ini pembentukanya sesuai derajat keanggotaan pada setiap data Pada proses ini derajat keanggotaan dihitung berdassarkan fungsi keanggotaan kurva bahu Hasil dari proses ini merupakan data yang sudah difuzzifikasikan menjadi data fuzzy Berikut langkah ndash langkah dari proses fuzzifikasi ditunjukkan pada Gambar 415 dan Gambar 416
i == 2
A B C
Menentukan batas_subintervalMinC dan batas_subintervalMaxC
Menentukan batas_fuzzysetMinC dan batas_fuzzysetMaxC
i == 3
Menentukan batas_subintervalMinD dan batas_subintervalMaxD
Menentukan batas_fuzzysetMinD dan batas_fuzzysetMaxD
i
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
Berhenti
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2)
39
tidak
ya
ya
tidak
Fuzzifikasi
Mulai
for i = 0 to jmlh_Faktor-1
Menentukan hasil_fuzzifikasiA dari faktor A
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinA batas_fuzzysetMaxA
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1)
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
DD
i == 0
i == 1
Menentukan hasil_fuzzifikasiB
dari faktor B
Menghitung derajat keanggotaan
berdasarkan batas_fuzzysetMinB
batas_fuzzysetMaxB
C A B
40
tidak
ya
ya
tidak
ya
i == 2
A B C
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinC batas_fuzzysetMaxC
Menentukan hasil_fuzzifikasiC dari faktor C
i == 3
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinD
batas_fuzzysetMaxD
Menentukan hasil_fuzzifikasiD dari faktor D
i
hasil_fuzzifikasiA hasil_fuzzifikasiB hasil_fuzzifikasiC hasil_fuzzifikasiD
Berhenti
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2)
41
tidak
ya
416 Proses pembentukan Fuzzy Logical Relationship
Setelah data melalui proses fuzzifikasi dan sudah menjadi data fuzzy maka dapat dilakukan pembentukan Fuzzy Logical Relationship (FLR) Pembentukan FLR dilakukan sesuai dengan Persamaan 216Berikut adalah langkah ndash langkah proses pembentukan Fuzzy Logical Relationship (FLR) yang ditunjukkan pada Gambar 417 Gambar 418 dan Gambar 419
Gambar 417 Diagram alir proses Pembentukan FLR
(bagian 1)
Pembentukan Fuzzy Logical Relationship
Mulai
hasil_fuzzifikasiAhasil_fuzzifikasiB hasil_fuzzifikasiChasil_fuzzifikasiD order
for i = 0 to jmlh_dataTraining
max_inc = order jmlh_dataTraining = dataTraining - order
for j = i to max_inc
for k = 0 to jmlh_Faktor-1
j == 0
FLR_kiri_training ke ijk = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D)
ke j
E A B C D
42
ya
tidak
ya
tidak
A B C E D
FLR_kiri_training ke i(j-i)k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
j = 0
k
j
FLR_kanan_training ke i = hasil_fuzzifikasiA ke (i+order)
Max_inc lt (jmlh_DataTraining-1)
i
tmp_JmlhDatatraining = tmp_JmlhDatatraining +1
max_inc = max_inc + 1 tmp_JmlhDatatraining = i
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2)
for j = 0 to tmp_JmlhDatatraining
for j = tmp_JmlhDatatraining to max_inc
for k = 0 to jmlh_Faktor-1
I H G F
43
tidak
ya
417 Proses Defuzzifikasi
Proses defuzzifikasi merupakan proses akhir dimana keluaran dari proses ini merupakan nilai hasil peramalan Data yang diperlukan pada proses defuzzifikasi adalah hasil dari proses pembentukan Fuzzy Logical Relationship (FLR) nilai threshold yang harus dideklarasikan sebelumnya jumlah data training dan jumlah data testing Dalam proses ini dilakukan perhitungan selisih pada FLR antara data testing dan data training FLR yang dihitung nilai selisihnya adalah FLR pangkat bawah yang terdapat pada ruas kiri Setelah dilakukan perhitungan selisih dan total jumlah selisih lebih kecil dari nilai threshold maka pada setiap FLR yang
I H G F
FLR_kiri_testing ke i(j-tmp_jmlhDatatraining) k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
k
j
FLR_kanan_testing ke i = hasil_fuzzifikasiA ke (i+order)
i
Max_inc lt (jmlh_DataTraining-1)
max_inc = max_inc + 1 tmp_JmlhDatatraining++
FLR_kiri_training FLR_kanan_training FLR_kiri_testing FLR_kanan_testing
Mulai
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3)
44
ya
tidak
sesuai dengan kondisi tersebut dapat dikatakan cocok atau dapat dilakukan ke tahap perhitungan selanjutnya Setelah mendapatkan FLR yang cocok maka dilakukan pengelompokkan berdasarkan FLR ruas kanan Pengelompokkan ini dihitung jumlah frekuensi yang sama sesuai dengan fuzzy set di ruas kanan Selanjutnya untuk memperoleh hasil peramalan dilakukan proses perhitungan sesuai dengan Persamaan 218 Berikut adalah langkah ndash langkah proses defuzzifikasi yang ditunjukkan pada Gambar 420 dan Gambar 421
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1)
Defuzzifikasi
Mulai
FLR_kiri FLR_kanan order dataTraining dataTesting konstanta
threshold = (jmlh_Faktor x order)+konstanta
for i = 0 to dataTesting
for j = 0 to (dataTraining-i)
Perhitungan hitung_selisih antara FLR_kiri data training dan data testing
hitung_selisih lt threshold
match ke ij = hitung_selisih
j
i
A
45
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2)
A
Menghitung jumlah total FLR_kiri yang cocok untuk setiap data testing
Mencocokan FLR_kiri yang cocok dengan FLR_kanan untuk setiap data testing
for i = 0 to dataTesting
Menghitung frekuensi setiap FLR_kanan yang cocok untuk setap data testing
for j = 0 to jumlah total FLR kiri yang cocok
peramalan = peramalan + Frekuensi setiap FLR_kanan yang cocok x pusat_cluster1
sesuai dengan value FLR_kanannya
j
hasil_peramlan ke i = peramalan jumlah total FLR kiri yang cocok
i
Hasil_permalan
Berhenti
46
42 Perhitungan Manual
Dalam perhitungan manual ini data sampel yang digunakan merupakan data time series dasarian ke-2 pada periode April 2014 sampai dengan dasarian ke-2 Juli 2014 data sampel ditunjukkan pada Tabel 41
Tabel 41 Data Sampel Perhitungan Manual
No Dasarian Curah Hujan
(A)
Suhu (B) Kelembaban (C)
Kecepatan Angin(D)
1 Dasarian 2 (April 2014) 95 2615 8248 629
2 Dasarian 3 (April 2014) 90 2612 8247 628
3 Dasarian 1 (Mei 2014) 94 2607 8247 627
4 Dasarian 2 (Mei 2014) 83 2625 8232 623
5 Dasarian 3 (Mei 2014) 85 2628 8235 623
6 Dasarian 1 (Juni 2014) 92 2609 8241 626
7 Dasarian 2 (Juni 2014) 86 2627 8235 624
8 Dasarian 3 (Juni 2014) 89 2621 8238 624
9 Dasarian 1 (Juli 2014) 93 2607 8242 626
10 Dasarian 2 (Juli 2014) 86 2626 8237 623
Sumber BMKG Kelas III Karangkates Malang
421 Perhitungan Universe of Discourse (U)
Sebelum melakukan perhitungan U maka harus dicari terlebih dahulu nilai 119863119898119894119899 119863119898119886119909 dan standar deviasi 119863119898119894119899 adalah nilai minimum atau nilai terkecil dari data sampel yang ada sedangkan 119863119898119886119909 adalah nilai maksimum atau nilai paling besar dari data sampel yang ada Untuk mencari nilai standar deviasi harus menghitung nilai mean (rata ndash rata) terlebih dahulu sesuai dengan Persamaan 211 Mean dari data curah hujan (A) dihitung dengan cara sebagai berikut
Mean = (data ke-1 + data ke-2 + data ke-3 + + data ke-10) 10
= (95 + 90 + 94 + 83 + 85 + 92 + 86 + 89 + 93 + 86) 10
= 893 10
= 893
Selanjutnya setelah diperoleh nilai mean dilanjutkan melakukan perhitungan standar deviasi sesuai dengan Persamaan 212 Standar deviasi adalah akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Untuk menghitung standar deviasi agar lebih mudah kita terlebih dahulu melakukan perhitungan nilai kuadrat dari selisih data ke-i dan mean yang ditunjukkan pada Tabel 42
47
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean
i Data ke-i Data ke-i mean (Data ke-i - mean)sup2
1 95 57 32490
2 90 07 0490
3 94 47 22090
4 83 -63 39690
5 85 -43 18490
6 92 27 7290
7 86 -33 10890
8 89 -03 0090
9 93 37 13690
10 86 -33 10890
Jumlah 1561
Setelah mendapatkan hasil nilai kuadrat dari selisih data ke-i dan mean sesuai dengan Tabel 42 maka dapat dilanjutkan melakukan perhitungan standar deviasi dengan cara sebagai berikut
Standar_deviasi = radic1
10minus1sum (119889119886119905119886 119896119890 minus 119894 minus 119898119890119886119899)10
119894=1
2
= radic1
9 times 1561
= 4165
Untuk perhitungan standar deviasi juga dilakukan pada faktor lainnya yaitu suhu (B) kelembaban (C) dan kecepatan angin (D) Hasil perhitungan 119863119898119894119899 119863119898119886119909 dan standar deviasi ditunjukkan pada Tabel 43
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi
Data D min D max Standar Deviasi
A 83 95 4165
B 2607 2628 0086
C 8232 8248 0057
D 623 629 0022
Berdasarkan hasil yang ditunjukkan Tabel 43 selanjutnya dapat dilakukan perhitungan nilai U sesuai dengan Persamaan 213 Berikut adalah perhitungan U pada data A
U = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590]
= [(83 ndash 4165) (95 ndash 4165)]
= [78835 99165]
48
Untuk perhitungan U juga dilakukan pada semua faktor yaitu data B C dan D Sehingga diperoleh nilai U yang ditunjukkan pada Tabel 44
Tabel 44 Hasil Universe of Discourse
Data U
Batas Bawah Batas Atas
A 78835 99165
B 25984 26366
C 82263 82537
D 6208 6312
422 Perhitungan jumlah cluster (k)
Pada perhitungan jumlah cluster langkah pertamanya adalah mencari nilai absolut dari selisih data hari ke-t dengan hari sebelumnya Perhitungan selisih dilakukan hingga data ke-10 Perhitungan nilai selisih dilakukan pada semua data A B C dan D Selanjutnya masing ndash masing nilai selisih dijumlah sehingga hasilnya seperti ditunjukkan pada Tabel 45
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya
No Tanggal A B C D
1 Dasarian 3 (April 2014) 5 003 001 001
2 Dasarian 1 (Mei 2014) 4 005 0 001
3 Dasarian 2 (Mei 2014) 11 018 015 004
4 Dasarian 3 (Mei 2014) 2 003 003 0
5 Dasarian 1 (Juni 2014) 7 019 006 003
6 Dasarian 2 (Juni 2014) 6 018 006 002
7 Dasarian 3 (Juni 2014) 3 006 003 0
8 Dasarian 1 (Juli 2014) 4 014 004 002
9 Dasarian 2 (Juli 2014) 7 019 005 003
Jumlah 49 105 043 016
Setelah mendapatkan nilai absolut selisih data hari ke-t dengan hari sebelumnya dapat dilanjutkan dengan menghitung jumlah cluster sesuai dengan Persamaan 214 Perhitungan jumlah cluster pada data A (k1) berdasarkan pada Tabel 43 diketahui nilai 119863119898119894119899 adalah 171 nilai 119863119898119886119909 adalah 2048 maka jumlah cluster data A dapat ditunjukkan sebagai berikut
49
1198961 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905) minus 119883(119905 minus 1)|119899
119905=1
119899 minus 1|
= |83 minus 9549
10minus1| = 2204
Apabila hasil perhitungan jumlah cluster merupakan bilangan pecahan maka hasilnya harus dibulatkan Sehingga jumlah cluster pada data A adalah 2 Perhitungan jumlah cluster juga dilakukan pada data B (k2) C (k3) dan D (k4) Berikut merupakan hasil semua perhitungan jumlah cluster yang ditunjukkan pada Tabel 46
Tabel 46 Hasil jumlah cluster data
No Cluster Jumlah Cluster
1 k1 2
2 k2 2
3 k3 3
4 k4 3
423 Perhitungan pusat cluster dan subinterval
Pada pembentukan subinterval berdasarkan pada Tabel 46 yang menunjukkan jumlah subinterval yang selanjutnya digunakan untuk menentukan pusat cluster menggunakan algoritma fuzzy C-means (FCM)
4231 Penentuan pusat cluster
a Penentuan nilai variabel
Pada penentuan subinterval diawali dengan klasterisasi menggunakan algoritma FCM pada awal proses ditentukkan beberapa variabel sebagai berikut
Banyak cluster = k1 = 2
Bobot (w) = 2
Fungsi objektif awal = 0
Iterasi awal = 1
Iterasi maksimum = 100
Error terkecil = 001 b Pembentukan matriks partisi awal (micro)
Data pada pembentukan matriks partisi awal merupakan nilai random diantara nilai 0 sampai 1 Dimensi pada matriks partisi awal dibentuk dengan dimensi jumlah data (i) x jumlah cluster (k) Dalam hal ini telah diketahui jumlah data adalah 10 dan k1 adalah 2 maka partisi dimensi matriks awal adalah 10 x 2 Hasil pembentukan matriks partisi awal ditunjukkan pada Tabel 47 dimana Cluster disimbolkan dengan C
50
Tabel 47 Matriks partisi awal pada cluster data A
c Normalisasi matriks partisi awal
Langkah pertama normalisasi matriks partisi awal adalah dengan menghitung jumlah bilangan penyusun matriks pada setiap kolom yang dapat dilihat pada Tabel 47 dijumlah berdasarkan dengan Persamaan 24 Diketahui jumlah kolom matriks sebanyak 2 sehingga diperoleh Q1 untuk penjumlahan kolom c1 Q2 untuk penjumlahan kolom c2
Q1 = 0355 + 0174 + 02 + 0387 + 0598 + 0819 + 0702 + 0719 + 0349 +
0852
= 5154
Q2 = 0170 + 0815 + 0190 + 0456 + 0526 + 0170 + 0232 + 0572 + 0102 +
0322
= 3554
Langkah selanjutnya dilakukan proses normalisasi menggunakan Persamaan 25 Dimana setiap bilangan penyusun matriks awal dibagi dengan nilai Q sesuai dengan kolomnya masing ndash masing Bilangan penyusun matriks disimbolkan dengan microik dimana i menunjukkan baris dan k menunjukkan kolom posisi bilangan tersebut pada matriks
i micro
c1 c2
1 0355 0170
2 0174 0815
3 0200 0190
4 0387 0456
5 0598 0526
6 0819 0170
7 0702 0232
8 0719 0572
9 0349 0102
10 0852 0322
51
μ11 = bilangan matriks partisi pada baris 1 kolom 1
Q1
= 0355
5154
= 0069
μ12 = bilangan matriks partisi pada baris 1 kolom 2
Q2
= 0170
3554
= 0048
Setelah melakukan perhitungan seperti diatas untuk semua bilangan matriks sehingga matriks partisi sudah ternormalisasi seperti yang ditunjukkan pada Tabel 48
Tabel 48 Derajat keanggotaan matriks partisi data A
i micro
C1 C2
1 0069 0048
2 0034 0229
3 0039 0054
4 0075 0128
5 0116 0148
6 0159 0048
7 0136 0065
8 0140 0161
9 0068 0029
10 0165 0090
d Perhitungan pusat cluster (V)
Pada perhitungan pusat cluster (V) berdasarkan Persamaan 26 Dimana setiap bilangan penyusun matriks partisi (micro) dipangkatkan dengan w dimana variabel w yang sudah dideklarisakan terlebih dahulu dengan nilai sama dengan 2 dan dikalikan dengan bilangan penyusun matriks X yang merupakan matriks berisi data yang ada pada Tabel 41 Selanjutnya hasil perkalian tersebut dijumlah dan dibagi dengan jumlah hasil kuadrat dari bilangan penyusun matriks partisi Hasil perhitungan ditunjukkan pada Tabel 49
52
Tabel 49 Perhitungan pusat cluster data A
Berdasarkan jumlah cluster dari data A yaitu 2 maka terdapat 2 pusat cluster (V) yaitu V1 V2 Perhitungan nilai V adalah sebagai berikut
V1 = sum ((μic1)2 times Xi)10
i=1
sum (μic1)210i=1
= 10730216
0121620
= 8822718207
V2 = sum ((μic2)2 times Xi)10
i=1
sum (μic2)210i=1
= 12111287
0137572
= 8803592572
Jadi berdasarkan perhitungan diatas pusat cluster untuk data A pada iterasi ke-1 adalah 8822718207 8803592572
e Perhitungan fungsi objektif (P)
Pada perhitungan P menggunakan Persamaan 27 dimana setiap baris pada data matriks X dikurangi pusat cluster (V) selanjutnya dikuadratkan Hasilnya
i X microsup2 microsup2 x X
C1 C2 C1 C2
1 95 0004731 0002292 0449450 0217718
2 90 0001137 0052633 0102304 4736927
3 94 0001512 0002864 0142117 0269234
4 83 0005630 0016427 0467258 1363472
5 85 0013448 0021907 1143107 1862112
6 92 0025233 0002291 2321422 0210787
7 86 0018542 0004243 1594602 0364916
8 89 0019487 0025916 1734356 2306543
9 93 0004590 0000816 0426841 0075870
10 86 0027311 0008183 2348759 0703706
Jumlah 0121620 0137572 10730216 12111287
53
kemudian dikalikan dengan micro yang sudah dipangkatkan dengan bobot (w) seperti yang telah ditunjukkan pada Tabel 49 Selanjutnya hasil tersebut dijumlah per kolom seperti yang ditunjukkan pada Tabel 410
Tabel 410 Fungsi objektif data A
i X (X-V)sup2 (X-V)sup2 x microsup2
C1 C2 C1 C2
1 95 458711 484983 02170 01111
2 90 31429 38576 00036 02030
3 94 333254 355702 00504 01019
4 83 273234 253605 01538 04166
5 85 104147 92168 01401 02019
6 92 142342 157139 03592 00360
7 86 49603 41450 00920 00176
8 89 05972 09294 00116 00241
9 93 227798 246420 01046 00201
10 86 49603 41450 01355 00339
Jumlah 1267661573 1166282827
Fungsi Objektif (P) 24339444
Perhitungan nilai fungsi objektif dilakukan seperti Persamaan 27 Nilai fungsi objektif diperoleh dengan cara sebagai berikut P = sum sum ([(Xi minus Vc)2](μik)2)3
c=110i=1
P = 1267661573 + 1166282827
= 24339444
f Perbaikan matriks partisi
Pada langkah ini perbaikan matriks partisi dilakukan berdasarkan Persamaan 28 Data matriks X untuk setiap barisnya dikurangi pusat cluster lalu dikuadratkan seperti yang ditunjukkan pada Tabel 410 Selanjutnya hasilnya dipangkatkan dengan -11 karena w-1 = 1 Hasil pangkat -1 terhadap (X-V)2 ditunjukkan pada Tabel 411
54
Tabel 411 Perbaikan matriks partisi
i ((X-V)sup2)^-1
Jumlah C1 C2
1 0022 0021 0042
2 0318 0259 0577
3 0030 0028 0058
4 0037 0039 0076
5 0096 0108 0205
6 0070 0064 0134
7 0202 0241 0443
8 1674 1076 2750
9 0044 0041 0084
10 0202 0241 0443
Berdasarkan tabel diatas bilangan penyusun matriks partisi yang baru atau yang telah diperbaiki diperoleh dari hasil pembagian data terhadap jumlah per barisnya
12058311 = 0022
0042= 0514
12058312 = 0021
0042= 0486
Pada perhitungan nilai matriks yang sudah diperbaiki dilakukan pada semua elemen matriks sehingga hasil perbaikan matriks seperti yang ditunjukkan pada Tabel 412
Tabel 412 Hasil perbaikan matriks partisi
Setelah mendapatkan hasil perbaikan matriks partisi kita lakukan pengecekan selama iterasi kurang dari iterasi maksimum (maxIter) atau selisih antara fungsi objektif iterasi saat ini dengan iterasi sebelumnya bernilai lebih dari nilai error terkecil yaitu 001 maka proses berlanjut dengan kembali melakukan perhitungan pusat cluster hingga perbaikan matriks partisi Hasil
i micro
C1 C2
1 0514 0486
2 0551 0449
3 0516 0484
4 0481 0519
5 0469 0531
6 0525 0475
7 0455 0545
8 0609 0391
9 0520 0480
10 0455 0545
55
perhitungan pusat cluster dari data A B C dan D setelah dilakukan proses tiga kali iterasi dan diurutkan mulai dari yang terkecil sampai yang terbesar ditunjukkan pada Tabel 413
Tabel 413 Hasil pusat cluster
4232 Perhitungan batas subinterval
Perhitungan batas subinterval dilakukan dengan mencari nilai tengah (Median) dari setiap pusat cluster Berikut merupakan contoh perhitungan batas subinterval pada data A
a Interval 1 Batas bawah = 78835 (Batas bawah Universe of Discourse pada data A) Batas atas = 89347 (Median 88303 dan 90390)
b Interval 2 Batas bawah = 89347 (Median 88303 dan 90390) Batas atas = 99165 (Batas atas Universe of Discourse pada data A)
Seperti perhitungan diatas juga dilakukan pada data suhu (B) kelembaban (C) dan kecepatan angin (D) Dalam hal ini jumlah subinterval setiap atribut berbeda ndash beda sesuai dengan jumlah cluster yang sebelumnya ditunjukkan pada Tabel 46 Berikut merupakan batas subinterval masing ndash masing atribut yang ditunjukkan pada Tabel 414
Tabel 414 Batas subinterval masing ndash masing atribut data
Interval (micro)
A B C D
1
78835 25984 751708 6208
sd sd sd sd
89347 26181 823863 6249
2
89347 26181 823863 6249
sd sd sd sd
99165 26366 82411 6256
3
82411 6256
- - sd sd
82537 6312
Cluster A B C D
1 88303 26165 82391 62497
2 90390 26197 82408 62499
3 - - 82415 62613
56
424 Pembentukan Fuzzy Set
Pembentukan fuzzy set berdasarkan pada derajat keanggotaan dari subinterval (micro) fuzzy set dari data A ditentukan dengan derajat keanggotaan sebagai berikut
A1 = 1micro1 + 05micro2
A2 = 05micro1 + 1micro2
Pada derajat keanggotaan data A diatas simbol ldquo+rdquo menunjukkan operator himpunan gabungan Berdasarkan subinterval pada Tabel 414 nilai batas fuzzy set dari data atribut A dapat ditentukan dengan cara sebagai berikut
A1 = 78835 sd 94256 (Batas bawah interval 1 sd titik tengah interval 2)
A2 = 84091 sd 99165 (Titik tengah interval 1 sd batas atas interval 2)
Setelah diketahui batas masing ndash masing fuzzy set grafik fungsi keanggotaan fuzzy set data A yang direpresentasikan dalam kurva bahu yang ditunjukkan pada Gambar 422 Dengan cara yang sama juga ditentukan pula fuzzy set dari data attribut B C dan D
425 Fuzzifikasi
Pada langkah fuzzifikasi dilakukan dengan mencari derajat keanggotaan yang memiliki nilai paling besar (maksimum) dari masing ndash masing data terhadap fuzzy set yang sudah terbentuk Derajat keanggotaan dicari berdasarkan fungsi keanggotaan kurva bentuk bahu Berikut ini adalah perhitungan derajat keanggotaan dari data attribut A
Data aktual curah hujan (A) pada April 2014 dasarian ke-3 = 90
1198601 = 942558 ndash 90
942558minus840911= 041868427
Gambar 422 Grafik fuzzy set data A
57
1198602 = 90minus840911
942558minus840911= 058131636
Derajat keanggotaan paling besar berada pada A2 sehingga data attribut A pada April 2014 dasarian ke-3 difuzzifikasikan ke fuzzy set A2 Perhitungan yang sama dilakukan pada seluruh data attribut A sehingga didapat derajat keanggotaan dan hasil fuzzifikasi dari data A ditunjukkan pada Tabel 415
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A
i Data A1 A2 Fuzzyfikasi
1 95 0 1 A2
2 90 041868363 058131636 A2
3 94 002516357 097483642 A2
4 83 1 0 A1
5 85 09105837 008941629 A1
6 92 02219236 077807639 A2
7 86 08122036 018779631 A1
8 89 05170636 048293635 A1
9 93 01235436 087645641 A2
10 86 08122037 018779631 A1
Perhitungan yang sama juga dilakukan pada semua attribut yaitu attribut B C dan D Sehingga dapat diperoleh hasil fuzzifikasi sesuai derajat keanggotaan dengan nilai paling besar Berikut adalah hasil fuzzifikasi untuk semua attribut yang dapat dilihat pada Tabel 416
Tabel 416 Hasil fuzzifikasi semua data attribut
No Tanggal A B C D
1 Dasarian 2 (April 2014) A2 B1 C3 D3
2 Dasarian 3 (April 2014) A2 B1 C3 D3
3 Dasarian 1 (Mei 2014) A2 B1 C3 D3
4 Dasarian 2 (Mei 2014) A1 B2 C1 D1
5 Dasarian 3 (Mei 2014) A1 B2 C1 D1
6 Dasarian 1 (Juni 2014) A2 B1 C2 D2
7 Dasarian 2 (Juni 2014) A1 B2 C1 D1
8 Dasarian 3 (Juni 2014) A1 B2 C2 D1
9 Dasarian 1 (Juli 2014) A2 B1 C2 D2
10 Dasarian 2 (Juli 2014) A1 B2 C2 D1
58
426 Pembentukan Fuzzy Logical Relationship (FLR)
Pada tahap pembentukan FLR dengan berdasarkan nilai order yang sudah ditentukan Pada manualisasi ini berdasarkan dari Tabel 416 di misalkan nilai order kita deklarasikan dengan nilai 3 sehingga dapat menghasilkan 7 FLR Hasil pembentukan FLR Data training dapat ditunjukkan pada Tabel 417 Hasil pembentukan FLR Data testing dapat ditunjukkan pada Tabel 418
Tabel 417 Hasil pembentukan FLR data training
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(32)B(31)C(33)D(33)) rarr A1
2 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(31)B(32)C(31)D(31)) rarr A1
3 (A(12)B(11)C(13)D(13)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(31)D(31)) rarr A2
4 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(21)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
5 (A(11)B(12)C(11)D(11)) (A(22)B(21)C(22)D(22)) (A(31)B(32)C(31)D(31)) rarr A1
Tabel 418 Hasil pembentukan FLR data testing
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(12)D(12)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(32)D(31)) rarr A2
2 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(22)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
427 Defuzzifikasi
Pada tahap ini misalkan jumlah data yang digunakan untuk data uji atau data testing adalah dua yaitu yang pertama data periode ke-9 dan yang kedua data periode ke-10 Sehingga yang digunakan data latih atau data training adalah data pada periode ke-1 sampai data periode ke-8 Pada data testing yang pertama melibatkan FLR ke-1 sampai FLR ke-5 untuk disesuaikan dengan FLR ke-6 yang berdasarkan pada Tabel 417 Pada data testing yang kedua melibatkan FLR ke-1 sampai FLR ke-6 untuk disesuaikan dengan FLR ke-7 yang berdasarkan pada Tabel 417 Selanjutnya setiap ruas kiri FLR data testing dibandingkan dengan FLR data training yaitu pada bilang pangkat bawah fuzzy set dibandingkan sesuai dengan posisinya dan dihitung selisihnya Hasil dari perhitungan selisih tersebut dijumlahkan dan apabila jumlah selisihnya kurang dari threshold maka FLR tersebut dikatakan cocok Threshold merupakan dari hasil mengalikan jumlah order dengan jumlah faktor kemudian dijumlahkan dengan dengan sebuah konstanta Contoh perhitungan selisih nilai ruas kiri FLR pada data testing pertama adalah sebagai berikut
59
Data testing = (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(32) B(31) C(33) D(33)) rarr A1
Data training =
1 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
2 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
3 (A(12) B(11) C(13) D(13)) (A(21) B(22) C(21) D(21)) (A(31) B(32) C(31) D(31)) rarr A2
4 (A(11) B(12) C(11) D(11)) (A(21) B(22) C(21) D(21)) (A(32) B(31) C(32) D(32)) rarr A1
5 (A(11) B(12) C(11) D(11)) (A(22) B(21) C(22) D(22)) (A(31) B(32) C(31) D(31)) rarr A1
Selisih data ke- 1 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|2-1|+|1-2|+|3-2|+|3-1| = 13
Selisih data ke- 2 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Selisih data ke- 3 = |2-2|+|1-1|+|3-2|+|3-2|+|1-1|+|2-2|+|1-1|+|1-1|+|1-1|+|2-2|+|1-2|+|1-1| = 3
Selisih data ke- 4 = |1-2|+|2-1|+|1-2|+|1-2|+|1-1|+|2-2|+|1-1|+|1-1|+|2-1|+|1-2|+|2-2|+|2-1| = 7
Selisih data ke- 5 = |1-2|+|2-1|+|1-2|+|1-2|+|2-1|+|1-2|+|2-1|+|2-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Pada perhitungan selisih nilai ruas kiri FLR pada data testing juga dilakukan pada semua data testing yang sudah dideklarasikan sebelumnya Dalam hal ini agar dapat menemukan FLR yang cocok dengan data testing Tahap selanjutnya adalah proses defuzzifikasi menggunakan threshold yang dimisalkan 18 sehingga FLR yang memiliki kecocokan dengan data testing pertama adalah semua FLR dari ke-1 sampai ke-5 karena memiliki hasil selisih kurang dari 18 Semua FLR yang cocok ditampung dikelompokkan berdasarkan FLR pada ruas kanan yang sama kemudian dhitung frekuensinya Berikut adalah frekuensi dan pusat cluster dari ruas kanan FLR yang cocok dengan data testing pertama dan kedua ditunjukkan pada Tabel 419
Tabel 419 Frekuensi FLR yang cocok dengan data testing
Data testing 1 Data testing 2
Ruas kanan A1 A2 A1 A2
Pusat Cluster 88303 90390 88303 90390
Frekuensi 4 1 4 2
Berdasarkan pada Tabel 419 dilakukan defuzzifikasi sesuai dengan Persamaan 218 sebagai berikut
119863119886119905119886 119905119890119904119905119894119899119892 1 = (88303times4)+(90390times1)
5= 887204
60
119863119886119905119886 119905119890119904119905119894119899119892 2 = (88303times4)+(90390times2)
6= 889987
Jadi berdasarkan perhitungan diatas diperoleh hasil peramalan curah hujan pada pada April 2014 dasarian ke-3 adalah 1384601636 sedangkan pada tanggal 10012016 adalah 2769203272 Perbandingan data curah hujan aktual dan hasil peramalan dengan metode High Order Fuzzy Time Series Multi Factors dapat dilihat pada Tabel 420
Tabel 420 Perbandingan data aktual dan hasil peramalan
No Data Aktual Hasil Peramalan
1 93 887204
2 86 889987
Dari hasil peramalan yang ditunjukkan pada Tabel 420 dapat dilakukan perhitungan kesalahan peramalan menggunakan metode Mean Square Error (MSE) seperti Persamaan 219
119872119878119864 = ((93minus887206)2+(86minus889989)2)
2
= 136536
43 Perancangan antarmuka
Perancangan antarmuka merupakan perancangan dari tampilan antarmuka atau interface yang nantinya akan diterapkan pada tahapan implementasi Pada perancangan antarmuka ini terdapat lima halaman utama dan juga terdapat dalam menu berupa button yaitu halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
431 Halaman input
Pada halaman input terdapat inputan data dengan nama button Browse Data pada inputan data ini pengguna diharuskan memasukkan inputan file data dalam bentuk ekstensi xls serta direktori lokasi file yang di inputkan akan ditampilkan pada textfield dan juga terdapat label yang menampilkan jumlah banyaknya data yang terdapat pada file yang telah di inputkan Selanjutnya juga terdata inputan textfield data training data testing order dan nilai konstanta Pada halaman input ini juga terdapat button fuzzification yang berfungsi untuk melakukan proses clustering fuzzifikasi dan FLR Selanjutnya pada button forecasting berfungsi untuk melakukan peramalan atau defuzzifikasi dari hasil proses fuzzifikasi serta menghitung nilai error dari hasil peramalan Berikut
61
merupakan rancangan tampilan antarmuka dari halaman input yang ditunjukkan pada Gambar 423
432 Halaman tampil data
Pada halaman tampil data terdapat tabel yang menampilkan isi data dari xls yang sudah dimasukkan terlebih dahulu pada halaman input Tabel tampil data akan menampilkan tanggal curah hujan kelembaban suhu dan kecepatan angin Berikut merupakan tampilan rancangan halaman tampil data yang ditunjukkan pada Gambar 424
Gambar 423 Rancangan antarmuka halaman input
Gambar 424 Rancangan antarmuka halaman tampil data
62
433 Halaman proses
Pada halaman proses akan menampilkan hasil clustering fuzzifikasi dan fuzzy logical relationship Pada tampilan halaman clustering akan menampilkan Universe of Discourse curah hujan suhu kelembaban dan kecepatan angin Selanjutnya tampilan dibawahnya akan menampilkan jumlah cluster dari setiap faktor yaitu jumlah cluster curah hujan suhu kelembaban dan kecepatan angin Berikut merupakan tampilan perancangan halaman proses clustering yang ditunjukkan Gambar 425
Selanjutnya pada tampilan proses fuzzifikasi akan menampilkan tabel hasil fuzzifikasi dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzifikasi yang ditunjukkan pada Gambar 426
Gambar 425 Rancangan antarmuka halaman proses clustering
Gambar 426 Rancangan antarmuka proses fuzzifikasi
63
Pada tampilan proses fuzzy logical relationship (FLR) akan menampilkan textarea berisi hasil proses FLR dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzy logical relationship yang ditunjukkan pada Gambar 427
434 Halaman hasil
Pada halaman hasil peramalan akan menampilkan tabel yang berisi hasil peramalan curah hujan dan data curah hujan yang sebenarnya Serta terdapat text link yang akan menampilkan grafik perbandingan data hasil peramalan dan data yang sebenarnya Berikut adalah tampilan rancangan halaman hasil yang ditunjukkan pada Gambar 428
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship
Gambar 428 Rancangan antarmuka halaman hasil peramalan
64
435 Halaman perhitungan error
Pada halaman perhitungan error akan menampilkan nilai dari hasil perhitungan Mean Square Error (MSE) pada textfield Berikut adalah tampilan rancangan halaman perhitungan error yang ditunjukkan pada Gambar 429
44 Perancangan pengujian
Pada penelitian ini akan dilakukan empat pengujian yaitu pengujian terhadap nilai order nilai threshold pengujian terhadap jumlah data training untuk mengetahui pengaruhnya terhadap nilai Mean Square Error (MSE) dan pengujian validasi sistem untuk mengetahui kestabilan hasil implementasi
441 Perancangan pengaruh order terhadap nilai MSE
Order merupakan jumlah urutan data yang digunakan dalam pembentukkan Fuzzy Logical Relationship (FLR) Pada pengujian ini dilakukan percobaan dengan order yang berbeda ndash beda Pengujian ini bertujuan untuk mengetahui pengaruh order terhadap hasil peramalan Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Pada setiap pengujian yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan order yang berbeda Berikut adalah perancangan pengujian order terhadap nilai MSE ditunjukkan pada Tabel 421
Tabel 421 Rancangan pengujian order terhadap nilai MSE
No Order Threshold MSE
1
Gambar 429 Rancangan antarmuka halaman perhitungan error
65
442 Perancangan pengaruh threshold terhadap nilai MSE
Nilai threshold bergantung jumlah order karena untuk nilai threshold merupakan dari hasil mengalikan jumlah faktor yang mempengaruhi dengan order selanjutnya dijumlah dengan sebuah konstanta Pada pengujian ini dilakukan percobaan dengan konstanta yang berbeda ndash beda sehingga menghasilkan threshold yang berbeda pula Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan konstanta dan threshold yang berbeda Berikut merupakan rancangan pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 422
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1
443 Perancangan pengaruh jumlah data training terhadap nilai MSE
Data training sangat berperan penting dalam proses defuzzifikasi sehingga pada penelitian ini dilakukan pengujian pengaruh jumlah data training terhadap tingkat kesalahan dari hasil peramalan Pada pengujian ini dilakukan percobaan dengan jumlah data training yang berbeda ndash beda Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan dilakukan perhitungan nilai MSE untuk mengetahui tingkat kesalahan dari hasil peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors dengan jumlah data training yang berbeda ndash beda Sehingga dari hasil pengujian ini dapat diketahui pengaruh dari jumlah data training Berikut merupakan rancangan pengujian pengaruh jumlah data training yang ditunjukkan pada Tabel 423
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1
444 Perancangan validasi sistem
Pada pengujian validasi sistem akan melakukan pengujian dengan menggunakan order threshold terbaik seperti yang telah dilakukan pada
66
pengujian ndash pengujian sebelumnya yang menghasilkan hasil error MSE terendah Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Berikut merupakan rancangan pengujian validasi sistem yang ditunjukkan pada Tabel 424
Tabel 424 Rancangan pengujian validasi sistem
Percobaan ke- MSE
1
67
BAB 5 IMPLEMENTASI
Pada bab ini berisi pembahasan hasil implementasi metode High Order Fuzzy Time Series Multi Factors yang sesuai dengan bab sebelumnya yaitu perancangan Bab ini terdiri dari spesifikasi sistem implementasi algoritma dan implementasi antarmuka
51 Spesifikasi Sistem
Pada spesifikasi sistem ini dibagi mejadi dua yaitu spesifikasi perangkat keras dan spesifikasi perangkat lunak
511 Spesifikasi Perangkat Keras
Spesifikasi perangkat keras merupakan perangkat keras yang digunakan pada implementasi penelitian ini Perangkat keras yang digunakan adalah laptop dengan spesifikasi sesuai dengan pada Tabel 51 berikut
Tabel 51 Spesifikasi Perangkat Keras
Komponen Spesifikasi
Processor Intelcopy Core i3-3217U 180 GHz
Memori (RAM) 8 GB RAM
Harddisk 500 GB RAM
512 Spesifikasi Perangkat Lunak
Spesifikasi perangkat lunak merupakan perangkat lunak yang digunakan pada implementasi penelitian ini Perangkat lunak yang digunakan pada implementasi penelitian sesuai dengan yang ditunjukkan pada Tabel 52 berikut
Tabel 52 Spesifikasi Perangkat Lunak
Sistem Operasi Microsoft Windows 7 (64 bit)
Bahasa Pemrograman Java
Tools Pemrograman Netbeans 81
Data Microsoft Excel 2013
52 Implementasi Algoritma
Pada implementasi algoritma ini membahas mengenai hasil implementasi algoritma metode High Order Fuzzy Time Series Multi Factors yang mengacu pada bab sebelumnya yaitu perancangan Dalam penelitian ini implementasi algoritma menggunakan bahasa pemrograman java berbasis desktop Implementasi algoritma terdiri dari beberapa method sesuai dengan langkah ndash langkah pada algoritma metode High Order Fuzzy Time Series Multi Factors
68
521 Implementasi Proses Universe of Discourse
Pada implementasi Universe of Discourse seperti yang ditunjukkan Kode Program 51 dimana pada source code method Universe_of_Discourse baris 3 - 5 terdapat pemanggilan method mean standar_deviasi dan Min_dan_Max Dimana pemanggilan method tersebut dibutuhkan untuk melakukan proses perhitungan selanjutnya yaitu untuk menghitung batas bawah dan batas atas dari Univers of Discourse Baris 7-10 untuk menghitung hasil Universe of Discourse Berikut merupakan source code dari proses Universe of Discourse yang ditunjukkan pada Kode Program 51
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
private void Universe_of_Discourse()
mean()
standar_deviasi()
Min_dan_Max()
hsl_uMin = new double[jmlh_Faktor]
hsl_uMax = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
hsl_uMin[i] = hsl_min[i] - hsl_stdev[i]
hsl_uMax[i] = hsl_max[i] + hsl_stdev[i]
Kode Program 51 Implementasi proses Universe of Discourse
5211 Implementasi proses mean
Pada implementasi proses mean merupakan proses perhitungan nilai rata ndash rata dari setiap faktor yang nantinya hasilnya diperlukan untuk proses perhitungan standar deviasi Berikut merupakan source code dari proses mean yang ditunjukkan pada Kode Program 52 Perhitungan utama proses mean terdapat pada baris 3 ndash 8
Baris Kode
1 2 3 4 5 6 7 8 9
private void mean()
hsl_mean = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double tmp_jmlh = 0
for (int j = 0 j lt jmlh_DataTraining j++)
tmp_jmlh = tmp_jmlh + data[i][j]
hsl_mean[i] = (tmp_jmlh jmlh_DataTraining)
Kode Program 52 Implementasi proses mean
5212 Implementasi proses standar deviasi
Pada implementasi proses perhitungan standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Standar deviasi dapat dilakukan perhitungan setelah mendapat nilai hasil dari perhitungan mean Berikut merupakan source code dari implementasi proses standar deviasi yang ditunjukkan pada Kode Program 53 Perhitungan utama proses standar deviasi terdapat pada baris 3 ndash 9
69
Baris Kode
1 2 3 4 5 6 7 8 9 10 11
private void standar_deviasi()
hsl_stdev = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double result = 0
for (int j = 0 j lt jmlh_DataTraining j++)
result = result + (Mathpow((data[i][j] ndash
hsl_mean[i]) 2))
hsl_stdev[i]=Mathsqrt(result(jmlh_DataTraining-
1))
Kode Program 53 Implementasi proses standar deviasi
5213 Implementasi proses Dmin dan Dmax
Pada implementasi proses Dmin dan Dmax merukan untuk mencari nilai minimum dan nilai maksimum dari data sampel untuk setiap faktor Berikut merupakan source code dari implementasi dari proses Dmin dan Dmax yang ditunjukkan pada Kode Program 54 Pada baris 8 ndash 10 merupakan bagian dari proses untuk untuk menentukan nilai data terbesar Selanjutnya pada baris 11 ndash 13 untuk menentukan nilai data terkecil
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
19
private void Min_dan_Max()
hsl_max = new double[jmlh_Faktor]
hsl_min = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double besar = data[i][0]
double kecil = data[i][0]
for (int j = 0 j lt jmlh_DataTraining j++)
if (data[i][j] gt besar)
besar = data[i][j]
if (data[i][j] lt kecil)
kecil = data[i][j]
hsl_max[i] = besar
hsl_min[i] = kecil
Kode Program 54 Implementasi proses Dmin dan Dmax
522 Implementasi Proses Jumlah Cluster
Pada implementasi proses jumlah cluster merupakan proses perhitungan jumlah cluster dari setiap faktor Implementasi ini dapat dilakukan apabila sudah mendapatkan hasil output dari method Min_dan_Max() sudah didapatkan Berikut merupakan source code dari implementasi proses jumlah cluster yang ditunjukkan pada Kode Program 55 Pada baris 3 ndash 7 untuk digunakan untuk menghitung selisih data sampel setiap baris dari semua faktor pada data sampel ke t dengan t+1 Selanjutnya pada baris 9 ndash 10 untuk menghitung jumlah cluster dari setiap faktor
70
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
private void jumlah_Cluster()
jmlh_Cluster = new int[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double selisih = 0
for (int j = 0 j lt (jmlh_DataTraining - 1) j++)
selisih = selisih + (Mathabs((data[i][j]
- data[i][(j + 1)])))
jmlh_Cluster[i] = (int) Mathround((Mathabs(
hsl_min[i]-hsl_max[i]))(selisih(jmlh_DataTraining
-1)))
Kode Program 55 Implementasi proses jumlah cluster
523 Implementasi Proses Pusat Cluster
Implementasi proses perhitungan pusat cluster ini menggunakan metode fuzzy C-means untuk mendapatkan pusat cluster yang nantinya digunkan sebagai subinterval Implementasi ini memerlukan hasil dari proses method jumlah_Cluster() agar dapat melakukan perhitungan subinterval Berikut merupakan source code dari implementasi proses subinterval yang ditunjukkan pada Kode Program 56 Pada Kode Program 56 hanya menampilkan source code pembentukan subinterval pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 2 ndash 3 merupakan deklarasi variabel bobot iterasi maksimum selisih fungsi objektif awal dan error minimum Pada baris 8 ndash 20 merupakan proses pembentukan matriks partisi dengan nilai random 0 sampai 1 Pada baris 22 ndash 26 merupakan proses normalisasi matriks partisi yang telah terbentuk Pada baris 28 ndash 63 merupakan proses untuk menentukan pusat cluster Pada baris 65 ndash 86 merupakan proses perhitungan fungsi objektif dari iterasi Pada baris 88 ndash 90 merupakan proses perhitungan selisih fungsi objektif Pada baris 92 ndash 108 adalah proses perbaikan matriks partisi Pada baris 110 ndash 115 adalah proses hasil perbaikan matriks partisi Pada baris 116 - 133 adalah proses dengan pengkondisian apakah selisih fungsi objektif lebih kecil dari error minimum serta apabila memenuhi kondisi maka dilanjutkan ke proses pengurutan pusat cluster secara ascending dari hasil iterasi terakhir dan proses pengkondisian iterasi berhenti
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void pusat_cluster()
int bobot = 2int iter_maksimum = 100
double selisih_f_objektif = 0double error_min = 001
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
Pembentukkan matriks partisi
tmp_Matriks1=new
double[jmlh_Cluster[i]][jmlh_DataTraining]
q1 = new double[jmlh_Cluster[i]]
double jmlh_q1
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_q1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
71
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
double random = ThreadLocalRandomcurrent()
nextDouble(01 1)
tmp_Matriks1[j][k] = random
jmlh_q1 = jmlh_q1 + random
q1[j] = jmlh_q1
normalisasi matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k] q1[j]
Perhitungan pusat cluster
for (int iter = 0 iter lt iter_maksimum iter++)
selisih_f_objektif = 0
jumA1 = new double[iter_maksimum][jmlh_Cluster[i]]
jumA2 = new double[iter_maksimum][jmlh_Cluster[i]]
miu_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
XV_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
pusat_cluster1 = new double[jmlh_Cluster[i]]
double hitung_jum1
double hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(tmp_Matriks1
[j][k]bobot)
miu_Matriks1[j][k] = tmp_Matriks1[j][k]
hitung_jum1 = hitung_jum1 + tmp_Matriks1
[j][k]
jumA1[iter][j] = hitung_jum1
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum2 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
data[i][k]
hitung_jum2 = hitung_jum2 +
tmp_Matriks1[j][k]
jumA2[iter][j] = hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
pusat_cluster1[j] = jumA2[iter][j]
jumA1[iter][j]
perhitungan fungsi objektif
jumA3 = new double[iter_maksimum][jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
double hitung_jum3 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow((data[i][k]
ndash pusat_cluster1[j])
bobot)
XV_Matriks1[j][k] = tmp_Matriks1[j][k]
tmp_Matriks1[j][k] = XV_Matriks1[j][k]
miu_Matriks1[j][k]
hitung_jum3 = hitung_jum3 +
tmp_Matriks1[j][k]
jumA3[iter][j] = hitung_jum3
72
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
double jmlh_f_objektif = 0
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_f_objektif = jmlh_f_objektif
+jumA3[iter][j]
if (iter lt (iter_maksimum - 1))
f_objektif1[iter + 1] = jmlh_f_objektif
perhitungan selisih fungsi objektif
selisih_f_objektif = f_objektif1[iter + 1]
-f_objektif1[iter]
perbaikan matriks partisi
int hitung = bobot - 1int pangkat = -1 hitung
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(XV_Matriks1
[j][k] pangkat)
jumA4 = new
double[iter_maksimum][jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
double hitung_jum4 = 0
for (int k = 0 k lt jmlh_Cluster[i] k++)
hitung_jum4 = hitung_jum4 +
tmp_Matriks1[k][j]
jumA4[iter][j] = hitung_jum4
hasil perbaikan matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
jumA4[iter][k]
if (selisih_f_objektif lt error_min)
pengurutan ascending pusat cluster
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 kltjmlh_Cluster[i]k++)
if (k lt (jmlh_Cluster[i] - 1))
if (pusat_cluster1[k] gt
pusat_cluster1[k + 1])
double tmp =
pusat_cluster1[k]
pusat_cluster1[k]=
pusat_cluster1[k+1]
pusat_cluster1[k+1] = tmp
iter = iter_maksimum
Kode Program 56 Implementasi proses pusat cluster
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set
Pada implementasi proses pembentukan suinterval dan fuzzy set memiliki dua proses yaitu proses menentukan batas subinterval minumum serta maksimum dan proses menentukan batas fuzzy set minimum serta maksimum
73
Proses pembentukan fuzzy dapat menjalankan prosesnya setelah method subinterval() telah diakses Berikut merupakan source code proses pembentukan fuzzy set yang ditunjukkan pada Kode Program 57 Pada Kode Program 57 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 6 ndash 29 merupakan proses pembentukan batas minimum dan batas maksimum subinterval Pada baris 31 ndash 54 merupakan pembentukan batas minimum dan batas maksimum fuzzy set
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
private void subinterval_dan_fuzzy_set()
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
batas subinterval
batas_subintervalMinA = new double[jmlh_Cluster[i]]
batas_subintervalMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_subintervalMinA[j] = hsl_uMin[i]
batas_subintervalMaxA[j]=(pusat_cluster1[j]
+pusat_cluster1[j+
1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1] +pusat_cluster1
[j])2
batas_subintervalMaxA[j]=
hsl_uMax[i]
else if ((0 lt j) ampamp (j lt (jmlh_Cluster[i] -
1)))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1]+
pusat_cluster1[j])2
batas_subintervalMaxA[j]=
(pusat_cluster1[j]+
pusat_cluster1[j+1)2
batas fuzzy set
batas_fuzzysetMinA = new double[jmlh_Cluster[i]]
batas_fuzzysetMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_fuzzysetMinA[j]=
batas_subintervalMinA[j]
batas_fuzzysetMaxA[j]=
(batas_subintervalMinA[j+1]
+batas_subintervalMaxA[j + 1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]
+batas_subintervalMaxA[j - 1])2
batas_fuzzysetMaxA[j] =
batas_subintervalMaxA[j]
else if ((0 lt j) ampamp (jlt(jmlh_Cluster[i]-1)))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]+
batas_subintervalMaxA[j-1])2
batas_fuzzysetMaxA[j]=
74
51
52
53
54
55
56
(batas_subintervalMinA[j+1]+
batas_subintervalMaxA[j + 1])2
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set
525 Implementasi proses fuzzifikasi
Pada Implementasi proses fuzzifikasi memiliki dua proses utama yaitu menentukan derajat keanggotaan dan proses fuzzifikasi Dalam proses ini method fuzzy_set() harus dieksekusi terlebih dahulu karena implementasi proses ini memerlukan output dari method tersebut Berikut merupakan source code fuzzifikasi ditunjukkan pada Kode Program 58 Pada Kode Program 58 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 3 ndash 81 merupakan proses perhitungan derajat keanggotaan Pada baris 83 ndash 94 adalah proses penentuan fuzzifikasi
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
private void fuzzifikasi()
if (i == 0)
hitung_fuzzifikasiA = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
if(j == 0)
if((data[i][k]gtbatas_fuzzysetMinA[j])ampamp
(data[i][k]lt batas_fuzzysetMinA[j + 1]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA[j + 1])
ampamp (data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j] - data[i][k])
(batas_fuzzysetMaxA[j] ndash
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j]) ampamp
(data[i][k] lt batas_fuzzysetMinA[j + 1])
ampamp(data[i][k] gt batas_fuzzysetMinA[j+1])
ampamp(data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
else if (j == (jmlh_Cluster[i] - 1))
if((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
(batas_fuzzysetMaxA[(jmlh_Cluster[i]ndash
2)]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
if((data[i][k] gt batas_fuzzysetMaxA
75
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
[(jmlh_Cluster[i]- 2)]) ampamp (data[i][k]
lt batas_fuzzysetMaxA[(jmlh_Cluster[i]
- 1)]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] gt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 1)]))
hitung_fuzzifikasiA[j][k] = 0
else if ((0 lt j)ampamp(j lt (jmlh_Cluster[i] - 1)))
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA[j
+1]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA[j])
(batas_fuzzysetMinA[j + 1]-
batas_fuzzysetMinA[j])
if ((data[i][k] gt batas_fuzzysetMinA
[j+1])ampamp (data[i][k] lt
batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j]-data[i][k])
(batas_fuzzysetMaxA[j]-
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA
[j + 1]) ampamp (data[i][k] gt
batas_fuzzysetMinA[j + 1]) ampamp
(data[i][k]ltbatas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
hasil_fuzzifikasiA = new int[jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
int cluster = 0
double besar=hitung_fuzzifikasiA[0][j]
for (int k = 0 k lt jmlh_Cluster[i] k++)
if (besar lt hitung_fuzzifikasiA[k][j])
besar = hitung_fuzzifikasiA[k][j]
cluster = k
hasil_fuzzifikasiA[j] = cluster + 1
Kode Program 58 Implementasi proses fuzzifikasi
526 Implementasi Pembentukan Fuzzy Logical Relationship
Pada implementasi pembentukan Fuzzy Logical Relationship (FLR) memiliki dua output yaitu FLR_kiri dan FLR_kanan Dimana FLR_kiri berisi group dari kelima faktor dan pada FLR_kanan merupakan dari faktor yang akan diramalkan yaitu
76
faktor curah hujan (A) Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code pembentukan Fuzzy Logical Relationship (FLR) dapat ditunjukkan pada Kode Program 59 berikut Pada baris 3 ndash 14 merupakan deklarasi variabel Pada baris 15 ndash 55 adalah proses pembentukan fuzzy logical relationship data training Pada baris 56 ndash 58 merupakan deklarasi variabel Pada baris 59 ndash 86 adalah proses pembentukan fuzzy logical relationship data testing
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Fuzzy Logical Relationship
private void fuzzy_logical_relationship()
String input_order = fieldOrdergetText()
order = IntegerparseInt(input_order)
int max_inc = order
String input_dataTraining = fieldDatatraininggetText()
int dataTraining = IntegervalueOf(input_dataTraining)
int tmp_jmlhDatatraining = 0
int tmp_order = 0
int jmlh_dataTraining = dataTraining - order
String input_dataTesting = fieldDatatestinggetText()
int jmlh_dataTesting = IntegervalueOf(input_dataTesting)
FLR_kiri_training = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_training = new int[jmlh_DataTraining]
for (int i = 0 i lt jmlh_dataTraining i++)
for (int j = i j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (j == 0)
if (k == 0)
FLR_kiri_training[i][j][k]=
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiD[j]
else if (j = 0)
if (k == 0)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiD[j]
tmp_order = j
FLR_kanan_training[i] = hasil_fuzzifikasiA[(i + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
77
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
tmp_jmlhDatatraining = i
FLR_kiri_testing = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_testing = new int[(jmlh_DataTraining)]
tmp_jmlhDatatraining = tmp_jmlhDatatraining + 1
for (int i = 0 i lt jmlh_dataTesting i++)
for (int j = tmp_jmlhDatatraining j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (k == 0)
FLR_kiri_testing[i][j - tmp_jmlhDatatraining][k]
= hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiD[j]
FLR_kanan_testing[i] =
hasil_fuzzifikasiA[(tmp_jmlhDatatraining + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
tmp_jmlhDatatraining++
Kode Program 59 Implementasi pembentukan FLR
527 Implementasi Proses Defuzzifikasi
Pada implementasi proses defuzzifikasi merupakan proses dimana menentukan hasil peramalan dari data testing berdasarkan dari bilangan fuzzy yang terbentuk Implementasi ini memiliki beberapa inputan penting yaitu data training data testing order dan konstanta Inputan tersebut sangat berperan penting dalam proses implementasi defuzzifikasi Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code defuzzifikasi dapat ditunjukkan pada Kode Program 510 berikut Pada baris 2 ndash 11 merupakan deklarasi variabel Pada baris 13 ndash 37 merupakan proses perhitungan selisih antara data training dengan data testing Pada baris 40 ndash 47 menghitung jumlah FLR yang cocok Pada baris 49 ndash 65 merupakan proses mencocokan FLR kiri yang cocok dengan FLR kanan Pada baris 67 ndash 81 merupakan proses menghitung jumlah frekuensi FLR kanan yang cocok Pada baris 83 ndash 91 adalah proses perhitungan hasil peramalan
Baris Kode 1
2
3
4
private void defuzifikasi()
String input_dataTraining = fieldDatatraininggetText()
String input_dataTesting = fieldDatatestinggetText()
String input_konstanta = fieldKonstantagetText()
78
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
int dataTraining = IntegervalueOf(input_dataTraining)
int dataTesting = IntegervalueOf(input_dataTesting)
int konstanta = IntegervalueOf(input_konstanta)
int match[][]
match = new int[dataTesting][2000]
int threshold = (jmlh_Faktor order) + konstanta
int hitung_selisih = 0
perhitungan selisih
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
hitung_selisih = 0
for (int k = 0 k lt order k++)
for (int l = 0 l lt jmlh_Faktor l++)
if (i == 0)
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
else if (i gt 0)
FLR_kiri_training[(dataTraining-
1)+i][k][l] = FLR_kiri_testing[i-
1][k][l]
FLR_kanan_training[(dataTraining-1)+i]
= FLR_kanan_testing[i-1]
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
if (hitung_selisih lt threshold)
match[i][j] = hitung_selisih
menghitung jumlah total FLR yang cocok untuk setiap data
testing
int countGroup[] = new int[dataTesting]
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
countGroup[i]++
mencocokan FLR_kiri yang cocok dengan FLR_kanan
group = new int[dataTesting][2000]
for (int i = 0 i lt dataTesting i++)
int tmp_count = 0
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
if (tmp_count lt countGroup[i])
group[i][tmp_count] = j
tmp_count++
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt countGroup[i] j++)
group[i][j] = FLR_kanan[group[i][j]]
mengelompokkan yang sama
MapltInteger Integergt map = new HashMapltInteger Integergt()
hasil_peramalan = new double[dataTesting]
for (int i = 0 i lt dataTesting i++)
79
70
71
72
73
74
75 76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
double peramalan = 0
mapclear()
for (int j = 0 j lt countGroup[i] j++)
int key = group[i][j]
if (mapcontainsKey(key))
int occurrence = mapget(key)
occurrence++
mapput(key occurrence)
else
mapput(key 1)
menghitung hasil peramlaan
Iterator iterator = mapkeySet()iterator()
while (iteratorhasNext())
int key = (Integer) iteratornext()
int occurrence = mapget(key)
peramalan = (peramalan + (pusat_cluster1[(key - 1)]
occurrence))
hasil_peramalan[i] = (peramalan countGroup[i])
Kode Program 510 Implementasi proses defuzzifikasi
53 Implementasi Antarmuka
Pada implementasi antarmuka dijelaskan beberapa halaman antarmuka untuk penggunaan dari program hasil implementasi Implementasi antarmuka berdasarkan perancangan yang telah dijelasakan pada bab sebelumnya yaitu bab perancangan Halaman antarmuka yang dibuat adalah halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
531 Implementasi antarmuka halaman input
Halaman input merupakan halaman yang pertama muncul setelah program dijalankan Pada halaman input ini terdapat beberapa inputan yang harus di masukkan yaitu data input data training data testing order dan konstanta Selain itu pada halaman input juga terdapat tiga button yaitu button browse data button fuzzification dan button forecasting Berikut tampilan antarmuka halaman input yang ditunjukkan pada Gambar 51
Gambar 51 Implementasi antarmuka halaman input
80
532 Implementasi antarmuka halaman tampil data
Halaman tampil data merupakan halaman yang tampil setelah melakukan input data Halaman ini berisi tabel yang menampilkan data curah hujan suhu kecepatan angin dan kelembaban Berikut tampilan antarmuka halaman tampil data yang ditunjukkan pada Gambar 52
533 Implementasi antarmuka halaman proses
Halaman proses merupakan halaman yang muncul setelah button fuzzification telah dieksekusi Halaman proses ini terdiri dari tiga bagian atau tab yaitu clustering fuzzification dan Fuzzy logical relationship Pada halaman antarmuka clustering menampilkan Universe of Discourse dan jumlah cluster pada masing ndash masing faktor Berikut merupakan tampilan antarmuka halaman proses bagian clustering yang ditunjukkan pada Gambar 53
Gambar 52 Implementasi antarmuka halaman tampil data
Gambar 53 Implementasi antarmuka halaman proses clustering
81
Pada tab selanjutnya yaitu pada tab fuzzification tab ini menampilkan hasil proses fuzzifikasi Pada halaman ini menampilkan tabel yang berisi hasil fuzzifikasi dari setiap faktor Berikut merupakan tampilan antarmuka halaman proses bagian fuzzification yang ditunjukkan pada Gambar 54
Pada tab Fuzzy Logical Relationship menampilakn hasil dari proses pembentukan Fuzzy Logical Relationship Tampilan pada halaman ini menampilkan berupa textarea yang berisi dari output proses tersebut Berikut merupakan tampilan antarmuka halaman proses bagian Fuzzy Logical Relationship yang ditunjukkan pada Gambar 55
Gambar 54 Implementasi antarmuka halaman proses fuzzification
Gambar 55 Implementasi halaman antarmuka proses FLR
82
534 Implementasi antarmuka halaman hasil
Pada implementasi antarmuka halaman hasil ini merupakan halaman yang menampilkan hasil dari proses defuzzifikasi Halaman hasil ini menampilkan tabel yang berisi data aktual dan data dari hasil peramlan Berikut merupakan tampilan antarmuka halaman hasil yang ditunjukkan pada Gambar 56
535 Implementasi antarmuka halaman perhitungan error
Pada implementasi antarmuka halaman perhitungan error merupakan halaman yang menampilkan hasil dari proses perhitungan Mean Square Error (MSE) Pada halaman antarmuka ini menampilkan hasil error MSE pada textfield Berikut merupakan tampilan antarmuka halaman perhitungan error yang ditunjukkan pada Gambar 57
Gambar 56 Implementasi halaman antarmuka hasil
Gambar 57 Implementasi halaman antarmuka perhitungan error
83
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini membahas hasil pengujian dan analisis hasil pengujian dari hasil implementasi metode High Order Fuzzy Time Series Multi factors untuk peramalan curah hujan dasarian Pada pengujian ini disesuaikan dengan perancangan pengujian pada bab 4
61 Sistematika Pengujian
Pada bab sebelumnya yaitu bab 4 mengenai perancangan telah dibahas perancangan pengujian dikatakan bahwa pengujian akan dilakukan sebanyak empat pengujian Pengujian order pengujian threshold pengujian jumlah data training dan pengujian validasi sistem Dari semua pengujian tersebut akan di uji dan di analisis bagaimana pengaruhnya terhadap hasil perhitungan Mean Square Error (MSE)
62 Hasil dan Analisis Pembahasan
Berikut hasil pengujian dan analisis yang disesuaikan dengan perancangan pengujian pada bab sebelumnya
621 Pengujian pengaruh order terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh order terhadap nilai MSE Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Jadi jika nilai order adalah 3 maka peramalan akan melibatkan 3 data sebelumnya pada proses pembentukan Fuzzy Logical Relationship (FLR) Pada pengujian ini hanya nilai order yang diubah ndash ubah sedangkan variabel lain akan dibuat tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 konstanta adalah 10 Nilai threshold diperoleh dari perhitungan jumlah faktor dikali order dan dijumlah nilai konstanta Berikut adalah hasil pengujian pengaruh order terhadap nilai MSE yang ditunjukkan pada Tabel 61
Tabel 61 Hasil pengujian order terhadap nilai MSE
No Order Threshold MSE
1 3 22 808585
2 6 34 965547
3 9 46 912631
4 12 58 875884
5 15 70 719284
6 18 82 6801207
7 21 94 5637184
8 24 106 5444184
9 27 118 5433631
10 30 130 5418393
84
Dari hasil pengujian order seperti yang telah ditunjukkan pada Tabel 61 maka pada percobaan pertama dengan order = 3 dan threshold 22 dapat diperoleh MSE sebesar 808585 Selanjutnya pada percobaan kedua dengan order = 6 dan threshold = 34 diperoleh MSE sebesar 965547 Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 61
Berdasarkan Gambar 61 order yang berbeda - beda mempengaruhi besar nilai MSE Dalam penelitian ini menentukan order memiliki ketentuan yaitu nilai order harus lebih dari 0 dan batas maksimal order adalah setengah dari nilai data training (LinYang 2009) Nilai MSE terbesar yang ditunjukkan pada pengujian ini adalah 965547 pada pengujian order 6 dan nilai MSE terkecil adalah 5418393 pada pengujian order 30 Pada Gambar 61 menunjukkan bahwa pada order 3 ke order 6 mengalami peningkatan nilai MSE selanjutnya pada order 6 hingga order 30 mengalami penurunan Pada order 3 memiliki nilai MSE lebih kecil dari order 6 order 9 dan order 12 karena memiliki lebih banyak hasil selisih tingkat kecocokan data time series yang tidak terlalu besar dan kurang dari threshold Selain itu karena data time series dari data sampel yang diperoleh memiliki pola data musiman dimana perubahan pola data dasarian tidak terlalu banyak berubah dari tahun ke tahun Selanjutnya pada order 6 hingga order 30 menunjukkan penurunan nilai MSE dan order terbesar memiliki nilai MSE terkecil sehingga dapat disumpulkan bahwa semakin besar order maka semakin kecil pula nilai MSE Dalam hal ini dengan semakin besarnya order maka data sebelumnya yang digunakan untuk pertimbangan dalam menentukan peramalan semakin banyak Sehingga semakin besar nilai order maka dapat membuat peramalan semakin akurat Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin besar nilai order maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE
85
622 Pengujian pengaruh threshold terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh threshold terhadap nilai MSE Threshold merupakan hasil dari mengalikan jumlah order dengan jumlah faktor pada data kemudian dijumlahkan dengan dengan nilai konstanta Pada proses defuzzifikasi terdapat proses menghitung selisih antara pangkat bawah Fuzzy Logical Relationship (FLR) data training dan pangkat bawah FLR data testing Selanjutnya setelah mendapatkan nilai selisih maka nilai selisih tersebut dibandingkan dengan nilai threshold untuk mencari FLR yang cocok Pada pengujian ini nilai konstanta saja yang diubah ndash ubah sementara variabel lainnya tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 dan Nilai order adalah 30 Pada penentuan input konstanta nilai minimal harus lebih besar dari 0 dan nilai maksimal menyesuaikan data sampel yang digunakan (LinYang 2009) Berikut adalah hasil pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 62
Tabel 62 Hasil pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1 10 130 558485
2 20 140 577498
3 30 150 597364
4 40 160 604660
5 50 170 646951
6 60 180 680257
7 70 190 703013
8 80 200 741484
9 90 210 756749
10 100 220 780600
Dari hasil pengujian threshold seperti yang telah ditunjukkan pada Tabel 62 maka dapat dilihat bahwa konstanta yang dilakukan pengujian dimulai dengan nilai 10 sampai 100 Hasil yang didapat pada percobaan pertama dengan konstanta = 10 dan threshold 130 diperoleh MSE sebesar 558485 Selanjutnya pada percobaan kedua dengan konstanta = 20 dan threshold = 140 diperoleh MSE sebesar 577498 Selanjutnya dapat kita lihat pada percobaan yang telah dilakukan dari percobaan pertama hingga percobaan kesepuluh nilai MSE yang diperoleh mengalami perubahan pada setiap percobaan Dapat dilihat bahwa peningkatan MSE lebih dominan menunjukkan peningkatan sehingga dalam hal ini semakin besar nilai konstanta dan threshold maka semakin besar pula nilai MSE yang diperoleh Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 62
86
Berdasarkan grafik dari Gambar 62 nilai input konstanta yang berbeda - beda mempengaruhi besar nilai MSE semakin besar nilai konstanta maka nilai threshold juga semakin besar karena threshold diperoleh dari perhitungan order dikali jumlah faktor dan selanjutnya dijumlah dengan nilai konstanta Dalam hal ini dengan semakin besar nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR juga semakin luas batasannya dan jika semakin kecil nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR menjadi semakin sempit dan mempermudah proses peramalan karena hanya adanya sedikit data yang cocok dengan data yang akan diramalkan dan mempermudah proses defuzzifikasi Oleh karena itu semakin kecil threshold maka dapat membuat peramalan semakin akurat Akan tetapi nilai threshold tidak boleh terlalu kecil karena dapat menyebabkan kegagalan peramalan Kegagalan peramalan itu terjadi karena tidak adanya data training yang cocok dengan data testing karena pada metode yang digunakan pada penelitian ini sangat bergantung pada data ndash data sebelumnya Dari hasil percobaan diatas hasil MSE terbesar adalah 7806 yaitu pada konstanta 100 serta threshold 220 dan hasil MSE terkecil adalah 558485 yaitu pada konstanta 10 dan threshold 130 Dalam pengujian ini memiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin kecil nilai konstanta maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
623 Pengujian pengaruh jumlah data training terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh jumlah data training terhadap nilai MSE Pada pengujian ini jumlah data training adalah data dasarian yaitu 1 tahun 2 tahun 3 tahun 4 tahun dan 5 tahun dimana dari setiap 1 tahun memiliki 36 data dasarian Pengujian ini akan dilakukan sebanyak lima kali Pada pengujian ini jumlah data testing adalah 36 nilai order adalah setengah dari
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE
87
nilai data training nilai konstanta adalah 20 Berikut adalah hasil pengujian pengaruh jumlah data training terhadap nilai MSE yang ditunjukkan pada Tabel 63
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1 36 786586
2 72 634527
3 108 627190
4 144 614184
5 180 539698
Dari hasil pengujian jumlah data training seperti yang telah ditunjukkan pada Tabel 63 maka pada percobaan pertama dengan data training = 36 dapat diperoleh MSE sebesar 786586 Selanjutnya pada percobaan kedua dengan data training = 72 diperoleh MSE sebesar 634527 Dalam hal ini dari percobaan satu dan dua nilai MSE mengalami penurunan Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 63
Berdasarkan dari Gambar 63 pengujian pertama sampai pengujian kelima mengalami penerunan nilai MSE Sehingga dapat disimpulkan bahwa semakin besar data training maka semakin kecil nilai MSE yang diperoleh Nilai MSE semakin kecil apabila menggunakan data training dalam jumlah besar karena data yang digunakan memiliki rentang jauh dari periode data testing atau data yang akan diramalkan Sedangkan data training yang sedikit memiliki nilai MSE yang besar karena data training yang memiliki kecocokan dengan data testing berada pada periode yang jauh dengan data testing sehingga nilai MSE menjadi tinggi Dalam hal ini terbukti bahwa metode yang digunakan pada penelitian ini memerlukan jumlah data training yang banyak sehingga dapat menurunkan nilai kesalahannya Dari hasil percobaan diatas hasil MSE terbesar adalah 786586 dan
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE
88
hasil MSE terkecil adalah 539698 Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoPeramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Seriesrdquo yang menyatakan bahwa semakin besar jumlah data training maka semakin kecil nilai kesalahannya (Elfajar et al 2017)
624 Pengujian validasi sistem
Pada pengujian ini dilakukan untuk mengetahui kestabilan dari sistem dengan menggunakan order threshold terbaik dari pengujian sebelumnya Pada pengujian ini akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai data training menggunakan 36 data yang berbeda agar dapat menunjukkan gambaran variasi dari nilai kesalahan MSE pada peramalan nilai order adalah 18 dan konstanta adalah 10 sehingga nilai threshold adalah 92 Berikut adalah hasil pengujian validasi sistem yang ditunjukkan pada Tabel 64
Tabel 64 Hasil pengujian validasi sistem
Percobaan ke- MSE
1 714290
2 703856
3 732564
4 732815
5 6973958
6 7532825
7 741726
8 760457
9 709961
10 6256204
Dari hasil pengujian validasi sistem seperti yang telah ditunjukkan pada Tabel 64 maka dapat digambarkan dengan grafik yang ditunjukkan oleh Gambar 64
Gambar 64 Grafik hasil pengujian validasi sistem
89
Berdasarkan dari gambar grafik Gambar 64 bahwa pengujian dari validasi sistem memiliki hasil MSE yang tidak terlalu jauh berbeda dari penggunaan data yang berbeda - beda Oleh karena itu dapat disimpulkan bahwa implementasi dari metode High Order Fuzzy Time Series Multi Factors yang telah digunakan sudah cukup baik untuk digunakan peramalan
Berdasarkan dari pengujian yang dilakukan diatas dapat diketahui bahwa nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun 2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016 Nilai order adalah 90 dan konstanta adalah 10 Berikut adalah perbandingan data aktual dengan hasil peramalan yang ditunjukkan pada grafik Gambar 65
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan
90
BAB 7 PENUTUP
Pada bab ini terdiri dari dua sub bab yaitu kesimpulan dan saran Kesimpulan adalah tahapan yang berisi hasil penelitian yang dilakukan dan jawaban semua rumusan masalah yang sudah ditetapkan sebelumnya dan saran adalah tahapan yang berisi hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
71 Kesimpulan
Pada kesimpulan ini mengacu pada penelitian yang telah dilakukan yang meliputi perancangan implementasi serta pengujian dan analisis terhadap hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diambil kesimpulan sebagai berikut
1 Berdasarkan dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam melakukan peramalan curah hujan dasarian dilakukan dengan beberapa langkah yaitu langkah pertama perhitungan Universe of Discourse yang terdiri perhitungan mean standar deviasi dan perhitungan Dmin serta Dmax langkah kedua yaitu perhitungan jumlah cluster langkah ketiga yaitu perhitungan pusat cluster langkah keempat yaitu pembentukan subinterval dan fuzzy set langkah kelima yaitu proses fuzzifikasi langkah keenam yaitu pembentukan Fuzzy Logical Relationship(FLR) langkah ketujuh adalah defuzzifikasi yang hasil outputnya merupakan hasil peramalan curah hujan
2 Berdasarkan dari pengujian peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diketahui bahwa
a Order berpengaruh terhadap nilai error semakin besar nilai order maka hasil peramalan semakin baik
b Threshold berpengaruh terhadap nilai error semakin rendah nilai threshold maka hasil peramalan semakin baik Akan tetapi nilai threshold tidak boleh terlalu rendah karena dapat menyebabkan kegagalan peramalan
c Data training berpengaruh terhadap nilai error semakin besar jumlah data training maka hasil peramalan semakin baik Sehingga peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors memerlukan banyak data training
d Hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors cukup baik digunakan untuk peramalan Hal ini terbukti hasil pengujian validasi sistem menunjukkan grafik yang cukup stabil
Dari pengujian yang telah dilakukan nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun
91
2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016
72 Saran
Pada penelitian ini dilakukan peramalan curah hujan dasarian dengan faktor yang mempengaruhi adalah suhu kelembaban dan kecapatan angin Saran penulis diharapkan untuk penelitian selanjutnya melakukan penambahan faktor yang mempengaruhi curah hujan atau melakukan peramalan objek lain dengan mempertimbangkan faktor ndash faktor yang mempengaruhinya Serta diharapkan pada penelitian selanjutnya untuk menambahkan data yang lebih banyak serta bervariatif sehingga nilai hasil perhitungan akurasi peramalan yang dihasilkan dalam penelitian dapat meningkat Penggunaan data training yang banyak dan bervariatif dapat membuat pola data semakin terlihat sehingga hasil peramalan yang dihasilkan memiliki akurasi yang lebih baik
92
DAFTAR PUSTAKA
Ardiyanto 2016 ldquoTerendam Air Petani Lamongan Terpaksa Panen Dinirdquo Times Indonesia November 18 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
Badan Penelitian dan Pengembangan Pertanian Kementrian Pertanian 2015 ldquoKalender Tanam Terpadu Versi 25 Kota Malang Prov Jawa Timurrdquo httpkatamlitbangpertaniangoidkatam_terpadu2016mh33535733573_tinggipdf (Diakses 25 Februari 2017)
Bagirov M Adil Mahmood Arshad and Barton Andrew 2017 Prediction of monthly rainfall in Victoria Australia Clusterwise linear regression approach Elsevier Atmos Research 188 20-29
BMKG Staklim Karangploso Malang 2015 ldquoAnalisis Dinamika Atmosfer Dan Laut Dasarian III Maret 2015 Update 2 April 2015rdquo httpkarangplosojatimbmkgogoidindexphpanalisis-kondisi-dinamika-atmosfer-laut-dasarian-tahun-2015399-analisis-dinamika-atmosfer-dan-laut-dasarian-iii-maret-2015-update-2-april-2015axzz3X8h9y4fgampgsctab=0 (Diakses 25 Februari 2017)
BPS Kabupaten Malang 2016 ldquoKabupaten Malang Dalam Angka 2016rdquo httpsmalangkabbpsgoidwebsitepdf_publikasiKabupaten-Malang-Dalam-Angka-2016pdf (Diakses 25 Februari 2017)
BPS Jawa Timur 2015 ldquoJawa Timur Dalam Angka 2015rdquo httpsjatimbpsgoid4dmnpdf_publikasiJawa-Timur-Dalam-Angka-2015pdf (Diakses 25 Februari 2017)
Buffa S Elwood Rakesh and Sarin K 1996 Modern Production and Operation Management Eight Edition John Willey and Sons Inc London
Chen M 1996 Forecasting Enrollments based on Fuzzy Time Series Fuzzy Sets and Systems 311-319
Dewi Candra Kartikasari Dani Mursityo Yusi 2014 Prediksi Cuaca Pada Data Time Series Menggunakan Adaptive Neuro Fuzzy Inference System (ANFIS) Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK) Vol 1 No 1 hlm 18-24
Dewi Candra Muslikh M 2013 Perbandingan Akurasi Backpropagation Neural Network dan ANFIS Untuk Memprediksi Cuaca NATURAL-A Journal of Scientific Modeling amp Computation Volume 1 No1
Elfajar Aria Setiawan Budi Dewi Candra 2017 Peramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Series Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer Vol 1 No 2 Hlmn 85-94
93
Fauziah Normalita Wahyuningsih Sri dan Nasution Yuki 2016 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) Vol4 Statistika
Forest Mahyu 2015 ldquoDefenisi amp Pengertian Kelembabanrdquo httpilmupengetahuaalamblogspotcoid201506defenisi-pengertian-kelembabanhtml (Diakses 25 Februari 2017)
Irsyad Muhammad Metarice Sonya 2013 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan Jurnal Sains dan Teknologi Industri Vol 10 No 02
Klawon F 2001 What is About Fuzzy Clustering Understanding and Improving the Concept of the Fuzzier Science Journal httppublic-rzfh-wolfebuetteldeklawon
Kurniawan Carlos 2007 Analisis dan Perancangan Program Aplikasi Peramalan Curah Hujan dengan Metode Wavelet (Studi Kasus BMKG)
Kusumadewi S 2003 ldquoArtificial Intelegence (Teknik amp Aplikasinya)rdquo Graha Ilmu Yogyakarta
Kusumadewi S Purnomo H 2004 ldquoAplikasi Logika Fuzzy untuk Pendukung Keputusanrdquo Graha Ilmu Yogyakarta
Kusumadewi Sri 2002 Analisis amp Desain Sistem Fuzzy Tollbox MATLAB Graha Ilmu Yogyakarta
Lin Yupei Yang Y 2009 Stock Markets Forecasting Based on Fuzzy Time Series Model IEEE Conference Publications 782-886
Makridakis S Steven C Wheelwright Victor E and Gee MC 1999 Metode dan Aplikasi Peramalan Jilid I Edisi Kedua Jakarta Binarupa Aksara
Mirawati T Yasin H and Rusgiyono A 2013 Prediksi Curah Hujan dengan Metode Kalman Filter(Studi Kasus di Kota Semarang 2012) Jurnal Gaussian 2(3) pp 239-248
Pradipta Nur Sembiring Pasukat Bangun Pengarapen 2013 Analisis Pengaruh Curah Hujan di Kota Medan Saintia Matematika Vol 1
Sipayung Putri Metha 2013 Pemodelan Hubungan Kelembapan Udara terhadap Curah Hujan (Studi Kasus Curah Hujan Periode 2001-2009 pada Stasiun Dramaga) httprepositoryipbacidhandle12345678960623 (Diakses 25 Februari 2017)
User 2015 httpstaklimnegaranet[Online] Available at httpwwwstaklimnegaranetindexphpbuletin-hujanpengertian-istilah (Diakses 25 Februari 2017)
Wang Nai-Yi Chen Shyi-Ming 2009 Temperature prediction and TAIFEX forecasting based on automatic clustering techniques and two-factors high-order fuzzy time series Elsevier Expert Systems with Applications 36 2143ndash2154
94
Wardhani Dessy Ratnawati Dian Setiawan Budi 2015 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Saham Repositori Jurnal Mahasiswa PTIIK UB Doro Jurnal Vol 6 No 6
Wiyanti T and Pulungan R 2012 Peramalan Deret Waktu Menggunakan Model Fungsi Basis Radial (RBF) dan Auto Regressive Integrated Moving Average (ARIMA) Jurnal MIPA 35(2) pp 175-182
Yunanto Utomo 2014 ldquoBMKG Akui Prakiraan Cuacanya Masih Kurang Akuratrdquo Kompas Sains Januari 30 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
v
ABSTRAK
Kabupaten Malang merupakan salah satu kabupaten di Jawa Timur yang memiliki tingkat produksi pertanian yang cukup tinggi dimana hampir disetiap kecamatanya memiliki lahan pertanian Permasalahannya adalah pada saat curah hujan yang tinggi tidak sedikit petani yang mengalami gagal panen Curah hujan adalah salah satu dari beberapa faktor yang mempengaruhi perubahan iklim sehingga sangat menentukan hasil panen yang diperoleh Permasalahan gagal panen ini dapat diatasi dengan melakukan peramalan curah hujan dengan adanya peramalan curah hujan petani dapat menentukan waktu pola tanam yang sesuai sehingga dapat mengantisipasi terjadinya gagal panen Pada penelitian ini peramalan curah hujan dalam dasarian berdasarkan beberapa faktor yaitu suhu kelembaban dan kecepatan angin Metode yang digunakan untuk peramalan curah hujan dasarian adalah High Order Fuzzy Time Series Multi factors Pada metode ini pembentukan subinterval dilakukan dengan menggunakan fuzzy C-means Dalam menghitung kesalahan hasil peramalan menggunakan Mean Square Error (MSE) Berdasarkan hasil pengujian yang dilakukan semakin kecil threshold serta semakin besar data training dan order maka nilai kesalahan yang diperoleh semakin rendah Hasil peramalan curah hujan dasarian untuk peramalan satu tahun kedepan menggunakan metode ini mendapatkan hasil MSE terbaik sebesar 539698
Kata kunci curah hujan fuzzy C-means fuzzy time series peramalan
vi
ABSTRACT
Malang Regency is one of the regencies in East Java which has a high level of agricultural production in almost every district has agricultural land The problem is when high rainfall is not a few farmers who experienced crop failure Rainfall is one of several factors that affect climate change so it is very important to determine the yields obtained The problem of this harvest failure can be overcome by forecasting rainfall with rainfall forecasting farmers can determine the time of the appropriate cropping patterns so as to anticipate the occurrence of crop failure On the research of forecasting rainfall in dasarian based on several factors namely temperature humidity and wind speed The methods used for forecasting rainfall dasarian is a High-Order Fuzzy Time Series Multi factors In this method the formation of subinterval using fuzzy C-means In calculating the error of forecasting result using Mean Square Error (MSE) Based on the results of tests conducted the smaller threshold and the greater data training as well order the value error is obtained increasingly low The result of forecasting dasarian rainfall for forecasting one year ahead using this method get the best MSE result of 539698 Keywords rain fall fuzzy C-means fuzzy time series forecasting
vii
DAFTAR ISI
PENGESAHAN ii
PERNYATAAN ORISINALITAS iii
KATA PENGANTAR iv
ABSTRAK v
ABSTRACT vi
DAFTAR ISI vii
DAFTAR TABEL xi
DAFTAR GAMBAR xiii
DAFTAR KODE PROGRAM xv
DAFTAR LAMPIRAN xvi
BAB 1 PENDAHULUAN 1
11 Latar belakang 1
12 Rumusan masalah 2
13 Tujuan 3
14 Manfaat 3
15 Batasan masalah 3
16 Sistematika pembahasan 3
BAB 2 LANDASAN KEPUSTAKAAN 5
21 Kajian Pustaka 5
22 Dasar Teori 7
221 Peramalan 8
222 Curah hujan 8
223 Data time series 9
224 Logika Fuzzy 10
225 Metode Fuzzy C-means 13
226 Metode Peramalan dengan Fuzzy Time Series 15
227 Metode High Order Fuzzy Time Series Multi Factors 17
228 Perhitungan keakuratan metode peramalan 20
BAB 3 METODOLOGI 22
31 Studi Literatur 22
viii
32 Pengumpulan Data 23
33 Perancangan 23
34 Implementasi 23
35 Pengujian dan Analisis 23
36 Kesimpulan dan Saran 24
BAB 4 PERANCANGAN 25
41 Perancangan Proses 25
411 Proses perhitungan Universe of Discourse 26
4111 Proses perhitungan Mean 28
4112 Proses perhitungan standar deviasi 29
4113 Proses perhitungan nilai Dmin dan Dmax 30
412 Proses perhitungan jumlah cluster 31
413 Proses perhitungan pusat cluster 32
414 Proses pembentukan subinterval dan Fuzzy set 37
415 Proses Fuzzifikasi 38
416 Proses pembentukan Fuzzy Logical Relationship 41
417 Proses Defuzzifikasi 43
42 Perhitungan Manual 46
421 Perhitungan Universe of Discourse (U) 46
422 Perhitungan jumlah cluster (k) 48
423 Perhitungan pusat cluster dan subinterval 49
4231 Penentuan pusat cluster 49
4232 Perhitungan batas subinterval 55
424 Pembentukan Fuzzy Set 56
425 Fuzzifikasi 56
426 Pembentukan Fuzzy Logical Relationship (FLR) 58
427 Defuzzifikasi 58
43 Perancangan antarmuka 60
431 Halaman input 60
432 Halaman tampil data 61
433 Halaman proses 62
434 Halaman hasil 63
ix
435 Halaman perhitungan error 64
44 Perancangan pengujian 64
441 Perancangan pengaruh order terhadap nilai MSE 64
442 Perancangan pengaruh threshold terhadap nilai MSE 65
443 Perancangan pengaruh jumlah data training terhadap nilai MSE 65
444 Perancangan validasi sistem 65
BAB 5 IMPLEMENTASI 67
51 Spesifikasi Sistem 67
511 Spesifikasi Perangkat Keras 67
512 Spesifikasi Perangkat Lunak 67
52 Implementasi Algoritma 67
521 Implementasi Proses Universe of Discourse 68
5211 Implementasi proses mean 68
5212 Implementasi proses standar deviasi 68
5213 Implementasi proses Dmin dan Dmax 69
522 Implementasi Proses Jumlah Cluster 69
523 Implementasi Proses Pusat Cluster 70
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set 72
525 Implementasi proses fuzzifikasi 74
526 Implementasi Pembentukan Fuzzy Logical Relationship 75
527 Implementasi Proses Defuzzifikasi 77
53 Implementasi Antarmuka 79
531 Implementasi antarmuka halaman input 79
532 Implementasi antarmuka halaman tampil data 80
533 Implementasi antarmuka halaman proses 80
534 Implementasi antarmuka halaman hasil 82
535 Implementasi antarmuka halaman perhitungan error 82
BAB 6 PENGUJIAN DAN ANALISIS 83
61 Sistematika Pengujian 83
62 Hasil dan Analisis Pembahasan 83
621 Pengujian pengaruh order terhadap nilai MSE 83
x
622 Pengujian pengaruh threshold terhadap nilai MSE 85
623 Pengujian pengaruh jumlah data training terhadap nilai MSE 86
624 Pengujian validasi sistem 88
BAB 7 PENUTUP 90
71 Kesimpulan 90
72 Saran 91
DAFTAR PUSTAKA 92
LAMPIRAN 95
Lampiran 1 Data Sampel 95
xi
DAFTAR TABEL
Tabel 21 Kajian Pustaka 5
Tabel 22 Fuzzy Logic Relationship 19
Tabel 23 Peramalan fuzzy set 20
Tabel 41 Data Sampel Perhitungan Manual 46
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean 47
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi 47
Tabel 44 Hasil Universe of Discourse 48
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya 48
Tabel 46 Hasil jumlah cluster data 49
Tabel 47 Matriks partisi awal pada cluster data A 50
Tabel 48 Derajat keanggotaan matriks partisi data A 51
Tabel 49 Perhitungan pusat cluster data A 52
Tabel 410 Fungsi objektif data A 53
Tabel 411 Perbaikan matriks partisi 54
Tabel 412 Hasil perbaikan matriks partisi 54
Tabel 413 Hasil pusat cluster 55
Tabel 414 Batas subinterval masing ndash masing atribut data 55
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A 57
Tabel 416 Hasil fuzzifikasi semua data attribut 57
Tabel 417 Hasil pembentukan FLR data training 58
Tabel 418 Hasil pembentukan FLR data testing 58
Tabel 419 Frekuensi FLR yang cocok dengan data testing 59
Tabel 420 Perbandingan data aktual dan hasil peramalan 60
Tabel 421 Rancangan pengujian order terhadap nilai MSE 64
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE 65
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE 65
Tabel 424 Rancangan pengujian validasi sistem 66
Tabel 51 Spesifikasi Perangkat Keras 67
Tabel 52 Spesifikasi Perangkat Lunak 67
Tabel 61 Hasil pengujian order terhadap nilai MSE 83
xii
Tabel 62 Hasil pengujian threshold terhadap nilai MSE 85
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE 87
Tabel 64 Hasil pengujian validasi sistem 88
xiii
DAFTAR GAMBAR
Gambar 21 Representasi linear naik 11
Gambar 22 Representasi linear turun 12
Gambar 23 Representasi kurva segitiga 12
Gambar 31 Diagram blok metodologi penelitian 22
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1) 25
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2) 26
Gambar 43 Diagram alir proses perhitungan Universe of Discourse 27
Gambar 44 Diagram alir proses perhitungan mean 28
Gambar 45 Diagram alir proses perhitungan standar deviasi 29
Gambar 46 Diagram alir perhitungan nilai Min dan Max 30
Gambar 47 Diagram alir proses perhitungan jumlah cluster 31
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1) 32
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2) 33
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3) 34
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4) 35
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5) 36
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1) 37
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2) 38
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1) 39
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2) 40
Gambar 417 Diagram alir proses Pembentukan FLR (bagian 1) 41
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2) 42
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3) 43
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1) 44
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2) 45
Gambar 422 Grafik fuzzy set data A 56
Gambar 423 Rancangan antarmuka halaman input 61
Gambar 424 Rancangan antarmuka halaman tampil data 61
Gambar 425 Rancangan antarmuka halaman proses clustering 62
Gambar 426 Rancangan antarmuka proses fuzzifikasi 62
xiv
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship 63
Gambar 428 Rancangan antarmuka halaman hasil peramalan 63
Gambar 429 Rancangan antarmuka halaman perhitungan error 64
Gambar 51 Implementasi antarmuka halaman input 79
Gambar 52 Implementasi antarmuka halaman tampil data 80
Gambar 53 Implementasi antarmuka halaman proses clustering 80
Gambar 54 Implementasi antarmuka halaman proses fuzzification 81
Gambar 55 Implementasi halaman antarmuka proses FLR 81
Gambar 56 Implementasi halaman antarmuka hasil 82
Gambar 57 Implementasi halaman antarmuka perhitungan error 82
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE 84
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE 86
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE 87
Gambar 64 Grafik hasil pengujian validasi sistem 88
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan 89
xv
DAFTAR KODE PROGRAM
Kode Program 51 Implementasi proses Universe of Discourse 68
Kode Program 52 Implementasi proses mean 68
Kode Program 53 Implementasi proses standar deviasi 69
Kode Program 54 Implementasi proses Dmin dan Dmax 69
Kode Program 55 Implementasi proses jumlah cluster 70
Kode Program 56 Implementasi proses pusat cluster 72
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set 74
Kode Program 58 Implementasi proses fuzzifikasi 75
Kode Program 59 Implementasi pembentukan FLR 77
Kode Program 510 Implementasi proses defuzzifikasi 79
xvi
DAFTAR LAMPIRAN
Lampiran 1 Tabel Data Sampel 95
1
BAB 1 PENDAHULUAN
11 Latar belakang
Kabupaten Malang merupakan salah satu kabupaten di Jawa Timur yang terkenal akan potensi alam yang dimiliki (BPS Kabupaten Malang 2016) Dalam hal ini terkenal akan potensi alamnya karena kabupaten Malang memiliki tingkat produksi di sektor pertanian yang cukup tinggi dimana hampir seluruh kecamatan di kabupaten Malang memiliki lahan pertaniaaan (BPS Jatim 2015) Permasalahan yang terjadi pada sektor pertanian yaitu terjadinya gagal panen apabila memasuki musim penghujan dengan curah hujan yang tinggi yaitu diatas 200 mm per bulan serta apabila memasuki musim kemarau dengan curah hujan yang rendah yaitu dibawah 100 mm per bulan (BMKG Staklim Karangploso Malang 2015) Dalam mengatasi hal tersebut upaya yang dilakukan petani selama ini hanya melakukan tindakan seperti melakukan panen secara dini Upaya ini dianggap petani cukup efektif dalam mengurangi besarnya kerugian gagal panen akan tetapi sebaiknya yang dilakukan adalah melakukan suatu tindakan agar kerugian yang dialami petani tidak terjadi lagi (Ardiyanto 2016)
Salah satu contoh tindakan yang dapat dilakukan adalah membuat Kalender Tanam (KATAM) KATAM dapat digunakan petani sebagai alat bantu atau pedoman dalam menentukan awal musim tanam terbaik seperti yang telah dilakukan oleh Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian Dalam pembuatan KATAM Balitbang menggunakan data peramalan curah hujan dari Badan Meteorologi Klimatologi dan Geofisika (BMKG) Akan tetapi BMKG mengakui bahwa prakiraan cuacanya saat ini memang masih kurang akurat dan masih kalah dengan prakiraan cuaca di Amerika Serikat (Yunanto 2014) Pentingnya akan prakiraan cuaca terbukti adanya beberapa penelitian sebelumnya yaitu penelitian prakiraan cuaca dengan input faktor yang mempengaruhi cuaca yang berupa data time series menggunakan metode Adaptive Neuro Fuzzy Inference System (ANFIS) (Dewi 2014) dan penelitian mengenai prediksi cuaca menggunakan metode Backpropagation Neural Network yang terbukti memiliki nilai akurasi yang baik dalam prediksi cuaca (Dewi 2013)
Teknik atau metode peramalan curah hujan yang sering digunakan BMKG adalah metode Autoregressive Integrated Moving Average (ARIMA) ANFIS dan Wavelet (Kurniawan 2007) Namun dalam penerapannya gabungan dari ketiga metode tersebut masih kurang memuaskan yaitu tingkat akurasinya hanya mencapai 60 - 70 Menurut BMKG kurangnya tingkat akurasinya ini disebabkan oleh keadaan pola atmosfer di Indonesia yang selalu berubah ndash ubah dan kurang menentu
Selain metode yang digunakan oleh BMKG adapun penelitian sebelumnya yang meramalkan curah hujan yaitu penelitian menggunakan metode Fuzzy Time Series Chen dengan studi kasus curah hujan di Samarinda dalam penelitian ini menggunakan data time series curah hujan bulanan dengan kesimpulan pengunaan data yang sedikit memiliki tingkat akurasi lebih tinggi dibandingkan
2
menggunakan data yang banyak yaitu menghasilkan nilai RMSE terkecil 7368 dan MAE terkecil 539 (Fauziah et al 2016)
Selain peramalan yang hanya menggunakan data time series dari data yang akan diramalkan juga terdapat penelitian sebelumnya yang menggunakan faktor - faktor yang mempengaruhi dari data yang akan diramalkan Salah satunya yaitu penelitian dengan menggunakan metode Clusterwise Linear Regression (CLR) Penelitian ini menggunakan data bulanan pada delapan stasiun cuaca di kota Victoria Australia Peramalan curah hujan pada penelitian ini menggunakan faktor yang mempengaruhi yaitu suhu maksimum suhu minimum penguapan tekanan uap dan radiasi matahari Hasil penelitian ini terbukti dapat melakukan peramalan curah hujan dengan hasil yang cukup baik yaitu dengan nilai RMSE terkecil 197 dan MAE terkecil 129 (Bagirov et al 2017)
Berdasarkan paparan yang telah dijelaskan penulis memiliki ide untuk melakukan penelitian dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Pada metode ini dilakukan klasterisasi data untuk membangun subinterval dengan menggunakan metode fuzzy C-means (LinYang 2009) Dari proses hasil klasterisasi akan digunakan untuk membagi data semesta yang selanjutnya menghasilkan fuzzy set atau himpunan fuzzy yang menggambarkan fitur data (LinYang 2009) Keunggulan dari metode fuzzy time series dengan multi faktor yaitu dengan berdasarkan pada penelitian ndash penelitian sebelumnya yang menggunakan metode tersebut yaitu penelitian prediksi harga emas dengan beberapa faktor yang mempengaruhi menggunakan metode Multi-factors High order Fuzzy Time Series Model dari hasil penelitian ini dengan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 (Wardhani et al 2015) dan penelitian peramalan Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen menggunakan metode Fuzzy Time Series Model dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 (Lin Yang 2009) terbukti menghasilkan hasil peramalan dengan tingkat akurasi yang cukup tinggi Penggunaan metode ini juga sesuai dengan curah hujan yang dipengaruhi oleh beberapa faktor yaitu kelembaban udara kecepatan angin dan suhu (Pradipta 2013) Penelitian ini diharapkan dapat memberikan hasil peramalan curah hujan yang lebih akurat dan memiliki nilai kesalahan yang lebih sedikit
12 Rumusan masalah
Berdasarkan latar belakang yang telah dipaparkan dibuatlah beberapa rumusan masalah sebagai berikut
1 Bagaimana mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Berapa tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
3
13 Tujuan
Adapun maksud dan tujuan dari penelitian ini adalah sebagai berikut
1 Mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Mengetahui tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
14 Manfaat
Adapun manfaat dari penelitian ini adalah sebagai berikut
1 Bagi Badan Meteorologi dan Geofisika (BMKG) untuk dapat memberikan peramalan curah hujan yang lebih akurat dari sebelumnya
2 Bagi Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian untuk dapat membuat Kalender tanam (KATAM) dengan menggunakan data ramalan curah hujan yang lebih akurat
3 Bagi penduduk kabupaten Malang khususnya yang bekerja pada sektor pertanian agar dapat mengoptimalkan hasil produksi dengan menyesuaikan penanaman sesuai dengan Kalender Tanam (KATAM) yang telah dibuat Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian
15 Batasan masalah
Penelitian ini dibatasi oleh hal ndash hal sebagai berikut
1 Data curah hujan kelembaban udara kecepatan angin dan suhu udara yang digunakan pada penelitian ini merupakan data berdasarkan dasarian dan hanya mencakup wilayah kabupaten Malang dan data diperoleh dari BMKG Karangkates Kabupaten Malang dengan data time series yang digunakan pada penelitian ini yaitu dari tahun 2011 - 2016
2 Model peramalan yang diterapkan adalah semua nilai yang membentuk pola dataset training dan testing diketahui nilainya
3 Perhitungan nilai tingkat kesalahan permalan menggunakan metode Mean Square Error (MSE)
16 Sistematika pembahasan
Sistematika pembahasan penelitian ditunjukkan untuk memberikan gambaran dan uraian dari penyusunan proposal yang meliputi beberapa bab sebagai berikut
BAB 1 PENDAHULUAN
Pada bab ini berisi latar belakang rumusan masalah tujuan penelitian manfaat penelitian batasan masalah sistematika pembahasan dan rencana kerja atau jadwal penelitian
4
BAB 2 LANDASAN KEPUSTAKAAN
Pada bab ini berisi tentang kajian pustaka dan dasar teori yang menjadi dasar dalam melakukan implementasi peramalan curah hujan dengan Metode High Order Fuzzy Time Series Multi Factors
BAB 3 METODOLOGI
Pada bab ini diuraikan tentang tahapan atau langkah ndash langkah yang dilakukan dalam proses penelitian tentang peramalan curah hujan dengan metode High Order Fuzzy Time Series Multi Factors Langkah ndash langkah tersebut terdiri dari tahapan penelitian teknik pengumpulan data algoritma yang digunakan lingkungan pengujian dan pengujian algoritma yang digunakan serta pengambilan kesimpulan
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan proses algoritma perhitungan manual metode High Order Fuzzy Time Series Multi Factors perancangan antar muka dan perancangan pengujian
BAB 5 IMPLEMENTASI
Pada bab ini berisi tentang penjelasan peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors bagaimana user interface dan source code dalam pengimplementasian metode ini
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini berisi tentang penjelasan proses dan hasil pengujian dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam peramalan curah hujan serta analisis dari pengujian tersebut
BAB 7 PENUTUP
Pada bab ini berisi kesimpulan yang diperoleh dari hasil pengujian dan saran ndash saran untuk pengembangan penelitian selan
5
BAB 2 LANDASAN KEPUSTAKAAN
Bab ini berisi mengenai kajian pustaka dan dasar ndash dasar teori yang akan dibahas serta digunakan untuk menunjang topik ndash topik pembahasan Pada kajian akan dibahas perbedaan antara penelitian yang telah ada dengan penelitian yang diusulkan oleh penulis Sedangkan pada dasar teori akan dibahas mengenai teori ndash teori yang digunakan pada penelitian yang diusulkan
21 Kajian Pustaka
Pada kajian pustaka disini berisi mengenai perbandingan antara penelitian yang diusulkan oleh penulis dengan penelitian sebelumnya yang relevan Perbandingan tersebut dapat dilihat padat Tabel 21
Tabel 21 Kajian Pustaka
No Judul Objek dan Input Penelitian Metode
1 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan (Irsyad Metarice 2013)
Objek Curah hujan
Input Penelitian
Data aktual curah hujan
Metode High Order Fuzzy Time Series dan Automatic Clustering
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
2 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) (Fauziah et al 2016)
Objek Curah Hujan
Input Penelitian
Data aktual curah hujan
Metode Fuzzy Time Series Chen
Nilai evaluasi
Mean Absolute Error (MAE) Root Mean of Square Error (RMSE)
3 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emas (Wardhani et al 2015)
Objek Harga Emas
Input Penelitian
Kurs Dollar hari sebelumnya
Kurs Euro hari sebelumnya
Harga Emas London hari sebelumnya
Harga Emas hari sebelumnya
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
4 Stock Markets Forecasting Based on Fuzzy Time Series Model (Lin Yang 2009)
Objek Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
6
Input Penelitian
Historical return
Historical turnover volume
Rata ndash rata selisih pergerakan harga selama lima hari
Selisih antara kekuatan bull dan bear
Indeks komposit bursa efek harian Shanghai sebelumnya
Indeks komposit bursa efek harian Shenzhen
Nilai evalusi
Average Relative Error (ARError)
5 Peramalan Curah Hujan Menggunakan Metode High Order Fuzzy Time Series Multi Factors
Objek Curah hujan
Input Penelitian
Suhu
Kelembaban
Kecepatan angin
Curah hujan
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Square Error (MSE)
Sumber (Irsyad Metarice 2013) (Fauziah et al 2016) (Wardhani et al 2015) dan (Lin Yang 2009)
Pada penelitian yang pertama yaitu penelitian yang dilakukan oleh Muhammad Irsyad dan Sonya Metarice pada tahun 2013 dengan objek penelitian yang diramalkan adalah curah hujan Inputan yang digunakan pada penelitian ini merupakan data aktual curah hujan bulanan Metode yang digunakan penelitian ini adalah Automatic Clustering dan High Order Fuzzy Time Series Pada penelitian ini metode Automatic Clustering digunakan untuk membangun interval dan High Order Fuzzy Time Series untuk melakukan peramalan curah hujan Kesimpulan yang diperoleh dari penelitian ini yaitu metode ini dapat diterapkan untuk permalan curah hujan dan hasil evaluasi menggunakan metode Mean Absolute Percentage Error(MAPE) dari beberapa bercobaan dapat diperoleh nilai kesalahan sebesar 437 Berdasarkan dari hasil nilai kesalahan tersebut maka tingkat kesalahan data pada permalan ini termasuk rendah
Pada tahun 2016 Normalita Fauziah Sri Wahyuningsih dan Yuki Novia Nasution melakukan penelitian dengan objek penelitian curah hujan di kota Samarinda Inputan yang digunakan pada penelitian berupa data aktual bulanan curah hujan di kota Samarinda Metode yang digunakan pada penelitian ini adalah Fuzzy Time Series Chen dengan dalam pembentukkan panjang interval berbasis rata ndash rata atau average based Pada penelitian ini permalan curah hujan terbaik yaitu dengan menggunkan data sebanyak 29 data dengan menghasilkan tingkat nilai kesalahan terkecil yaitu dengan metode Root Mean of Squared Error (RMSE) sebesar 7368 dan metode Mean Absolute Error (MAE) sebesar 539 Pada
(Lanjutan) Tabel 21 Kajian Pustaka
7
penelitian ini disimpulkan bahwa data sebanyak 29 data memiliki tingkat kesalahan lebih kecil dibandingkan dengan menggunakan data dengan jumlah sampel yang lebih banyak
Pada penelitian selanjutnya adalah penelitian yang dilakukan oleh Dessy Kusuma Wardhani Dian Eka Ratnawati dan Budi Darma Setiawan pada tahun 2015 dengan objek penelitian yang diramalkan adalah harga emas harian Inputan yang digunakan pada penelitian ini data aktual harian harga emas indonesia harga emas london kurs dollar ke rupiah dan kurs euro ke rupiah Metode yang digunakan pada penelitian pada pembentukkan sub interval menggunakan metode fuzzy C-means dan untuk peramalan menggunakan metode High Order Fuzzy Time Series Model Hasil pada penelitian ini berdasarkan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 karena nilai error lebih kecil dari 10 menunjukkan bahwa metode ini sangat baik digunakan untuk peramalan harga emas
Pada tahun 2009 Yupei Lin dan Yiwei Yang melakukan penelitian dengan objek yang diramalkan adalah indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen Data input penelitian ini meliputi historical return historical turnover volume dan rata ndash rata selisih pergerakan harga selama lima hari serta selisih antara kekuatan bull dan bear Dalam penelitian ini pembentukan subinterval yang berfungsi dalam pendefinisian himpunan fuzzy dilakukan dengan menggunakan klasterisasi fuzzy C-means Hasil dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 Dalam hal ini membuktikan bahwa penelitian dapat menghasilkan peramalan yang cukup baik karena memiliki nilai ARError kurang dari 5
Pada penelitian ini membahas tentang peramalan curah hujan dasarian menggunakan metode High Order Fuzzy Time Series Multi Factors Terdapat empat inputan yang juga dijadikan sebagai variabel dalam penelitian ini yaitu kelembaban udara kecepatan angin suhu udara dan curah hujan Pembentukan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan klasterisasi fuzzy C-means Penelitian ini menggunakan high order fuzzy logic relationship yaitu membentuk fuzzy logic relationship berdasarkan data dalam kurun waktu beberapa dasarian sebelum dasarian yang akan diramal Pada penelitian ini dalam melakukan perhitungan nilai error untuk mendapatkan hasil evaluasi menggunakan metode Mean Square Error (MSE)
22 Dasar Teori
Pada dasar teori disini dijelaskan tentang metode ndash metode yang digunakan pada penelitian ini yang meliputi peramalan curah hujan data time series logika fuzzy fuzzy C-means metode peramalan dengan Fuzzy Time Series High Order Fuzzy Time Series Multi Factors dan metode perhitungan keakuratan metode peramalan
8
221 Peramalan
Terdapat beberapa definisi tentang peramalan menurut Kamus Besar Bahasa Indonesia (KBBI) yaitu
a Peramalan merupakan prediksi rencana atau estimasi kejadian masa depan yang tidak pasti (KBBI)
b Peramalan adalah sebagai penggunaan teknik ndash teknik statistik dalam bentuk gambaran masa depan berdasarkan pengolahan angka ndash angka yang terjadi pada masa lalu (Buffa et al1996)
c Peramalan adalah bagian internal dari pengambilan keputusan manajemen (Makridakis et al1999)
Berdasarkan beberapa definisi diatas dapat disimpulkan bahwa peramalan merupakan tindakan apa yang akan terjadi di masa mendatang peramalan diperlukan untuk mengambil sebuah keputusan Dalam pengambilan keputusan harus diambil dari pertimbangan ndash pertimbangan yang ada Oleh karena itu peramalan sangat penting hubungannya dengan pengambilan keputusan sehingga kejadian di masa yang akan datang dapat dipersiapkan tindakan apa yang perlu dilakukan
222 Curah hujan
Curah hujan merupakan salah satu faktor penting yang mempengaruhi perubahan iklim suatu wilayah (Mirawati et al 2013) Salah satu contoh kasus nyata yaitu terjadinya perubahan iklim secara tiba ndash tiba atau bisa disebut dengan cuaca ekstrim Curah hujan dapat dijelaskan dengan air hujan yang terkumpul pada suatu wadah datar dimana air hujan tersebut tidak meresap tidak menguap dan tidak mengalir sehingga dapat diukur ketinggiannya Sebagai contoh curah hujan 1 (satu) milimeter dapat dijelaskan dalam suatu wadah datar dengan luas satu meter persegi tertampung air dengan ketinggian sekitar satu milimeter atau tertampung air sebanyak satu liter Metode dalam mendapatkan data curah hujan adalah dengan menggunakan penakar hujan yang kemudian diukur dengan satuan milimeter (mm) (User2015) Intensitas curah hujan dapat dikategorikan ringan jika dibawah 20mm dalam 24 jam dikategorikan lebat jika di atas 50mm dan dikategorikan sedang jika selang 20mm hingga 50mm (User 2015)
Curah hujan mempengaruhi beberapa sektor diantarannya sektor komunikasi dimana penggunaan frekuensi diatas 10 GHz dapat terkena redaman hujan (Mauludiyanto et al 2009) Akan tetapi curah hujan paling berpengaruh terhadap sektor pertanian Hal ini terbukti bahwa sebagian besar terjadinya penurunan produktifitas dan gagal panen di sektor pertanian adalah terjadinya curah hujan yang tinggi
Tinggi dan rendahnya curah hujan dipengaruhi oleh beberapa faktor yaitu kelembaban udara temperatur dan kecepatan angin Pada tahun 2013 Nur Suri Pradipta Pasukat Sembiring dan Pengarapen Bangun melakukan penelitian mengenai pengaruh curah hujan di kota Medan (Pradipta et al 2013)
9
Berdasarkan penelitian tersebut faktor yang mempengaruhi dan digunakan dalam peramalan curah hujan yaitu
1 Kelembaban udara
Kelembaban udara adalah banyaknya kandungan uap air di atmosfer Udara atmosfer adalah campuran dari udara kering dan uap air selain itu kelembaban udara merupakan komponen cuaca yang mempunyai peranan sangat penting bagi stabilitas kehidupan organisme di bumi maupun unsur-unsur cuaca yang lain (Forest 2015) Kelembaban udara berpengaruh terhadap curah hujan Hal ini didukung penelitian oleh (Sipayung et al 2013) yang menyatakan Kelembaban udara berpengaruh positif terhadap curah hujan
2 Kecepatan angin
Kecepatan angin merupakan kecepatan udara yang bergerak secara horizontal pada ketinggian 2 meter diatas tanah Dalam hal ini faktor yang menentukan kecepatan angin adalah perbedaan tekanan udara antara asal dan tujuan angin Kecepatan angin berpengaruh positif terhadap curah hujan artinya jika kecepatan angin tinggi maka curah hujan akan tinggi (Pradipta et al2013)
3 Suhu udara
Suhu udara merupakan ukuran energi kinetik rata ndash rata dari pergerakan molekul ndash molekul Suhu udara berpengaruh negatif terhadap curah hujan artinya jika suhu udara tinggi maka curah hujan akan berkurang (Pradipta et al2013)
223 Data time series
Data time series adalah data statistik yang telah dihimpun dari masa lampau hingga sekarang dan dapat digunakan sebagai acuan dalam melakukan peramalan terhadap data yang akan datang (Wiyanti amp Pulungan 2012) Data time series juga dapat didefinisikan sebagai sebuah kegiatan mengamati data statistik dimana terdapat korelasi (dependensi) antar datanya sehingga data yang sekarang sedang diamati memiliki ketergantungan dengan satu atau lebih data pengamatan sebelumnya (Mirawati et al 2013)
Terdapat dua teknik prediksi yang menggunakan basis data time series yaitu teknik model matematika statistik dan berdasarkan kecerdasan buatan (Wiyanti amp Pulungan 2012) Analisa time series sendiri memiliki beberapa peruntukan salah satunya digunakan dalam melakukan peramalan untuk masa yang akan datang Dalam penggunaan data time series merupakan salah satu proses peramalan kuantitatif dimana berdasar data kuantitatif masa lampau yang direpresentasikan dalam bentuk angka atau nilai (Mirawati et al 2013)
10
224 Logika Fuzzy
Pada tahun 1965 Prof Lotfi A Zadeh memperkenalkan teori logika fuzzy Logika fuzzy merupakan suatu komponen soft computing dan juga suatu cara yang tepat untuk memetakan suatu ruang input ke dalam ruang output Antara ruang input dan ruang output terdapat black box yang berfungsi memetakan input ke ruang output yang sesuai Dasar logika fuzzy adalah teori fuzzy set Pada teori fuzzy set peranan derajat keanggotaan sebagai penentu keberadaan elemen dalam suatu himpunan sangatlah penting Oleh karena itu derajat keanggotaan menjadi ciri utama dalam penalaran dengan logika fuzzy Logika fuzzy bekerja dengan menggunakan derajat keanggotan dari sebuah nilai yang kemudian digunakan untuk menentukan hasil yang ingin dihasilkan berdasarkan atas kriteria yang telah ditentukan (Kusumadewi 2003)
Berikut adalah beberapa alasan digunakannya logika fuzzy (Kusumadewi 2002)
1 Logika fuzzy sangat fleksibel
2 Konsep logika fuzzy mudah dimengerti dan dipahami
3 Logika fuzzy memiliki toleransi terhadap data ndash data yang homogen dan data ndash data yang kurang tepat
4 Logika fuzzy didasari pada bahasa alami atau bahasa sehari - hari sehingga mudah dimengerti
5 Logika fuzzy dapat bekerjasama dengan teknik ndash teknik kendali secara konvensional
6 Logika fuzzy mampu membangun dan mengaplikasikan pengalaman ndash pengalaman para pakar secara langsung tanpa harus melalui tahap atau proses pelatihan
A Himpunan Fuzzy
Himpunan fuzzy atau fuzzy set merupakan perluasan himpunan tegas atau himpunan crisp jadi fungsi karakteristik mencakup bilangan real pada interval [01] Dalam definisi lain himpunan fuzzy adalah suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dalam suatu variabel fuzzy Keanggotaan fuzzy berbeda dengan probabilitas jika keanggotaan fuzzy pada setiap fungsi karakteristik memberikan suatu pendapat atau keputusan sedangkan probabilitas menunjukan seberapa besar nilai kebenaran dalam fungsi karakteristik tersebut Contohnya yaitu nilai keanggotaan suatu himpunan fuzzy umur muda 09 berarti nilai dalam himpunan tersebut memiliki kemungkinan 90 anggotanya berumur muda dan 10 diharapkan tidak muda Dalam himpunan fuzzy suatu bilangan bisa memiliki dua keanggotaan sekaligus Himpunan fuzzy memiliki dua attribut (Kusumadewi2003)
11
1 Linguistik merupakan penamaan suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami misalnya muda parobaya tua
2 Numeris merupakan suatu nilai (angka) yang menunjukkan ukuran dari suatu
variabel seperti 402550 dan sebagainya
B Fungsi Keanggotaan
Fungsi keanggotaan adalah suatu kurva yang menunjukkan pemetaan titik ndash titik input data ke dalam derajat keanggotaannya yang memiliki subinterval antara 0 sampai 1 (Kusumadewi Purnomo 2004) Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi Ada beberapa fungsi keanggotaa yang dapat digunakan
1 Fungsi representasi linear
Pada fungsi representasi linear pemetaan input ke derajat keanggotaannya digambarkan sebagai suatu garis lurus Bentuk ini paling sederhana dan menjadi pilihan yang baik untuk mendekati suatu konsep yang kurang jelas Keadaan linear himpunan fuzzy terdiri dari dua keadaan yaitu keadaan linear naik dan keadaan linear turun Pada keadaan linear naik kenaikan himpunan dimulai pada nilai domain yang memiliki nilai derajat keanggotaan nol bergerak ke kanan menuju ke nilai domain yang memiliki derajat keanggotaan yang lebih tinggi seperti yang ditunjukkan Gambar 21 Persamaan fungsi keanggotaan pada representasi linear naik ditunjukkan oleh Persamaan 21
Fungsi Keanggotaan
120583(119909) = 0
(119909 minus 119886)(119887 minus 119886)1
119909 le 119886 119886 le 119909 le 119887119909 ge 119887
(21)
b a 0
1
Gambar 21 Representasi linear naik
Sumber Kusumadewi (2002)
120583(119909)
12
Pada keadaan linear turun berbanding terbalik dengan keadaan linear naik Garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi pada sisi kiri kemudian bergerak menurun ke nilai domain yang memiliki derajat keanggotaan lebih rendah yang ditunjukkan Gambar 22 Persamaan fungsi keanggotaan pada representasi linear turun ditunjukkan oleh Persamaan 22
Fungsi Keanggotaan
120583(119909) = (119887 minus 119909)(119887 minus 119886)0
119886 le 119909 le 119887
119909 ge 119887 (22)
2 Fungsi representasi kurva segitiga
Representasi kurva segitiga pada dasarnya merupakan gabungan antara 2 garis linear yaitu linear naik dan linear turun Fungsi representasi kurva segitiga ditandai oleh adanya tiga parameter abc yang akan menentukan koordinat x dari tiga sudut seperti ditunjukkan pada Gambar 23 Persamaan fungsi keanggotaan pada representasi kurva segitiga ditunjukkan oleh Persamaan 23
b a 0
1
Sumber Kusumadewi (2002)
Gambar 22 Representasi linear turun
120583(119909)
c a 0
1
b
Sumber Kusumadewi (2002)
Gambar 23 Representasi kurva segitiga
120583(119909)
13
Fungsi Keanggotaan
120583(119909) =
0 (119909 minus 119886)(119887 minus 119886) (119887 minus 119909)(119888 minus 119887)
119909 le 119886 119886119905119886119906 119909 ge 119888
119886 le 119909 le 119887 119887 le 119909 le 119888
(23)
225 Metode Fuzzy C-means
Fuzzy C-means (FCM) pertama kali diperkenalkan oleh Dunn dan dikembangkan oleh Bezdek yang banyak digunakan dalam pengenalan pola Metode ini merupakan pengembangan dari metode non-hierarkhi K-Means Cluster selanjutnya dilakukan iterasi sampai mendapatkan keanggotaan kelompok tersebut (Klawon 2001)
FCM merupakan salah satu algoritma fuzzy clustering dan juga teknik klasterisasi dimana tiap data ditentukan oleh derajat keanggotaanya Tujuan penggunaan algoritma FCM yaitu untuk menemukan pusat cluster atau centroid dengan meminimumkan fungsi objektif (Bazdek 1984) Ouput dari FCM bukan merupakan fuzzy inference system melainkan deretan pusat cluster dan beberapa derajat keanggotaan untuk setiap titik data Hasil output ini dapat digunakan untuk membangun suatu fuzzy inference system Berikut adalah langkah ndash langkah dari FCM (Kusumadewi 2004)
1 Langkah pertama menentukan jumlah cluster (c ge 2) pembobot (infin gt 119908 gt1) (Bazdek 1984) maksimum iterasi (maxIter) error minimum yang diharapkan yaitu nilai positif yang sangat kecil (120585) fungsi objektif awal (P0 = 0) iterasi awal dideklarasikan 1
2 Langkah kedua memasukkan data X yang akan diklasterisasi berupa matriks berukuran m x n (m = jumlah sampel data n = attribut setiap data) Contoh Xij = data sampel ke-i (i = 1234m) attribu ke-j (j=1234n)
3 Langkah ketiga yaitu dengan membuat bilangan random microik i = 1234n dan k = 123c (n = jumlah sampel pada data c = jumlah cluster yang akan dibentuk) sebagai elemen ndash elemen matriks partisi awal Untuk bilangan penyusun matriks partisi awal dihitung dihitung jumlahnya setiap kolom yang ditunjukkan pada pada Persamaan 24 (Kusumadewi 2004)
119876119896 = sum 120583119894119896119888119896=1 (24)
Dimana
119876119896 = jumlah bilangan pada kolom k
120583119894119896 = bilangan random pada baris i kolom k
119888 = jumlah kolom
14
Selanjutnya untuk menghitung derajat keanggotaan awal dengan melakukan normalisasi pada matiks partisi pada normalisasi dilakukan menggunakan Persamaan 25 (Kusumadewi 2004)
120583119894119896 = 120583119894119896119876119896 (25)
4 Langkah keempat melakukan perhitungan cluster ke-k Vkj dengan k = 1234c dan j = 1234m Perhitungan pusat cluster ditunjukkan pada Persamaan 26 (Kusumadewi 2004)
119881119896119895 = sum ((120583119894119896)119908 times 119883119894119895)119899
119894=1
sum (120583119894119896)119908119899119894=1
(26)
Dimana
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
120583119894119896 = derajat keanggotaan pada data ke-i cluster ke-k
119883119894119895 = data sampel pada data ke-i attribut ke-j
119908 = pembobot
5 Langkah kelima melakukan perhitungan fungsi objektif pada iterasi ke-t P1 Perhitungan fungsi objektif ditunjukkan pada Persamaan 27 (Kusumadewi 2004)
119875119905 = sum sum ([sum (119883119894119895 minus 119881119896119895)119898119895=1
2](120583119894119896)119908)119888
119896=1119899119894=1 (27)
Dimana
119875119905 = fungsi objektif
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
6 Langkah keenam melakukan perhitungan perbaikan matriks partisi yang telah ditunjukkan Persamaan 28 (Kusumadewi 2004)
120583119894119896 = [sum (119883119894119895minus119881119896119895)119898
119895=12
]
minus1119908minus1
sum [sum (119883119894119895minus119881119896119895)119898119895=1
2]
minus1119908minus1119888
119896minus1
(28)
Dimana
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
119908 = pembobot
7 Langkah ketujuh yaitu melakukan pemerikasaan kondisi berhenti dengan kondisi sebagai berikut
a Jika (|119875119905 minus 119875119905minus1| lt 120585) atau ( t gt MaxIter) maka berhenti
b Jika tidak memenuhi t = t +1 ulangi mulai dari langkah ke-4
15
226 Metode Peramalan dengan Fuzzy Time Series
Pada tahun 1996 Chen memperkenalkan metode peramalan dengan menggunakan metode Fuzzy Time Series Metode Fuzzy Time Series memiliki perbedaan dengan metode peramalan time series biasa atau konvensional yaitu terdapat pada data yang digunakan untuk peramalan Fuzzy Time Series data yang digunakan adalah berupa fuzzy set atau himpunan fuzzy dari bilangan ndash bilangan real atas himpunan semesta yang ditentukan Jadi Fuzzy Time Series merupakan metode dengan menggunakan data berupa fuzzy set yang berasal dari bilangan real atas Universe of Discorse pada data aktual Universe of Discourse adalah himpunan semesta dari data penelitian
Berikut adalah langkah ndash langkah metode Fuzzy Time Series yang telah diperkenalkan oleh Chen terdapat enam langkah yaitu
1 Langkah pertama yaitu membagi Universe of Discourse dari bilangan aktual ke dalam subinterval dengan jumlah interval yang sama Perhitungan Universe of Discourse ditunjukkan pada Persamaan 29 (Chen 1996)
119880 = [119863119898119894119899 minus 1198631 119863119898119886119909 + 1198632] (29)
Dimana
119880 = Universe of Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
1198631 dan 1198632 = bilangan positif yang ditentukan oleh user untuk menentukan Universe of Discourse dari himpunan data sampel
2 Langkah kedua adalah mendefinisikan fuzzy set dari Universe of Discourse (U) menjadikan A1 A2 A3 An ke dalam fuzzy set dengan nilai linguistik sesuai dengan keadaan U Selanjutnya mendefinisikan fuzzy set tersebut ditunjukkan pada Persamaan 210 (Chen 1996)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (210)
1198602 =11989121
1199061+
11989122
1199062+
11989123
1199063+ ⋯ +
1198912119896
119906119896
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
Dimana 119891119894119895120598 [01] 1 le 119894 le 119896 dan 1 le 119895 le 119898 Variabel 119891119894119895 menunjukkan
derajat keanggotaan dari subinterval 119906119895 dari fuzzy set 1198601 Pada konsep ini
Chen menggunakan nilai linguistik 1198601 = (not many) 1198602 = (not too many) 1198603= (many) 1198604 = (many many) 1198605 = (very many) 1198606 = (too many) 1198607= (too many many) Kemudian nilai linguistik tersebut dimasukkan ke tiap fuzzy set Dari U tersebut dapat dibangun fuzzy set sebagai berikut
16
1198601 = 1
1199061+
05
1199062+
0
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198602 = 05
1199061+
1
1199062+
05
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198603 = 0
1199061+
05
1199062+
1
1199063+
05
1199064+
0
1199065+
0
1199066+
0
1199067
1198604 = 0
1199061+
0
1199062+
05
1199063+
1
1199064+
05
1199065+
0
1199066+
0
1199067
1198605 = 0
1199061+
0
1199062+
0
1199063+
05
1199064+
1
1199065+
05
1199066+
0
1199067
1198606 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
05
1199065+
1
1199066+
05
1199067
1198607 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
0
1199065+
05
1199066+
1
1199067
3 Langkah ketiga yaitu melakukan fuzzifikasi data historis proses fuzzifikasi merupakan proses merubah data aktual yang merupakan bilangan crisp ke dalam bentuk bilangan fuzzy Bilangan fuzzy yang dimaksudkan adalah dalam bentuk derajat keanggotaan Dari beberapa derajat keanggotaan yang terbentuk kemudian dipilih satu fuzzy set yang memiliki derajat keanggotaan teringgi Fuzzifikasi dinotasikan sebagai berikut jika F(t-1) berada pada fuzzy set Ak maka F(t-1) difuzzifikasikan sebagai Ak
4 Langkah keempat adalah mengidentifikasi Fuzzy Logic Relationship (FLR) FLR diidentifikasikan sebagai Ai dan F(t) difuzzifikasikan sebagai Ai rarr Aj Ai sebagai sisi kiri relationship disebut sebagai current state dan Aj sebagai sisi kanan relationship disebut next state Jika terjadi perulangan relationship maka tetap dihitung satu kali
5 Langkah kelima yaitu mengelompokkan menjadi Fuzzy Logical Relationship Group (FLRG) FLRG dibangun berdasarkan sisi kiri (current state) yang sama
6 Langkah terakhir yaitu langkah keenam adalah melakukan defuzzifikasi nilai keluaran peramalan Defuzzifikasi adalah mengubah nilai keluaran fuzzy menjadi bilangan crisp kembali sehingga diperoleh hasil akhir peramalan Defuzzifikasi didasarkan pada tiga (3) rule aturan yaitu (Chen 1996)
I Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai hanya memiliki satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj dimana nilai maksimum fungsi keanggotaanya berada pada 119906119895 maka nilai peramalan untuk n+1 adalah
nilai tengah dari 119906119895 atau didefinisikan dengan 119898119895
II Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai memiliki lebih dari satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj1 Aj2 Ajp Dimana nilai tengah untuk masing ndash masing Aj1 Aj2 Aj3 Ajp adalah mj1 mj2 mj3 mjp
maka nilai peramalan untuk n+1 adalah (mj1 mj2 mj3 mjp) p
III Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai tidak memiliki FLR pada FLRG dimana nilai maksimum fungsi keanggotaannya berada pada 119906119895
17
maka nilai peramalan untuk n+1 adalah nilai tengah dari 119906119895 atau
didefinisikan dengan 119898119895
227 Metode High Order Fuzzy Time Series Multi Factors
Metode High Order Fuzzy Time Series Multi Factors adalah metode Fuzzy Time Series (FTS) yang melibatkan beberapa faktor yang mempengaruhi peramalan dengan berdasarkan beberapa periode waktu sebelum periode yang akan diramalkan dalam proses pembentukkan Fuzzy Logical Relationship (FLR) Hasil peramalan dengan banyak faktor yang mempengaruhi dinilai lebih baik dari pada dengan hanya satu faktor yang mempengaruhi (LinYang 2009) Pada metode ini pembentukkan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan teknik klasterisasi fuzzy C-means Berikut adalah langkah ndash langkah Metode High Order Fuzzy Time Series Multi Factors (LinYang 2009)
1 Langkah pertama adalah melakukan perhitungan Universe of Discourse (U) Sebelum menghitung nilai U terlebih dulu menghitung nilai mean (rata ndash rata) sampel lalu menghitung nilai standar deviasi (120590) Mean merupakan perhitungan jumlah dari semua nilai dalam kumpulan data kemudian dibagi dengan jumlah total data untuk menghitung nilai mean ditunjukkan pada Persamaan 211 (Weisstein 2015) Standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel untuk menghitung nilai standar deviasi (120590) ditunjukkan pada Persamaan 212 (Weisstein 2015) Perhitungan U ditunjukkan pada Persamaan 213 (LinYang 2009)
119909 =sum 119909119894
119899119894=1
119899 (211)
Dimana
= mean (rata ndash rata)
119909119894 = nilai data ke-i
119899 = banyak data
120590 = radicsum (119909119894minus ) 2119899
119894=1
119899minus1 (212)
Dimana
120590 = Standar deviasi data
119880 = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590] (213)
Dimana
119880 = Universal 0f Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
18
2 Langkah kedua yaitu menentukan jumlah cluster data Proses klasterisasi bertujuan untuk membagi U kedalam beberapa subinterval Hasil perhitungan banyaknya cluster apabila bernilai pecahan maka harus dibulatkan menjadi bilangan bulat Perhitungan banyaknya cluster ditunjukkan pada Persamaan 214 (LinYang 2009)
119896 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905)minus119883(119905minus1)|119899
119905=1
119899minus1| (214)
Dimana
119896 = banyaknya jumlah cluster
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
119899 = banyaknya data sampel
119883(119905) = data pada waktu ke-t
3 Langkah ketiga yaitu melakukan pembentukan pusat cluster Pada metode ini proses klasterisasi data menggunakan fuzzy C-means (FCM) untuk mendapatkan pusat cluster sebanyak k Tahapannya U dibagi kedalam k subinterval (119863119898119894119899 1198891) (1198891 1198892) (1198892 1198893) hellip (119889119896minus1 119863119898119886119909) dimana di (i = 123k-1) merupakan titik tengah antara dua pusat cluster k subinterval didefinisikan sebagai 1199061 1199062 1199063 hellip 119906119896 Sehingga dalam hal ini subinterval
dengan panjang berbeda dapat menggambarkan struktur data kompleks dengan baik dan dapat meningkatkan peramalan dibandingkan menggunakan subinterval dengan panjang yang sama (LinYang 2009)
4 Langkah keempat yaitu melakukan pembentukan himpunan fuzzy atau fuzzy set Pada langkah ini fuzzy set direpresentasikan dengan kurva bahu Pembentukkan fuzy set ditunjukkan pada Persamaan 215 (LinYang 2009)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (215)
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
5 Langkah kelima yaitu proses fuzzifikasi Proses fuzzifikasi bertujuan untuk mengubah data sampel yang masih berupa bilangan crisp sehingga menjadi bilangan fuzzy Masing ndash masing data dihitung derajat keanggotaannya terhadap fuzzy set yang sudah terbentuk selajutnya derajat kanggotaan dihitung berdasarkan kurva bahu dan derajat keanggotaan tertinggi menunjukkan hasil fuzzifikasi data tersebut Contohnya A(t) B(t) C(t) dan D(t) dimana t= 123n merupakan time series dari faktor yang mempengaruhi serta n merupakan banyaknya data Berdasarkan pembagian subinterval masing ndash masing time series ini difuzzifikasikan Misalkan hasil dari Persamaan 215 yaitu menghitung banyak cluster dari k1 k2 k3 k4 Jadi time series difuzzifikasikan menjadi empat fuzzy time series yaitu
19
A(ti) dimana i = 1234k1
B(tj) dimana j = 1234k2
C(tp) dimana p = 1234k3
D(tq) dimana q = 1234k4 t = 123n
6 Langkah keenam yaitu melakukan pembentukkan Fuzzy Logical relationship (FLR) Data sampel sebanyak n periode dipilih sebagai data training untuk membentuk fuzzy time series model Misalkan t merupakan periode waktu yang akan diramal dengan menggunakan order ndash 3 maka tiga periode sebelum periode t adalah t-3 t-2 dan t-1 dimana t = 456n Maka FLR yang dihasilkan ditunjukkan pada Persamaan 216 dan berdasarkan persamaan tersebut maka akan membentuk sebuah kumpulan FLR dari data training (LinYang 2009)
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023)) (216)
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
Tabel 22 Fuzzy Logic Relationship
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023))
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
(119860(119905minus21198943) 119861(119905minus21198953) 119862(119905minus21199013) 119863(119905minus21199023))
(119860(119905minus11198942) 119861(119905minus11198952) 119862(119905minus11199012) 119863(119905minus21199022))
(119860(1199051198941) 119861(1199051198951) 119862(1199051199011) 119863(1199051199021)) rarr 119860(119905+11198944)
(119860(119905+119899minus71198943) 119861(119905+119899minus71198953) 119862(119905+119899minus71199013) 119863(119905+119899minus71199023))
(119860(119905+119899minus61198942) 119861(119905+119899minus61198952) 119862(119905+119899minus61199012) 119863(119905+119899minus61199022))
(119860(119905+119899minus51198941) 119861(119905+119899minus51198951) 119862(119905+119899minus51199011) 119863(119905+119899minus51199021)) rarr 119860(119905+119899minus41198944)
Sumber (LinYang 2009)
7 Langkah terakhir adalah proses Defuzzifikasi Berdasarkan langkah sebelumnya maka dapat diambil hasil fuzzy ke- H yaitu yang digunakan sebagai data testing atau data uji seperti yang ditunjukkan pada Persamaan 217 (LinYang 2009)
(119860(119867minus31198943) 119861(119867minus31198953) 119862(119867minus31199013) 119863(119867minus31199023)) (217)
(119860(119867minus21198942) 119861(119867minus21198952) 119862(119867minus21199012) 119863(119867minus21199022))
(119860(119867minus11198941) 119861(119867minus11198951) 119862(119867minus11199011) 119863(119867minus11199021)) rarr 119860(1198671198944)
20
Faktor ndash faktor di ruas kiri pada Persaman 217 dibandingkan satu per satu dengan FLR data training yang sudah dicatat sebelumnya pada Tabel 22 membandingkannya yaitu dengan cara menghitung nilai absolut dari selisih antara pangkat bawah kedua faktor pada posisi yang sama di FLR Terdapat 12 fuzzy set di ruas kiri pada masing ndash masing FLR sehingga dari hasil perbandingan diperoleh 12 nilai absolut yang kemudian dijumlahkan untuk mendapat total selisihnya Jadi jika total selisih lebih kecil dari threshold yang ditentukan maka FLR tersebut dinyatakan cocok (LinYang 2009)
Selanjutnya jika FLR menemukan N pasangan yang cocok pada Tabel 22 maka N faktor di ruas kanan dari N FLR ini mendasari peramalan fuzzy set A() yang mana jumlah dari setiap fuzzy set pada umumnya berbeda Untuk peramalan dengan fuzzy set ditunjukkan pada Tabel 23 (LinYang 2009)
Tabel 23 Peramalan fuzzy set
Ruas Kanan A(1) A(2) A(3) A(k1)
Pusat cluster c1 c2 c3 ck1
Frekuensi f1 f2 f3 fk1
Sumber (Lin Yang 2009)
Berdasarkan Tabel 23 dengan menggunakan metode centroid untuk melakukan proses defuzzifikasi Proses defuzzifikasi dapat ditunjukkan pada Persamaan 218 (LinYang 2009)
119903119867 =sum 119888119894times 119891119894
1198961119894=1
sum 119891119894119896119894119894=1
(218)
Dimana
119903119867 = hasil (result) peramalan data ke-H
119888119894 = pusat cluster i dimana A(i) adalah ruas kanan dari FLR hasil proses pencocokan
119891119894 = frekuensi banyaknya muncul A(i) pada saat proses pencocokan
228 Perhitungan keakuratan metode peramalan
Dalam perencanaan peramalan tentu menginginkan hasil ramalan yang tepat atau paling tidak hampir mendekati sehingga rencana yang dibuat menjadi rencana yang realistis Keakuratan atau ketepatan merupakan yang menjadi kriteria performance suatu metode peramalan Keakuratan tersebut dapat dinyatakan sebagai kesalahan peramalan (forecast error) Semaikin kecil nilai kesalahan peramalan maka semaikin tinggi keakuratan metode peramalan yang digunakan dan sebaliknya semakin tinggi nilai kesalahan maka semakin rendah keakuratan metode peramalan yang digunakan
Mean Square Error (MSE) adalah salah satu metode yang digunakan untuk menghitung nilai akurasi atau keakuratan dari metode yang digunakan sebagai peramalan atau prediksi MSE merupakan perhitungan pangkat dua dari selisih
21
antara nilai data hasil peramalan dengan nilai data aktual dan kemudian dibagi dengan banyaknya data yang telah diramalkan Pada penentuan nilai evaluasi memilih menggunakan metode MSE karena metode ini dapat menunjukan hasil skala kemiripan antara hasil data peramalan dengan data aktual Berikut merupakan metode Mean Square Error (MSE) yang ditunjukan pada Persamaan 219 (Wang Chen 2009)
119872119878119864 = sum (119865119905minus119860119905)2119899
119894=1
119899 (219)
Dimana 119872119878119864 = nilai Mean Square Error Rate 119860119905 = nilai aktual pada data ke-t 119865119905 = nilai hasil peramalan untuk data ke-t n = banyaknya data
22
BAB 3 METODOLOGI
Pada bab ini akan dibahas mengenai metode yang digunakan beserta tahap ndash tahap pengerjaan penelitian skripsi dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Penilitian ini digolongkan sebagai penelitian implementatif dengan pendekatan perancangan (design)
Metode penelitian ini meliputi studi literatur pengumpulan data perancangan implementasi pengujian dan analisis pengambilan kesimpulan Berikut adalah alur dari metode penelitian dapat ditunjukkan pada Gambar 31
31 Studi Literatur
Pada tahap studi literatur penelitian ini bertujuan untuk mempelajari literatur dan konsep dari beberapa informasi dan pustaka yang berkaitan dengan penelitian ini Literatur dan sumber ilmu dari penelitian ini diperoleh dari internet buku dan bimbingan oleh dosen pembimbing Adapun literatur yang dipelajari yaitu tentang curah hujan serta faktor ndash faktor yang mempengaruhinya dan metode High Order Fuzzy Time Series Multi Factors
Studi Literatur
Pengumpulan Data
Perancangan
Implementasi
Pengujian dan Analisis
Kesimpulan dan Saran
Gambar 31 Diagram blok metodologi penelitian
23
32 Pengumpulan Data
Pada tahap pengumpulan penelitian ini sumber data yang diperoleh yaitu dari Badan Meteorologi Klimatologi dan Geofisikia (BMKG) Stasiun Klimatologi Kelas III Karangkates Kabupaten Malang Data yang diperoleh untuk peramalan curah hujan yaitu data aktual time series (2011 - 2016) Data yang digunakan dalam bentuk dasarian yaitu dalam rentang waktu sepuluh hari sehingga dalam satu bulan dibagi menjadi tiga dasarian
Dasarian pertama yaitu pada tanggal 1 sampai dengan 10
Dasarian kedua yaitu pada tanggal 11 sampai dengan 20
Dasarian ketiga yaitu pada tanggal 21 sampai dengan akhir bulan
Pada penelitian ini data curah hujan dalam satuan milimeter (mm) kelembaban dalam persen () suhu udara dalam satuan celsius (˚C) kecepatan angin dalam satuan kilometer per jam (kmjam)
33 Perancangan
Pada tahap perancangan penelitian ini bertujuan untuk mengetahui rancangan ndash rancangan yang merupakan langkah yang dilakukan saat melakukan tahap implementasi Pada tahap ini terdapat beberapa perancangan yaitu perancangan proses yang berisi tahapan ndash tahapan proses metode High Order Fuzzy Time Series Multi Factors perhitungan manual yang merupakan manualisasi dari metode yang digunakan pada penelitian ini perancangan antar muka atau user interface yang berisi gambaran kasar dari tampilan antar muka prototype aplikasi yang nantinya diterapkan pada tahap implementasi selanjutnya adalah perancangan pengujian yang berisi rancangan ndash rancangan pengujian metode yang digunakan untuk mengetahui berapa tingkat kesalahan atau error yang dimiliki metode pada penelitian ini dalam melakukan peramalan curah hujan
34 Implementasi
Pada tahap implementasi peneltian ini dilakukan sesuai dengan perancangan yang telah dibuat pada tahapan perancangan sebelumnya Implementasi dari metode High Order Fuzzy Time Series Multi Factors dilakukan menggunakan bahasa pemrograman java serta Integrated Development Environment (IDE) yang digunakan adalah Netbeans Sehingga nantinya hasil dari tahap ini berupa prototype aplikasi dari implementasi metode High Order Fuzzy Time Series Multi Factors untuk peramalan curah hujan
35 Pengujian dan Analisis
Pada tahapan penelitian pengujian ini diperlukan perangkat lunak dan perangkat keras agar pengujian dari hasil implementasi dapat berjalan dengan baik maka pengujian perangkat lunak dijalankan pada laptop ataupun PC (Personal Computer) dengan spesifikasi sebagai berikut
24
1 Prosesor Intel Core i3
2 Memory RAM 8 Gigabytes
3 Sistem Operasi menggunakan Windows 7 64bit
4 Hardisk dengan kapasitas 500 GB
5 Netbeans 81 JDK 7
Pengujian hasil peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors yaitu menggunakan metode Mean Square Error (MSE) Dimana rumus pengujian sesuai dengan Persamaan 219 Dalam pengujian menggunakan metode ini semakin kecil nilai MSE maka semakin tinggi tingkat akurasi hasil peramalan tersebut Pada penelitian ini untuk keperluan pengujian dari proses implementasi dilakukan empat pengujian yaitu pengujian terhadap perbedaan nilai order pengujian terhadap perbedaan nilai threshold pengujian terhadap data training untuk mengetahui pengaruhnya terhadap nilai MSE dan pengujian validasi sistem untuk mengetahui bahwa hasil implementasi metode High Order Fuzzy Time Series Multi Factors dapat melakukan peramalan
36 Kesimpulan dan Saran
Pada pengambilan kesimpulan akan dilakukan apabila semua tahapan ndash tahapan penelitian sudah dilakukan yaitu yang meliputi perancangan implementasi dan pengujian dan analisis telah selesai dilakukan Kesimpulan merupakan tahapan dimana semua rumusan masalah yang sudah ditetapkan sebelumnya dapat terjawab semua Selanjutnya pada saran merupakan berkenaan dengan hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
25
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan yang nantinya digunakan sebagai dasar dalam tahap implementasi Hal yang dibahas meliputi perancangan proses perhitungan manual perancangan pengujian dan perancangan antar muka
41 Perancangan Proses
Pada perancangan proses ini berisi mengenai tahapan ndash tahapan dari metode yang digunakan yaitu metode High Order Fuzzy Time Series Multi Factors Pada penelitian ini melibatkan faktor ndash faktor yang mempengaruhi curah hujan yaitu suhu udara kelembaban udara dan kecepatan angin Data time series dari curah hujan merupakan faktor utama dalam proses peramalan pada penelitian ini Inputan pada peneltian ini yaitu data time series curah hujan serta faktor ndash faktor yang mempengaruhinya Order yang digunakan pada metode ini merupakan order lebih dari satu oleh karena itu disebut dengan High Order Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Berikut merupakan diagram alir dari proses peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors yang ditunjukkan pada Gambar 41 dan Gambar 42
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1)
Mulai
Data curah hujan suhu kelembaban kecepatan angin jmlh_Banyakdata jmlh_Faktor
Universe_of_Discourse
A
Jumlah_Cluster
26
411 Proses perhitungan Universe of Discourse
Pada perhitungan Universe of Discourse harus sudah dilakukan inputan data agar dapat memulai tahapan perhitungan Tahapan dari proses perhitungannya yaitu pada langkah pertama dilakukan perhitungan nilai mean (rata ndash rata) sesuai dengan Persamaan 211 Setelah mendapatkan nilai mean dapat dilakukan perhitungan untuk mencari nilai standar deviasi sesuai dengan Persamaan 212 Selanjutnya dicari nilai terkecil (119863119898119894119899) dan nilai terbesar (119863119898119886119909) Setelah menyelesaikan tahap ndash tahap tersebut dapat dilakukan perhitungan untuk
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2)
A
Perhitungan Pusat Cluster
Fuzzifikasi
Pembentukan Fuzzy Logical Relationship
Defuzzifikasi
Nilai hasil peramalan
Berhenti
Pembentukan Subinterval dan Fuzzy set
27
mencari Universe of Discourse sesuai dengan Persamaan 213 Berikut merupakan diagram alir dari proses perhitungan Universe of Discourse yang ditunjukkan pada Gambar 43
Perhitungan Universe of Discourse
Mulai
Min_dan_Max
mean
standar_deviasi
for i = 0 to jmlh_Faktor-1
i
hsl_uMin ke i = hsl_min ke i ndash hsl_stdev ke i
hsl_uMax ke i = hsl_max ke i + hsl_stdev ke i
hsl_uMin hsl_uMax
Berhenti
Gambar 43 Diagram alir proses perhitungan Universe of Discourse
28
4111 Proses perhitungan Mean
Pada proses perhitungan mean merupakan nilai rata ndash rata dari setiap faktor dimana nilai mean ini nantinya dibutuhkan untuk melakukan proses perhitungan standar deviasi Berikut merupakan diagram alir dari proses perhitungan mean yang ditunjukkan pada Gambar 44
mean
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
tmp_jmlh = 0
tmp_jmlh = tmp_jmlh + data ke ij
j
hsl_mean ke i = tmp_jmlhjmlh_DataTraining
i
hsl_mean
Berhenti
Gambar 44 Diagram alir proses perhitungan mean
29
4112 Proses perhitungan standar deviasi
Pada proses perhitungan standar deviasi dapat dilakukan setelah mendapatkan nilai mean dari setiap data sesuai proses sebelumnya Berikut merupakan diagram alir dari proses perhitungan standar deviasi yang ditunjukkan pada Gambar 45
standar_deviasi
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
result = 0
result = result + (data ke ij ndash mean ke i)2
j
hsl_stdev ke i = radicresult
jmlh_DataTrainingminus1
i
hsl_stdev
Berhenti
Gambar 45 Diagram alir proses perhitungan standar deviasi
30
4113 Proses perhitungan nilai Dmin dan Dmax
Pada proses perhitungan ini merupakan proses perhitungan untuk mencari nilai terkecil dan terbesar dari setiap faktor data Setelah mendapat nilai terkecil dan terbesar maka data dilakukan proses perhitungan Universe of Discourse Berikut merupakan diagran alir dari proses perhitungan nilai Dmin dan Dmax yang ditunjukkan pada Gambar 46
Gambar 46 Diagram alir perhitungan nilai Min dan Max
ya
ya
tidak
tidak
Min_dan_Max
Mulai
for i = 0 to jmlh_Faktor-1
besar = data ke i0
kecil = data ke i0
for j=0 to jmlh_DataTraining
data ke ij gt besar
besar = data ke ij
data ke ij lt kecil
kecil = data ke ij
j
hsl_max ke i = besar
hsl_min ke i = kecil
i
hsl_max hsl_min
Berhenti 1
1
2
2
3
4
4
5
5
3
31
412 Proses perhitungan jumlah cluster
Pada proses perhitungan jumlah cluster memiliki masukkan proses Dmin dan Dmax
dari proses perhitungan sebelumnya Pada proses ini terdapat perhitungan nilai dari selisih setiap data Pada perhitungan jumlah cluster sesuai dengan Persamaan 214 Berikut merupakan langkah ndash langkah perhitungan jumlah cluster yang ditunjukkan pada Gambar 47
jumlah_Cluster
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to (jmlh_DataTraining-1)
Berhenti
hsl_max hsl_min
selisih = 0
selisih = selisih + |data ke ij ndash data ke i (j+1)|
j
jmlh_Cluster ke i = |ℎ119904119897_119898119894119899 119896119890 119894minusℎ119904119897_119898119886119909 119896119890 119894|
119904119890119897119894119904119894ℎ
119895119898119897ℎ_119863119886119905119886119879119903119886119894119899119894119899119892minus1
i
jmlh_Cluster
Gambar 47 Diagram alir proses perhitungan jumlah cluster
32
413 Proses perhitungan pusat cluster
Pada proses perhitungan pusat cluster ini diperlukan beberapa variabel yang harus dideklarasikan terlebih dahulu yaitu nilai bobot fungsi objektif nilai iterasi awal nilai iterasi maksimum dan error terkecil Perhitungan subinterval ini menggunakan metode fuzzy C-means yang diawali dengan pencarian pusat cluster terlebih dahulu Berikut merupakan langkah ndash langkah perhitungan subinterval yang ditunjukkan pada Gambar 48 Gambar 49 Gambar 410 Gambar 411 Gambar 412
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1)
Perhitungan pusat cluster
Mulai
jmlh_Cluster
for i = 0 to jmlh_Faktor-1
Deklarasi bobot selisih_f_objektif
iter_maksimum error_min
Pembentukan Matriks partisi faktor A jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor A
for iter = iter to iter_maksimum
A
i == 0
Perhitungan pusat_cluster1 faktor A
B C D
tidak
ya
33
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2)
ya
tidak
tidak
ya
Perhitungan f_objektif faktor A
A B C D
Perhitungan selisih_f_objektif faktor A
Perbaikan matriks partisi faktor A
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster1 faktor A
Iter = iter_maksimum
iter
i == 1
Pembentukan Matriks partisi faktor B jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor B
for iter = iter to iter_maksimum
F A G E
34
tidak
tidak
ya
A E F G
Perhitungan pusat_cluster2 faktor B
Perhitungan f_objektif faktor B
Perhitungan selisih_f_objektif faktor B
Perbaikan matriks partisi faktor B
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster2 faktor B
Iter = iter_maksimum
iter
i == 2
Pembentukan Matriks partisi faktor C jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor C
I A H
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3)
ya
35
tidak
tidak
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4)
ya
A H I
for iter = iter to iter_maksimum
Perhitungan pusat_cluster3 faktor C
Perhitungan f_objektif faktor C
Perhitungan selisih_f_objektif faktor C
Perbaikan matriks partisi faktor C
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster3 faktor C
Iter = iter_maksimum
iter
i == 3
Pembentukan Matriks partisi faktor D jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor D
J A K
ya
36
tidak
ya
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5)
A K J
for iter = iter to iter_maksimum
Perhitungan pusat_cluster4 faktor D
Perhitungan f_objektif faktor D
Perhitungan selisih_f_objektif faktor D
Perbaikan matriks partisi faktor D
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster4 faktor D
Iter = iter_maksimum
iter
i
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
Berhenti
37
tidak
ya
tidak
ya
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1)
414 Proses pembentukan subinterval dan Fuzzy set
Pada proses pembentukan fuzzy set atau himpunan fuzzy pada penelitian ini dapat dilakukan setelah perhitungan subinterval selesai dilakukan Nilai subniterval merupakan masukan utama pada pembentukkan fuzzy set Pembentukan fuzzy sesuai dengan Persamaan 215 Berikut merupakan langkah ndash langkah proses pembentukan fuzzy set yang ditunjukkan pada Gambar 413 dan Gambar 414
Pembentukan subinteval dan Fuzzy set
Mulai
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
for i = 0 to jmlh_Faktor-1
Menentukan batas_subintervalMinA dan
batas_subintervalMaxA
Menentukan batas_fuzzysetMinA dan batas_fuzzysetMaxA
i == 0
i == 1
Menentukan batas_subintervalMinB dan
batas_subintervalMaxB
Menentukan batas_fuzzysetMinB dan batas_fuzzysetMaxB
A C B
38
tidak
tidak
ya
ya
415 Proses Fuzzifikasi
Pada proses fuzzifikasi ini pembentukanya sesuai derajat keanggotaan pada setiap data Pada proses ini derajat keanggotaan dihitung berdassarkan fungsi keanggotaan kurva bahu Hasil dari proses ini merupakan data yang sudah difuzzifikasikan menjadi data fuzzy Berikut langkah ndash langkah dari proses fuzzifikasi ditunjukkan pada Gambar 415 dan Gambar 416
i == 2
A B C
Menentukan batas_subintervalMinC dan batas_subintervalMaxC
Menentukan batas_fuzzysetMinC dan batas_fuzzysetMaxC
i == 3
Menentukan batas_subintervalMinD dan batas_subintervalMaxD
Menentukan batas_fuzzysetMinD dan batas_fuzzysetMaxD
i
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
Berhenti
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2)
39
tidak
ya
ya
tidak
Fuzzifikasi
Mulai
for i = 0 to jmlh_Faktor-1
Menentukan hasil_fuzzifikasiA dari faktor A
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinA batas_fuzzysetMaxA
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1)
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
DD
i == 0
i == 1
Menentukan hasil_fuzzifikasiB
dari faktor B
Menghitung derajat keanggotaan
berdasarkan batas_fuzzysetMinB
batas_fuzzysetMaxB
C A B
40
tidak
ya
ya
tidak
ya
i == 2
A B C
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinC batas_fuzzysetMaxC
Menentukan hasil_fuzzifikasiC dari faktor C
i == 3
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinD
batas_fuzzysetMaxD
Menentukan hasil_fuzzifikasiD dari faktor D
i
hasil_fuzzifikasiA hasil_fuzzifikasiB hasil_fuzzifikasiC hasil_fuzzifikasiD
Berhenti
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2)
41
tidak
ya
416 Proses pembentukan Fuzzy Logical Relationship
Setelah data melalui proses fuzzifikasi dan sudah menjadi data fuzzy maka dapat dilakukan pembentukan Fuzzy Logical Relationship (FLR) Pembentukan FLR dilakukan sesuai dengan Persamaan 216Berikut adalah langkah ndash langkah proses pembentukan Fuzzy Logical Relationship (FLR) yang ditunjukkan pada Gambar 417 Gambar 418 dan Gambar 419
Gambar 417 Diagram alir proses Pembentukan FLR
(bagian 1)
Pembentukan Fuzzy Logical Relationship
Mulai
hasil_fuzzifikasiAhasil_fuzzifikasiB hasil_fuzzifikasiChasil_fuzzifikasiD order
for i = 0 to jmlh_dataTraining
max_inc = order jmlh_dataTraining = dataTraining - order
for j = i to max_inc
for k = 0 to jmlh_Faktor-1
j == 0
FLR_kiri_training ke ijk = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D)
ke j
E A B C D
42
ya
tidak
ya
tidak
A B C E D
FLR_kiri_training ke i(j-i)k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
j = 0
k
j
FLR_kanan_training ke i = hasil_fuzzifikasiA ke (i+order)
Max_inc lt (jmlh_DataTraining-1)
i
tmp_JmlhDatatraining = tmp_JmlhDatatraining +1
max_inc = max_inc + 1 tmp_JmlhDatatraining = i
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2)
for j = 0 to tmp_JmlhDatatraining
for j = tmp_JmlhDatatraining to max_inc
for k = 0 to jmlh_Faktor-1
I H G F
43
tidak
ya
417 Proses Defuzzifikasi
Proses defuzzifikasi merupakan proses akhir dimana keluaran dari proses ini merupakan nilai hasil peramalan Data yang diperlukan pada proses defuzzifikasi adalah hasil dari proses pembentukan Fuzzy Logical Relationship (FLR) nilai threshold yang harus dideklarasikan sebelumnya jumlah data training dan jumlah data testing Dalam proses ini dilakukan perhitungan selisih pada FLR antara data testing dan data training FLR yang dihitung nilai selisihnya adalah FLR pangkat bawah yang terdapat pada ruas kiri Setelah dilakukan perhitungan selisih dan total jumlah selisih lebih kecil dari nilai threshold maka pada setiap FLR yang
I H G F
FLR_kiri_testing ke i(j-tmp_jmlhDatatraining) k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
k
j
FLR_kanan_testing ke i = hasil_fuzzifikasiA ke (i+order)
i
Max_inc lt (jmlh_DataTraining-1)
max_inc = max_inc + 1 tmp_JmlhDatatraining++
FLR_kiri_training FLR_kanan_training FLR_kiri_testing FLR_kanan_testing
Mulai
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3)
44
ya
tidak
sesuai dengan kondisi tersebut dapat dikatakan cocok atau dapat dilakukan ke tahap perhitungan selanjutnya Setelah mendapatkan FLR yang cocok maka dilakukan pengelompokkan berdasarkan FLR ruas kanan Pengelompokkan ini dihitung jumlah frekuensi yang sama sesuai dengan fuzzy set di ruas kanan Selanjutnya untuk memperoleh hasil peramalan dilakukan proses perhitungan sesuai dengan Persamaan 218 Berikut adalah langkah ndash langkah proses defuzzifikasi yang ditunjukkan pada Gambar 420 dan Gambar 421
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1)
Defuzzifikasi
Mulai
FLR_kiri FLR_kanan order dataTraining dataTesting konstanta
threshold = (jmlh_Faktor x order)+konstanta
for i = 0 to dataTesting
for j = 0 to (dataTraining-i)
Perhitungan hitung_selisih antara FLR_kiri data training dan data testing
hitung_selisih lt threshold
match ke ij = hitung_selisih
j
i
A
45
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2)
A
Menghitung jumlah total FLR_kiri yang cocok untuk setiap data testing
Mencocokan FLR_kiri yang cocok dengan FLR_kanan untuk setiap data testing
for i = 0 to dataTesting
Menghitung frekuensi setiap FLR_kanan yang cocok untuk setap data testing
for j = 0 to jumlah total FLR kiri yang cocok
peramalan = peramalan + Frekuensi setiap FLR_kanan yang cocok x pusat_cluster1
sesuai dengan value FLR_kanannya
j
hasil_peramlan ke i = peramalan jumlah total FLR kiri yang cocok
i
Hasil_permalan
Berhenti
46
42 Perhitungan Manual
Dalam perhitungan manual ini data sampel yang digunakan merupakan data time series dasarian ke-2 pada periode April 2014 sampai dengan dasarian ke-2 Juli 2014 data sampel ditunjukkan pada Tabel 41
Tabel 41 Data Sampel Perhitungan Manual
No Dasarian Curah Hujan
(A)
Suhu (B) Kelembaban (C)
Kecepatan Angin(D)
1 Dasarian 2 (April 2014) 95 2615 8248 629
2 Dasarian 3 (April 2014) 90 2612 8247 628
3 Dasarian 1 (Mei 2014) 94 2607 8247 627
4 Dasarian 2 (Mei 2014) 83 2625 8232 623
5 Dasarian 3 (Mei 2014) 85 2628 8235 623
6 Dasarian 1 (Juni 2014) 92 2609 8241 626
7 Dasarian 2 (Juni 2014) 86 2627 8235 624
8 Dasarian 3 (Juni 2014) 89 2621 8238 624
9 Dasarian 1 (Juli 2014) 93 2607 8242 626
10 Dasarian 2 (Juli 2014) 86 2626 8237 623
Sumber BMKG Kelas III Karangkates Malang
421 Perhitungan Universe of Discourse (U)
Sebelum melakukan perhitungan U maka harus dicari terlebih dahulu nilai 119863119898119894119899 119863119898119886119909 dan standar deviasi 119863119898119894119899 adalah nilai minimum atau nilai terkecil dari data sampel yang ada sedangkan 119863119898119886119909 adalah nilai maksimum atau nilai paling besar dari data sampel yang ada Untuk mencari nilai standar deviasi harus menghitung nilai mean (rata ndash rata) terlebih dahulu sesuai dengan Persamaan 211 Mean dari data curah hujan (A) dihitung dengan cara sebagai berikut
Mean = (data ke-1 + data ke-2 + data ke-3 + + data ke-10) 10
= (95 + 90 + 94 + 83 + 85 + 92 + 86 + 89 + 93 + 86) 10
= 893 10
= 893
Selanjutnya setelah diperoleh nilai mean dilanjutkan melakukan perhitungan standar deviasi sesuai dengan Persamaan 212 Standar deviasi adalah akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Untuk menghitung standar deviasi agar lebih mudah kita terlebih dahulu melakukan perhitungan nilai kuadrat dari selisih data ke-i dan mean yang ditunjukkan pada Tabel 42
47
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean
i Data ke-i Data ke-i mean (Data ke-i - mean)sup2
1 95 57 32490
2 90 07 0490
3 94 47 22090
4 83 -63 39690
5 85 -43 18490
6 92 27 7290
7 86 -33 10890
8 89 -03 0090
9 93 37 13690
10 86 -33 10890
Jumlah 1561
Setelah mendapatkan hasil nilai kuadrat dari selisih data ke-i dan mean sesuai dengan Tabel 42 maka dapat dilanjutkan melakukan perhitungan standar deviasi dengan cara sebagai berikut
Standar_deviasi = radic1
10minus1sum (119889119886119905119886 119896119890 minus 119894 minus 119898119890119886119899)10
119894=1
2
= radic1
9 times 1561
= 4165
Untuk perhitungan standar deviasi juga dilakukan pada faktor lainnya yaitu suhu (B) kelembaban (C) dan kecepatan angin (D) Hasil perhitungan 119863119898119894119899 119863119898119886119909 dan standar deviasi ditunjukkan pada Tabel 43
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi
Data D min D max Standar Deviasi
A 83 95 4165
B 2607 2628 0086
C 8232 8248 0057
D 623 629 0022
Berdasarkan hasil yang ditunjukkan Tabel 43 selanjutnya dapat dilakukan perhitungan nilai U sesuai dengan Persamaan 213 Berikut adalah perhitungan U pada data A
U = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590]
= [(83 ndash 4165) (95 ndash 4165)]
= [78835 99165]
48
Untuk perhitungan U juga dilakukan pada semua faktor yaitu data B C dan D Sehingga diperoleh nilai U yang ditunjukkan pada Tabel 44
Tabel 44 Hasil Universe of Discourse
Data U
Batas Bawah Batas Atas
A 78835 99165
B 25984 26366
C 82263 82537
D 6208 6312
422 Perhitungan jumlah cluster (k)
Pada perhitungan jumlah cluster langkah pertamanya adalah mencari nilai absolut dari selisih data hari ke-t dengan hari sebelumnya Perhitungan selisih dilakukan hingga data ke-10 Perhitungan nilai selisih dilakukan pada semua data A B C dan D Selanjutnya masing ndash masing nilai selisih dijumlah sehingga hasilnya seperti ditunjukkan pada Tabel 45
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya
No Tanggal A B C D
1 Dasarian 3 (April 2014) 5 003 001 001
2 Dasarian 1 (Mei 2014) 4 005 0 001
3 Dasarian 2 (Mei 2014) 11 018 015 004
4 Dasarian 3 (Mei 2014) 2 003 003 0
5 Dasarian 1 (Juni 2014) 7 019 006 003
6 Dasarian 2 (Juni 2014) 6 018 006 002
7 Dasarian 3 (Juni 2014) 3 006 003 0
8 Dasarian 1 (Juli 2014) 4 014 004 002
9 Dasarian 2 (Juli 2014) 7 019 005 003
Jumlah 49 105 043 016
Setelah mendapatkan nilai absolut selisih data hari ke-t dengan hari sebelumnya dapat dilanjutkan dengan menghitung jumlah cluster sesuai dengan Persamaan 214 Perhitungan jumlah cluster pada data A (k1) berdasarkan pada Tabel 43 diketahui nilai 119863119898119894119899 adalah 171 nilai 119863119898119886119909 adalah 2048 maka jumlah cluster data A dapat ditunjukkan sebagai berikut
49
1198961 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905) minus 119883(119905 minus 1)|119899
119905=1
119899 minus 1|
= |83 minus 9549
10minus1| = 2204
Apabila hasil perhitungan jumlah cluster merupakan bilangan pecahan maka hasilnya harus dibulatkan Sehingga jumlah cluster pada data A adalah 2 Perhitungan jumlah cluster juga dilakukan pada data B (k2) C (k3) dan D (k4) Berikut merupakan hasil semua perhitungan jumlah cluster yang ditunjukkan pada Tabel 46
Tabel 46 Hasil jumlah cluster data
No Cluster Jumlah Cluster
1 k1 2
2 k2 2
3 k3 3
4 k4 3
423 Perhitungan pusat cluster dan subinterval
Pada pembentukan subinterval berdasarkan pada Tabel 46 yang menunjukkan jumlah subinterval yang selanjutnya digunakan untuk menentukan pusat cluster menggunakan algoritma fuzzy C-means (FCM)
4231 Penentuan pusat cluster
a Penentuan nilai variabel
Pada penentuan subinterval diawali dengan klasterisasi menggunakan algoritma FCM pada awal proses ditentukkan beberapa variabel sebagai berikut
Banyak cluster = k1 = 2
Bobot (w) = 2
Fungsi objektif awal = 0
Iterasi awal = 1
Iterasi maksimum = 100
Error terkecil = 001 b Pembentukan matriks partisi awal (micro)
Data pada pembentukan matriks partisi awal merupakan nilai random diantara nilai 0 sampai 1 Dimensi pada matriks partisi awal dibentuk dengan dimensi jumlah data (i) x jumlah cluster (k) Dalam hal ini telah diketahui jumlah data adalah 10 dan k1 adalah 2 maka partisi dimensi matriks awal adalah 10 x 2 Hasil pembentukan matriks partisi awal ditunjukkan pada Tabel 47 dimana Cluster disimbolkan dengan C
50
Tabel 47 Matriks partisi awal pada cluster data A
c Normalisasi matriks partisi awal
Langkah pertama normalisasi matriks partisi awal adalah dengan menghitung jumlah bilangan penyusun matriks pada setiap kolom yang dapat dilihat pada Tabel 47 dijumlah berdasarkan dengan Persamaan 24 Diketahui jumlah kolom matriks sebanyak 2 sehingga diperoleh Q1 untuk penjumlahan kolom c1 Q2 untuk penjumlahan kolom c2
Q1 = 0355 + 0174 + 02 + 0387 + 0598 + 0819 + 0702 + 0719 + 0349 +
0852
= 5154
Q2 = 0170 + 0815 + 0190 + 0456 + 0526 + 0170 + 0232 + 0572 + 0102 +
0322
= 3554
Langkah selanjutnya dilakukan proses normalisasi menggunakan Persamaan 25 Dimana setiap bilangan penyusun matriks awal dibagi dengan nilai Q sesuai dengan kolomnya masing ndash masing Bilangan penyusun matriks disimbolkan dengan microik dimana i menunjukkan baris dan k menunjukkan kolom posisi bilangan tersebut pada matriks
i micro
c1 c2
1 0355 0170
2 0174 0815
3 0200 0190
4 0387 0456
5 0598 0526
6 0819 0170
7 0702 0232
8 0719 0572
9 0349 0102
10 0852 0322
51
μ11 = bilangan matriks partisi pada baris 1 kolom 1
Q1
= 0355
5154
= 0069
μ12 = bilangan matriks partisi pada baris 1 kolom 2
Q2
= 0170
3554
= 0048
Setelah melakukan perhitungan seperti diatas untuk semua bilangan matriks sehingga matriks partisi sudah ternormalisasi seperti yang ditunjukkan pada Tabel 48
Tabel 48 Derajat keanggotaan matriks partisi data A
i micro
C1 C2
1 0069 0048
2 0034 0229
3 0039 0054
4 0075 0128
5 0116 0148
6 0159 0048
7 0136 0065
8 0140 0161
9 0068 0029
10 0165 0090
d Perhitungan pusat cluster (V)
Pada perhitungan pusat cluster (V) berdasarkan Persamaan 26 Dimana setiap bilangan penyusun matriks partisi (micro) dipangkatkan dengan w dimana variabel w yang sudah dideklarisakan terlebih dahulu dengan nilai sama dengan 2 dan dikalikan dengan bilangan penyusun matriks X yang merupakan matriks berisi data yang ada pada Tabel 41 Selanjutnya hasil perkalian tersebut dijumlah dan dibagi dengan jumlah hasil kuadrat dari bilangan penyusun matriks partisi Hasil perhitungan ditunjukkan pada Tabel 49
52
Tabel 49 Perhitungan pusat cluster data A
Berdasarkan jumlah cluster dari data A yaitu 2 maka terdapat 2 pusat cluster (V) yaitu V1 V2 Perhitungan nilai V adalah sebagai berikut
V1 = sum ((μic1)2 times Xi)10
i=1
sum (μic1)210i=1
= 10730216
0121620
= 8822718207
V2 = sum ((μic2)2 times Xi)10
i=1
sum (μic2)210i=1
= 12111287
0137572
= 8803592572
Jadi berdasarkan perhitungan diatas pusat cluster untuk data A pada iterasi ke-1 adalah 8822718207 8803592572
e Perhitungan fungsi objektif (P)
Pada perhitungan P menggunakan Persamaan 27 dimana setiap baris pada data matriks X dikurangi pusat cluster (V) selanjutnya dikuadratkan Hasilnya
i X microsup2 microsup2 x X
C1 C2 C1 C2
1 95 0004731 0002292 0449450 0217718
2 90 0001137 0052633 0102304 4736927
3 94 0001512 0002864 0142117 0269234
4 83 0005630 0016427 0467258 1363472
5 85 0013448 0021907 1143107 1862112
6 92 0025233 0002291 2321422 0210787
7 86 0018542 0004243 1594602 0364916
8 89 0019487 0025916 1734356 2306543
9 93 0004590 0000816 0426841 0075870
10 86 0027311 0008183 2348759 0703706
Jumlah 0121620 0137572 10730216 12111287
53
kemudian dikalikan dengan micro yang sudah dipangkatkan dengan bobot (w) seperti yang telah ditunjukkan pada Tabel 49 Selanjutnya hasil tersebut dijumlah per kolom seperti yang ditunjukkan pada Tabel 410
Tabel 410 Fungsi objektif data A
i X (X-V)sup2 (X-V)sup2 x microsup2
C1 C2 C1 C2
1 95 458711 484983 02170 01111
2 90 31429 38576 00036 02030
3 94 333254 355702 00504 01019
4 83 273234 253605 01538 04166
5 85 104147 92168 01401 02019
6 92 142342 157139 03592 00360
7 86 49603 41450 00920 00176
8 89 05972 09294 00116 00241
9 93 227798 246420 01046 00201
10 86 49603 41450 01355 00339
Jumlah 1267661573 1166282827
Fungsi Objektif (P) 24339444
Perhitungan nilai fungsi objektif dilakukan seperti Persamaan 27 Nilai fungsi objektif diperoleh dengan cara sebagai berikut P = sum sum ([(Xi minus Vc)2](μik)2)3
c=110i=1
P = 1267661573 + 1166282827
= 24339444
f Perbaikan matriks partisi
Pada langkah ini perbaikan matriks partisi dilakukan berdasarkan Persamaan 28 Data matriks X untuk setiap barisnya dikurangi pusat cluster lalu dikuadratkan seperti yang ditunjukkan pada Tabel 410 Selanjutnya hasilnya dipangkatkan dengan -11 karena w-1 = 1 Hasil pangkat -1 terhadap (X-V)2 ditunjukkan pada Tabel 411
54
Tabel 411 Perbaikan matriks partisi
i ((X-V)sup2)^-1
Jumlah C1 C2
1 0022 0021 0042
2 0318 0259 0577
3 0030 0028 0058
4 0037 0039 0076
5 0096 0108 0205
6 0070 0064 0134
7 0202 0241 0443
8 1674 1076 2750
9 0044 0041 0084
10 0202 0241 0443
Berdasarkan tabel diatas bilangan penyusun matriks partisi yang baru atau yang telah diperbaiki diperoleh dari hasil pembagian data terhadap jumlah per barisnya
12058311 = 0022
0042= 0514
12058312 = 0021
0042= 0486
Pada perhitungan nilai matriks yang sudah diperbaiki dilakukan pada semua elemen matriks sehingga hasil perbaikan matriks seperti yang ditunjukkan pada Tabel 412
Tabel 412 Hasil perbaikan matriks partisi
Setelah mendapatkan hasil perbaikan matriks partisi kita lakukan pengecekan selama iterasi kurang dari iterasi maksimum (maxIter) atau selisih antara fungsi objektif iterasi saat ini dengan iterasi sebelumnya bernilai lebih dari nilai error terkecil yaitu 001 maka proses berlanjut dengan kembali melakukan perhitungan pusat cluster hingga perbaikan matriks partisi Hasil
i micro
C1 C2
1 0514 0486
2 0551 0449
3 0516 0484
4 0481 0519
5 0469 0531
6 0525 0475
7 0455 0545
8 0609 0391
9 0520 0480
10 0455 0545
55
perhitungan pusat cluster dari data A B C dan D setelah dilakukan proses tiga kali iterasi dan diurutkan mulai dari yang terkecil sampai yang terbesar ditunjukkan pada Tabel 413
Tabel 413 Hasil pusat cluster
4232 Perhitungan batas subinterval
Perhitungan batas subinterval dilakukan dengan mencari nilai tengah (Median) dari setiap pusat cluster Berikut merupakan contoh perhitungan batas subinterval pada data A
a Interval 1 Batas bawah = 78835 (Batas bawah Universe of Discourse pada data A) Batas atas = 89347 (Median 88303 dan 90390)
b Interval 2 Batas bawah = 89347 (Median 88303 dan 90390) Batas atas = 99165 (Batas atas Universe of Discourse pada data A)
Seperti perhitungan diatas juga dilakukan pada data suhu (B) kelembaban (C) dan kecepatan angin (D) Dalam hal ini jumlah subinterval setiap atribut berbeda ndash beda sesuai dengan jumlah cluster yang sebelumnya ditunjukkan pada Tabel 46 Berikut merupakan batas subinterval masing ndash masing atribut yang ditunjukkan pada Tabel 414
Tabel 414 Batas subinterval masing ndash masing atribut data
Interval (micro)
A B C D
1
78835 25984 751708 6208
sd sd sd sd
89347 26181 823863 6249
2
89347 26181 823863 6249
sd sd sd sd
99165 26366 82411 6256
3
82411 6256
- - sd sd
82537 6312
Cluster A B C D
1 88303 26165 82391 62497
2 90390 26197 82408 62499
3 - - 82415 62613
56
424 Pembentukan Fuzzy Set
Pembentukan fuzzy set berdasarkan pada derajat keanggotaan dari subinterval (micro) fuzzy set dari data A ditentukan dengan derajat keanggotaan sebagai berikut
A1 = 1micro1 + 05micro2
A2 = 05micro1 + 1micro2
Pada derajat keanggotaan data A diatas simbol ldquo+rdquo menunjukkan operator himpunan gabungan Berdasarkan subinterval pada Tabel 414 nilai batas fuzzy set dari data atribut A dapat ditentukan dengan cara sebagai berikut
A1 = 78835 sd 94256 (Batas bawah interval 1 sd titik tengah interval 2)
A2 = 84091 sd 99165 (Titik tengah interval 1 sd batas atas interval 2)
Setelah diketahui batas masing ndash masing fuzzy set grafik fungsi keanggotaan fuzzy set data A yang direpresentasikan dalam kurva bahu yang ditunjukkan pada Gambar 422 Dengan cara yang sama juga ditentukan pula fuzzy set dari data attribut B C dan D
425 Fuzzifikasi
Pada langkah fuzzifikasi dilakukan dengan mencari derajat keanggotaan yang memiliki nilai paling besar (maksimum) dari masing ndash masing data terhadap fuzzy set yang sudah terbentuk Derajat keanggotaan dicari berdasarkan fungsi keanggotaan kurva bentuk bahu Berikut ini adalah perhitungan derajat keanggotaan dari data attribut A
Data aktual curah hujan (A) pada April 2014 dasarian ke-3 = 90
1198601 = 942558 ndash 90
942558minus840911= 041868427
Gambar 422 Grafik fuzzy set data A
57
1198602 = 90minus840911
942558minus840911= 058131636
Derajat keanggotaan paling besar berada pada A2 sehingga data attribut A pada April 2014 dasarian ke-3 difuzzifikasikan ke fuzzy set A2 Perhitungan yang sama dilakukan pada seluruh data attribut A sehingga didapat derajat keanggotaan dan hasil fuzzifikasi dari data A ditunjukkan pada Tabel 415
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A
i Data A1 A2 Fuzzyfikasi
1 95 0 1 A2
2 90 041868363 058131636 A2
3 94 002516357 097483642 A2
4 83 1 0 A1
5 85 09105837 008941629 A1
6 92 02219236 077807639 A2
7 86 08122036 018779631 A1
8 89 05170636 048293635 A1
9 93 01235436 087645641 A2
10 86 08122037 018779631 A1
Perhitungan yang sama juga dilakukan pada semua attribut yaitu attribut B C dan D Sehingga dapat diperoleh hasil fuzzifikasi sesuai derajat keanggotaan dengan nilai paling besar Berikut adalah hasil fuzzifikasi untuk semua attribut yang dapat dilihat pada Tabel 416
Tabel 416 Hasil fuzzifikasi semua data attribut
No Tanggal A B C D
1 Dasarian 2 (April 2014) A2 B1 C3 D3
2 Dasarian 3 (April 2014) A2 B1 C3 D3
3 Dasarian 1 (Mei 2014) A2 B1 C3 D3
4 Dasarian 2 (Mei 2014) A1 B2 C1 D1
5 Dasarian 3 (Mei 2014) A1 B2 C1 D1
6 Dasarian 1 (Juni 2014) A2 B1 C2 D2
7 Dasarian 2 (Juni 2014) A1 B2 C1 D1
8 Dasarian 3 (Juni 2014) A1 B2 C2 D1
9 Dasarian 1 (Juli 2014) A2 B1 C2 D2
10 Dasarian 2 (Juli 2014) A1 B2 C2 D1
58
426 Pembentukan Fuzzy Logical Relationship (FLR)
Pada tahap pembentukan FLR dengan berdasarkan nilai order yang sudah ditentukan Pada manualisasi ini berdasarkan dari Tabel 416 di misalkan nilai order kita deklarasikan dengan nilai 3 sehingga dapat menghasilkan 7 FLR Hasil pembentukan FLR Data training dapat ditunjukkan pada Tabel 417 Hasil pembentukan FLR Data testing dapat ditunjukkan pada Tabel 418
Tabel 417 Hasil pembentukan FLR data training
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(32)B(31)C(33)D(33)) rarr A1
2 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(31)B(32)C(31)D(31)) rarr A1
3 (A(12)B(11)C(13)D(13)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(31)D(31)) rarr A2
4 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(21)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
5 (A(11)B(12)C(11)D(11)) (A(22)B(21)C(22)D(22)) (A(31)B(32)C(31)D(31)) rarr A1
Tabel 418 Hasil pembentukan FLR data testing
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(12)D(12)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(32)D(31)) rarr A2
2 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(22)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
427 Defuzzifikasi
Pada tahap ini misalkan jumlah data yang digunakan untuk data uji atau data testing adalah dua yaitu yang pertama data periode ke-9 dan yang kedua data periode ke-10 Sehingga yang digunakan data latih atau data training adalah data pada periode ke-1 sampai data periode ke-8 Pada data testing yang pertama melibatkan FLR ke-1 sampai FLR ke-5 untuk disesuaikan dengan FLR ke-6 yang berdasarkan pada Tabel 417 Pada data testing yang kedua melibatkan FLR ke-1 sampai FLR ke-6 untuk disesuaikan dengan FLR ke-7 yang berdasarkan pada Tabel 417 Selanjutnya setiap ruas kiri FLR data testing dibandingkan dengan FLR data training yaitu pada bilang pangkat bawah fuzzy set dibandingkan sesuai dengan posisinya dan dihitung selisihnya Hasil dari perhitungan selisih tersebut dijumlahkan dan apabila jumlah selisihnya kurang dari threshold maka FLR tersebut dikatakan cocok Threshold merupakan dari hasil mengalikan jumlah order dengan jumlah faktor kemudian dijumlahkan dengan dengan sebuah konstanta Contoh perhitungan selisih nilai ruas kiri FLR pada data testing pertama adalah sebagai berikut
59
Data testing = (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(32) B(31) C(33) D(33)) rarr A1
Data training =
1 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
2 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
3 (A(12) B(11) C(13) D(13)) (A(21) B(22) C(21) D(21)) (A(31) B(32) C(31) D(31)) rarr A2
4 (A(11) B(12) C(11) D(11)) (A(21) B(22) C(21) D(21)) (A(32) B(31) C(32) D(32)) rarr A1
5 (A(11) B(12) C(11) D(11)) (A(22) B(21) C(22) D(22)) (A(31) B(32) C(31) D(31)) rarr A1
Selisih data ke- 1 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|2-1|+|1-2|+|3-2|+|3-1| = 13
Selisih data ke- 2 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Selisih data ke- 3 = |2-2|+|1-1|+|3-2|+|3-2|+|1-1|+|2-2|+|1-1|+|1-1|+|1-1|+|2-2|+|1-2|+|1-1| = 3
Selisih data ke- 4 = |1-2|+|2-1|+|1-2|+|1-2|+|1-1|+|2-2|+|1-1|+|1-1|+|2-1|+|1-2|+|2-2|+|2-1| = 7
Selisih data ke- 5 = |1-2|+|2-1|+|1-2|+|1-2|+|2-1|+|1-2|+|2-1|+|2-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Pada perhitungan selisih nilai ruas kiri FLR pada data testing juga dilakukan pada semua data testing yang sudah dideklarasikan sebelumnya Dalam hal ini agar dapat menemukan FLR yang cocok dengan data testing Tahap selanjutnya adalah proses defuzzifikasi menggunakan threshold yang dimisalkan 18 sehingga FLR yang memiliki kecocokan dengan data testing pertama adalah semua FLR dari ke-1 sampai ke-5 karena memiliki hasil selisih kurang dari 18 Semua FLR yang cocok ditampung dikelompokkan berdasarkan FLR pada ruas kanan yang sama kemudian dhitung frekuensinya Berikut adalah frekuensi dan pusat cluster dari ruas kanan FLR yang cocok dengan data testing pertama dan kedua ditunjukkan pada Tabel 419
Tabel 419 Frekuensi FLR yang cocok dengan data testing
Data testing 1 Data testing 2
Ruas kanan A1 A2 A1 A2
Pusat Cluster 88303 90390 88303 90390
Frekuensi 4 1 4 2
Berdasarkan pada Tabel 419 dilakukan defuzzifikasi sesuai dengan Persamaan 218 sebagai berikut
119863119886119905119886 119905119890119904119905119894119899119892 1 = (88303times4)+(90390times1)
5= 887204
60
119863119886119905119886 119905119890119904119905119894119899119892 2 = (88303times4)+(90390times2)
6= 889987
Jadi berdasarkan perhitungan diatas diperoleh hasil peramalan curah hujan pada pada April 2014 dasarian ke-3 adalah 1384601636 sedangkan pada tanggal 10012016 adalah 2769203272 Perbandingan data curah hujan aktual dan hasil peramalan dengan metode High Order Fuzzy Time Series Multi Factors dapat dilihat pada Tabel 420
Tabel 420 Perbandingan data aktual dan hasil peramalan
No Data Aktual Hasil Peramalan
1 93 887204
2 86 889987
Dari hasil peramalan yang ditunjukkan pada Tabel 420 dapat dilakukan perhitungan kesalahan peramalan menggunakan metode Mean Square Error (MSE) seperti Persamaan 219
119872119878119864 = ((93minus887206)2+(86minus889989)2)
2
= 136536
43 Perancangan antarmuka
Perancangan antarmuka merupakan perancangan dari tampilan antarmuka atau interface yang nantinya akan diterapkan pada tahapan implementasi Pada perancangan antarmuka ini terdapat lima halaman utama dan juga terdapat dalam menu berupa button yaitu halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
431 Halaman input
Pada halaman input terdapat inputan data dengan nama button Browse Data pada inputan data ini pengguna diharuskan memasukkan inputan file data dalam bentuk ekstensi xls serta direktori lokasi file yang di inputkan akan ditampilkan pada textfield dan juga terdapat label yang menampilkan jumlah banyaknya data yang terdapat pada file yang telah di inputkan Selanjutnya juga terdata inputan textfield data training data testing order dan nilai konstanta Pada halaman input ini juga terdapat button fuzzification yang berfungsi untuk melakukan proses clustering fuzzifikasi dan FLR Selanjutnya pada button forecasting berfungsi untuk melakukan peramalan atau defuzzifikasi dari hasil proses fuzzifikasi serta menghitung nilai error dari hasil peramalan Berikut
61
merupakan rancangan tampilan antarmuka dari halaman input yang ditunjukkan pada Gambar 423
432 Halaman tampil data
Pada halaman tampil data terdapat tabel yang menampilkan isi data dari xls yang sudah dimasukkan terlebih dahulu pada halaman input Tabel tampil data akan menampilkan tanggal curah hujan kelembaban suhu dan kecepatan angin Berikut merupakan tampilan rancangan halaman tampil data yang ditunjukkan pada Gambar 424
Gambar 423 Rancangan antarmuka halaman input
Gambar 424 Rancangan antarmuka halaman tampil data
62
433 Halaman proses
Pada halaman proses akan menampilkan hasil clustering fuzzifikasi dan fuzzy logical relationship Pada tampilan halaman clustering akan menampilkan Universe of Discourse curah hujan suhu kelembaban dan kecepatan angin Selanjutnya tampilan dibawahnya akan menampilkan jumlah cluster dari setiap faktor yaitu jumlah cluster curah hujan suhu kelembaban dan kecepatan angin Berikut merupakan tampilan perancangan halaman proses clustering yang ditunjukkan Gambar 425
Selanjutnya pada tampilan proses fuzzifikasi akan menampilkan tabel hasil fuzzifikasi dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzifikasi yang ditunjukkan pada Gambar 426
Gambar 425 Rancangan antarmuka halaman proses clustering
Gambar 426 Rancangan antarmuka proses fuzzifikasi
63
Pada tampilan proses fuzzy logical relationship (FLR) akan menampilkan textarea berisi hasil proses FLR dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzy logical relationship yang ditunjukkan pada Gambar 427
434 Halaman hasil
Pada halaman hasil peramalan akan menampilkan tabel yang berisi hasil peramalan curah hujan dan data curah hujan yang sebenarnya Serta terdapat text link yang akan menampilkan grafik perbandingan data hasil peramalan dan data yang sebenarnya Berikut adalah tampilan rancangan halaman hasil yang ditunjukkan pada Gambar 428
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship
Gambar 428 Rancangan antarmuka halaman hasil peramalan
64
435 Halaman perhitungan error
Pada halaman perhitungan error akan menampilkan nilai dari hasil perhitungan Mean Square Error (MSE) pada textfield Berikut adalah tampilan rancangan halaman perhitungan error yang ditunjukkan pada Gambar 429
44 Perancangan pengujian
Pada penelitian ini akan dilakukan empat pengujian yaitu pengujian terhadap nilai order nilai threshold pengujian terhadap jumlah data training untuk mengetahui pengaruhnya terhadap nilai Mean Square Error (MSE) dan pengujian validasi sistem untuk mengetahui kestabilan hasil implementasi
441 Perancangan pengaruh order terhadap nilai MSE
Order merupakan jumlah urutan data yang digunakan dalam pembentukkan Fuzzy Logical Relationship (FLR) Pada pengujian ini dilakukan percobaan dengan order yang berbeda ndash beda Pengujian ini bertujuan untuk mengetahui pengaruh order terhadap hasil peramalan Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Pada setiap pengujian yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan order yang berbeda Berikut adalah perancangan pengujian order terhadap nilai MSE ditunjukkan pada Tabel 421
Tabel 421 Rancangan pengujian order terhadap nilai MSE
No Order Threshold MSE
1
Gambar 429 Rancangan antarmuka halaman perhitungan error
65
442 Perancangan pengaruh threshold terhadap nilai MSE
Nilai threshold bergantung jumlah order karena untuk nilai threshold merupakan dari hasil mengalikan jumlah faktor yang mempengaruhi dengan order selanjutnya dijumlah dengan sebuah konstanta Pada pengujian ini dilakukan percobaan dengan konstanta yang berbeda ndash beda sehingga menghasilkan threshold yang berbeda pula Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan konstanta dan threshold yang berbeda Berikut merupakan rancangan pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 422
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1
443 Perancangan pengaruh jumlah data training terhadap nilai MSE
Data training sangat berperan penting dalam proses defuzzifikasi sehingga pada penelitian ini dilakukan pengujian pengaruh jumlah data training terhadap tingkat kesalahan dari hasil peramalan Pada pengujian ini dilakukan percobaan dengan jumlah data training yang berbeda ndash beda Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan dilakukan perhitungan nilai MSE untuk mengetahui tingkat kesalahan dari hasil peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors dengan jumlah data training yang berbeda ndash beda Sehingga dari hasil pengujian ini dapat diketahui pengaruh dari jumlah data training Berikut merupakan rancangan pengujian pengaruh jumlah data training yang ditunjukkan pada Tabel 423
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1
444 Perancangan validasi sistem
Pada pengujian validasi sistem akan melakukan pengujian dengan menggunakan order threshold terbaik seperti yang telah dilakukan pada
66
pengujian ndash pengujian sebelumnya yang menghasilkan hasil error MSE terendah Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Berikut merupakan rancangan pengujian validasi sistem yang ditunjukkan pada Tabel 424
Tabel 424 Rancangan pengujian validasi sistem
Percobaan ke- MSE
1
67
BAB 5 IMPLEMENTASI
Pada bab ini berisi pembahasan hasil implementasi metode High Order Fuzzy Time Series Multi Factors yang sesuai dengan bab sebelumnya yaitu perancangan Bab ini terdiri dari spesifikasi sistem implementasi algoritma dan implementasi antarmuka
51 Spesifikasi Sistem
Pada spesifikasi sistem ini dibagi mejadi dua yaitu spesifikasi perangkat keras dan spesifikasi perangkat lunak
511 Spesifikasi Perangkat Keras
Spesifikasi perangkat keras merupakan perangkat keras yang digunakan pada implementasi penelitian ini Perangkat keras yang digunakan adalah laptop dengan spesifikasi sesuai dengan pada Tabel 51 berikut
Tabel 51 Spesifikasi Perangkat Keras
Komponen Spesifikasi
Processor Intelcopy Core i3-3217U 180 GHz
Memori (RAM) 8 GB RAM
Harddisk 500 GB RAM
512 Spesifikasi Perangkat Lunak
Spesifikasi perangkat lunak merupakan perangkat lunak yang digunakan pada implementasi penelitian ini Perangkat lunak yang digunakan pada implementasi penelitian sesuai dengan yang ditunjukkan pada Tabel 52 berikut
Tabel 52 Spesifikasi Perangkat Lunak
Sistem Operasi Microsoft Windows 7 (64 bit)
Bahasa Pemrograman Java
Tools Pemrograman Netbeans 81
Data Microsoft Excel 2013
52 Implementasi Algoritma
Pada implementasi algoritma ini membahas mengenai hasil implementasi algoritma metode High Order Fuzzy Time Series Multi Factors yang mengacu pada bab sebelumnya yaitu perancangan Dalam penelitian ini implementasi algoritma menggunakan bahasa pemrograman java berbasis desktop Implementasi algoritma terdiri dari beberapa method sesuai dengan langkah ndash langkah pada algoritma metode High Order Fuzzy Time Series Multi Factors
68
521 Implementasi Proses Universe of Discourse
Pada implementasi Universe of Discourse seperti yang ditunjukkan Kode Program 51 dimana pada source code method Universe_of_Discourse baris 3 - 5 terdapat pemanggilan method mean standar_deviasi dan Min_dan_Max Dimana pemanggilan method tersebut dibutuhkan untuk melakukan proses perhitungan selanjutnya yaitu untuk menghitung batas bawah dan batas atas dari Univers of Discourse Baris 7-10 untuk menghitung hasil Universe of Discourse Berikut merupakan source code dari proses Universe of Discourse yang ditunjukkan pada Kode Program 51
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
private void Universe_of_Discourse()
mean()
standar_deviasi()
Min_dan_Max()
hsl_uMin = new double[jmlh_Faktor]
hsl_uMax = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
hsl_uMin[i] = hsl_min[i] - hsl_stdev[i]
hsl_uMax[i] = hsl_max[i] + hsl_stdev[i]
Kode Program 51 Implementasi proses Universe of Discourse
5211 Implementasi proses mean
Pada implementasi proses mean merupakan proses perhitungan nilai rata ndash rata dari setiap faktor yang nantinya hasilnya diperlukan untuk proses perhitungan standar deviasi Berikut merupakan source code dari proses mean yang ditunjukkan pada Kode Program 52 Perhitungan utama proses mean terdapat pada baris 3 ndash 8
Baris Kode
1 2 3 4 5 6 7 8 9
private void mean()
hsl_mean = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double tmp_jmlh = 0
for (int j = 0 j lt jmlh_DataTraining j++)
tmp_jmlh = tmp_jmlh + data[i][j]
hsl_mean[i] = (tmp_jmlh jmlh_DataTraining)
Kode Program 52 Implementasi proses mean
5212 Implementasi proses standar deviasi
Pada implementasi proses perhitungan standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Standar deviasi dapat dilakukan perhitungan setelah mendapat nilai hasil dari perhitungan mean Berikut merupakan source code dari implementasi proses standar deviasi yang ditunjukkan pada Kode Program 53 Perhitungan utama proses standar deviasi terdapat pada baris 3 ndash 9
69
Baris Kode
1 2 3 4 5 6 7 8 9 10 11
private void standar_deviasi()
hsl_stdev = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double result = 0
for (int j = 0 j lt jmlh_DataTraining j++)
result = result + (Mathpow((data[i][j] ndash
hsl_mean[i]) 2))
hsl_stdev[i]=Mathsqrt(result(jmlh_DataTraining-
1))
Kode Program 53 Implementasi proses standar deviasi
5213 Implementasi proses Dmin dan Dmax
Pada implementasi proses Dmin dan Dmax merukan untuk mencari nilai minimum dan nilai maksimum dari data sampel untuk setiap faktor Berikut merupakan source code dari implementasi dari proses Dmin dan Dmax yang ditunjukkan pada Kode Program 54 Pada baris 8 ndash 10 merupakan bagian dari proses untuk untuk menentukan nilai data terbesar Selanjutnya pada baris 11 ndash 13 untuk menentukan nilai data terkecil
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
19
private void Min_dan_Max()
hsl_max = new double[jmlh_Faktor]
hsl_min = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double besar = data[i][0]
double kecil = data[i][0]
for (int j = 0 j lt jmlh_DataTraining j++)
if (data[i][j] gt besar)
besar = data[i][j]
if (data[i][j] lt kecil)
kecil = data[i][j]
hsl_max[i] = besar
hsl_min[i] = kecil
Kode Program 54 Implementasi proses Dmin dan Dmax
522 Implementasi Proses Jumlah Cluster
Pada implementasi proses jumlah cluster merupakan proses perhitungan jumlah cluster dari setiap faktor Implementasi ini dapat dilakukan apabila sudah mendapatkan hasil output dari method Min_dan_Max() sudah didapatkan Berikut merupakan source code dari implementasi proses jumlah cluster yang ditunjukkan pada Kode Program 55 Pada baris 3 ndash 7 untuk digunakan untuk menghitung selisih data sampel setiap baris dari semua faktor pada data sampel ke t dengan t+1 Selanjutnya pada baris 9 ndash 10 untuk menghitung jumlah cluster dari setiap faktor
70
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
private void jumlah_Cluster()
jmlh_Cluster = new int[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double selisih = 0
for (int j = 0 j lt (jmlh_DataTraining - 1) j++)
selisih = selisih + (Mathabs((data[i][j]
- data[i][(j + 1)])))
jmlh_Cluster[i] = (int) Mathround((Mathabs(
hsl_min[i]-hsl_max[i]))(selisih(jmlh_DataTraining
-1)))
Kode Program 55 Implementasi proses jumlah cluster
523 Implementasi Proses Pusat Cluster
Implementasi proses perhitungan pusat cluster ini menggunakan metode fuzzy C-means untuk mendapatkan pusat cluster yang nantinya digunkan sebagai subinterval Implementasi ini memerlukan hasil dari proses method jumlah_Cluster() agar dapat melakukan perhitungan subinterval Berikut merupakan source code dari implementasi proses subinterval yang ditunjukkan pada Kode Program 56 Pada Kode Program 56 hanya menampilkan source code pembentukan subinterval pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 2 ndash 3 merupakan deklarasi variabel bobot iterasi maksimum selisih fungsi objektif awal dan error minimum Pada baris 8 ndash 20 merupakan proses pembentukan matriks partisi dengan nilai random 0 sampai 1 Pada baris 22 ndash 26 merupakan proses normalisasi matriks partisi yang telah terbentuk Pada baris 28 ndash 63 merupakan proses untuk menentukan pusat cluster Pada baris 65 ndash 86 merupakan proses perhitungan fungsi objektif dari iterasi Pada baris 88 ndash 90 merupakan proses perhitungan selisih fungsi objektif Pada baris 92 ndash 108 adalah proses perbaikan matriks partisi Pada baris 110 ndash 115 adalah proses hasil perbaikan matriks partisi Pada baris 116 - 133 adalah proses dengan pengkondisian apakah selisih fungsi objektif lebih kecil dari error minimum serta apabila memenuhi kondisi maka dilanjutkan ke proses pengurutan pusat cluster secara ascending dari hasil iterasi terakhir dan proses pengkondisian iterasi berhenti
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void pusat_cluster()
int bobot = 2int iter_maksimum = 100
double selisih_f_objektif = 0double error_min = 001
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
Pembentukkan matriks partisi
tmp_Matriks1=new
double[jmlh_Cluster[i]][jmlh_DataTraining]
q1 = new double[jmlh_Cluster[i]]
double jmlh_q1
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_q1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
71
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
double random = ThreadLocalRandomcurrent()
nextDouble(01 1)
tmp_Matriks1[j][k] = random
jmlh_q1 = jmlh_q1 + random
q1[j] = jmlh_q1
normalisasi matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k] q1[j]
Perhitungan pusat cluster
for (int iter = 0 iter lt iter_maksimum iter++)
selisih_f_objektif = 0
jumA1 = new double[iter_maksimum][jmlh_Cluster[i]]
jumA2 = new double[iter_maksimum][jmlh_Cluster[i]]
miu_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
XV_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
pusat_cluster1 = new double[jmlh_Cluster[i]]
double hitung_jum1
double hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(tmp_Matriks1
[j][k]bobot)
miu_Matriks1[j][k] = tmp_Matriks1[j][k]
hitung_jum1 = hitung_jum1 + tmp_Matriks1
[j][k]
jumA1[iter][j] = hitung_jum1
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum2 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
data[i][k]
hitung_jum2 = hitung_jum2 +
tmp_Matriks1[j][k]
jumA2[iter][j] = hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
pusat_cluster1[j] = jumA2[iter][j]
jumA1[iter][j]
perhitungan fungsi objektif
jumA3 = new double[iter_maksimum][jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
double hitung_jum3 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow((data[i][k]
ndash pusat_cluster1[j])
bobot)
XV_Matriks1[j][k] = tmp_Matriks1[j][k]
tmp_Matriks1[j][k] = XV_Matriks1[j][k]
miu_Matriks1[j][k]
hitung_jum3 = hitung_jum3 +
tmp_Matriks1[j][k]
jumA3[iter][j] = hitung_jum3
72
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
double jmlh_f_objektif = 0
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_f_objektif = jmlh_f_objektif
+jumA3[iter][j]
if (iter lt (iter_maksimum - 1))
f_objektif1[iter + 1] = jmlh_f_objektif
perhitungan selisih fungsi objektif
selisih_f_objektif = f_objektif1[iter + 1]
-f_objektif1[iter]
perbaikan matriks partisi
int hitung = bobot - 1int pangkat = -1 hitung
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(XV_Matriks1
[j][k] pangkat)
jumA4 = new
double[iter_maksimum][jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
double hitung_jum4 = 0
for (int k = 0 k lt jmlh_Cluster[i] k++)
hitung_jum4 = hitung_jum4 +
tmp_Matriks1[k][j]
jumA4[iter][j] = hitung_jum4
hasil perbaikan matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
jumA4[iter][k]
if (selisih_f_objektif lt error_min)
pengurutan ascending pusat cluster
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 kltjmlh_Cluster[i]k++)
if (k lt (jmlh_Cluster[i] - 1))
if (pusat_cluster1[k] gt
pusat_cluster1[k + 1])
double tmp =
pusat_cluster1[k]
pusat_cluster1[k]=
pusat_cluster1[k+1]
pusat_cluster1[k+1] = tmp
iter = iter_maksimum
Kode Program 56 Implementasi proses pusat cluster
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set
Pada implementasi proses pembentukan suinterval dan fuzzy set memiliki dua proses yaitu proses menentukan batas subinterval minumum serta maksimum dan proses menentukan batas fuzzy set minimum serta maksimum
73
Proses pembentukan fuzzy dapat menjalankan prosesnya setelah method subinterval() telah diakses Berikut merupakan source code proses pembentukan fuzzy set yang ditunjukkan pada Kode Program 57 Pada Kode Program 57 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 6 ndash 29 merupakan proses pembentukan batas minimum dan batas maksimum subinterval Pada baris 31 ndash 54 merupakan pembentukan batas minimum dan batas maksimum fuzzy set
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
private void subinterval_dan_fuzzy_set()
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
batas subinterval
batas_subintervalMinA = new double[jmlh_Cluster[i]]
batas_subintervalMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_subintervalMinA[j] = hsl_uMin[i]
batas_subintervalMaxA[j]=(pusat_cluster1[j]
+pusat_cluster1[j+
1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1] +pusat_cluster1
[j])2
batas_subintervalMaxA[j]=
hsl_uMax[i]
else if ((0 lt j) ampamp (j lt (jmlh_Cluster[i] -
1)))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1]+
pusat_cluster1[j])2
batas_subintervalMaxA[j]=
(pusat_cluster1[j]+
pusat_cluster1[j+1)2
batas fuzzy set
batas_fuzzysetMinA = new double[jmlh_Cluster[i]]
batas_fuzzysetMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_fuzzysetMinA[j]=
batas_subintervalMinA[j]
batas_fuzzysetMaxA[j]=
(batas_subintervalMinA[j+1]
+batas_subintervalMaxA[j + 1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]
+batas_subintervalMaxA[j - 1])2
batas_fuzzysetMaxA[j] =
batas_subintervalMaxA[j]
else if ((0 lt j) ampamp (jlt(jmlh_Cluster[i]-1)))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]+
batas_subintervalMaxA[j-1])2
batas_fuzzysetMaxA[j]=
74
51
52
53
54
55
56
(batas_subintervalMinA[j+1]+
batas_subintervalMaxA[j + 1])2
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set
525 Implementasi proses fuzzifikasi
Pada Implementasi proses fuzzifikasi memiliki dua proses utama yaitu menentukan derajat keanggotaan dan proses fuzzifikasi Dalam proses ini method fuzzy_set() harus dieksekusi terlebih dahulu karena implementasi proses ini memerlukan output dari method tersebut Berikut merupakan source code fuzzifikasi ditunjukkan pada Kode Program 58 Pada Kode Program 58 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 3 ndash 81 merupakan proses perhitungan derajat keanggotaan Pada baris 83 ndash 94 adalah proses penentuan fuzzifikasi
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
private void fuzzifikasi()
if (i == 0)
hitung_fuzzifikasiA = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
if(j == 0)
if((data[i][k]gtbatas_fuzzysetMinA[j])ampamp
(data[i][k]lt batas_fuzzysetMinA[j + 1]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA[j + 1])
ampamp (data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j] - data[i][k])
(batas_fuzzysetMaxA[j] ndash
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j]) ampamp
(data[i][k] lt batas_fuzzysetMinA[j + 1])
ampamp(data[i][k] gt batas_fuzzysetMinA[j+1])
ampamp(data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
else if (j == (jmlh_Cluster[i] - 1))
if((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
(batas_fuzzysetMaxA[(jmlh_Cluster[i]ndash
2)]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
if((data[i][k] gt batas_fuzzysetMaxA
75
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
[(jmlh_Cluster[i]- 2)]) ampamp (data[i][k]
lt batas_fuzzysetMaxA[(jmlh_Cluster[i]
- 1)]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] gt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 1)]))
hitung_fuzzifikasiA[j][k] = 0
else if ((0 lt j)ampamp(j lt (jmlh_Cluster[i] - 1)))
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA[j
+1]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA[j])
(batas_fuzzysetMinA[j + 1]-
batas_fuzzysetMinA[j])
if ((data[i][k] gt batas_fuzzysetMinA
[j+1])ampamp (data[i][k] lt
batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j]-data[i][k])
(batas_fuzzysetMaxA[j]-
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA
[j + 1]) ampamp (data[i][k] gt
batas_fuzzysetMinA[j + 1]) ampamp
(data[i][k]ltbatas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
hasil_fuzzifikasiA = new int[jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
int cluster = 0
double besar=hitung_fuzzifikasiA[0][j]
for (int k = 0 k lt jmlh_Cluster[i] k++)
if (besar lt hitung_fuzzifikasiA[k][j])
besar = hitung_fuzzifikasiA[k][j]
cluster = k
hasil_fuzzifikasiA[j] = cluster + 1
Kode Program 58 Implementasi proses fuzzifikasi
526 Implementasi Pembentukan Fuzzy Logical Relationship
Pada implementasi pembentukan Fuzzy Logical Relationship (FLR) memiliki dua output yaitu FLR_kiri dan FLR_kanan Dimana FLR_kiri berisi group dari kelima faktor dan pada FLR_kanan merupakan dari faktor yang akan diramalkan yaitu
76
faktor curah hujan (A) Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code pembentukan Fuzzy Logical Relationship (FLR) dapat ditunjukkan pada Kode Program 59 berikut Pada baris 3 ndash 14 merupakan deklarasi variabel Pada baris 15 ndash 55 adalah proses pembentukan fuzzy logical relationship data training Pada baris 56 ndash 58 merupakan deklarasi variabel Pada baris 59 ndash 86 adalah proses pembentukan fuzzy logical relationship data testing
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Fuzzy Logical Relationship
private void fuzzy_logical_relationship()
String input_order = fieldOrdergetText()
order = IntegerparseInt(input_order)
int max_inc = order
String input_dataTraining = fieldDatatraininggetText()
int dataTraining = IntegervalueOf(input_dataTraining)
int tmp_jmlhDatatraining = 0
int tmp_order = 0
int jmlh_dataTraining = dataTraining - order
String input_dataTesting = fieldDatatestinggetText()
int jmlh_dataTesting = IntegervalueOf(input_dataTesting)
FLR_kiri_training = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_training = new int[jmlh_DataTraining]
for (int i = 0 i lt jmlh_dataTraining i++)
for (int j = i j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (j == 0)
if (k == 0)
FLR_kiri_training[i][j][k]=
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiD[j]
else if (j = 0)
if (k == 0)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiD[j]
tmp_order = j
FLR_kanan_training[i] = hasil_fuzzifikasiA[(i + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
77
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
tmp_jmlhDatatraining = i
FLR_kiri_testing = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_testing = new int[(jmlh_DataTraining)]
tmp_jmlhDatatraining = tmp_jmlhDatatraining + 1
for (int i = 0 i lt jmlh_dataTesting i++)
for (int j = tmp_jmlhDatatraining j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (k == 0)
FLR_kiri_testing[i][j - tmp_jmlhDatatraining][k]
= hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiD[j]
FLR_kanan_testing[i] =
hasil_fuzzifikasiA[(tmp_jmlhDatatraining + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
tmp_jmlhDatatraining++
Kode Program 59 Implementasi pembentukan FLR
527 Implementasi Proses Defuzzifikasi
Pada implementasi proses defuzzifikasi merupakan proses dimana menentukan hasil peramalan dari data testing berdasarkan dari bilangan fuzzy yang terbentuk Implementasi ini memiliki beberapa inputan penting yaitu data training data testing order dan konstanta Inputan tersebut sangat berperan penting dalam proses implementasi defuzzifikasi Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code defuzzifikasi dapat ditunjukkan pada Kode Program 510 berikut Pada baris 2 ndash 11 merupakan deklarasi variabel Pada baris 13 ndash 37 merupakan proses perhitungan selisih antara data training dengan data testing Pada baris 40 ndash 47 menghitung jumlah FLR yang cocok Pada baris 49 ndash 65 merupakan proses mencocokan FLR kiri yang cocok dengan FLR kanan Pada baris 67 ndash 81 merupakan proses menghitung jumlah frekuensi FLR kanan yang cocok Pada baris 83 ndash 91 adalah proses perhitungan hasil peramalan
Baris Kode 1
2
3
4
private void defuzifikasi()
String input_dataTraining = fieldDatatraininggetText()
String input_dataTesting = fieldDatatestinggetText()
String input_konstanta = fieldKonstantagetText()
78
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
int dataTraining = IntegervalueOf(input_dataTraining)
int dataTesting = IntegervalueOf(input_dataTesting)
int konstanta = IntegervalueOf(input_konstanta)
int match[][]
match = new int[dataTesting][2000]
int threshold = (jmlh_Faktor order) + konstanta
int hitung_selisih = 0
perhitungan selisih
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
hitung_selisih = 0
for (int k = 0 k lt order k++)
for (int l = 0 l lt jmlh_Faktor l++)
if (i == 0)
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
else if (i gt 0)
FLR_kiri_training[(dataTraining-
1)+i][k][l] = FLR_kiri_testing[i-
1][k][l]
FLR_kanan_training[(dataTraining-1)+i]
= FLR_kanan_testing[i-1]
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
if (hitung_selisih lt threshold)
match[i][j] = hitung_selisih
menghitung jumlah total FLR yang cocok untuk setiap data
testing
int countGroup[] = new int[dataTesting]
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
countGroup[i]++
mencocokan FLR_kiri yang cocok dengan FLR_kanan
group = new int[dataTesting][2000]
for (int i = 0 i lt dataTesting i++)
int tmp_count = 0
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
if (tmp_count lt countGroup[i])
group[i][tmp_count] = j
tmp_count++
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt countGroup[i] j++)
group[i][j] = FLR_kanan[group[i][j]]
mengelompokkan yang sama
MapltInteger Integergt map = new HashMapltInteger Integergt()
hasil_peramalan = new double[dataTesting]
for (int i = 0 i lt dataTesting i++)
79
70
71
72
73
74
75 76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
double peramalan = 0
mapclear()
for (int j = 0 j lt countGroup[i] j++)
int key = group[i][j]
if (mapcontainsKey(key))
int occurrence = mapget(key)
occurrence++
mapput(key occurrence)
else
mapput(key 1)
menghitung hasil peramlaan
Iterator iterator = mapkeySet()iterator()
while (iteratorhasNext())
int key = (Integer) iteratornext()
int occurrence = mapget(key)
peramalan = (peramalan + (pusat_cluster1[(key - 1)]
occurrence))
hasil_peramalan[i] = (peramalan countGroup[i])
Kode Program 510 Implementasi proses defuzzifikasi
53 Implementasi Antarmuka
Pada implementasi antarmuka dijelaskan beberapa halaman antarmuka untuk penggunaan dari program hasil implementasi Implementasi antarmuka berdasarkan perancangan yang telah dijelasakan pada bab sebelumnya yaitu bab perancangan Halaman antarmuka yang dibuat adalah halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
531 Implementasi antarmuka halaman input
Halaman input merupakan halaman yang pertama muncul setelah program dijalankan Pada halaman input ini terdapat beberapa inputan yang harus di masukkan yaitu data input data training data testing order dan konstanta Selain itu pada halaman input juga terdapat tiga button yaitu button browse data button fuzzification dan button forecasting Berikut tampilan antarmuka halaman input yang ditunjukkan pada Gambar 51
Gambar 51 Implementasi antarmuka halaman input
80
532 Implementasi antarmuka halaman tampil data
Halaman tampil data merupakan halaman yang tampil setelah melakukan input data Halaman ini berisi tabel yang menampilkan data curah hujan suhu kecepatan angin dan kelembaban Berikut tampilan antarmuka halaman tampil data yang ditunjukkan pada Gambar 52
533 Implementasi antarmuka halaman proses
Halaman proses merupakan halaman yang muncul setelah button fuzzification telah dieksekusi Halaman proses ini terdiri dari tiga bagian atau tab yaitu clustering fuzzification dan Fuzzy logical relationship Pada halaman antarmuka clustering menampilkan Universe of Discourse dan jumlah cluster pada masing ndash masing faktor Berikut merupakan tampilan antarmuka halaman proses bagian clustering yang ditunjukkan pada Gambar 53
Gambar 52 Implementasi antarmuka halaman tampil data
Gambar 53 Implementasi antarmuka halaman proses clustering
81
Pada tab selanjutnya yaitu pada tab fuzzification tab ini menampilkan hasil proses fuzzifikasi Pada halaman ini menampilkan tabel yang berisi hasil fuzzifikasi dari setiap faktor Berikut merupakan tampilan antarmuka halaman proses bagian fuzzification yang ditunjukkan pada Gambar 54
Pada tab Fuzzy Logical Relationship menampilakn hasil dari proses pembentukan Fuzzy Logical Relationship Tampilan pada halaman ini menampilkan berupa textarea yang berisi dari output proses tersebut Berikut merupakan tampilan antarmuka halaman proses bagian Fuzzy Logical Relationship yang ditunjukkan pada Gambar 55
Gambar 54 Implementasi antarmuka halaman proses fuzzification
Gambar 55 Implementasi halaman antarmuka proses FLR
82
534 Implementasi antarmuka halaman hasil
Pada implementasi antarmuka halaman hasil ini merupakan halaman yang menampilkan hasil dari proses defuzzifikasi Halaman hasil ini menampilkan tabel yang berisi data aktual dan data dari hasil peramlan Berikut merupakan tampilan antarmuka halaman hasil yang ditunjukkan pada Gambar 56
535 Implementasi antarmuka halaman perhitungan error
Pada implementasi antarmuka halaman perhitungan error merupakan halaman yang menampilkan hasil dari proses perhitungan Mean Square Error (MSE) Pada halaman antarmuka ini menampilkan hasil error MSE pada textfield Berikut merupakan tampilan antarmuka halaman perhitungan error yang ditunjukkan pada Gambar 57
Gambar 56 Implementasi halaman antarmuka hasil
Gambar 57 Implementasi halaman antarmuka perhitungan error
83
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini membahas hasil pengujian dan analisis hasil pengujian dari hasil implementasi metode High Order Fuzzy Time Series Multi factors untuk peramalan curah hujan dasarian Pada pengujian ini disesuaikan dengan perancangan pengujian pada bab 4
61 Sistematika Pengujian
Pada bab sebelumnya yaitu bab 4 mengenai perancangan telah dibahas perancangan pengujian dikatakan bahwa pengujian akan dilakukan sebanyak empat pengujian Pengujian order pengujian threshold pengujian jumlah data training dan pengujian validasi sistem Dari semua pengujian tersebut akan di uji dan di analisis bagaimana pengaruhnya terhadap hasil perhitungan Mean Square Error (MSE)
62 Hasil dan Analisis Pembahasan
Berikut hasil pengujian dan analisis yang disesuaikan dengan perancangan pengujian pada bab sebelumnya
621 Pengujian pengaruh order terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh order terhadap nilai MSE Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Jadi jika nilai order adalah 3 maka peramalan akan melibatkan 3 data sebelumnya pada proses pembentukan Fuzzy Logical Relationship (FLR) Pada pengujian ini hanya nilai order yang diubah ndash ubah sedangkan variabel lain akan dibuat tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 konstanta adalah 10 Nilai threshold diperoleh dari perhitungan jumlah faktor dikali order dan dijumlah nilai konstanta Berikut adalah hasil pengujian pengaruh order terhadap nilai MSE yang ditunjukkan pada Tabel 61
Tabel 61 Hasil pengujian order terhadap nilai MSE
No Order Threshold MSE
1 3 22 808585
2 6 34 965547
3 9 46 912631
4 12 58 875884
5 15 70 719284
6 18 82 6801207
7 21 94 5637184
8 24 106 5444184
9 27 118 5433631
10 30 130 5418393
84
Dari hasil pengujian order seperti yang telah ditunjukkan pada Tabel 61 maka pada percobaan pertama dengan order = 3 dan threshold 22 dapat diperoleh MSE sebesar 808585 Selanjutnya pada percobaan kedua dengan order = 6 dan threshold = 34 diperoleh MSE sebesar 965547 Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 61
Berdasarkan Gambar 61 order yang berbeda - beda mempengaruhi besar nilai MSE Dalam penelitian ini menentukan order memiliki ketentuan yaitu nilai order harus lebih dari 0 dan batas maksimal order adalah setengah dari nilai data training (LinYang 2009) Nilai MSE terbesar yang ditunjukkan pada pengujian ini adalah 965547 pada pengujian order 6 dan nilai MSE terkecil adalah 5418393 pada pengujian order 30 Pada Gambar 61 menunjukkan bahwa pada order 3 ke order 6 mengalami peningkatan nilai MSE selanjutnya pada order 6 hingga order 30 mengalami penurunan Pada order 3 memiliki nilai MSE lebih kecil dari order 6 order 9 dan order 12 karena memiliki lebih banyak hasil selisih tingkat kecocokan data time series yang tidak terlalu besar dan kurang dari threshold Selain itu karena data time series dari data sampel yang diperoleh memiliki pola data musiman dimana perubahan pola data dasarian tidak terlalu banyak berubah dari tahun ke tahun Selanjutnya pada order 6 hingga order 30 menunjukkan penurunan nilai MSE dan order terbesar memiliki nilai MSE terkecil sehingga dapat disumpulkan bahwa semakin besar order maka semakin kecil pula nilai MSE Dalam hal ini dengan semakin besarnya order maka data sebelumnya yang digunakan untuk pertimbangan dalam menentukan peramalan semakin banyak Sehingga semakin besar nilai order maka dapat membuat peramalan semakin akurat Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin besar nilai order maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE
85
622 Pengujian pengaruh threshold terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh threshold terhadap nilai MSE Threshold merupakan hasil dari mengalikan jumlah order dengan jumlah faktor pada data kemudian dijumlahkan dengan dengan nilai konstanta Pada proses defuzzifikasi terdapat proses menghitung selisih antara pangkat bawah Fuzzy Logical Relationship (FLR) data training dan pangkat bawah FLR data testing Selanjutnya setelah mendapatkan nilai selisih maka nilai selisih tersebut dibandingkan dengan nilai threshold untuk mencari FLR yang cocok Pada pengujian ini nilai konstanta saja yang diubah ndash ubah sementara variabel lainnya tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 dan Nilai order adalah 30 Pada penentuan input konstanta nilai minimal harus lebih besar dari 0 dan nilai maksimal menyesuaikan data sampel yang digunakan (LinYang 2009) Berikut adalah hasil pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 62
Tabel 62 Hasil pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1 10 130 558485
2 20 140 577498
3 30 150 597364
4 40 160 604660
5 50 170 646951
6 60 180 680257
7 70 190 703013
8 80 200 741484
9 90 210 756749
10 100 220 780600
Dari hasil pengujian threshold seperti yang telah ditunjukkan pada Tabel 62 maka dapat dilihat bahwa konstanta yang dilakukan pengujian dimulai dengan nilai 10 sampai 100 Hasil yang didapat pada percobaan pertama dengan konstanta = 10 dan threshold 130 diperoleh MSE sebesar 558485 Selanjutnya pada percobaan kedua dengan konstanta = 20 dan threshold = 140 diperoleh MSE sebesar 577498 Selanjutnya dapat kita lihat pada percobaan yang telah dilakukan dari percobaan pertama hingga percobaan kesepuluh nilai MSE yang diperoleh mengalami perubahan pada setiap percobaan Dapat dilihat bahwa peningkatan MSE lebih dominan menunjukkan peningkatan sehingga dalam hal ini semakin besar nilai konstanta dan threshold maka semakin besar pula nilai MSE yang diperoleh Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 62
86
Berdasarkan grafik dari Gambar 62 nilai input konstanta yang berbeda - beda mempengaruhi besar nilai MSE semakin besar nilai konstanta maka nilai threshold juga semakin besar karena threshold diperoleh dari perhitungan order dikali jumlah faktor dan selanjutnya dijumlah dengan nilai konstanta Dalam hal ini dengan semakin besar nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR juga semakin luas batasannya dan jika semakin kecil nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR menjadi semakin sempit dan mempermudah proses peramalan karena hanya adanya sedikit data yang cocok dengan data yang akan diramalkan dan mempermudah proses defuzzifikasi Oleh karena itu semakin kecil threshold maka dapat membuat peramalan semakin akurat Akan tetapi nilai threshold tidak boleh terlalu kecil karena dapat menyebabkan kegagalan peramalan Kegagalan peramalan itu terjadi karena tidak adanya data training yang cocok dengan data testing karena pada metode yang digunakan pada penelitian ini sangat bergantung pada data ndash data sebelumnya Dari hasil percobaan diatas hasil MSE terbesar adalah 7806 yaitu pada konstanta 100 serta threshold 220 dan hasil MSE terkecil adalah 558485 yaitu pada konstanta 10 dan threshold 130 Dalam pengujian ini memiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin kecil nilai konstanta maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
623 Pengujian pengaruh jumlah data training terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh jumlah data training terhadap nilai MSE Pada pengujian ini jumlah data training adalah data dasarian yaitu 1 tahun 2 tahun 3 tahun 4 tahun dan 5 tahun dimana dari setiap 1 tahun memiliki 36 data dasarian Pengujian ini akan dilakukan sebanyak lima kali Pada pengujian ini jumlah data testing adalah 36 nilai order adalah setengah dari
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE
87
nilai data training nilai konstanta adalah 20 Berikut adalah hasil pengujian pengaruh jumlah data training terhadap nilai MSE yang ditunjukkan pada Tabel 63
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1 36 786586
2 72 634527
3 108 627190
4 144 614184
5 180 539698
Dari hasil pengujian jumlah data training seperti yang telah ditunjukkan pada Tabel 63 maka pada percobaan pertama dengan data training = 36 dapat diperoleh MSE sebesar 786586 Selanjutnya pada percobaan kedua dengan data training = 72 diperoleh MSE sebesar 634527 Dalam hal ini dari percobaan satu dan dua nilai MSE mengalami penurunan Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 63
Berdasarkan dari Gambar 63 pengujian pertama sampai pengujian kelima mengalami penerunan nilai MSE Sehingga dapat disimpulkan bahwa semakin besar data training maka semakin kecil nilai MSE yang diperoleh Nilai MSE semakin kecil apabila menggunakan data training dalam jumlah besar karena data yang digunakan memiliki rentang jauh dari periode data testing atau data yang akan diramalkan Sedangkan data training yang sedikit memiliki nilai MSE yang besar karena data training yang memiliki kecocokan dengan data testing berada pada periode yang jauh dengan data testing sehingga nilai MSE menjadi tinggi Dalam hal ini terbukti bahwa metode yang digunakan pada penelitian ini memerlukan jumlah data training yang banyak sehingga dapat menurunkan nilai kesalahannya Dari hasil percobaan diatas hasil MSE terbesar adalah 786586 dan
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE
88
hasil MSE terkecil adalah 539698 Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoPeramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Seriesrdquo yang menyatakan bahwa semakin besar jumlah data training maka semakin kecil nilai kesalahannya (Elfajar et al 2017)
624 Pengujian validasi sistem
Pada pengujian ini dilakukan untuk mengetahui kestabilan dari sistem dengan menggunakan order threshold terbaik dari pengujian sebelumnya Pada pengujian ini akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai data training menggunakan 36 data yang berbeda agar dapat menunjukkan gambaran variasi dari nilai kesalahan MSE pada peramalan nilai order adalah 18 dan konstanta adalah 10 sehingga nilai threshold adalah 92 Berikut adalah hasil pengujian validasi sistem yang ditunjukkan pada Tabel 64
Tabel 64 Hasil pengujian validasi sistem
Percobaan ke- MSE
1 714290
2 703856
3 732564
4 732815
5 6973958
6 7532825
7 741726
8 760457
9 709961
10 6256204
Dari hasil pengujian validasi sistem seperti yang telah ditunjukkan pada Tabel 64 maka dapat digambarkan dengan grafik yang ditunjukkan oleh Gambar 64
Gambar 64 Grafik hasil pengujian validasi sistem
89
Berdasarkan dari gambar grafik Gambar 64 bahwa pengujian dari validasi sistem memiliki hasil MSE yang tidak terlalu jauh berbeda dari penggunaan data yang berbeda - beda Oleh karena itu dapat disimpulkan bahwa implementasi dari metode High Order Fuzzy Time Series Multi Factors yang telah digunakan sudah cukup baik untuk digunakan peramalan
Berdasarkan dari pengujian yang dilakukan diatas dapat diketahui bahwa nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun 2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016 Nilai order adalah 90 dan konstanta adalah 10 Berikut adalah perbandingan data aktual dengan hasil peramalan yang ditunjukkan pada grafik Gambar 65
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan
90
BAB 7 PENUTUP
Pada bab ini terdiri dari dua sub bab yaitu kesimpulan dan saran Kesimpulan adalah tahapan yang berisi hasil penelitian yang dilakukan dan jawaban semua rumusan masalah yang sudah ditetapkan sebelumnya dan saran adalah tahapan yang berisi hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
71 Kesimpulan
Pada kesimpulan ini mengacu pada penelitian yang telah dilakukan yang meliputi perancangan implementasi serta pengujian dan analisis terhadap hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diambil kesimpulan sebagai berikut
1 Berdasarkan dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam melakukan peramalan curah hujan dasarian dilakukan dengan beberapa langkah yaitu langkah pertama perhitungan Universe of Discourse yang terdiri perhitungan mean standar deviasi dan perhitungan Dmin serta Dmax langkah kedua yaitu perhitungan jumlah cluster langkah ketiga yaitu perhitungan pusat cluster langkah keempat yaitu pembentukan subinterval dan fuzzy set langkah kelima yaitu proses fuzzifikasi langkah keenam yaitu pembentukan Fuzzy Logical Relationship(FLR) langkah ketujuh adalah defuzzifikasi yang hasil outputnya merupakan hasil peramalan curah hujan
2 Berdasarkan dari pengujian peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diketahui bahwa
a Order berpengaruh terhadap nilai error semakin besar nilai order maka hasil peramalan semakin baik
b Threshold berpengaruh terhadap nilai error semakin rendah nilai threshold maka hasil peramalan semakin baik Akan tetapi nilai threshold tidak boleh terlalu rendah karena dapat menyebabkan kegagalan peramalan
c Data training berpengaruh terhadap nilai error semakin besar jumlah data training maka hasil peramalan semakin baik Sehingga peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors memerlukan banyak data training
d Hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors cukup baik digunakan untuk peramalan Hal ini terbukti hasil pengujian validasi sistem menunjukkan grafik yang cukup stabil
Dari pengujian yang telah dilakukan nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun
91
2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016
72 Saran
Pada penelitian ini dilakukan peramalan curah hujan dasarian dengan faktor yang mempengaruhi adalah suhu kelembaban dan kecapatan angin Saran penulis diharapkan untuk penelitian selanjutnya melakukan penambahan faktor yang mempengaruhi curah hujan atau melakukan peramalan objek lain dengan mempertimbangkan faktor ndash faktor yang mempengaruhinya Serta diharapkan pada penelitian selanjutnya untuk menambahkan data yang lebih banyak serta bervariatif sehingga nilai hasil perhitungan akurasi peramalan yang dihasilkan dalam penelitian dapat meningkat Penggunaan data training yang banyak dan bervariatif dapat membuat pola data semakin terlihat sehingga hasil peramalan yang dihasilkan memiliki akurasi yang lebih baik
92
DAFTAR PUSTAKA
Ardiyanto 2016 ldquoTerendam Air Petani Lamongan Terpaksa Panen Dinirdquo Times Indonesia November 18 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
Badan Penelitian dan Pengembangan Pertanian Kementrian Pertanian 2015 ldquoKalender Tanam Terpadu Versi 25 Kota Malang Prov Jawa Timurrdquo httpkatamlitbangpertaniangoidkatam_terpadu2016mh33535733573_tinggipdf (Diakses 25 Februari 2017)
Bagirov M Adil Mahmood Arshad and Barton Andrew 2017 Prediction of monthly rainfall in Victoria Australia Clusterwise linear regression approach Elsevier Atmos Research 188 20-29
BMKG Staklim Karangploso Malang 2015 ldquoAnalisis Dinamika Atmosfer Dan Laut Dasarian III Maret 2015 Update 2 April 2015rdquo httpkarangplosojatimbmkgogoidindexphpanalisis-kondisi-dinamika-atmosfer-laut-dasarian-tahun-2015399-analisis-dinamika-atmosfer-dan-laut-dasarian-iii-maret-2015-update-2-april-2015axzz3X8h9y4fgampgsctab=0 (Diakses 25 Februari 2017)
BPS Kabupaten Malang 2016 ldquoKabupaten Malang Dalam Angka 2016rdquo httpsmalangkabbpsgoidwebsitepdf_publikasiKabupaten-Malang-Dalam-Angka-2016pdf (Diakses 25 Februari 2017)
BPS Jawa Timur 2015 ldquoJawa Timur Dalam Angka 2015rdquo httpsjatimbpsgoid4dmnpdf_publikasiJawa-Timur-Dalam-Angka-2015pdf (Diakses 25 Februari 2017)
Buffa S Elwood Rakesh and Sarin K 1996 Modern Production and Operation Management Eight Edition John Willey and Sons Inc London
Chen M 1996 Forecasting Enrollments based on Fuzzy Time Series Fuzzy Sets and Systems 311-319
Dewi Candra Kartikasari Dani Mursityo Yusi 2014 Prediksi Cuaca Pada Data Time Series Menggunakan Adaptive Neuro Fuzzy Inference System (ANFIS) Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK) Vol 1 No 1 hlm 18-24
Dewi Candra Muslikh M 2013 Perbandingan Akurasi Backpropagation Neural Network dan ANFIS Untuk Memprediksi Cuaca NATURAL-A Journal of Scientific Modeling amp Computation Volume 1 No1
Elfajar Aria Setiawan Budi Dewi Candra 2017 Peramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Series Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer Vol 1 No 2 Hlmn 85-94
93
Fauziah Normalita Wahyuningsih Sri dan Nasution Yuki 2016 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) Vol4 Statistika
Forest Mahyu 2015 ldquoDefenisi amp Pengertian Kelembabanrdquo httpilmupengetahuaalamblogspotcoid201506defenisi-pengertian-kelembabanhtml (Diakses 25 Februari 2017)
Irsyad Muhammad Metarice Sonya 2013 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan Jurnal Sains dan Teknologi Industri Vol 10 No 02
Klawon F 2001 What is About Fuzzy Clustering Understanding and Improving the Concept of the Fuzzier Science Journal httppublic-rzfh-wolfebuetteldeklawon
Kurniawan Carlos 2007 Analisis dan Perancangan Program Aplikasi Peramalan Curah Hujan dengan Metode Wavelet (Studi Kasus BMKG)
Kusumadewi S 2003 ldquoArtificial Intelegence (Teknik amp Aplikasinya)rdquo Graha Ilmu Yogyakarta
Kusumadewi S Purnomo H 2004 ldquoAplikasi Logika Fuzzy untuk Pendukung Keputusanrdquo Graha Ilmu Yogyakarta
Kusumadewi Sri 2002 Analisis amp Desain Sistem Fuzzy Tollbox MATLAB Graha Ilmu Yogyakarta
Lin Yupei Yang Y 2009 Stock Markets Forecasting Based on Fuzzy Time Series Model IEEE Conference Publications 782-886
Makridakis S Steven C Wheelwright Victor E and Gee MC 1999 Metode dan Aplikasi Peramalan Jilid I Edisi Kedua Jakarta Binarupa Aksara
Mirawati T Yasin H and Rusgiyono A 2013 Prediksi Curah Hujan dengan Metode Kalman Filter(Studi Kasus di Kota Semarang 2012) Jurnal Gaussian 2(3) pp 239-248
Pradipta Nur Sembiring Pasukat Bangun Pengarapen 2013 Analisis Pengaruh Curah Hujan di Kota Medan Saintia Matematika Vol 1
Sipayung Putri Metha 2013 Pemodelan Hubungan Kelembapan Udara terhadap Curah Hujan (Studi Kasus Curah Hujan Periode 2001-2009 pada Stasiun Dramaga) httprepositoryipbacidhandle12345678960623 (Diakses 25 Februari 2017)
User 2015 httpstaklimnegaranet[Online] Available at httpwwwstaklimnegaranetindexphpbuletin-hujanpengertian-istilah (Diakses 25 Februari 2017)
Wang Nai-Yi Chen Shyi-Ming 2009 Temperature prediction and TAIFEX forecasting based on automatic clustering techniques and two-factors high-order fuzzy time series Elsevier Expert Systems with Applications 36 2143ndash2154
94
Wardhani Dessy Ratnawati Dian Setiawan Budi 2015 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Saham Repositori Jurnal Mahasiswa PTIIK UB Doro Jurnal Vol 6 No 6
Wiyanti T and Pulungan R 2012 Peramalan Deret Waktu Menggunakan Model Fungsi Basis Radial (RBF) dan Auto Regressive Integrated Moving Average (ARIMA) Jurnal MIPA 35(2) pp 175-182
Yunanto Utomo 2014 ldquoBMKG Akui Prakiraan Cuacanya Masih Kurang Akuratrdquo Kompas Sains Januari 30 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
vi
ABSTRACT
Malang Regency is one of the regencies in East Java which has a high level of agricultural production in almost every district has agricultural land The problem is when high rainfall is not a few farmers who experienced crop failure Rainfall is one of several factors that affect climate change so it is very important to determine the yields obtained The problem of this harvest failure can be overcome by forecasting rainfall with rainfall forecasting farmers can determine the time of the appropriate cropping patterns so as to anticipate the occurrence of crop failure On the research of forecasting rainfall in dasarian based on several factors namely temperature humidity and wind speed The methods used for forecasting rainfall dasarian is a High-Order Fuzzy Time Series Multi factors In this method the formation of subinterval using fuzzy C-means In calculating the error of forecasting result using Mean Square Error (MSE) Based on the results of tests conducted the smaller threshold and the greater data training as well order the value error is obtained increasingly low The result of forecasting dasarian rainfall for forecasting one year ahead using this method get the best MSE result of 539698 Keywords rain fall fuzzy C-means fuzzy time series forecasting
vii
DAFTAR ISI
PENGESAHAN ii
PERNYATAAN ORISINALITAS iii
KATA PENGANTAR iv
ABSTRAK v
ABSTRACT vi
DAFTAR ISI vii
DAFTAR TABEL xi
DAFTAR GAMBAR xiii
DAFTAR KODE PROGRAM xv
DAFTAR LAMPIRAN xvi
BAB 1 PENDAHULUAN 1
11 Latar belakang 1
12 Rumusan masalah 2
13 Tujuan 3
14 Manfaat 3
15 Batasan masalah 3
16 Sistematika pembahasan 3
BAB 2 LANDASAN KEPUSTAKAAN 5
21 Kajian Pustaka 5
22 Dasar Teori 7
221 Peramalan 8
222 Curah hujan 8
223 Data time series 9
224 Logika Fuzzy 10
225 Metode Fuzzy C-means 13
226 Metode Peramalan dengan Fuzzy Time Series 15
227 Metode High Order Fuzzy Time Series Multi Factors 17
228 Perhitungan keakuratan metode peramalan 20
BAB 3 METODOLOGI 22
31 Studi Literatur 22
viii
32 Pengumpulan Data 23
33 Perancangan 23
34 Implementasi 23
35 Pengujian dan Analisis 23
36 Kesimpulan dan Saran 24
BAB 4 PERANCANGAN 25
41 Perancangan Proses 25
411 Proses perhitungan Universe of Discourse 26
4111 Proses perhitungan Mean 28
4112 Proses perhitungan standar deviasi 29
4113 Proses perhitungan nilai Dmin dan Dmax 30
412 Proses perhitungan jumlah cluster 31
413 Proses perhitungan pusat cluster 32
414 Proses pembentukan subinterval dan Fuzzy set 37
415 Proses Fuzzifikasi 38
416 Proses pembentukan Fuzzy Logical Relationship 41
417 Proses Defuzzifikasi 43
42 Perhitungan Manual 46
421 Perhitungan Universe of Discourse (U) 46
422 Perhitungan jumlah cluster (k) 48
423 Perhitungan pusat cluster dan subinterval 49
4231 Penentuan pusat cluster 49
4232 Perhitungan batas subinterval 55
424 Pembentukan Fuzzy Set 56
425 Fuzzifikasi 56
426 Pembentukan Fuzzy Logical Relationship (FLR) 58
427 Defuzzifikasi 58
43 Perancangan antarmuka 60
431 Halaman input 60
432 Halaman tampil data 61
433 Halaman proses 62
434 Halaman hasil 63
ix
435 Halaman perhitungan error 64
44 Perancangan pengujian 64
441 Perancangan pengaruh order terhadap nilai MSE 64
442 Perancangan pengaruh threshold terhadap nilai MSE 65
443 Perancangan pengaruh jumlah data training terhadap nilai MSE 65
444 Perancangan validasi sistem 65
BAB 5 IMPLEMENTASI 67
51 Spesifikasi Sistem 67
511 Spesifikasi Perangkat Keras 67
512 Spesifikasi Perangkat Lunak 67
52 Implementasi Algoritma 67
521 Implementasi Proses Universe of Discourse 68
5211 Implementasi proses mean 68
5212 Implementasi proses standar deviasi 68
5213 Implementasi proses Dmin dan Dmax 69
522 Implementasi Proses Jumlah Cluster 69
523 Implementasi Proses Pusat Cluster 70
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set 72
525 Implementasi proses fuzzifikasi 74
526 Implementasi Pembentukan Fuzzy Logical Relationship 75
527 Implementasi Proses Defuzzifikasi 77
53 Implementasi Antarmuka 79
531 Implementasi antarmuka halaman input 79
532 Implementasi antarmuka halaman tampil data 80
533 Implementasi antarmuka halaman proses 80
534 Implementasi antarmuka halaman hasil 82
535 Implementasi antarmuka halaman perhitungan error 82
BAB 6 PENGUJIAN DAN ANALISIS 83
61 Sistematika Pengujian 83
62 Hasil dan Analisis Pembahasan 83
621 Pengujian pengaruh order terhadap nilai MSE 83
x
622 Pengujian pengaruh threshold terhadap nilai MSE 85
623 Pengujian pengaruh jumlah data training terhadap nilai MSE 86
624 Pengujian validasi sistem 88
BAB 7 PENUTUP 90
71 Kesimpulan 90
72 Saran 91
DAFTAR PUSTAKA 92
LAMPIRAN 95
Lampiran 1 Data Sampel 95
xi
DAFTAR TABEL
Tabel 21 Kajian Pustaka 5
Tabel 22 Fuzzy Logic Relationship 19
Tabel 23 Peramalan fuzzy set 20
Tabel 41 Data Sampel Perhitungan Manual 46
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean 47
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi 47
Tabel 44 Hasil Universe of Discourse 48
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya 48
Tabel 46 Hasil jumlah cluster data 49
Tabel 47 Matriks partisi awal pada cluster data A 50
Tabel 48 Derajat keanggotaan matriks partisi data A 51
Tabel 49 Perhitungan pusat cluster data A 52
Tabel 410 Fungsi objektif data A 53
Tabel 411 Perbaikan matriks partisi 54
Tabel 412 Hasil perbaikan matriks partisi 54
Tabel 413 Hasil pusat cluster 55
Tabel 414 Batas subinterval masing ndash masing atribut data 55
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A 57
Tabel 416 Hasil fuzzifikasi semua data attribut 57
Tabel 417 Hasil pembentukan FLR data training 58
Tabel 418 Hasil pembentukan FLR data testing 58
Tabel 419 Frekuensi FLR yang cocok dengan data testing 59
Tabel 420 Perbandingan data aktual dan hasil peramalan 60
Tabel 421 Rancangan pengujian order terhadap nilai MSE 64
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE 65
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE 65
Tabel 424 Rancangan pengujian validasi sistem 66
Tabel 51 Spesifikasi Perangkat Keras 67
Tabel 52 Spesifikasi Perangkat Lunak 67
Tabel 61 Hasil pengujian order terhadap nilai MSE 83
xii
Tabel 62 Hasil pengujian threshold terhadap nilai MSE 85
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE 87
Tabel 64 Hasil pengujian validasi sistem 88
xiii
DAFTAR GAMBAR
Gambar 21 Representasi linear naik 11
Gambar 22 Representasi linear turun 12
Gambar 23 Representasi kurva segitiga 12
Gambar 31 Diagram blok metodologi penelitian 22
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1) 25
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2) 26
Gambar 43 Diagram alir proses perhitungan Universe of Discourse 27
Gambar 44 Diagram alir proses perhitungan mean 28
Gambar 45 Diagram alir proses perhitungan standar deviasi 29
Gambar 46 Diagram alir perhitungan nilai Min dan Max 30
Gambar 47 Diagram alir proses perhitungan jumlah cluster 31
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1) 32
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2) 33
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3) 34
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4) 35
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5) 36
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1) 37
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2) 38
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1) 39
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2) 40
Gambar 417 Diagram alir proses Pembentukan FLR (bagian 1) 41
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2) 42
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3) 43
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1) 44
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2) 45
Gambar 422 Grafik fuzzy set data A 56
Gambar 423 Rancangan antarmuka halaman input 61
Gambar 424 Rancangan antarmuka halaman tampil data 61
Gambar 425 Rancangan antarmuka halaman proses clustering 62
Gambar 426 Rancangan antarmuka proses fuzzifikasi 62
xiv
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship 63
Gambar 428 Rancangan antarmuka halaman hasil peramalan 63
Gambar 429 Rancangan antarmuka halaman perhitungan error 64
Gambar 51 Implementasi antarmuka halaman input 79
Gambar 52 Implementasi antarmuka halaman tampil data 80
Gambar 53 Implementasi antarmuka halaman proses clustering 80
Gambar 54 Implementasi antarmuka halaman proses fuzzification 81
Gambar 55 Implementasi halaman antarmuka proses FLR 81
Gambar 56 Implementasi halaman antarmuka hasil 82
Gambar 57 Implementasi halaman antarmuka perhitungan error 82
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE 84
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE 86
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE 87
Gambar 64 Grafik hasil pengujian validasi sistem 88
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan 89
xv
DAFTAR KODE PROGRAM
Kode Program 51 Implementasi proses Universe of Discourse 68
Kode Program 52 Implementasi proses mean 68
Kode Program 53 Implementasi proses standar deviasi 69
Kode Program 54 Implementasi proses Dmin dan Dmax 69
Kode Program 55 Implementasi proses jumlah cluster 70
Kode Program 56 Implementasi proses pusat cluster 72
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set 74
Kode Program 58 Implementasi proses fuzzifikasi 75
Kode Program 59 Implementasi pembentukan FLR 77
Kode Program 510 Implementasi proses defuzzifikasi 79
xvi
DAFTAR LAMPIRAN
Lampiran 1 Tabel Data Sampel 95
1
BAB 1 PENDAHULUAN
11 Latar belakang
Kabupaten Malang merupakan salah satu kabupaten di Jawa Timur yang terkenal akan potensi alam yang dimiliki (BPS Kabupaten Malang 2016) Dalam hal ini terkenal akan potensi alamnya karena kabupaten Malang memiliki tingkat produksi di sektor pertanian yang cukup tinggi dimana hampir seluruh kecamatan di kabupaten Malang memiliki lahan pertaniaaan (BPS Jatim 2015) Permasalahan yang terjadi pada sektor pertanian yaitu terjadinya gagal panen apabila memasuki musim penghujan dengan curah hujan yang tinggi yaitu diatas 200 mm per bulan serta apabila memasuki musim kemarau dengan curah hujan yang rendah yaitu dibawah 100 mm per bulan (BMKG Staklim Karangploso Malang 2015) Dalam mengatasi hal tersebut upaya yang dilakukan petani selama ini hanya melakukan tindakan seperti melakukan panen secara dini Upaya ini dianggap petani cukup efektif dalam mengurangi besarnya kerugian gagal panen akan tetapi sebaiknya yang dilakukan adalah melakukan suatu tindakan agar kerugian yang dialami petani tidak terjadi lagi (Ardiyanto 2016)
Salah satu contoh tindakan yang dapat dilakukan adalah membuat Kalender Tanam (KATAM) KATAM dapat digunakan petani sebagai alat bantu atau pedoman dalam menentukan awal musim tanam terbaik seperti yang telah dilakukan oleh Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian Dalam pembuatan KATAM Balitbang menggunakan data peramalan curah hujan dari Badan Meteorologi Klimatologi dan Geofisika (BMKG) Akan tetapi BMKG mengakui bahwa prakiraan cuacanya saat ini memang masih kurang akurat dan masih kalah dengan prakiraan cuaca di Amerika Serikat (Yunanto 2014) Pentingnya akan prakiraan cuaca terbukti adanya beberapa penelitian sebelumnya yaitu penelitian prakiraan cuaca dengan input faktor yang mempengaruhi cuaca yang berupa data time series menggunakan metode Adaptive Neuro Fuzzy Inference System (ANFIS) (Dewi 2014) dan penelitian mengenai prediksi cuaca menggunakan metode Backpropagation Neural Network yang terbukti memiliki nilai akurasi yang baik dalam prediksi cuaca (Dewi 2013)
Teknik atau metode peramalan curah hujan yang sering digunakan BMKG adalah metode Autoregressive Integrated Moving Average (ARIMA) ANFIS dan Wavelet (Kurniawan 2007) Namun dalam penerapannya gabungan dari ketiga metode tersebut masih kurang memuaskan yaitu tingkat akurasinya hanya mencapai 60 - 70 Menurut BMKG kurangnya tingkat akurasinya ini disebabkan oleh keadaan pola atmosfer di Indonesia yang selalu berubah ndash ubah dan kurang menentu
Selain metode yang digunakan oleh BMKG adapun penelitian sebelumnya yang meramalkan curah hujan yaitu penelitian menggunakan metode Fuzzy Time Series Chen dengan studi kasus curah hujan di Samarinda dalam penelitian ini menggunakan data time series curah hujan bulanan dengan kesimpulan pengunaan data yang sedikit memiliki tingkat akurasi lebih tinggi dibandingkan
2
menggunakan data yang banyak yaitu menghasilkan nilai RMSE terkecil 7368 dan MAE terkecil 539 (Fauziah et al 2016)
Selain peramalan yang hanya menggunakan data time series dari data yang akan diramalkan juga terdapat penelitian sebelumnya yang menggunakan faktor - faktor yang mempengaruhi dari data yang akan diramalkan Salah satunya yaitu penelitian dengan menggunakan metode Clusterwise Linear Regression (CLR) Penelitian ini menggunakan data bulanan pada delapan stasiun cuaca di kota Victoria Australia Peramalan curah hujan pada penelitian ini menggunakan faktor yang mempengaruhi yaitu suhu maksimum suhu minimum penguapan tekanan uap dan radiasi matahari Hasil penelitian ini terbukti dapat melakukan peramalan curah hujan dengan hasil yang cukup baik yaitu dengan nilai RMSE terkecil 197 dan MAE terkecil 129 (Bagirov et al 2017)
Berdasarkan paparan yang telah dijelaskan penulis memiliki ide untuk melakukan penelitian dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Pada metode ini dilakukan klasterisasi data untuk membangun subinterval dengan menggunakan metode fuzzy C-means (LinYang 2009) Dari proses hasil klasterisasi akan digunakan untuk membagi data semesta yang selanjutnya menghasilkan fuzzy set atau himpunan fuzzy yang menggambarkan fitur data (LinYang 2009) Keunggulan dari metode fuzzy time series dengan multi faktor yaitu dengan berdasarkan pada penelitian ndash penelitian sebelumnya yang menggunakan metode tersebut yaitu penelitian prediksi harga emas dengan beberapa faktor yang mempengaruhi menggunakan metode Multi-factors High order Fuzzy Time Series Model dari hasil penelitian ini dengan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 (Wardhani et al 2015) dan penelitian peramalan Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen menggunakan metode Fuzzy Time Series Model dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 (Lin Yang 2009) terbukti menghasilkan hasil peramalan dengan tingkat akurasi yang cukup tinggi Penggunaan metode ini juga sesuai dengan curah hujan yang dipengaruhi oleh beberapa faktor yaitu kelembaban udara kecepatan angin dan suhu (Pradipta 2013) Penelitian ini diharapkan dapat memberikan hasil peramalan curah hujan yang lebih akurat dan memiliki nilai kesalahan yang lebih sedikit
12 Rumusan masalah
Berdasarkan latar belakang yang telah dipaparkan dibuatlah beberapa rumusan masalah sebagai berikut
1 Bagaimana mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Berapa tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
3
13 Tujuan
Adapun maksud dan tujuan dari penelitian ini adalah sebagai berikut
1 Mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Mengetahui tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
14 Manfaat
Adapun manfaat dari penelitian ini adalah sebagai berikut
1 Bagi Badan Meteorologi dan Geofisika (BMKG) untuk dapat memberikan peramalan curah hujan yang lebih akurat dari sebelumnya
2 Bagi Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian untuk dapat membuat Kalender tanam (KATAM) dengan menggunakan data ramalan curah hujan yang lebih akurat
3 Bagi penduduk kabupaten Malang khususnya yang bekerja pada sektor pertanian agar dapat mengoptimalkan hasil produksi dengan menyesuaikan penanaman sesuai dengan Kalender Tanam (KATAM) yang telah dibuat Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian
15 Batasan masalah
Penelitian ini dibatasi oleh hal ndash hal sebagai berikut
1 Data curah hujan kelembaban udara kecepatan angin dan suhu udara yang digunakan pada penelitian ini merupakan data berdasarkan dasarian dan hanya mencakup wilayah kabupaten Malang dan data diperoleh dari BMKG Karangkates Kabupaten Malang dengan data time series yang digunakan pada penelitian ini yaitu dari tahun 2011 - 2016
2 Model peramalan yang diterapkan adalah semua nilai yang membentuk pola dataset training dan testing diketahui nilainya
3 Perhitungan nilai tingkat kesalahan permalan menggunakan metode Mean Square Error (MSE)
16 Sistematika pembahasan
Sistematika pembahasan penelitian ditunjukkan untuk memberikan gambaran dan uraian dari penyusunan proposal yang meliputi beberapa bab sebagai berikut
BAB 1 PENDAHULUAN
Pada bab ini berisi latar belakang rumusan masalah tujuan penelitian manfaat penelitian batasan masalah sistematika pembahasan dan rencana kerja atau jadwal penelitian
4
BAB 2 LANDASAN KEPUSTAKAAN
Pada bab ini berisi tentang kajian pustaka dan dasar teori yang menjadi dasar dalam melakukan implementasi peramalan curah hujan dengan Metode High Order Fuzzy Time Series Multi Factors
BAB 3 METODOLOGI
Pada bab ini diuraikan tentang tahapan atau langkah ndash langkah yang dilakukan dalam proses penelitian tentang peramalan curah hujan dengan metode High Order Fuzzy Time Series Multi Factors Langkah ndash langkah tersebut terdiri dari tahapan penelitian teknik pengumpulan data algoritma yang digunakan lingkungan pengujian dan pengujian algoritma yang digunakan serta pengambilan kesimpulan
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan proses algoritma perhitungan manual metode High Order Fuzzy Time Series Multi Factors perancangan antar muka dan perancangan pengujian
BAB 5 IMPLEMENTASI
Pada bab ini berisi tentang penjelasan peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors bagaimana user interface dan source code dalam pengimplementasian metode ini
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini berisi tentang penjelasan proses dan hasil pengujian dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam peramalan curah hujan serta analisis dari pengujian tersebut
BAB 7 PENUTUP
Pada bab ini berisi kesimpulan yang diperoleh dari hasil pengujian dan saran ndash saran untuk pengembangan penelitian selan
5
BAB 2 LANDASAN KEPUSTAKAAN
Bab ini berisi mengenai kajian pustaka dan dasar ndash dasar teori yang akan dibahas serta digunakan untuk menunjang topik ndash topik pembahasan Pada kajian akan dibahas perbedaan antara penelitian yang telah ada dengan penelitian yang diusulkan oleh penulis Sedangkan pada dasar teori akan dibahas mengenai teori ndash teori yang digunakan pada penelitian yang diusulkan
21 Kajian Pustaka
Pada kajian pustaka disini berisi mengenai perbandingan antara penelitian yang diusulkan oleh penulis dengan penelitian sebelumnya yang relevan Perbandingan tersebut dapat dilihat padat Tabel 21
Tabel 21 Kajian Pustaka
No Judul Objek dan Input Penelitian Metode
1 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan (Irsyad Metarice 2013)
Objek Curah hujan
Input Penelitian
Data aktual curah hujan
Metode High Order Fuzzy Time Series dan Automatic Clustering
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
2 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) (Fauziah et al 2016)
Objek Curah Hujan
Input Penelitian
Data aktual curah hujan
Metode Fuzzy Time Series Chen
Nilai evaluasi
Mean Absolute Error (MAE) Root Mean of Square Error (RMSE)
3 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emas (Wardhani et al 2015)
Objek Harga Emas
Input Penelitian
Kurs Dollar hari sebelumnya
Kurs Euro hari sebelumnya
Harga Emas London hari sebelumnya
Harga Emas hari sebelumnya
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
4 Stock Markets Forecasting Based on Fuzzy Time Series Model (Lin Yang 2009)
Objek Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
6
Input Penelitian
Historical return
Historical turnover volume
Rata ndash rata selisih pergerakan harga selama lima hari
Selisih antara kekuatan bull dan bear
Indeks komposit bursa efek harian Shanghai sebelumnya
Indeks komposit bursa efek harian Shenzhen
Nilai evalusi
Average Relative Error (ARError)
5 Peramalan Curah Hujan Menggunakan Metode High Order Fuzzy Time Series Multi Factors
Objek Curah hujan
Input Penelitian
Suhu
Kelembaban
Kecepatan angin
Curah hujan
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Square Error (MSE)
Sumber (Irsyad Metarice 2013) (Fauziah et al 2016) (Wardhani et al 2015) dan (Lin Yang 2009)
Pada penelitian yang pertama yaitu penelitian yang dilakukan oleh Muhammad Irsyad dan Sonya Metarice pada tahun 2013 dengan objek penelitian yang diramalkan adalah curah hujan Inputan yang digunakan pada penelitian ini merupakan data aktual curah hujan bulanan Metode yang digunakan penelitian ini adalah Automatic Clustering dan High Order Fuzzy Time Series Pada penelitian ini metode Automatic Clustering digunakan untuk membangun interval dan High Order Fuzzy Time Series untuk melakukan peramalan curah hujan Kesimpulan yang diperoleh dari penelitian ini yaitu metode ini dapat diterapkan untuk permalan curah hujan dan hasil evaluasi menggunakan metode Mean Absolute Percentage Error(MAPE) dari beberapa bercobaan dapat diperoleh nilai kesalahan sebesar 437 Berdasarkan dari hasil nilai kesalahan tersebut maka tingkat kesalahan data pada permalan ini termasuk rendah
Pada tahun 2016 Normalita Fauziah Sri Wahyuningsih dan Yuki Novia Nasution melakukan penelitian dengan objek penelitian curah hujan di kota Samarinda Inputan yang digunakan pada penelitian berupa data aktual bulanan curah hujan di kota Samarinda Metode yang digunakan pada penelitian ini adalah Fuzzy Time Series Chen dengan dalam pembentukkan panjang interval berbasis rata ndash rata atau average based Pada penelitian ini permalan curah hujan terbaik yaitu dengan menggunkan data sebanyak 29 data dengan menghasilkan tingkat nilai kesalahan terkecil yaitu dengan metode Root Mean of Squared Error (RMSE) sebesar 7368 dan metode Mean Absolute Error (MAE) sebesar 539 Pada
(Lanjutan) Tabel 21 Kajian Pustaka
7
penelitian ini disimpulkan bahwa data sebanyak 29 data memiliki tingkat kesalahan lebih kecil dibandingkan dengan menggunakan data dengan jumlah sampel yang lebih banyak
Pada penelitian selanjutnya adalah penelitian yang dilakukan oleh Dessy Kusuma Wardhani Dian Eka Ratnawati dan Budi Darma Setiawan pada tahun 2015 dengan objek penelitian yang diramalkan adalah harga emas harian Inputan yang digunakan pada penelitian ini data aktual harian harga emas indonesia harga emas london kurs dollar ke rupiah dan kurs euro ke rupiah Metode yang digunakan pada penelitian pada pembentukkan sub interval menggunakan metode fuzzy C-means dan untuk peramalan menggunakan metode High Order Fuzzy Time Series Model Hasil pada penelitian ini berdasarkan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 karena nilai error lebih kecil dari 10 menunjukkan bahwa metode ini sangat baik digunakan untuk peramalan harga emas
Pada tahun 2009 Yupei Lin dan Yiwei Yang melakukan penelitian dengan objek yang diramalkan adalah indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen Data input penelitian ini meliputi historical return historical turnover volume dan rata ndash rata selisih pergerakan harga selama lima hari serta selisih antara kekuatan bull dan bear Dalam penelitian ini pembentukan subinterval yang berfungsi dalam pendefinisian himpunan fuzzy dilakukan dengan menggunakan klasterisasi fuzzy C-means Hasil dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 Dalam hal ini membuktikan bahwa penelitian dapat menghasilkan peramalan yang cukup baik karena memiliki nilai ARError kurang dari 5
Pada penelitian ini membahas tentang peramalan curah hujan dasarian menggunakan metode High Order Fuzzy Time Series Multi Factors Terdapat empat inputan yang juga dijadikan sebagai variabel dalam penelitian ini yaitu kelembaban udara kecepatan angin suhu udara dan curah hujan Pembentukan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan klasterisasi fuzzy C-means Penelitian ini menggunakan high order fuzzy logic relationship yaitu membentuk fuzzy logic relationship berdasarkan data dalam kurun waktu beberapa dasarian sebelum dasarian yang akan diramal Pada penelitian ini dalam melakukan perhitungan nilai error untuk mendapatkan hasil evaluasi menggunakan metode Mean Square Error (MSE)
22 Dasar Teori
Pada dasar teori disini dijelaskan tentang metode ndash metode yang digunakan pada penelitian ini yang meliputi peramalan curah hujan data time series logika fuzzy fuzzy C-means metode peramalan dengan Fuzzy Time Series High Order Fuzzy Time Series Multi Factors dan metode perhitungan keakuratan metode peramalan
8
221 Peramalan
Terdapat beberapa definisi tentang peramalan menurut Kamus Besar Bahasa Indonesia (KBBI) yaitu
a Peramalan merupakan prediksi rencana atau estimasi kejadian masa depan yang tidak pasti (KBBI)
b Peramalan adalah sebagai penggunaan teknik ndash teknik statistik dalam bentuk gambaran masa depan berdasarkan pengolahan angka ndash angka yang terjadi pada masa lalu (Buffa et al1996)
c Peramalan adalah bagian internal dari pengambilan keputusan manajemen (Makridakis et al1999)
Berdasarkan beberapa definisi diatas dapat disimpulkan bahwa peramalan merupakan tindakan apa yang akan terjadi di masa mendatang peramalan diperlukan untuk mengambil sebuah keputusan Dalam pengambilan keputusan harus diambil dari pertimbangan ndash pertimbangan yang ada Oleh karena itu peramalan sangat penting hubungannya dengan pengambilan keputusan sehingga kejadian di masa yang akan datang dapat dipersiapkan tindakan apa yang perlu dilakukan
222 Curah hujan
Curah hujan merupakan salah satu faktor penting yang mempengaruhi perubahan iklim suatu wilayah (Mirawati et al 2013) Salah satu contoh kasus nyata yaitu terjadinya perubahan iklim secara tiba ndash tiba atau bisa disebut dengan cuaca ekstrim Curah hujan dapat dijelaskan dengan air hujan yang terkumpul pada suatu wadah datar dimana air hujan tersebut tidak meresap tidak menguap dan tidak mengalir sehingga dapat diukur ketinggiannya Sebagai contoh curah hujan 1 (satu) milimeter dapat dijelaskan dalam suatu wadah datar dengan luas satu meter persegi tertampung air dengan ketinggian sekitar satu milimeter atau tertampung air sebanyak satu liter Metode dalam mendapatkan data curah hujan adalah dengan menggunakan penakar hujan yang kemudian diukur dengan satuan milimeter (mm) (User2015) Intensitas curah hujan dapat dikategorikan ringan jika dibawah 20mm dalam 24 jam dikategorikan lebat jika di atas 50mm dan dikategorikan sedang jika selang 20mm hingga 50mm (User 2015)
Curah hujan mempengaruhi beberapa sektor diantarannya sektor komunikasi dimana penggunaan frekuensi diatas 10 GHz dapat terkena redaman hujan (Mauludiyanto et al 2009) Akan tetapi curah hujan paling berpengaruh terhadap sektor pertanian Hal ini terbukti bahwa sebagian besar terjadinya penurunan produktifitas dan gagal panen di sektor pertanian adalah terjadinya curah hujan yang tinggi
Tinggi dan rendahnya curah hujan dipengaruhi oleh beberapa faktor yaitu kelembaban udara temperatur dan kecepatan angin Pada tahun 2013 Nur Suri Pradipta Pasukat Sembiring dan Pengarapen Bangun melakukan penelitian mengenai pengaruh curah hujan di kota Medan (Pradipta et al 2013)
9
Berdasarkan penelitian tersebut faktor yang mempengaruhi dan digunakan dalam peramalan curah hujan yaitu
1 Kelembaban udara
Kelembaban udara adalah banyaknya kandungan uap air di atmosfer Udara atmosfer adalah campuran dari udara kering dan uap air selain itu kelembaban udara merupakan komponen cuaca yang mempunyai peranan sangat penting bagi stabilitas kehidupan organisme di bumi maupun unsur-unsur cuaca yang lain (Forest 2015) Kelembaban udara berpengaruh terhadap curah hujan Hal ini didukung penelitian oleh (Sipayung et al 2013) yang menyatakan Kelembaban udara berpengaruh positif terhadap curah hujan
2 Kecepatan angin
Kecepatan angin merupakan kecepatan udara yang bergerak secara horizontal pada ketinggian 2 meter diatas tanah Dalam hal ini faktor yang menentukan kecepatan angin adalah perbedaan tekanan udara antara asal dan tujuan angin Kecepatan angin berpengaruh positif terhadap curah hujan artinya jika kecepatan angin tinggi maka curah hujan akan tinggi (Pradipta et al2013)
3 Suhu udara
Suhu udara merupakan ukuran energi kinetik rata ndash rata dari pergerakan molekul ndash molekul Suhu udara berpengaruh negatif terhadap curah hujan artinya jika suhu udara tinggi maka curah hujan akan berkurang (Pradipta et al2013)
223 Data time series
Data time series adalah data statistik yang telah dihimpun dari masa lampau hingga sekarang dan dapat digunakan sebagai acuan dalam melakukan peramalan terhadap data yang akan datang (Wiyanti amp Pulungan 2012) Data time series juga dapat didefinisikan sebagai sebuah kegiatan mengamati data statistik dimana terdapat korelasi (dependensi) antar datanya sehingga data yang sekarang sedang diamati memiliki ketergantungan dengan satu atau lebih data pengamatan sebelumnya (Mirawati et al 2013)
Terdapat dua teknik prediksi yang menggunakan basis data time series yaitu teknik model matematika statistik dan berdasarkan kecerdasan buatan (Wiyanti amp Pulungan 2012) Analisa time series sendiri memiliki beberapa peruntukan salah satunya digunakan dalam melakukan peramalan untuk masa yang akan datang Dalam penggunaan data time series merupakan salah satu proses peramalan kuantitatif dimana berdasar data kuantitatif masa lampau yang direpresentasikan dalam bentuk angka atau nilai (Mirawati et al 2013)
10
224 Logika Fuzzy
Pada tahun 1965 Prof Lotfi A Zadeh memperkenalkan teori logika fuzzy Logika fuzzy merupakan suatu komponen soft computing dan juga suatu cara yang tepat untuk memetakan suatu ruang input ke dalam ruang output Antara ruang input dan ruang output terdapat black box yang berfungsi memetakan input ke ruang output yang sesuai Dasar logika fuzzy adalah teori fuzzy set Pada teori fuzzy set peranan derajat keanggotaan sebagai penentu keberadaan elemen dalam suatu himpunan sangatlah penting Oleh karena itu derajat keanggotaan menjadi ciri utama dalam penalaran dengan logika fuzzy Logika fuzzy bekerja dengan menggunakan derajat keanggotan dari sebuah nilai yang kemudian digunakan untuk menentukan hasil yang ingin dihasilkan berdasarkan atas kriteria yang telah ditentukan (Kusumadewi 2003)
Berikut adalah beberapa alasan digunakannya logika fuzzy (Kusumadewi 2002)
1 Logika fuzzy sangat fleksibel
2 Konsep logika fuzzy mudah dimengerti dan dipahami
3 Logika fuzzy memiliki toleransi terhadap data ndash data yang homogen dan data ndash data yang kurang tepat
4 Logika fuzzy didasari pada bahasa alami atau bahasa sehari - hari sehingga mudah dimengerti
5 Logika fuzzy dapat bekerjasama dengan teknik ndash teknik kendali secara konvensional
6 Logika fuzzy mampu membangun dan mengaplikasikan pengalaman ndash pengalaman para pakar secara langsung tanpa harus melalui tahap atau proses pelatihan
A Himpunan Fuzzy
Himpunan fuzzy atau fuzzy set merupakan perluasan himpunan tegas atau himpunan crisp jadi fungsi karakteristik mencakup bilangan real pada interval [01] Dalam definisi lain himpunan fuzzy adalah suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dalam suatu variabel fuzzy Keanggotaan fuzzy berbeda dengan probabilitas jika keanggotaan fuzzy pada setiap fungsi karakteristik memberikan suatu pendapat atau keputusan sedangkan probabilitas menunjukan seberapa besar nilai kebenaran dalam fungsi karakteristik tersebut Contohnya yaitu nilai keanggotaan suatu himpunan fuzzy umur muda 09 berarti nilai dalam himpunan tersebut memiliki kemungkinan 90 anggotanya berumur muda dan 10 diharapkan tidak muda Dalam himpunan fuzzy suatu bilangan bisa memiliki dua keanggotaan sekaligus Himpunan fuzzy memiliki dua attribut (Kusumadewi2003)
11
1 Linguistik merupakan penamaan suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami misalnya muda parobaya tua
2 Numeris merupakan suatu nilai (angka) yang menunjukkan ukuran dari suatu
variabel seperti 402550 dan sebagainya
B Fungsi Keanggotaan
Fungsi keanggotaan adalah suatu kurva yang menunjukkan pemetaan titik ndash titik input data ke dalam derajat keanggotaannya yang memiliki subinterval antara 0 sampai 1 (Kusumadewi Purnomo 2004) Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi Ada beberapa fungsi keanggotaa yang dapat digunakan
1 Fungsi representasi linear
Pada fungsi representasi linear pemetaan input ke derajat keanggotaannya digambarkan sebagai suatu garis lurus Bentuk ini paling sederhana dan menjadi pilihan yang baik untuk mendekati suatu konsep yang kurang jelas Keadaan linear himpunan fuzzy terdiri dari dua keadaan yaitu keadaan linear naik dan keadaan linear turun Pada keadaan linear naik kenaikan himpunan dimulai pada nilai domain yang memiliki nilai derajat keanggotaan nol bergerak ke kanan menuju ke nilai domain yang memiliki derajat keanggotaan yang lebih tinggi seperti yang ditunjukkan Gambar 21 Persamaan fungsi keanggotaan pada representasi linear naik ditunjukkan oleh Persamaan 21
Fungsi Keanggotaan
120583(119909) = 0
(119909 minus 119886)(119887 minus 119886)1
119909 le 119886 119886 le 119909 le 119887119909 ge 119887
(21)
b a 0
1
Gambar 21 Representasi linear naik
Sumber Kusumadewi (2002)
120583(119909)
12
Pada keadaan linear turun berbanding terbalik dengan keadaan linear naik Garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi pada sisi kiri kemudian bergerak menurun ke nilai domain yang memiliki derajat keanggotaan lebih rendah yang ditunjukkan Gambar 22 Persamaan fungsi keanggotaan pada representasi linear turun ditunjukkan oleh Persamaan 22
Fungsi Keanggotaan
120583(119909) = (119887 minus 119909)(119887 minus 119886)0
119886 le 119909 le 119887
119909 ge 119887 (22)
2 Fungsi representasi kurva segitiga
Representasi kurva segitiga pada dasarnya merupakan gabungan antara 2 garis linear yaitu linear naik dan linear turun Fungsi representasi kurva segitiga ditandai oleh adanya tiga parameter abc yang akan menentukan koordinat x dari tiga sudut seperti ditunjukkan pada Gambar 23 Persamaan fungsi keanggotaan pada representasi kurva segitiga ditunjukkan oleh Persamaan 23
b a 0
1
Sumber Kusumadewi (2002)
Gambar 22 Representasi linear turun
120583(119909)
c a 0
1
b
Sumber Kusumadewi (2002)
Gambar 23 Representasi kurva segitiga
120583(119909)
13
Fungsi Keanggotaan
120583(119909) =
0 (119909 minus 119886)(119887 minus 119886) (119887 minus 119909)(119888 minus 119887)
119909 le 119886 119886119905119886119906 119909 ge 119888
119886 le 119909 le 119887 119887 le 119909 le 119888
(23)
225 Metode Fuzzy C-means
Fuzzy C-means (FCM) pertama kali diperkenalkan oleh Dunn dan dikembangkan oleh Bezdek yang banyak digunakan dalam pengenalan pola Metode ini merupakan pengembangan dari metode non-hierarkhi K-Means Cluster selanjutnya dilakukan iterasi sampai mendapatkan keanggotaan kelompok tersebut (Klawon 2001)
FCM merupakan salah satu algoritma fuzzy clustering dan juga teknik klasterisasi dimana tiap data ditentukan oleh derajat keanggotaanya Tujuan penggunaan algoritma FCM yaitu untuk menemukan pusat cluster atau centroid dengan meminimumkan fungsi objektif (Bazdek 1984) Ouput dari FCM bukan merupakan fuzzy inference system melainkan deretan pusat cluster dan beberapa derajat keanggotaan untuk setiap titik data Hasil output ini dapat digunakan untuk membangun suatu fuzzy inference system Berikut adalah langkah ndash langkah dari FCM (Kusumadewi 2004)
1 Langkah pertama menentukan jumlah cluster (c ge 2) pembobot (infin gt 119908 gt1) (Bazdek 1984) maksimum iterasi (maxIter) error minimum yang diharapkan yaitu nilai positif yang sangat kecil (120585) fungsi objektif awal (P0 = 0) iterasi awal dideklarasikan 1
2 Langkah kedua memasukkan data X yang akan diklasterisasi berupa matriks berukuran m x n (m = jumlah sampel data n = attribut setiap data) Contoh Xij = data sampel ke-i (i = 1234m) attribu ke-j (j=1234n)
3 Langkah ketiga yaitu dengan membuat bilangan random microik i = 1234n dan k = 123c (n = jumlah sampel pada data c = jumlah cluster yang akan dibentuk) sebagai elemen ndash elemen matriks partisi awal Untuk bilangan penyusun matriks partisi awal dihitung dihitung jumlahnya setiap kolom yang ditunjukkan pada pada Persamaan 24 (Kusumadewi 2004)
119876119896 = sum 120583119894119896119888119896=1 (24)
Dimana
119876119896 = jumlah bilangan pada kolom k
120583119894119896 = bilangan random pada baris i kolom k
119888 = jumlah kolom
14
Selanjutnya untuk menghitung derajat keanggotaan awal dengan melakukan normalisasi pada matiks partisi pada normalisasi dilakukan menggunakan Persamaan 25 (Kusumadewi 2004)
120583119894119896 = 120583119894119896119876119896 (25)
4 Langkah keempat melakukan perhitungan cluster ke-k Vkj dengan k = 1234c dan j = 1234m Perhitungan pusat cluster ditunjukkan pada Persamaan 26 (Kusumadewi 2004)
119881119896119895 = sum ((120583119894119896)119908 times 119883119894119895)119899
119894=1
sum (120583119894119896)119908119899119894=1
(26)
Dimana
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
120583119894119896 = derajat keanggotaan pada data ke-i cluster ke-k
119883119894119895 = data sampel pada data ke-i attribut ke-j
119908 = pembobot
5 Langkah kelima melakukan perhitungan fungsi objektif pada iterasi ke-t P1 Perhitungan fungsi objektif ditunjukkan pada Persamaan 27 (Kusumadewi 2004)
119875119905 = sum sum ([sum (119883119894119895 minus 119881119896119895)119898119895=1
2](120583119894119896)119908)119888
119896=1119899119894=1 (27)
Dimana
119875119905 = fungsi objektif
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
6 Langkah keenam melakukan perhitungan perbaikan matriks partisi yang telah ditunjukkan Persamaan 28 (Kusumadewi 2004)
120583119894119896 = [sum (119883119894119895minus119881119896119895)119898
119895=12
]
minus1119908minus1
sum [sum (119883119894119895minus119881119896119895)119898119895=1
2]
minus1119908minus1119888
119896minus1
(28)
Dimana
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
119908 = pembobot
7 Langkah ketujuh yaitu melakukan pemerikasaan kondisi berhenti dengan kondisi sebagai berikut
a Jika (|119875119905 minus 119875119905minus1| lt 120585) atau ( t gt MaxIter) maka berhenti
b Jika tidak memenuhi t = t +1 ulangi mulai dari langkah ke-4
15
226 Metode Peramalan dengan Fuzzy Time Series
Pada tahun 1996 Chen memperkenalkan metode peramalan dengan menggunakan metode Fuzzy Time Series Metode Fuzzy Time Series memiliki perbedaan dengan metode peramalan time series biasa atau konvensional yaitu terdapat pada data yang digunakan untuk peramalan Fuzzy Time Series data yang digunakan adalah berupa fuzzy set atau himpunan fuzzy dari bilangan ndash bilangan real atas himpunan semesta yang ditentukan Jadi Fuzzy Time Series merupakan metode dengan menggunakan data berupa fuzzy set yang berasal dari bilangan real atas Universe of Discorse pada data aktual Universe of Discourse adalah himpunan semesta dari data penelitian
Berikut adalah langkah ndash langkah metode Fuzzy Time Series yang telah diperkenalkan oleh Chen terdapat enam langkah yaitu
1 Langkah pertama yaitu membagi Universe of Discourse dari bilangan aktual ke dalam subinterval dengan jumlah interval yang sama Perhitungan Universe of Discourse ditunjukkan pada Persamaan 29 (Chen 1996)
119880 = [119863119898119894119899 minus 1198631 119863119898119886119909 + 1198632] (29)
Dimana
119880 = Universe of Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
1198631 dan 1198632 = bilangan positif yang ditentukan oleh user untuk menentukan Universe of Discourse dari himpunan data sampel
2 Langkah kedua adalah mendefinisikan fuzzy set dari Universe of Discourse (U) menjadikan A1 A2 A3 An ke dalam fuzzy set dengan nilai linguistik sesuai dengan keadaan U Selanjutnya mendefinisikan fuzzy set tersebut ditunjukkan pada Persamaan 210 (Chen 1996)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (210)
1198602 =11989121
1199061+
11989122
1199062+
11989123
1199063+ ⋯ +
1198912119896
119906119896
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
Dimana 119891119894119895120598 [01] 1 le 119894 le 119896 dan 1 le 119895 le 119898 Variabel 119891119894119895 menunjukkan
derajat keanggotaan dari subinterval 119906119895 dari fuzzy set 1198601 Pada konsep ini
Chen menggunakan nilai linguistik 1198601 = (not many) 1198602 = (not too many) 1198603= (many) 1198604 = (many many) 1198605 = (very many) 1198606 = (too many) 1198607= (too many many) Kemudian nilai linguistik tersebut dimasukkan ke tiap fuzzy set Dari U tersebut dapat dibangun fuzzy set sebagai berikut
16
1198601 = 1
1199061+
05
1199062+
0
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198602 = 05
1199061+
1
1199062+
05
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198603 = 0
1199061+
05
1199062+
1
1199063+
05
1199064+
0
1199065+
0
1199066+
0
1199067
1198604 = 0
1199061+
0
1199062+
05
1199063+
1
1199064+
05
1199065+
0
1199066+
0
1199067
1198605 = 0
1199061+
0
1199062+
0
1199063+
05
1199064+
1
1199065+
05
1199066+
0
1199067
1198606 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
05
1199065+
1
1199066+
05
1199067
1198607 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
0
1199065+
05
1199066+
1
1199067
3 Langkah ketiga yaitu melakukan fuzzifikasi data historis proses fuzzifikasi merupakan proses merubah data aktual yang merupakan bilangan crisp ke dalam bentuk bilangan fuzzy Bilangan fuzzy yang dimaksudkan adalah dalam bentuk derajat keanggotaan Dari beberapa derajat keanggotaan yang terbentuk kemudian dipilih satu fuzzy set yang memiliki derajat keanggotaan teringgi Fuzzifikasi dinotasikan sebagai berikut jika F(t-1) berada pada fuzzy set Ak maka F(t-1) difuzzifikasikan sebagai Ak
4 Langkah keempat adalah mengidentifikasi Fuzzy Logic Relationship (FLR) FLR diidentifikasikan sebagai Ai dan F(t) difuzzifikasikan sebagai Ai rarr Aj Ai sebagai sisi kiri relationship disebut sebagai current state dan Aj sebagai sisi kanan relationship disebut next state Jika terjadi perulangan relationship maka tetap dihitung satu kali
5 Langkah kelima yaitu mengelompokkan menjadi Fuzzy Logical Relationship Group (FLRG) FLRG dibangun berdasarkan sisi kiri (current state) yang sama
6 Langkah terakhir yaitu langkah keenam adalah melakukan defuzzifikasi nilai keluaran peramalan Defuzzifikasi adalah mengubah nilai keluaran fuzzy menjadi bilangan crisp kembali sehingga diperoleh hasil akhir peramalan Defuzzifikasi didasarkan pada tiga (3) rule aturan yaitu (Chen 1996)
I Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai hanya memiliki satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj dimana nilai maksimum fungsi keanggotaanya berada pada 119906119895 maka nilai peramalan untuk n+1 adalah
nilai tengah dari 119906119895 atau didefinisikan dengan 119898119895
II Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai memiliki lebih dari satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj1 Aj2 Ajp Dimana nilai tengah untuk masing ndash masing Aj1 Aj2 Aj3 Ajp adalah mj1 mj2 mj3 mjp
maka nilai peramalan untuk n+1 adalah (mj1 mj2 mj3 mjp) p
III Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai tidak memiliki FLR pada FLRG dimana nilai maksimum fungsi keanggotaannya berada pada 119906119895
17
maka nilai peramalan untuk n+1 adalah nilai tengah dari 119906119895 atau
didefinisikan dengan 119898119895
227 Metode High Order Fuzzy Time Series Multi Factors
Metode High Order Fuzzy Time Series Multi Factors adalah metode Fuzzy Time Series (FTS) yang melibatkan beberapa faktor yang mempengaruhi peramalan dengan berdasarkan beberapa periode waktu sebelum periode yang akan diramalkan dalam proses pembentukkan Fuzzy Logical Relationship (FLR) Hasil peramalan dengan banyak faktor yang mempengaruhi dinilai lebih baik dari pada dengan hanya satu faktor yang mempengaruhi (LinYang 2009) Pada metode ini pembentukkan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan teknik klasterisasi fuzzy C-means Berikut adalah langkah ndash langkah Metode High Order Fuzzy Time Series Multi Factors (LinYang 2009)
1 Langkah pertama adalah melakukan perhitungan Universe of Discourse (U) Sebelum menghitung nilai U terlebih dulu menghitung nilai mean (rata ndash rata) sampel lalu menghitung nilai standar deviasi (120590) Mean merupakan perhitungan jumlah dari semua nilai dalam kumpulan data kemudian dibagi dengan jumlah total data untuk menghitung nilai mean ditunjukkan pada Persamaan 211 (Weisstein 2015) Standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel untuk menghitung nilai standar deviasi (120590) ditunjukkan pada Persamaan 212 (Weisstein 2015) Perhitungan U ditunjukkan pada Persamaan 213 (LinYang 2009)
119909 =sum 119909119894
119899119894=1
119899 (211)
Dimana
= mean (rata ndash rata)
119909119894 = nilai data ke-i
119899 = banyak data
120590 = radicsum (119909119894minus ) 2119899
119894=1
119899minus1 (212)
Dimana
120590 = Standar deviasi data
119880 = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590] (213)
Dimana
119880 = Universal 0f Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
18
2 Langkah kedua yaitu menentukan jumlah cluster data Proses klasterisasi bertujuan untuk membagi U kedalam beberapa subinterval Hasil perhitungan banyaknya cluster apabila bernilai pecahan maka harus dibulatkan menjadi bilangan bulat Perhitungan banyaknya cluster ditunjukkan pada Persamaan 214 (LinYang 2009)
119896 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905)minus119883(119905minus1)|119899
119905=1
119899minus1| (214)
Dimana
119896 = banyaknya jumlah cluster
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
119899 = banyaknya data sampel
119883(119905) = data pada waktu ke-t
3 Langkah ketiga yaitu melakukan pembentukan pusat cluster Pada metode ini proses klasterisasi data menggunakan fuzzy C-means (FCM) untuk mendapatkan pusat cluster sebanyak k Tahapannya U dibagi kedalam k subinterval (119863119898119894119899 1198891) (1198891 1198892) (1198892 1198893) hellip (119889119896minus1 119863119898119886119909) dimana di (i = 123k-1) merupakan titik tengah antara dua pusat cluster k subinterval didefinisikan sebagai 1199061 1199062 1199063 hellip 119906119896 Sehingga dalam hal ini subinterval
dengan panjang berbeda dapat menggambarkan struktur data kompleks dengan baik dan dapat meningkatkan peramalan dibandingkan menggunakan subinterval dengan panjang yang sama (LinYang 2009)
4 Langkah keempat yaitu melakukan pembentukan himpunan fuzzy atau fuzzy set Pada langkah ini fuzzy set direpresentasikan dengan kurva bahu Pembentukkan fuzy set ditunjukkan pada Persamaan 215 (LinYang 2009)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (215)
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
5 Langkah kelima yaitu proses fuzzifikasi Proses fuzzifikasi bertujuan untuk mengubah data sampel yang masih berupa bilangan crisp sehingga menjadi bilangan fuzzy Masing ndash masing data dihitung derajat keanggotaannya terhadap fuzzy set yang sudah terbentuk selajutnya derajat kanggotaan dihitung berdasarkan kurva bahu dan derajat keanggotaan tertinggi menunjukkan hasil fuzzifikasi data tersebut Contohnya A(t) B(t) C(t) dan D(t) dimana t= 123n merupakan time series dari faktor yang mempengaruhi serta n merupakan banyaknya data Berdasarkan pembagian subinterval masing ndash masing time series ini difuzzifikasikan Misalkan hasil dari Persamaan 215 yaitu menghitung banyak cluster dari k1 k2 k3 k4 Jadi time series difuzzifikasikan menjadi empat fuzzy time series yaitu
19
A(ti) dimana i = 1234k1
B(tj) dimana j = 1234k2
C(tp) dimana p = 1234k3
D(tq) dimana q = 1234k4 t = 123n
6 Langkah keenam yaitu melakukan pembentukkan Fuzzy Logical relationship (FLR) Data sampel sebanyak n periode dipilih sebagai data training untuk membentuk fuzzy time series model Misalkan t merupakan periode waktu yang akan diramal dengan menggunakan order ndash 3 maka tiga periode sebelum periode t adalah t-3 t-2 dan t-1 dimana t = 456n Maka FLR yang dihasilkan ditunjukkan pada Persamaan 216 dan berdasarkan persamaan tersebut maka akan membentuk sebuah kumpulan FLR dari data training (LinYang 2009)
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023)) (216)
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
Tabel 22 Fuzzy Logic Relationship
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023))
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
(119860(119905minus21198943) 119861(119905minus21198953) 119862(119905minus21199013) 119863(119905minus21199023))
(119860(119905minus11198942) 119861(119905minus11198952) 119862(119905minus11199012) 119863(119905minus21199022))
(119860(1199051198941) 119861(1199051198951) 119862(1199051199011) 119863(1199051199021)) rarr 119860(119905+11198944)
(119860(119905+119899minus71198943) 119861(119905+119899minus71198953) 119862(119905+119899minus71199013) 119863(119905+119899minus71199023))
(119860(119905+119899minus61198942) 119861(119905+119899minus61198952) 119862(119905+119899minus61199012) 119863(119905+119899minus61199022))
(119860(119905+119899minus51198941) 119861(119905+119899minus51198951) 119862(119905+119899minus51199011) 119863(119905+119899minus51199021)) rarr 119860(119905+119899minus41198944)
Sumber (LinYang 2009)
7 Langkah terakhir adalah proses Defuzzifikasi Berdasarkan langkah sebelumnya maka dapat diambil hasil fuzzy ke- H yaitu yang digunakan sebagai data testing atau data uji seperti yang ditunjukkan pada Persamaan 217 (LinYang 2009)
(119860(119867minus31198943) 119861(119867minus31198953) 119862(119867minus31199013) 119863(119867minus31199023)) (217)
(119860(119867minus21198942) 119861(119867minus21198952) 119862(119867minus21199012) 119863(119867minus21199022))
(119860(119867minus11198941) 119861(119867minus11198951) 119862(119867minus11199011) 119863(119867minus11199021)) rarr 119860(1198671198944)
20
Faktor ndash faktor di ruas kiri pada Persaman 217 dibandingkan satu per satu dengan FLR data training yang sudah dicatat sebelumnya pada Tabel 22 membandingkannya yaitu dengan cara menghitung nilai absolut dari selisih antara pangkat bawah kedua faktor pada posisi yang sama di FLR Terdapat 12 fuzzy set di ruas kiri pada masing ndash masing FLR sehingga dari hasil perbandingan diperoleh 12 nilai absolut yang kemudian dijumlahkan untuk mendapat total selisihnya Jadi jika total selisih lebih kecil dari threshold yang ditentukan maka FLR tersebut dinyatakan cocok (LinYang 2009)
Selanjutnya jika FLR menemukan N pasangan yang cocok pada Tabel 22 maka N faktor di ruas kanan dari N FLR ini mendasari peramalan fuzzy set A() yang mana jumlah dari setiap fuzzy set pada umumnya berbeda Untuk peramalan dengan fuzzy set ditunjukkan pada Tabel 23 (LinYang 2009)
Tabel 23 Peramalan fuzzy set
Ruas Kanan A(1) A(2) A(3) A(k1)
Pusat cluster c1 c2 c3 ck1
Frekuensi f1 f2 f3 fk1
Sumber (Lin Yang 2009)
Berdasarkan Tabel 23 dengan menggunakan metode centroid untuk melakukan proses defuzzifikasi Proses defuzzifikasi dapat ditunjukkan pada Persamaan 218 (LinYang 2009)
119903119867 =sum 119888119894times 119891119894
1198961119894=1
sum 119891119894119896119894119894=1
(218)
Dimana
119903119867 = hasil (result) peramalan data ke-H
119888119894 = pusat cluster i dimana A(i) adalah ruas kanan dari FLR hasil proses pencocokan
119891119894 = frekuensi banyaknya muncul A(i) pada saat proses pencocokan
228 Perhitungan keakuratan metode peramalan
Dalam perencanaan peramalan tentu menginginkan hasil ramalan yang tepat atau paling tidak hampir mendekati sehingga rencana yang dibuat menjadi rencana yang realistis Keakuratan atau ketepatan merupakan yang menjadi kriteria performance suatu metode peramalan Keakuratan tersebut dapat dinyatakan sebagai kesalahan peramalan (forecast error) Semaikin kecil nilai kesalahan peramalan maka semaikin tinggi keakuratan metode peramalan yang digunakan dan sebaliknya semakin tinggi nilai kesalahan maka semakin rendah keakuratan metode peramalan yang digunakan
Mean Square Error (MSE) adalah salah satu metode yang digunakan untuk menghitung nilai akurasi atau keakuratan dari metode yang digunakan sebagai peramalan atau prediksi MSE merupakan perhitungan pangkat dua dari selisih
21
antara nilai data hasil peramalan dengan nilai data aktual dan kemudian dibagi dengan banyaknya data yang telah diramalkan Pada penentuan nilai evaluasi memilih menggunakan metode MSE karena metode ini dapat menunjukan hasil skala kemiripan antara hasil data peramalan dengan data aktual Berikut merupakan metode Mean Square Error (MSE) yang ditunjukan pada Persamaan 219 (Wang Chen 2009)
119872119878119864 = sum (119865119905minus119860119905)2119899
119894=1
119899 (219)
Dimana 119872119878119864 = nilai Mean Square Error Rate 119860119905 = nilai aktual pada data ke-t 119865119905 = nilai hasil peramalan untuk data ke-t n = banyaknya data
22
BAB 3 METODOLOGI
Pada bab ini akan dibahas mengenai metode yang digunakan beserta tahap ndash tahap pengerjaan penelitian skripsi dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Penilitian ini digolongkan sebagai penelitian implementatif dengan pendekatan perancangan (design)
Metode penelitian ini meliputi studi literatur pengumpulan data perancangan implementasi pengujian dan analisis pengambilan kesimpulan Berikut adalah alur dari metode penelitian dapat ditunjukkan pada Gambar 31
31 Studi Literatur
Pada tahap studi literatur penelitian ini bertujuan untuk mempelajari literatur dan konsep dari beberapa informasi dan pustaka yang berkaitan dengan penelitian ini Literatur dan sumber ilmu dari penelitian ini diperoleh dari internet buku dan bimbingan oleh dosen pembimbing Adapun literatur yang dipelajari yaitu tentang curah hujan serta faktor ndash faktor yang mempengaruhinya dan metode High Order Fuzzy Time Series Multi Factors
Studi Literatur
Pengumpulan Data
Perancangan
Implementasi
Pengujian dan Analisis
Kesimpulan dan Saran
Gambar 31 Diagram blok metodologi penelitian
23
32 Pengumpulan Data
Pada tahap pengumpulan penelitian ini sumber data yang diperoleh yaitu dari Badan Meteorologi Klimatologi dan Geofisikia (BMKG) Stasiun Klimatologi Kelas III Karangkates Kabupaten Malang Data yang diperoleh untuk peramalan curah hujan yaitu data aktual time series (2011 - 2016) Data yang digunakan dalam bentuk dasarian yaitu dalam rentang waktu sepuluh hari sehingga dalam satu bulan dibagi menjadi tiga dasarian
Dasarian pertama yaitu pada tanggal 1 sampai dengan 10
Dasarian kedua yaitu pada tanggal 11 sampai dengan 20
Dasarian ketiga yaitu pada tanggal 21 sampai dengan akhir bulan
Pada penelitian ini data curah hujan dalam satuan milimeter (mm) kelembaban dalam persen () suhu udara dalam satuan celsius (˚C) kecepatan angin dalam satuan kilometer per jam (kmjam)
33 Perancangan
Pada tahap perancangan penelitian ini bertujuan untuk mengetahui rancangan ndash rancangan yang merupakan langkah yang dilakukan saat melakukan tahap implementasi Pada tahap ini terdapat beberapa perancangan yaitu perancangan proses yang berisi tahapan ndash tahapan proses metode High Order Fuzzy Time Series Multi Factors perhitungan manual yang merupakan manualisasi dari metode yang digunakan pada penelitian ini perancangan antar muka atau user interface yang berisi gambaran kasar dari tampilan antar muka prototype aplikasi yang nantinya diterapkan pada tahap implementasi selanjutnya adalah perancangan pengujian yang berisi rancangan ndash rancangan pengujian metode yang digunakan untuk mengetahui berapa tingkat kesalahan atau error yang dimiliki metode pada penelitian ini dalam melakukan peramalan curah hujan
34 Implementasi
Pada tahap implementasi peneltian ini dilakukan sesuai dengan perancangan yang telah dibuat pada tahapan perancangan sebelumnya Implementasi dari metode High Order Fuzzy Time Series Multi Factors dilakukan menggunakan bahasa pemrograman java serta Integrated Development Environment (IDE) yang digunakan adalah Netbeans Sehingga nantinya hasil dari tahap ini berupa prototype aplikasi dari implementasi metode High Order Fuzzy Time Series Multi Factors untuk peramalan curah hujan
35 Pengujian dan Analisis
Pada tahapan penelitian pengujian ini diperlukan perangkat lunak dan perangkat keras agar pengujian dari hasil implementasi dapat berjalan dengan baik maka pengujian perangkat lunak dijalankan pada laptop ataupun PC (Personal Computer) dengan spesifikasi sebagai berikut
24
1 Prosesor Intel Core i3
2 Memory RAM 8 Gigabytes
3 Sistem Operasi menggunakan Windows 7 64bit
4 Hardisk dengan kapasitas 500 GB
5 Netbeans 81 JDK 7
Pengujian hasil peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors yaitu menggunakan metode Mean Square Error (MSE) Dimana rumus pengujian sesuai dengan Persamaan 219 Dalam pengujian menggunakan metode ini semakin kecil nilai MSE maka semakin tinggi tingkat akurasi hasil peramalan tersebut Pada penelitian ini untuk keperluan pengujian dari proses implementasi dilakukan empat pengujian yaitu pengujian terhadap perbedaan nilai order pengujian terhadap perbedaan nilai threshold pengujian terhadap data training untuk mengetahui pengaruhnya terhadap nilai MSE dan pengujian validasi sistem untuk mengetahui bahwa hasil implementasi metode High Order Fuzzy Time Series Multi Factors dapat melakukan peramalan
36 Kesimpulan dan Saran
Pada pengambilan kesimpulan akan dilakukan apabila semua tahapan ndash tahapan penelitian sudah dilakukan yaitu yang meliputi perancangan implementasi dan pengujian dan analisis telah selesai dilakukan Kesimpulan merupakan tahapan dimana semua rumusan masalah yang sudah ditetapkan sebelumnya dapat terjawab semua Selanjutnya pada saran merupakan berkenaan dengan hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
25
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan yang nantinya digunakan sebagai dasar dalam tahap implementasi Hal yang dibahas meliputi perancangan proses perhitungan manual perancangan pengujian dan perancangan antar muka
41 Perancangan Proses
Pada perancangan proses ini berisi mengenai tahapan ndash tahapan dari metode yang digunakan yaitu metode High Order Fuzzy Time Series Multi Factors Pada penelitian ini melibatkan faktor ndash faktor yang mempengaruhi curah hujan yaitu suhu udara kelembaban udara dan kecepatan angin Data time series dari curah hujan merupakan faktor utama dalam proses peramalan pada penelitian ini Inputan pada peneltian ini yaitu data time series curah hujan serta faktor ndash faktor yang mempengaruhinya Order yang digunakan pada metode ini merupakan order lebih dari satu oleh karena itu disebut dengan High Order Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Berikut merupakan diagram alir dari proses peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors yang ditunjukkan pada Gambar 41 dan Gambar 42
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1)
Mulai
Data curah hujan suhu kelembaban kecepatan angin jmlh_Banyakdata jmlh_Faktor
Universe_of_Discourse
A
Jumlah_Cluster
26
411 Proses perhitungan Universe of Discourse
Pada perhitungan Universe of Discourse harus sudah dilakukan inputan data agar dapat memulai tahapan perhitungan Tahapan dari proses perhitungannya yaitu pada langkah pertama dilakukan perhitungan nilai mean (rata ndash rata) sesuai dengan Persamaan 211 Setelah mendapatkan nilai mean dapat dilakukan perhitungan untuk mencari nilai standar deviasi sesuai dengan Persamaan 212 Selanjutnya dicari nilai terkecil (119863119898119894119899) dan nilai terbesar (119863119898119886119909) Setelah menyelesaikan tahap ndash tahap tersebut dapat dilakukan perhitungan untuk
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2)
A
Perhitungan Pusat Cluster
Fuzzifikasi
Pembentukan Fuzzy Logical Relationship
Defuzzifikasi
Nilai hasil peramalan
Berhenti
Pembentukan Subinterval dan Fuzzy set
27
mencari Universe of Discourse sesuai dengan Persamaan 213 Berikut merupakan diagram alir dari proses perhitungan Universe of Discourse yang ditunjukkan pada Gambar 43
Perhitungan Universe of Discourse
Mulai
Min_dan_Max
mean
standar_deviasi
for i = 0 to jmlh_Faktor-1
i
hsl_uMin ke i = hsl_min ke i ndash hsl_stdev ke i
hsl_uMax ke i = hsl_max ke i + hsl_stdev ke i
hsl_uMin hsl_uMax
Berhenti
Gambar 43 Diagram alir proses perhitungan Universe of Discourse
28
4111 Proses perhitungan Mean
Pada proses perhitungan mean merupakan nilai rata ndash rata dari setiap faktor dimana nilai mean ini nantinya dibutuhkan untuk melakukan proses perhitungan standar deviasi Berikut merupakan diagram alir dari proses perhitungan mean yang ditunjukkan pada Gambar 44
mean
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
tmp_jmlh = 0
tmp_jmlh = tmp_jmlh + data ke ij
j
hsl_mean ke i = tmp_jmlhjmlh_DataTraining
i
hsl_mean
Berhenti
Gambar 44 Diagram alir proses perhitungan mean
29
4112 Proses perhitungan standar deviasi
Pada proses perhitungan standar deviasi dapat dilakukan setelah mendapatkan nilai mean dari setiap data sesuai proses sebelumnya Berikut merupakan diagram alir dari proses perhitungan standar deviasi yang ditunjukkan pada Gambar 45
standar_deviasi
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
result = 0
result = result + (data ke ij ndash mean ke i)2
j
hsl_stdev ke i = radicresult
jmlh_DataTrainingminus1
i
hsl_stdev
Berhenti
Gambar 45 Diagram alir proses perhitungan standar deviasi
30
4113 Proses perhitungan nilai Dmin dan Dmax
Pada proses perhitungan ini merupakan proses perhitungan untuk mencari nilai terkecil dan terbesar dari setiap faktor data Setelah mendapat nilai terkecil dan terbesar maka data dilakukan proses perhitungan Universe of Discourse Berikut merupakan diagran alir dari proses perhitungan nilai Dmin dan Dmax yang ditunjukkan pada Gambar 46
Gambar 46 Diagram alir perhitungan nilai Min dan Max
ya
ya
tidak
tidak
Min_dan_Max
Mulai
for i = 0 to jmlh_Faktor-1
besar = data ke i0
kecil = data ke i0
for j=0 to jmlh_DataTraining
data ke ij gt besar
besar = data ke ij
data ke ij lt kecil
kecil = data ke ij
j
hsl_max ke i = besar
hsl_min ke i = kecil
i
hsl_max hsl_min
Berhenti 1
1
2
2
3
4
4
5
5
3
31
412 Proses perhitungan jumlah cluster
Pada proses perhitungan jumlah cluster memiliki masukkan proses Dmin dan Dmax
dari proses perhitungan sebelumnya Pada proses ini terdapat perhitungan nilai dari selisih setiap data Pada perhitungan jumlah cluster sesuai dengan Persamaan 214 Berikut merupakan langkah ndash langkah perhitungan jumlah cluster yang ditunjukkan pada Gambar 47
jumlah_Cluster
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to (jmlh_DataTraining-1)
Berhenti
hsl_max hsl_min
selisih = 0
selisih = selisih + |data ke ij ndash data ke i (j+1)|
j
jmlh_Cluster ke i = |ℎ119904119897_119898119894119899 119896119890 119894minusℎ119904119897_119898119886119909 119896119890 119894|
119904119890119897119894119904119894ℎ
119895119898119897ℎ_119863119886119905119886119879119903119886119894119899119894119899119892minus1
i
jmlh_Cluster
Gambar 47 Diagram alir proses perhitungan jumlah cluster
32
413 Proses perhitungan pusat cluster
Pada proses perhitungan pusat cluster ini diperlukan beberapa variabel yang harus dideklarasikan terlebih dahulu yaitu nilai bobot fungsi objektif nilai iterasi awal nilai iterasi maksimum dan error terkecil Perhitungan subinterval ini menggunakan metode fuzzy C-means yang diawali dengan pencarian pusat cluster terlebih dahulu Berikut merupakan langkah ndash langkah perhitungan subinterval yang ditunjukkan pada Gambar 48 Gambar 49 Gambar 410 Gambar 411 Gambar 412
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1)
Perhitungan pusat cluster
Mulai
jmlh_Cluster
for i = 0 to jmlh_Faktor-1
Deklarasi bobot selisih_f_objektif
iter_maksimum error_min
Pembentukan Matriks partisi faktor A jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor A
for iter = iter to iter_maksimum
A
i == 0
Perhitungan pusat_cluster1 faktor A
B C D
tidak
ya
33
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2)
ya
tidak
tidak
ya
Perhitungan f_objektif faktor A
A B C D
Perhitungan selisih_f_objektif faktor A
Perbaikan matriks partisi faktor A
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster1 faktor A
Iter = iter_maksimum
iter
i == 1
Pembentukan Matriks partisi faktor B jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor B
for iter = iter to iter_maksimum
F A G E
34
tidak
tidak
ya
A E F G
Perhitungan pusat_cluster2 faktor B
Perhitungan f_objektif faktor B
Perhitungan selisih_f_objektif faktor B
Perbaikan matriks partisi faktor B
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster2 faktor B
Iter = iter_maksimum
iter
i == 2
Pembentukan Matriks partisi faktor C jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor C
I A H
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3)
ya
35
tidak
tidak
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4)
ya
A H I
for iter = iter to iter_maksimum
Perhitungan pusat_cluster3 faktor C
Perhitungan f_objektif faktor C
Perhitungan selisih_f_objektif faktor C
Perbaikan matriks partisi faktor C
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster3 faktor C
Iter = iter_maksimum
iter
i == 3
Pembentukan Matriks partisi faktor D jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor D
J A K
ya
36
tidak
ya
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5)
A K J
for iter = iter to iter_maksimum
Perhitungan pusat_cluster4 faktor D
Perhitungan f_objektif faktor D
Perhitungan selisih_f_objektif faktor D
Perbaikan matriks partisi faktor D
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster4 faktor D
Iter = iter_maksimum
iter
i
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
Berhenti
37
tidak
ya
tidak
ya
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1)
414 Proses pembentukan subinterval dan Fuzzy set
Pada proses pembentukan fuzzy set atau himpunan fuzzy pada penelitian ini dapat dilakukan setelah perhitungan subinterval selesai dilakukan Nilai subniterval merupakan masukan utama pada pembentukkan fuzzy set Pembentukan fuzzy sesuai dengan Persamaan 215 Berikut merupakan langkah ndash langkah proses pembentukan fuzzy set yang ditunjukkan pada Gambar 413 dan Gambar 414
Pembentukan subinteval dan Fuzzy set
Mulai
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
for i = 0 to jmlh_Faktor-1
Menentukan batas_subintervalMinA dan
batas_subintervalMaxA
Menentukan batas_fuzzysetMinA dan batas_fuzzysetMaxA
i == 0
i == 1
Menentukan batas_subintervalMinB dan
batas_subintervalMaxB
Menentukan batas_fuzzysetMinB dan batas_fuzzysetMaxB
A C B
38
tidak
tidak
ya
ya
415 Proses Fuzzifikasi
Pada proses fuzzifikasi ini pembentukanya sesuai derajat keanggotaan pada setiap data Pada proses ini derajat keanggotaan dihitung berdassarkan fungsi keanggotaan kurva bahu Hasil dari proses ini merupakan data yang sudah difuzzifikasikan menjadi data fuzzy Berikut langkah ndash langkah dari proses fuzzifikasi ditunjukkan pada Gambar 415 dan Gambar 416
i == 2
A B C
Menentukan batas_subintervalMinC dan batas_subintervalMaxC
Menentukan batas_fuzzysetMinC dan batas_fuzzysetMaxC
i == 3
Menentukan batas_subintervalMinD dan batas_subintervalMaxD
Menentukan batas_fuzzysetMinD dan batas_fuzzysetMaxD
i
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
Berhenti
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2)
39
tidak
ya
ya
tidak
Fuzzifikasi
Mulai
for i = 0 to jmlh_Faktor-1
Menentukan hasil_fuzzifikasiA dari faktor A
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinA batas_fuzzysetMaxA
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1)
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
DD
i == 0
i == 1
Menentukan hasil_fuzzifikasiB
dari faktor B
Menghitung derajat keanggotaan
berdasarkan batas_fuzzysetMinB
batas_fuzzysetMaxB
C A B
40
tidak
ya
ya
tidak
ya
i == 2
A B C
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinC batas_fuzzysetMaxC
Menentukan hasil_fuzzifikasiC dari faktor C
i == 3
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinD
batas_fuzzysetMaxD
Menentukan hasil_fuzzifikasiD dari faktor D
i
hasil_fuzzifikasiA hasil_fuzzifikasiB hasil_fuzzifikasiC hasil_fuzzifikasiD
Berhenti
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2)
41
tidak
ya
416 Proses pembentukan Fuzzy Logical Relationship
Setelah data melalui proses fuzzifikasi dan sudah menjadi data fuzzy maka dapat dilakukan pembentukan Fuzzy Logical Relationship (FLR) Pembentukan FLR dilakukan sesuai dengan Persamaan 216Berikut adalah langkah ndash langkah proses pembentukan Fuzzy Logical Relationship (FLR) yang ditunjukkan pada Gambar 417 Gambar 418 dan Gambar 419
Gambar 417 Diagram alir proses Pembentukan FLR
(bagian 1)
Pembentukan Fuzzy Logical Relationship
Mulai
hasil_fuzzifikasiAhasil_fuzzifikasiB hasil_fuzzifikasiChasil_fuzzifikasiD order
for i = 0 to jmlh_dataTraining
max_inc = order jmlh_dataTraining = dataTraining - order
for j = i to max_inc
for k = 0 to jmlh_Faktor-1
j == 0
FLR_kiri_training ke ijk = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D)
ke j
E A B C D
42
ya
tidak
ya
tidak
A B C E D
FLR_kiri_training ke i(j-i)k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
j = 0
k
j
FLR_kanan_training ke i = hasil_fuzzifikasiA ke (i+order)
Max_inc lt (jmlh_DataTraining-1)
i
tmp_JmlhDatatraining = tmp_JmlhDatatraining +1
max_inc = max_inc + 1 tmp_JmlhDatatraining = i
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2)
for j = 0 to tmp_JmlhDatatraining
for j = tmp_JmlhDatatraining to max_inc
for k = 0 to jmlh_Faktor-1
I H G F
43
tidak
ya
417 Proses Defuzzifikasi
Proses defuzzifikasi merupakan proses akhir dimana keluaran dari proses ini merupakan nilai hasil peramalan Data yang diperlukan pada proses defuzzifikasi adalah hasil dari proses pembentukan Fuzzy Logical Relationship (FLR) nilai threshold yang harus dideklarasikan sebelumnya jumlah data training dan jumlah data testing Dalam proses ini dilakukan perhitungan selisih pada FLR antara data testing dan data training FLR yang dihitung nilai selisihnya adalah FLR pangkat bawah yang terdapat pada ruas kiri Setelah dilakukan perhitungan selisih dan total jumlah selisih lebih kecil dari nilai threshold maka pada setiap FLR yang
I H G F
FLR_kiri_testing ke i(j-tmp_jmlhDatatraining) k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
k
j
FLR_kanan_testing ke i = hasil_fuzzifikasiA ke (i+order)
i
Max_inc lt (jmlh_DataTraining-1)
max_inc = max_inc + 1 tmp_JmlhDatatraining++
FLR_kiri_training FLR_kanan_training FLR_kiri_testing FLR_kanan_testing
Mulai
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3)
44
ya
tidak
sesuai dengan kondisi tersebut dapat dikatakan cocok atau dapat dilakukan ke tahap perhitungan selanjutnya Setelah mendapatkan FLR yang cocok maka dilakukan pengelompokkan berdasarkan FLR ruas kanan Pengelompokkan ini dihitung jumlah frekuensi yang sama sesuai dengan fuzzy set di ruas kanan Selanjutnya untuk memperoleh hasil peramalan dilakukan proses perhitungan sesuai dengan Persamaan 218 Berikut adalah langkah ndash langkah proses defuzzifikasi yang ditunjukkan pada Gambar 420 dan Gambar 421
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1)
Defuzzifikasi
Mulai
FLR_kiri FLR_kanan order dataTraining dataTesting konstanta
threshold = (jmlh_Faktor x order)+konstanta
for i = 0 to dataTesting
for j = 0 to (dataTraining-i)
Perhitungan hitung_selisih antara FLR_kiri data training dan data testing
hitung_selisih lt threshold
match ke ij = hitung_selisih
j
i
A
45
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2)
A
Menghitung jumlah total FLR_kiri yang cocok untuk setiap data testing
Mencocokan FLR_kiri yang cocok dengan FLR_kanan untuk setiap data testing
for i = 0 to dataTesting
Menghitung frekuensi setiap FLR_kanan yang cocok untuk setap data testing
for j = 0 to jumlah total FLR kiri yang cocok
peramalan = peramalan + Frekuensi setiap FLR_kanan yang cocok x pusat_cluster1
sesuai dengan value FLR_kanannya
j
hasil_peramlan ke i = peramalan jumlah total FLR kiri yang cocok
i
Hasil_permalan
Berhenti
46
42 Perhitungan Manual
Dalam perhitungan manual ini data sampel yang digunakan merupakan data time series dasarian ke-2 pada periode April 2014 sampai dengan dasarian ke-2 Juli 2014 data sampel ditunjukkan pada Tabel 41
Tabel 41 Data Sampel Perhitungan Manual
No Dasarian Curah Hujan
(A)
Suhu (B) Kelembaban (C)
Kecepatan Angin(D)
1 Dasarian 2 (April 2014) 95 2615 8248 629
2 Dasarian 3 (April 2014) 90 2612 8247 628
3 Dasarian 1 (Mei 2014) 94 2607 8247 627
4 Dasarian 2 (Mei 2014) 83 2625 8232 623
5 Dasarian 3 (Mei 2014) 85 2628 8235 623
6 Dasarian 1 (Juni 2014) 92 2609 8241 626
7 Dasarian 2 (Juni 2014) 86 2627 8235 624
8 Dasarian 3 (Juni 2014) 89 2621 8238 624
9 Dasarian 1 (Juli 2014) 93 2607 8242 626
10 Dasarian 2 (Juli 2014) 86 2626 8237 623
Sumber BMKG Kelas III Karangkates Malang
421 Perhitungan Universe of Discourse (U)
Sebelum melakukan perhitungan U maka harus dicari terlebih dahulu nilai 119863119898119894119899 119863119898119886119909 dan standar deviasi 119863119898119894119899 adalah nilai minimum atau nilai terkecil dari data sampel yang ada sedangkan 119863119898119886119909 adalah nilai maksimum atau nilai paling besar dari data sampel yang ada Untuk mencari nilai standar deviasi harus menghitung nilai mean (rata ndash rata) terlebih dahulu sesuai dengan Persamaan 211 Mean dari data curah hujan (A) dihitung dengan cara sebagai berikut
Mean = (data ke-1 + data ke-2 + data ke-3 + + data ke-10) 10
= (95 + 90 + 94 + 83 + 85 + 92 + 86 + 89 + 93 + 86) 10
= 893 10
= 893
Selanjutnya setelah diperoleh nilai mean dilanjutkan melakukan perhitungan standar deviasi sesuai dengan Persamaan 212 Standar deviasi adalah akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Untuk menghitung standar deviasi agar lebih mudah kita terlebih dahulu melakukan perhitungan nilai kuadrat dari selisih data ke-i dan mean yang ditunjukkan pada Tabel 42
47
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean
i Data ke-i Data ke-i mean (Data ke-i - mean)sup2
1 95 57 32490
2 90 07 0490
3 94 47 22090
4 83 -63 39690
5 85 -43 18490
6 92 27 7290
7 86 -33 10890
8 89 -03 0090
9 93 37 13690
10 86 -33 10890
Jumlah 1561
Setelah mendapatkan hasil nilai kuadrat dari selisih data ke-i dan mean sesuai dengan Tabel 42 maka dapat dilanjutkan melakukan perhitungan standar deviasi dengan cara sebagai berikut
Standar_deviasi = radic1
10minus1sum (119889119886119905119886 119896119890 minus 119894 minus 119898119890119886119899)10
119894=1
2
= radic1
9 times 1561
= 4165
Untuk perhitungan standar deviasi juga dilakukan pada faktor lainnya yaitu suhu (B) kelembaban (C) dan kecepatan angin (D) Hasil perhitungan 119863119898119894119899 119863119898119886119909 dan standar deviasi ditunjukkan pada Tabel 43
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi
Data D min D max Standar Deviasi
A 83 95 4165
B 2607 2628 0086
C 8232 8248 0057
D 623 629 0022
Berdasarkan hasil yang ditunjukkan Tabel 43 selanjutnya dapat dilakukan perhitungan nilai U sesuai dengan Persamaan 213 Berikut adalah perhitungan U pada data A
U = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590]
= [(83 ndash 4165) (95 ndash 4165)]
= [78835 99165]
48
Untuk perhitungan U juga dilakukan pada semua faktor yaitu data B C dan D Sehingga diperoleh nilai U yang ditunjukkan pada Tabel 44
Tabel 44 Hasil Universe of Discourse
Data U
Batas Bawah Batas Atas
A 78835 99165
B 25984 26366
C 82263 82537
D 6208 6312
422 Perhitungan jumlah cluster (k)
Pada perhitungan jumlah cluster langkah pertamanya adalah mencari nilai absolut dari selisih data hari ke-t dengan hari sebelumnya Perhitungan selisih dilakukan hingga data ke-10 Perhitungan nilai selisih dilakukan pada semua data A B C dan D Selanjutnya masing ndash masing nilai selisih dijumlah sehingga hasilnya seperti ditunjukkan pada Tabel 45
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya
No Tanggal A B C D
1 Dasarian 3 (April 2014) 5 003 001 001
2 Dasarian 1 (Mei 2014) 4 005 0 001
3 Dasarian 2 (Mei 2014) 11 018 015 004
4 Dasarian 3 (Mei 2014) 2 003 003 0
5 Dasarian 1 (Juni 2014) 7 019 006 003
6 Dasarian 2 (Juni 2014) 6 018 006 002
7 Dasarian 3 (Juni 2014) 3 006 003 0
8 Dasarian 1 (Juli 2014) 4 014 004 002
9 Dasarian 2 (Juli 2014) 7 019 005 003
Jumlah 49 105 043 016
Setelah mendapatkan nilai absolut selisih data hari ke-t dengan hari sebelumnya dapat dilanjutkan dengan menghitung jumlah cluster sesuai dengan Persamaan 214 Perhitungan jumlah cluster pada data A (k1) berdasarkan pada Tabel 43 diketahui nilai 119863119898119894119899 adalah 171 nilai 119863119898119886119909 adalah 2048 maka jumlah cluster data A dapat ditunjukkan sebagai berikut
49
1198961 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905) minus 119883(119905 minus 1)|119899
119905=1
119899 minus 1|
= |83 minus 9549
10minus1| = 2204
Apabila hasil perhitungan jumlah cluster merupakan bilangan pecahan maka hasilnya harus dibulatkan Sehingga jumlah cluster pada data A adalah 2 Perhitungan jumlah cluster juga dilakukan pada data B (k2) C (k3) dan D (k4) Berikut merupakan hasil semua perhitungan jumlah cluster yang ditunjukkan pada Tabel 46
Tabel 46 Hasil jumlah cluster data
No Cluster Jumlah Cluster
1 k1 2
2 k2 2
3 k3 3
4 k4 3
423 Perhitungan pusat cluster dan subinterval
Pada pembentukan subinterval berdasarkan pada Tabel 46 yang menunjukkan jumlah subinterval yang selanjutnya digunakan untuk menentukan pusat cluster menggunakan algoritma fuzzy C-means (FCM)
4231 Penentuan pusat cluster
a Penentuan nilai variabel
Pada penentuan subinterval diawali dengan klasterisasi menggunakan algoritma FCM pada awal proses ditentukkan beberapa variabel sebagai berikut
Banyak cluster = k1 = 2
Bobot (w) = 2
Fungsi objektif awal = 0
Iterasi awal = 1
Iterasi maksimum = 100
Error terkecil = 001 b Pembentukan matriks partisi awal (micro)
Data pada pembentukan matriks partisi awal merupakan nilai random diantara nilai 0 sampai 1 Dimensi pada matriks partisi awal dibentuk dengan dimensi jumlah data (i) x jumlah cluster (k) Dalam hal ini telah diketahui jumlah data adalah 10 dan k1 adalah 2 maka partisi dimensi matriks awal adalah 10 x 2 Hasil pembentukan matriks partisi awal ditunjukkan pada Tabel 47 dimana Cluster disimbolkan dengan C
50
Tabel 47 Matriks partisi awal pada cluster data A
c Normalisasi matriks partisi awal
Langkah pertama normalisasi matriks partisi awal adalah dengan menghitung jumlah bilangan penyusun matriks pada setiap kolom yang dapat dilihat pada Tabel 47 dijumlah berdasarkan dengan Persamaan 24 Diketahui jumlah kolom matriks sebanyak 2 sehingga diperoleh Q1 untuk penjumlahan kolom c1 Q2 untuk penjumlahan kolom c2
Q1 = 0355 + 0174 + 02 + 0387 + 0598 + 0819 + 0702 + 0719 + 0349 +
0852
= 5154
Q2 = 0170 + 0815 + 0190 + 0456 + 0526 + 0170 + 0232 + 0572 + 0102 +
0322
= 3554
Langkah selanjutnya dilakukan proses normalisasi menggunakan Persamaan 25 Dimana setiap bilangan penyusun matriks awal dibagi dengan nilai Q sesuai dengan kolomnya masing ndash masing Bilangan penyusun matriks disimbolkan dengan microik dimana i menunjukkan baris dan k menunjukkan kolom posisi bilangan tersebut pada matriks
i micro
c1 c2
1 0355 0170
2 0174 0815
3 0200 0190
4 0387 0456
5 0598 0526
6 0819 0170
7 0702 0232
8 0719 0572
9 0349 0102
10 0852 0322
51
μ11 = bilangan matriks partisi pada baris 1 kolom 1
Q1
= 0355
5154
= 0069
μ12 = bilangan matriks partisi pada baris 1 kolom 2
Q2
= 0170
3554
= 0048
Setelah melakukan perhitungan seperti diatas untuk semua bilangan matriks sehingga matriks partisi sudah ternormalisasi seperti yang ditunjukkan pada Tabel 48
Tabel 48 Derajat keanggotaan matriks partisi data A
i micro
C1 C2
1 0069 0048
2 0034 0229
3 0039 0054
4 0075 0128
5 0116 0148
6 0159 0048
7 0136 0065
8 0140 0161
9 0068 0029
10 0165 0090
d Perhitungan pusat cluster (V)
Pada perhitungan pusat cluster (V) berdasarkan Persamaan 26 Dimana setiap bilangan penyusun matriks partisi (micro) dipangkatkan dengan w dimana variabel w yang sudah dideklarisakan terlebih dahulu dengan nilai sama dengan 2 dan dikalikan dengan bilangan penyusun matriks X yang merupakan matriks berisi data yang ada pada Tabel 41 Selanjutnya hasil perkalian tersebut dijumlah dan dibagi dengan jumlah hasil kuadrat dari bilangan penyusun matriks partisi Hasil perhitungan ditunjukkan pada Tabel 49
52
Tabel 49 Perhitungan pusat cluster data A
Berdasarkan jumlah cluster dari data A yaitu 2 maka terdapat 2 pusat cluster (V) yaitu V1 V2 Perhitungan nilai V adalah sebagai berikut
V1 = sum ((μic1)2 times Xi)10
i=1
sum (μic1)210i=1
= 10730216
0121620
= 8822718207
V2 = sum ((μic2)2 times Xi)10
i=1
sum (μic2)210i=1
= 12111287
0137572
= 8803592572
Jadi berdasarkan perhitungan diatas pusat cluster untuk data A pada iterasi ke-1 adalah 8822718207 8803592572
e Perhitungan fungsi objektif (P)
Pada perhitungan P menggunakan Persamaan 27 dimana setiap baris pada data matriks X dikurangi pusat cluster (V) selanjutnya dikuadratkan Hasilnya
i X microsup2 microsup2 x X
C1 C2 C1 C2
1 95 0004731 0002292 0449450 0217718
2 90 0001137 0052633 0102304 4736927
3 94 0001512 0002864 0142117 0269234
4 83 0005630 0016427 0467258 1363472
5 85 0013448 0021907 1143107 1862112
6 92 0025233 0002291 2321422 0210787
7 86 0018542 0004243 1594602 0364916
8 89 0019487 0025916 1734356 2306543
9 93 0004590 0000816 0426841 0075870
10 86 0027311 0008183 2348759 0703706
Jumlah 0121620 0137572 10730216 12111287
53
kemudian dikalikan dengan micro yang sudah dipangkatkan dengan bobot (w) seperti yang telah ditunjukkan pada Tabel 49 Selanjutnya hasil tersebut dijumlah per kolom seperti yang ditunjukkan pada Tabel 410
Tabel 410 Fungsi objektif data A
i X (X-V)sup2 (X-V)sup2 x microsup2
C1 C2 C1 C2
1 95 458711 484983 02170 01111
2 90 31429 38576 00036 02030
3 94 333254 355702 00504 01019
4 83 273234 253605 01538 04166
5 85 104147 92168 01401 02019
6 92 142342 157139 03592 00360
7 86 49603 41450 00920 00176
8 89 05972 09294 00116 00241
9 93 227798 246420 01046 00201
10 86 49603 41450 01355 00339
Jumlah 1267661573 1166282827
Fungsi Objektif (P) 24339444
Perhitungan nilai fungsi objektif dilakukan seperti Persamaan 27 Nilai fungsi objektif diperoleh dengan cara sebagai berikut P = sum sum ([(Xi minus Vc)2](μik)2)3
c=110i=1
P = 1267661573 + 1166282827
= 24339444
f Perbaikan matriks partisi
Pada langkah ini perbaikan matriks partisi dilakukan berdasarkan Persamaan 28 Data matriks X untuk setiap barisnya dikurangi pusat cluster lalu dikuadratkan seperti yang ditunjukkan pada Tabel 410 Selanjutnya hasilnya dipangkatkan dengan -11 karena w-1 = 1 Hasil pangkat -1 terhadap (X-V)2 ditunjukkan pada Tabel 411
54
Tabel 411 Perbaikan matriks partisi
i ((X-V)sup2)^-1
Jumlah C1 C2
1 0022 0021 0042
2 0318 0259 0577
3 0030 0028 0058
4 0037 0039 0076
5 0096 0108 0205
6 0070 0064 0134
7 0202 0241 0443
8 1674 1076 2750
9 0044 0041 0084
10 0202 0241 0443
Berdasarkan tabel diatas bilangan penyusun matriks partisi yang baru atau yang telah diperbaiki diperoleh dari hasil pembagian data terhadap jumlah per barisnya
12058311 = 0022
0042= 0514
12058312 = 0021
0042= 0486
Pada perhitungan nilai matriks yang sudah diperbaiki dilakukan pada semua elemen matriks sehingga hasil perbaikan matriks seperti yang ditunjukkan pada Tabel 412
Tabel 412 Hasil perbaikan matriks partisi
Setelah mendapatkan hasil perbaikan matriks partisi kita lakukan pengecekan selama iterasi kurang dari iterasi maksimum (maxIter) atau selisih antara fungsi objektif iterasi saat ini dengan iterasi sebelumnya bernilai lebih dari nilai error terkecil yaitu 001 maka proses berlanjut dengan kembali melakukan perhitungan pusat cluster hingga perbaikan matriks partisi Hasil
i micro
C1 C2
1 0514 0486
2 0551 0449
3 0516 0484
4 0481 0519
5 0469 0531
6 0525 0475
7 0455 0545
8 0609 0391
9 0520 0480
10 0455 0545
55
perhitungan pusat cluster dari data A B C dan D setelah dilakukan proses tiga kali iterasi dan diurutkan mulai dari yang terkecil sampai yang terbesar ditunjukkan pada Tabel 413
Tabel 413 Hasil pusat cluster
4232 Perhitungan batas subinterval
Perhitungan batas subinterval dilakukan dengan mencari nilai tengah (Median) dari setiap pusat cluster Berikut merupakan contoh perhitungan batas subinterval pada data A
a Interval 1 Batas bawah = 78835 (Batas bawah Universe of Discourse pada data A) Batas atas = 89347 (Median 88303 dan 90390)
b Interval 2 Batas bawah = 89347 (Median 88303 dan 90390) Batas atas = 99165 (Batas atas Universe of Discourse pada data A)
Seperti perhitungan diatas juga dilakukan pada data suhu (B) kelembaban (C) dan kecepatan angin (D) Dalam hal ini jumlah subinterval setiap atribut berbeda ndash beda sesuai dengan jumlah cluster yang sebelumnya ditunjukkan pada Tabel 46 Berikut merupakan batas subinterval masing ndash masing atribut yang ditunjukkan pada Tabel 414
Tabel 414 Batas subinterval masing ndash masing atribut data
Interval (micro)
A B C D
1
78835 25984 751708 6208
sd sd sd sd
89347 26181 823863 6249
2
89347 26181 823863 6249
sd sd sd sd
99165 26366 82411 6256
3
82411 6256
- - sd sd
82537 6312
Cluster A B C D
1 88303 26165 82391 62497
2 90390 26197 82408 62499
3 - - 82415 62613
56
424 Pembentukan Fuzzy Set
Pembentukan fuzzy set berdasarkan pada derajat keanggotaan dari subinterval (micro) fuzzy set dari data A ditentukan dengan derajat keanggotaan sebagai berikut
A1 = 1micro1 + 05micro2
A2 = 05micro1 + 1micro2
Pada derajat keanggotaan data A diatas simbol ldquo+rdquo menunjukkan operator himpunan gabungan Berdasarkan subinterval pada Tabel 414 nilai batas fuzzy set dari data atribut A dapat ditentukan dengan cara sebagai berikut
A1 = 78835 sd 94256 (Batas bawah interval 1 sd titik tengah interval 2)
A2 = 84091 sd 99165 (Titik tengah interval 1 sd batas atas interval 2)
Setelah diketahui batas masing ndash masing fuzzy set grafik fungsi keanggotaan fuzzy set data A yang direpresentasikan dalam kurva bahu yang ditunjukkan pada Gambar 422 Dengan cara yang sama juga ditentukan pula fuzzy set dari data attribut B C dan D
425 Fuzzifikasi
Pada langkah fuzzifikasi dilakukan dengan mencari derajat keanggotaan yang memiliki nilai paling besar (maksimum) dari masing ndash masing data terhadap fuzzy set yang sudah terbentuk Derajat keanggotaan dicari berdasarkan fungsi keanggotaan kurva bentuk bahu Berikut ini adalah perhitungan derajat keanggotaan dari data attribut A
Data aktual curah hujan (A) pada April 2014 dasarian ke-3 = 90
1198601 = 942558 ndash 90
942558minus840911= 041868427
Gambar 422 Grafik fuzzy set data A
57
1198602 = 90minus840911
942558minus840911= 058131636
Derajat keanggotaan paling besar berada pada A2 sehingga data attribut A pada April 2014 dasarian ke-3 difuzzifikasikan ke fuzzy set A2 Perhitungan yang sama dilakukan pada seluruh data attribut A sehingga didapat derajat keanggotaan dan hasil fuzzifikasi dari data A ditunjukkan pada Tabel 415
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A
i Data A1 A2 Fuzzyfikasi
1 95 0 1 A2
2 90 041868363 058131636 A2
3 94 002516357 097483642 A2
4 83 1 0 A1
5 85 09105837 008941629 A1
6 92 02219236 077807639 A2
7 86 08122036 018779631 A1
8 89 05170636 048293635 A1
9 93 01235436 087645641 A2
10 86 08122037 018779631 A1
Perhitungan yang sama juga dilakukan pada semua attribut yaitu attribut B C dan D Sehingga dapat diperoleh hasil fuzzifikasi sesuai derajat keanggotaan dengan nilai paling besar Berikut adalah hasil fuzzifikasi untuk semua attribut yang dapat dilihat pada Tabel 416
Tabel 416 Hasil fuzzifikasi semua data attribut
No Tanggal A B C D
1 Dasarian 2 (April 2014) A2 B1 C3 D3
2 Dasarian 3 (April 2014) A2 B1 C3 D3
3 Dasarian 1 (Mei 2014) A2 B1 C3 D3
4 Dasarian 2 (Mei 2014) A1 B2 C1 D1
5 Dasarian 3 (Mei 2014) A1 B2 C1 D1
6 Dasarian 1 (Juni 2014) A2 B1 C2 D2
7 Dasarian 2 (Juni 2014) A1 B2 C1 D1
8 Dasarian 3 (Juni 2014) A1 B2 C2 D1
9 Dasarian 1 (Juli 2014) A2 B1 C2 D2
10 Dasarian 2 (Juli 2014) A1 B2 C2 D1
58
426 Pembentukan Fuzzy Logical Relationship (FLR)
Pada tahap pembentukan FLR dengan berdasarkan nilai order yang sudah ditentukan Pada manualisasi ini berdasarkan dari Tabel 416 di misalkan nilai order kita deklarasikan dengan nilai 3 sehingga dapat menghasilkan 7 FLR Hasil pembentukan FLR Data training dapat ditunjukkan pada Tabel 417 Hasil pembentukan FLR Data testing dapat ditunjukkan pada Tabel 418
Tabel 417 Hasil pembentukan FLR data training
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(32)B(31)C(33)D(33)) rarr A1
2 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(31)B(32)C(31)D(31)) rarr A1
3 (A(12)B(11)C(13)D(13)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(31)D(31)) rarr A2
4 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(21)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
5 (A(11)B(12)C(11)D(11)) (A(22)B(21)C(22)D(22)) (A(31)B(32)C(31)D(31)) rarr A1
Tabel 418 Hasil pembentukan FLR data testing
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(12)D(12)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(32)D(31)) rarr A2
2 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(22)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
427 Defuzzifikasi
Pada tahap ini misalkan jumlah data yang digunakan untuk data uji atau data testing adalah dua yaitu yang pertama data periode ke-9 dan yang kedua data periode ke-10 Sehingga yang digunakan data latih atau data training adalah data pada periode ke-1 sampai data periode ke-8 Pada data testing yang pertama melibatkan FLR ke-1 sampai FLR ke-5 untuk disesuaikan dengan FLR ke-6 yang berdasarkan pada Tabel 417 Pada data testing yang kedua melibatkan FLR ke-1 sampai FLR ke-6 untuk disesuaikan dengan FLR ke-7 yang berdasarkan pada Tabel 417 Selanjutnya setiap ruas kiri FLR data testing dibandingkan dengan FLR data training yaitu pada bilang pangkat bawah fuzzy set dibandingkan sesuai dengan posisinya dan dihitung selisihnya Hasil dari perhitungan selisih tersebut dijumlahkan dan apabila jumlah selisihnya kurang dari threshold maka FLR tersebut dikatakan cocok Threshold merupakan dari hasil mengalikan jumlah order dengan jumlah faktor kemudian dijumlahkan dengan dengan sebuah konstanta Contoh perhitungan selisih nilai ruas kiri FLR pada data testing pertama adalah sebagai berikut
59
Data testing = (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(32) B(31) C(33) D(33)) rarr A1
Data training =
1 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
2 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
3 (A(12) B(11) C(13) D(13)) (A(21) B(22) C(21) D(21)) (A(31) B(32) C(31) D(31)) rarr A2
4 (A(11) B(12) C(11) D(11)) (A(21) B(22) C(21) D(21)) (A(32) B(31) C(32) D(32)) rarr A1
5 (A(11) B(12) C(11) D(11)) (A(22) B(21) C(22) D(22)) (A(31) B(32) C(31) D(31)) rarr A1
Selisih data ke- 1 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|2-1|+|1-2|+|3-2|+|3-1| = 13
Selisih data ke- 2 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Selisih data ke- 3 = |2-2|+|1-1|+|3-2|+|3-2|+|1-1|+|2-2|+|1-1|+|1-1|+|1-1|+|2-2|+|1-2|+|1-1| = 3
Selisih data ke- 4 = |1-2|+|2-1|+|1-2|+|1-2|+|1-1|+|2-2|+|1-1|+|1-1|+|2-1|+|1-2|+|2-2|+|2-1| = 7
Selisih data ke- 5 = |1-2|+|2-1|+|1-2|+|1-2|+|2-1|+|1-2|+|2-1|+|2-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Pada perhitungan selisih nilai ruas kiri FLR pada data testing juga dilakukan pada semua data testing yang sudah dideklarasikan sebelumnya Dalam hal ini agar dapat menemukan FLR yang cocok dengan data testing Tahap selanjutnya adalah proses defuzzifikasi menggunakan threshold yang dimisalkan 18 sehingga FLR yang memiliki kecocokan dengan data testing pertama adalah semua FLR dari ke-1 sampai ke-5 karena memiliki hasil selisih kurang dari 18 Semua FLR yang cocok ditampung dikelompokkan berdasarkan FLR pada ruas kanan yang sama kemudian dhitung frekuensinya Berikut adalah frekuensi dan pusat cluster dari ruas kanan FLR yang cocok dengan data testing pertama dan kedua ditunjukkan pada Tabel 419
Tabel 419 Frekuensi FLR yang cocok dengan data testing
Data testing 1 Data testing 2
Ruas kanan A1 A2 A1 A2
Pusat Cluster 88303 90390 88303 90390
Frekuensi 4 1 4 2
Berdasarkan pada Tabel 419 dilakukan defuzzifikasi sesuai dengan Persamaan 218 sebagai berikut
119863119886119905119886 119905119890119904119905119894119899119892 1 = (88303times4)+(90390times1)
5= 887204
60
119863119886119905119886 119905119890119904119905119894119899119892 2 = (88303times4)+(90390times2)
6= 889987
Jadi berdasarkan perhitungan diatas diperoleh hasil peramalan curah hujan pada pada April 2014 dasarian ke-3 adalah 1384601636 sedangkan pada tanggal 10012016 adalah 2769203272 Perbandingan data curah hujan aktual dan hasil peramalan dengan metode High Order Fuzzy Time Series Multi Factors dapat dilihat pada Tabel 420
Tabel 420 Perbandingan data aktual dan hasil peramalan
No Data Aktual Hasil Peramalan
1 93 887204
2 86 889987
Dari hasil peramalan yang ditunjukkan pada Tabel 420 dapat dilakukan perhitungan kesalahan peramalan menggunakan metode Mean Square Error (MSE) seperti Persamaan 219
119872119878119864 = ((93minus887206)2+(86minus889989)2)
2
= 136536
43 Perancangan antarmuka
Perancangan antarmuka merupakan perancangan dari tampilan antarmuka atau interface yang nantinya akan diterapkan pada tahapan implementasi Pada perancangan antarmuka ini terdapat lima halaman utama dan juga terdapat dalam menu berupa button yaitu halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
431 Halaman input
Pada halaman input terdapat inputan data dengan nama button Browse Data pada inputan data ini pengguna diharuskan memasukkan inputan file data dalam bentuk ekstensi xls serta direktori lokasi file yang di inputkan akan ditampilkan pada textfield dan juga terdapat label yang menampilkan jumlah banyaknya data yang terdapat pada file yang telah di inputkan Selanjutnya juga terdata inputan textfield data training data testing order dan nilai konstanta Pada halaman input ini juga terdapat button fuzzification yang berfungsi untuk melakukan proses clustering fuzzifikasi dan FLR Selanjutnya pada button forecasting berfungsi untuk melakukan peramalan atau defuzzifikasi dari hasil proses fuzzifikasi serta menghitung nilai error dari hasil peramalan Berikut
61
merupakan rancangan tampilan antarmuka dari halaman input yang ditunjukkan pada Gambar 423
432 Halaman tampil data
Pada halaman tampil data terdapat tabel yang menampilkan isi data dari xls yang sudah dimasukkan terlebih dahulu pada halaman input Tabel tampil data akan menampilkan tanggal curah hujan kelembaban suhu dan kecepatan angin Berikut merupakan tampilan rancangan halaman tampil data yang ditunjukkan pada Gambar 424
Gambar 423 Rancangan antarmuka halaman input
Gambar 424 Rancangan antarmuka halaman tampil data
62
433 Halaman proses
Pada halaman proses akan menampilkan hasil clustering fuzzifikasi dan fuzzy logical relationship Pada tampilan halaman clustering akan menampilkan Universe of Discourse curah hujan suhu kelembaban dan kecepatan angin Selanjutnya tampilan dibawahnya akan menampilkan jumlah cluster dari setiap faktor yaitu jumlah cluster curah hujan suhu kelembaban dan kecepatan angin Berikut merupakan tampilan perancangan halaman proses clustering yang ditunjukkan Gambar 425
Selanjutnya pada tampilan proses fuzzifikasi akan menampilkan tabel hasil fuzzifikasi dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzifikasi yang ditunjukkan pada Gambar 426
Gambar 425 Rancangan antarmuka halaman proses clustering
Gambar 426 Rancangan antarmuka proses fuzzifikasi
63
Pada tampilan proses fuzzy logical relationship (FLR) akan menampilkan textarea berisi hasil proses FLR dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzy logical relationship yang ditunjukkan pada Gambar 427
434 Halaman hasil
Pada halaman hasil peramalan akan menampilkan tabel yang berisi hasil peramalan curah hujan dan data curah hujan yang sebenarnya Serta terdapat text link yang akan menampilkan grafik perbandingan data hasil peramalan dan data yang sebenarnya Berikut adalah tampilan rancangan halaman hasil yang ditunjukkan pada Gambar 428
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship
Gambar 428 Rancangan antarmuka halaman hasil peramalan
64
435 Halaman perhitungan error
Pada halaman perhitungan error akan menampilkan nilai dari hasil perhitungan Mean Square Error (MSE) pada textfield Berikut adalah tampilan rancangan halaman perhitungan error yang ditunjukkan pada Gambar 429
44 Perancangan pengujian
Pada penelitian ini akan dilakukan empat pengujian yaitu pengujian terhadap nilai order nilai threshold pengujian terhadap jumlah data training untuk mengetahui pengaruhnya terhadap nilai Mean Square Error (MSE) dan pengujian validasi sistem untuk mengetahui kestabilan hasil implementasi
441 Perancangan pengaruh order terhadap nilai MSE
Order merupakan jumlah urutan data yang digunakan dalam pembentukkan Fuzzy Logical Relationship (FLR) Pada pengujian ini dilakukan percobaan dengan order yang berbeda ndash beda Pengujian ini bertujuan untuk mengetahui pengaruh order terhadap hasil peramalan Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Pada setiap pengujian yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan order yang berbeda Berikut adalah perancangan pengujian order terhadap nilai MSE ditunjukkan pada Tabel 421
Tabel 421 Rancangan pengujian order terhadap nilai MSE
No Order Threshold MSE
1
Gambar 429 Rancangan antarmuka halaman perhitungan error
65
442 Perancangan pengaruh threshold terhadap nilai MSE
Nilai threshold bergantung jumlah order karena untuk nilai threshold merupakan dari hasil mengalikan jumlah faktor yang mempengaruhi dengan order selanjutnya dijumlah dengan sebuah konstanta Pada pengujian ini dilakukan percobaan dengan konstanta yang berbeda ndash beda sehingga menghasilkan threshold yang berbeda pula Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan konstanta dan threshold yang berbeda Berikut merupakan rancangan pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 422
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1
443 Perancangan pengaruh jumlah data training terhadap nilai MSE
Data training sangat berperan penting dalam proses defuzzifikasi sehingga pada penelitian ini dilakukan pengujian pengaruh jumlah data training terhadap tingkat kesalahan dari hasil peramalan Pada pengujian ini dilakukan percobaan dengan jumlah data training yang berbeda ndash beda Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan dilakukan perhitungan nilai MSE untuk mengetahui tingkat kesalahan dari hasil peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors dengan jumlah data training yang berbeda ndash beda Sehingga dari hasil pengujian ini dapat diketahui pengaruh dari jumlah data training Berikut merupakan rancangan pengujian pengaruh jumlah data training yang ditunjukkan pada Tabel 423
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1
444 Perancangan validasi sistem
Pada pengujian validasi sistem akan melakukan pengujian dengan menggunakan order threshold terbaik seperti yang telah dilakukan pada
66
pengujian ndash pengujian sebelumnya yang menghasilkan hasil error MSE terendah Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Berikut merupakan rancangan pengujian validasi sistem yang ditunjukkan pada Tabel 424
Tabel 424 Rancangan pengujian validasi sistem
Percobaan ke- MSE
1
67
BAB 5 IMPLEMENTASI
Pada bab ini berisi pembahasan hasil implementasi metode High Order Fuzzy Time Series Multi Factors yang sesuai dengan bab sebelumnya yaitu perancangan Bab ini terdiri dari spesifikasi sistem implementasi algoritma dan implementasi antarmuka
51 Spesifikasi Sistem
Pada spesifikasi sistem ini dibagi mejadi dua yaitu spesifikasi perangkat keras dan spesifikasi perangkat lunak
511 Spesifikasi Perangkat Keras
Spesifikasi perangkat keras merupakan perangkat keras yang digunakan pada implementasi penelitian ini Perangkat keras yang digunakan adalah laptop dengan spesifikasi sesuai dengan pada Tabel 51 berikut
Tabel 51 Spesifikasi Perangkat Keras
Komponen Spesifikasi
Processor Intelcopy Core i3-3217U 180 GHz
Memori (RAM) 8 GB RAM
Harddisk 500 GB RAM
512 Spesifikasi Perangkat Lunak
Spesifikasi perangkat lunak merupakan perangkat lunak yang digunakan pada implementasi penelitian ini Perangkat lunak yang digunakan pada implementasi penelitian sesuai dengan yang ditunjukkan pada Tabel 52 berikut
Tabel 52 Spesifikasi Perangkat Lunak
Sistem Operasi Microsoft Windows 7 (64 bit)
Bahasa Pemrograman Java
Tools Pemrograman Netbeans 81
Data Microsoft Excel 2013
52 Implementasi Algoritma
Pada implementasi algoritma ini membahas mengenai hasil implementasi algoritma metode High Order Fuzzy Time Series Multi Factors yang mengacu pada bab sebelumnya yaitu perancangan Dalam penelitian ini implementasi algoritma menggunakan bahasa pemrograman java berbasis desktop Implementasi algoritma terdiri dari beberapa method sesuai dengan langkah ndash langkah pada algoritma metode High Order Fuzzy Time Series Multi Factors
68
521 Implementasi Proses Universe of Discourse
Pada implementasi Universe of Discourse seperti yang ditunjukkan Kode Program 51 dimana pada source code method Universe_of_Discourse baris 3 - 5 terdapat pemanggilan method mean standar_deviasi dan Min_dan_Max Dimana pemanggilan method tersebut dibutuhkan untuk melakukan proses perhitungan selanjutnya yaitu untuk menghitung batas bawah dan batas atas dari Univers of Discourse Baris 7-10 untuk menghitung hasil Universe of Discourse Berikut merupakan source code dari proses Universe of Discourse yang ditunjukkan pada Kode Program 51
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
private void Universe_of_Discourse()
mean()
standar_deviasi()
Min_dan_Max()
hsl_uMin = new double[jmlh_Faktor]
hsl_uMax = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
hsl_uMin[i] = hsl_min[i] - hsl_stdev[i]
hsl_uMax[i] = hsl_max[i] + hsl_stdev[i]
Kode Program 51 Implementasi proses Universe of Discourse
5211 Implementasi proses mean
Pada implementasi proses mean merupakan proses perhitungan nilai rata ndash rata dari setiap faktor yang nantinya hasilnya diperlukan untuk proses perhitungan standar deviasi Berikut merupakan source code dari proses mean yang ditunjukkan pada Kode Program 52 Perhitungan utama proses mean terdapat pada baris 3 ndash 8
Baris Kode
1 2 3 4 5 6 7 8 9
private void mean()
hsl_mean = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double tmp_jmlh = 0
for (int j = 0 j lt jmlh_DataTraining j++)
tmp_jmlh = tmp_jmlh + data[i][j]
hsl_mean[i] = (tmp_jmlh jmlh_DataTraining)
Kode Program 52 Implementasi proses mean
5212 Implementasi proses standar deviasi
Pada implementasi proses perhitungan standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Standar deviasi dapat dilakukan perhitungan setelah mendapat nilai hasil dari perhitungan mean Berikut merupakan source code dari implementasi proses standar deviasi yang ditunjukkan pada Kode Program 53 Perhitungan utama proses standar deviasi terdapat pada baris 3 ndash 9
69
Baris Kode
1 2 3 4 5 6 7 8 9 10 11
private void standar_deviasi()
hsl_stdev = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double result = 0
for (int j = 0 j lt jmlh_DataTraining j++)
result = result + (Mathpow((data[i][j] ndash
hsl_mean[i]) 2))
hsl_stdev[i]=Mathsqrt(result(jmlh_DataTraining-
1))
Kode Program 53 Implementasi proses standar deviasi
5213 Implementasi proses Dmin dan Dmax
Pada implementasi proses Dmin dan Dmax merukan untuk mencari nilai minimum dan nilai maksimum dari data sampel untuk setiap faktor Berikut merupakan source code dari implementasi dari proses Dmin dan Dmax yang ditunjukkan pada Kode Program 54 Pada baris 8 ndash 10 merupakan bagian dari proses untuk untuk menentukan nilai data terbesar Selanjutnya pada baris 11 ndash 13 untuk menentukan nilai data terkecil
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
19
private void Min_dan_Max()
hsl_max = new double[jmlh_Faktor]
hsl_min = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double besar = data[i][0]
double kecil = data[i][0]
for (int j = 0 j lt jmlh_DataTraining j++)
if (data[i][j] gt besar)
besar = data[i][j]
if (data[i][j] lt kecil)
kecil = data[i][j]
hsl_max[i] = besar
hsl_min[i] = kecil
Kode Program 54 Implementasi proses Dmin dan Dmax
522 Implementasi Proses Jumlah Cluster
Pada implementasi proses jumlah cluster merupakan proses perhitungan jumlah cluster dari setiap faktor Implementasi ini dapat dilakukan apabila sudah mendapatkan hasil output dari method Min_dan_Max() sudah didapatkan Berikut merupakan source code dari implementasi proses jumlah cluster yang ditunjukkan pada Kode Program 55 Pada baris 3 ndash 7 untuk digunakan untuk menghitung selisih data sampel setiap baris dari semua faktor pada data sampel ke t dengan t+1 Selanjutnya pada baris 9 ndash 10 untuk menghitung jumlah cluster dari setiap faktor
70
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
private void jumlah_Cluster()
jmlh_Cluster = new int[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double selisih = 0
for (int j = 0 j lt (jmlh_DataTraining - 1) j++)
selisih = selisih + (Mathabs((data[i][j]
- data[i][(j + 1)])))
jmlh_Cluster[i] = (int) Mathround((Mathabs(
hsl_min[i]-hsl_max[i]))(selisih(jmlh_DataTraining
-1)))
Kode Program 55 Implementasi proses jumlah cluster
523 Implementasi Proses Pusat Cluster
Implementasi proses perhitungan pusat cluster ini menggunakan metode fuzzy C-means untuk mendapatkan pusat cluster yang nantinya digunkan sebagai subinterval Implementasi ini memerlukan hasil dari proses method jumlah_Cluster() agar dapat melakukan perhitungan subinterval Berikut merupakan source code dari implementasi proses subinterval yang ditunjukkan pada Kode Program 56 Pada Kode Program 56 hanya menampilkan source code pembentukan subinterval pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 2 ndash 3 merupakan deklarasi variabel bobot iterasi maksimum selisih fungsi objektif awal dan error minimum Pada baris 8 ndash 20 merupakan proses pembentukan matriks partisi dengan nilai random 0 sampai 1 Pada baris 22 ndash 26 merupakan proses normalisasi matriks partisi yang telah terbentuk Pada baris 28 ndash 63 merupakan proses untuk menentukan pusat cluster Pada baris 65 ndash 86 merupakan proses perhitungan fungsi objektif dari iterasi Pada baris 88 ndash 90 merupakan proses perhitungan selisih fungsi objektif Pada baris 92 ndash 108 adalah proses perbaikan matriks partisi Pada baris 110 ndash 115 adalah proses hasil perbaikan matriks partisi Pada baris 116 - 133 adalah proses dengan pengkondisian apakah selisih fungsi objektif lebih kecil dari error minimum serta apabila memenuhi kondisi maka dilanjutkan ke proses pengurutan pusat cluster secara ascending dari hasil iterasi terakhir dan proses pengkondisian iterasi berhenti
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void pusat_cluster()
int bobot = 2int iter_maksimum = 100
double selisih_f_objektif = 0double error_min = 001
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
Pembentukkan matriks partisi
tmp_Matriks1=new
double[jmlh_Cluster[i]][jmlh_DataTraining]
q1 = new double[jmlh_Cluster[i]]
double jmlh_q1
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_q1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
71
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
double random = ThreadLocalRandomcurrent()
nextDouble(01 1)
tmp_Matriks1[j][k] = random
jmlh_q1 = jmlh_q1 + random
q1[j] = jmlh_q1
normalisasi matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k] q1[j]
Perhitungan pusat cluster
for (int iter = 0 iter lt iter_maksimum iter++)
selisih_f_objektif = 0
jumA1 = new double[iter_maksimum][jmlh_Cluster[i]]
jumA2 = new double[iter_maksimum][jmlh_Cluster[i]]
miu_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
XV_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
pusat_cluster1 = new double[jmlh_Cluster[i]]
double hitung_jum1
double hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(tmp_Matriks1
[j][k]bobot)
miu_Matriks1[j][k] = tmp_Matriks1[j][k]
hitung_jum1 = hitung_jum1 + tmp_Matriks1
[j][k]
jumA1[iter][j] = hitung_jum1
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum2 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
data[i][k]
hitung_jum2 = hitung_jum2 +
tmp_Matriks1[j][k]
jumA2[iter][j] = hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
pusat_cluster1[j] = jumA2[iter][j]
jumA1[iter][j]
perhitungan fungsi objektif
jumA3 = new double[iter_maksimum][jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
double hitung_jum3 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow((data[i][k]
ndash pusat_cluster1[j])
bobot)
XV_Matriks1[j][k] = tmp_Matriks1[j][k]
tmp_Matriks1[j][k] = XV_Matriks1[j][k]
miu_Matriks1[j][k]
hitung_jum3 = hitung_jum3 +
tmp_Matriks1[j][k]
jumA3[iter][j] = hitung_jum3
72
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
double jmlh_f_objektif = 0
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_f_objektif = jmlh_f_objektif
+jumA3[iter][j]
if (iter lt (iter_maksimum - 1))
f_objektif1[iter + 1] = jmlh_f_objektif
perhitungan selisih fungsi objektif
selisih_f_objektif = f_objektif1[iter + 1]
-f_objektif1[iter]
perbaikan matriks partisi
int hitung = bobot - 1int pangkat = -1 hitung
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(XV_Matriks1
[j][k] pangkat)
jumA4 = new
double[iter_maksimum][jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
double hitung_jum4 = 0
for (int k = 0 k lt jmlh_Cluster[i] k++)
hitung_jum4 = hitung_jum4 +
tmp_Matriks1[k][j]
jumA4[iter][j] = hitung_jum4
hasil perbaikan matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
jumA4[iter][k]
if (selisih_f_objektif lt error_min)
pengurutan ascending pusat cluster
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 kltjmlh_Cluster[i]k++)
if (k lt (jmlh_Cluster[i] - 1))
if (pusat_cluster1[k] gt
pusat_cluster1[k + 1])
double tmp =
pusat_cluster1[k]
pusat_cluster1[k]=
pusat_cluster1[k+1]
pusat_cluster1[k+1] = tmp
iter = iter_maksimum
Kode Program 56 Implementasi proses pusat cluster
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set
Pada implementasi proses pembentukan suinterval dan fuzzy set memiliki dua proses yaitu proses menentukan batas subinterval minumum serta maksimum dan proses menentukan batas fuzzy set minimum serta maksimum
73
Proses pembentukan fuzzy dapat menjalankan prosesnya setelah method subinterval() telah diakses Berikut merupakan source code proses pembentukan fuzzy set yang ditunjukkan pada Kode Program 57 Pada Kode Program 57 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 6 ndash 29 merupakan proses pembentukan batas minimum dan batas maksimum subinterval Pada baris 31 ndash 54 merupakan pembentukan batas minimum dan batas maksimum fuzzy set
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
private void subinterval_dan_fuzzy_set()
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
batas subinterval
batas_subintervalMinA = new double[jmlh_Cluster[i]]
batas_subintervalMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_subintervalMinA[j] = hsl_uMin[i]
batas_subintervalMaxA[j]=(pusat_cluster1[j]
+pusat_cluster1[j+
1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1] +pusat_cluster1
[j])2
batas_subintervalMaxA[j]=
hsl_uMax[i]
else if ((0 lt j) ampamp (j lt (jmlh_Cluster[i] -
1)))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1]+
pusat_cluster1[j])2
batas_subintervalMaxA[j]=
(pusat_cluster1[j]+
pusat_cluster1[j+1)2
batas fuzzy set
batas_fuzzysetMinA = new double[jmlh_Cluster[i]]
batas_fuzzysetMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_fuzzysetMinA[j]=
batas_subintervalMinA[j]
batas_fuzzysetMaxA[j]=
(batas_subintervalMinA[j+1]
+batas_subintervalMaxA[j + 1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]
+batas_subintervalMaxA[j - 1])2
batas_fuzzysetMaxA[j] =
batas_subintervalMaxA[j]
else if ((0 lt j) ampamp (jlt(jmlh_Cluster[i]-1)))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]+
batas_subintervalMaxA[j-1])2
batas_fuzzysetMaxA[j]=
74
51
52
53
54
55
56
(batas_subintervalMinA[j+1]+
batas_subintervalMaxA[j + 1])2
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set
525 Implementasi proses fuzzifikasi
Pada Implementasi proses fuzzifikasi memiliki dua proses utama yaitu menentukan derajat keanggotaan dan proses fuzzifikasi Dalam proses ini method fuzzy_set() harus dieksekusi terlebih dahulu karena implementasi proses ini memerlukan output dari method tersebut Berikut merupakan source code fuzzifikasi ditunjukkan pada Kode Program 58 Pada Kode Program 58 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 3 ndash 81 merupakan proses perhitungan derajat keanggotaan Pada baris 83 ndash 94 adalah proses penentuan fuzzifikasi
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
private void fuzzifikasi()
if (i == 0)
hitung_fuzzifikasiA = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
if(j == 0)
if((data[i][k]gtbatas_fuzzysetMinA[j])ampamp
(data[i][k]lt batas_fuzzysetMinA[j + 1]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA[j + 1])
ampamp (data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j] - data[i][k])
(batas_fuzzysetMaxA[j] ndash
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j]) ampamp
(data[i][k] lt batas_fuzzysetMinA[j + 1])
ampamp(data[i][k] gt batas_fuzzysetMinA[j+1])
ampamp(data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
else if (j == (jmlh_Cluster[i] - 1))
if((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
(batas_fuzzysetMaxA[(jmlh_Cluster[i]ndash
2)]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
if((data[i][k] gt batas_fuzzysetMaxA
75
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
[(jmlh_Cluster[i]- 2)]) ampamp (data[i][k]
lt batas_fuzzysetMaxA[(jmlh_Cluster[i]
- 1)]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] gt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 1)]))
hitung_fuzzifikasiA[j][k] = 0
else if ((0 lt j)ampamp(j lt (jmlh_Cluster[i] - 1)))
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA[j
+1]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA[j])
(batas_fuzzysetMinA[j + 1]-
batas_fuzzysetMinA[j])
if ((data[i][k] gt batas_fuzzysetMinA
[j+1])ampamp (data[i][k] lt
batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j]-data[i][k])
(batas_fuzzysetMaxA[j]-
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA
[j + 1]) ampamp (data[i][k] gt
batas_fuzzysetMinA[j + 1]) ampamp
(data[i][k]ltbatas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
hasil_fuzzifikasiA = new int[jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
int cluster = 0
double besar=hitung_fuzzifikasiA[0][j]
for (int k = 0 k lt jmlh_Cluster[i] k++)
if (besar lt hitung_fuzzifikasiA[k][j])
besar = hitung_fuzzifikasiA[k][j]
cluster = k
hasil_fuzzifikasiA[j] = cluster + 1
Kode Program 58 Implementasi proses fuzzifikasi
526 Implementasi Pembentukan Fuzzy Logical Relationship
Pada implementasi pembentukan Fuzzy Logical Relationship (FLR) memiliki dua output yaitu FLR_kiri dan FLR_kanan Dimana FLR_kiri berisi group dari kelima faktor dan pada FLR_kanan merupakan dari faktor yang akan diramalkan yaitu
76
faktor curah hujan (A) Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code pembentukan Fuzzy Logical Relationship (FLR) dapat ditunjukkan pada Kode Program 59 berikut Pada baris 3 ndash 14 merupakan deklarasi variabel Pada baris 15 ndash 55 adalah proses pembentukan fuzzy logical relationship data training Pada baris 56 ndash 58 merupakan deklarasi variabel Pada baris 59 ndash 86 adalah proses pembentukan fuzzy logical relationship data testing
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Fuzzy Logical Relationship
private void fuzzy_logical_relationship()
String input_order = fieldOrdergetText()
order = IntegerparseInt(input_order)
int max_inc = order
String input_dataTraining = fieldDatatraininggetText()
int dataTraining = IntegervalueOf(input_dataTraining)
int tmp_jmlhDatatraining = 0
int tmp_order = 0
int jmlh_dataTraining = dataTraining - order
String input_dataTesting = fieldDatatestinggetText()
int jmlh_dataTesting = IntegervalueOf(input_dataTesting)
FLR_kiri_training = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_training = new int[jmlh_DataTraining]
for (int i = 0 i lt jmlh_dataTraining i++)
for (int j = i j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (j == 0)
if (k == 0)
FLR_kiri_training[i][j][k]=
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiD[j]
else if (j = 0)
if (k == 0)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiD[j]
tmp_order = j
FLR_kanan_training[i] = hasil_fuzzifikasiA[(i + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
77
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
tmp_jmlhDatatraining = i
FLR_kiri_testing = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_testing = new int[(jmlh_DataTraining)]
tmp_jmlhDatatraining = tmp_jmlhDatatraining + 1
for (int i = 0 i lt jmlh_dataTesting i++)
for (int j = tmp_jmlhDatatraining j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (k == 0)
FLR_kiri_testing[i][j - tmp_jmlhDatatraining][k]
= hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiD[j]
FLR_kanan_testing[i] =
hasil_fuzzifikasiA[(tmp_jmlhDatatraining + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
tmp_jmlhDatatraining++
Kode Program 59 Implementasi pembentukan FLR
527 Implementasi Proses Defuzzifikasi
Pada implementasi proses defuzzifikasi merupakan proses dimana menentukan hasil peramalan dari data testing berdasarkan dari bilangan fuzzy yang terbentuk Implementasi ini memiliki beberapa inputan penting yaitu data training data testing order dan konstanta Inputan tersebut sangat berperan penting dalam proses implementasi defuzzifikasi Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code defuzzifikasi dapat ditunjukkan pada Kode Program 510 berikut Pada baris 2 ndash 11 merupakan deklarasi variabel Pada baris 13 ndash 37 merupakan proses perhitungan selisih antara data training dengan data testing Pada baris 40 ndash 47 menghitung jumlah FLR yang cocok Pada baris 49 ndash 65 merupakan proses mencocokan FLR kiri yang cocok dengan FLR kanan Pada baris 67 ndash 81 merupakan proses menghitung jumlah frekuensi FLR kanan yang cocok Pada baris 83 ndash 91 adalah proses perhitungan hasil peramalan
Baris Kode 1
2
3
4
private void defuzifikasi()
String input_dataTraining = fieldDatatraininggetText()
String input_dataTesting = fieldDatatestinggetText()
String input_konstanta = fieldKonstantagetText()
78
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
int dataTraining = IntegervalueOf(input_dataTraining)
int dataTesting = IntegervalueOf(input_dataTesting)
int konstanta = IntegervalueOf(input_konstanta)
int match[][]
match = new int[dataTesting][2000]
int threshold = (jmlh_Faktor order) + konstanta
int hitung_selisih = 0
perhitungan selisih
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
hitung_selisih = 0
for (int k = 0 k lt order k++)
for (int l = 0 l lt jmlh_Faktor l++)
if (i == 0)
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
else if (i gt 0)
FLR_kiri_training[(dataTraining-
1)+i][k][l] = FLR_kiri_testing[i-
1][k][l]
FLR_kanan_training[(dataTraining-1)+i]
= FLR_kanan_testing[i-1]
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
if (hitung_selisih lt threshold)
match[i][j] = hitung_selisih
menghitung jumlah total FLR yang cocok untuk setiap data
testing
int countGroup[] = new int[dataTesting]
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
countGroup[i]++
mencocokan FLR_kiri yang cocok dengan FLR_kanan
group = new int[dataTesting][2000]
for (int i = 0 i lt dataTesting i++)
int tmp_count = 0
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
if (tmp_count lt countGroup[i])
group[i][tmp_count] = j
tmp_count++
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt countGroup[i] j++)
group[i][j] = FLR_kanan[group[i][j]]
mengelompokkan yang sama
MapltInteger Integergt map = new HashMapltInteger Integergt()
hasil_peramalan = new double[dataTesting]
for (int i = 0 i lt dataTesting i++)
79
70
71
72
73
74
75 76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
double peramalan = 0
mapclear()
for (int j = 0 j lt countGroup[i] j++)
int key = group[i][j]
if (mapcontainsKey(key))
int occurrence = mapget(key)
occurrence++
mapput(key occurrence)
else
mapput(key 1)
menghitung hasil peramlaan
Iterator iterator = mapkeySet()iterator()
while (iteratorhasNext())
int key = (Integer) iteratornext()
int occurrence = mapget(key)
peramalan = (peramalan + (pusat_cluster1[(key - 1)]
occurrence))
hasil_peramalan[i] = (peramalan countGroup[i])
Kode Program 510 Implementasi proses defuzzifikasi
53 Implementasi Antarmuka
Pada implementasi antarmuka dijelaskan beberapa halaman antarmuka untuk penggunaan dari program hasil implementasi Implementasi antarmuka berdasarkan perancangan yang telah dijelasakan pada bab sebelumnya yaitu bab perancangan Halaman antarmuka yang dibuat adalah halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
531 Implementasi antarmuka halaman input
Halaman input merupakan halaman yang pertama muncul setelah program dijalankan Pada halaman input ini terdapat beberapa inputan yang harus di masukkan yaitu data input data training data testing order dan konstanta Selain itu pada halaman input juga terdapat tiga button yaitu button browse data button fuzzification dan button forecasting Berikut tampilan antarmuka halaman input yang ditunjukkan pada Gambar 51
Gambar 51 Implementasi antarmuka halaman input
80
532 Implementasi antarmuka halaman tampil data
Halaman tampil data merupakan halaman yang tampil setelah melakukan input data Halaman ini berisi tabel yang menampilkan data curah hujan suhu kecepatan angin dan kelembaban Berikut tampilan antarmuka halaman tampil data yang ditunjukkan pada Gambar 52
533 Implementasi antarmuka halaman proses
Halaman proses merupakan halaman yang muncul setelah button fuzzification telah dieksekusi Halaman proses ini terdiri dari tiga bagian atau tab yaitu clustering fuzzification dan Fuzzy logical relationship Pada halaman antarmuka clustering menampilkan Universe of Discourse dan jumlah cluster pada masing ndash masing faktor Berikut merupakan tampilan antarmuka halaman proses bagian clustering yang ditunjukkan pada Gambar 53
Gambar 52 Implementasi antarmuka halaman tampil data
Gambar 53 Implementasi antarmuka halaman proses clustering
81
Pada tab selanjutnya yaitu pada tab fuzzification tab ini menampilkan hasil proses fuzzifikasi Pada halaman ini menampilkan tabel yang berisi hasil fuzzifikasi dari setiap faktor Berikut merupakan tampilan antarmuka halaman proses bagian fuzzification yang ditunjukkan pada Gambar 54
Pada tab Fuzzy Logical Relationship menampilakn hasil dari proses pembentukan Fuzzy Logical Relationship Tampilan pada halaman ini menampilkan berupa textarea yang berisi dari output proses tersebut Berikut merupakan tampilan antarmuka halaman proses bagian Fuzzy Logical Relationship yang ditunjukkan pada Gambar 55
Gambar 54 Implementasi antarmuka halaman proses fuzzification
Gambar 55 Implementasi halaman antarmuka proses FLR
82
534 Implementasi antarmuka halaman hasil
Pada implementasi antarmuka halaman hasil ini merupakan halaman yang menampilkan hasil dari proses defuzzifikasi Halaman hasil ini menampilkan tabel yang berisi data aktual dan data dari hasil peramlan Berikut merupakan tampilan antarmuka halaman hasil yang ditunjukkan pada Gambar 56
535 Implementasi antarmuka halaman perhitungan error
Pada implementasi antarmuka halaman perhitungan error merupakan halaman yang menampilkan hasil dari proses perhitungan Mean Square Error (MSE) Pada halaman antarmuka ini menampilkan hasil error MSE pada textfield Berikut merupakan tampilan antarmuka halaman perhitungan error yang ditunjukkan pada Gambar 57
Gambar 56 Implementasi halaman antarmuka hasil
Gambar 57 Implementasi halaman antarmuka perhitungan error
83
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini membahas hasil pengujian dan analisis hasil pengujian dari hasil implementasi metode High Order Fuzzy Time Series Multi factors untuk peramalan curah hujan dasarian Pada pengujian ini disesuaikan dengan perancangan pengujian pada bab 4
61 Sistematika Pengujian
Pada bab sebelumnya yaitu bab 4 mengenai perancangan telah dibahas perancangan pengujian dikatakan bahwa pengujian akan dilakukan sebanyak empat pengujian Pengujian order pengujian threshold pengujian jumlah data training dan pengujian validasi sistem Dari semua pengujian tersebut akan di uji dan di analisis bagaimana pengaruhnya terhadap hasil perhitungan Mean Square Error (MSE)
62 Hasil dan Analisis Pembahasan
Berikut hasil pengujian dan analisis yang disesuaikan dengan perancangan pengujian pada bab sebelumnya
621 Pengujian pengaruh order terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh order terhadap nilai MSE Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Jadi jika nilai order adalah 3 maka peramalan akan melibatkan 3 data sebelumnya pada proses pembentukan Fuzzy Logical Relationship (FLR) Pada pengujian ini hanya nilai order yang diubah ndash ubah sedangkan variabel lain akan dibuat tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 konstanta adalah 10 Nilai threshold diperoleh dari perhitungan jumlah faktor dikali order dan dijumlah nilai konstanta Berikut adalah hasil pengujian pengaruh order terhadap nilai MSE yang ditunjukkan pada Tabel 61
Tabel 61 Hasil pengujian order terhadap nilai MSE
No Order Threshold MSE
1 3 22 808585
2 6 34 965547
3 9 46 912631
4 12 58 875884
5 15 70 719284
6 18 82 6801207
7 21 94 5637184
8 24 106 5444184
9 27 118 5433631
10 30 130 5418393
84
Dari hasil pengujian order seperti yang telah ditunjukkan pada Tabel 61 maka pada percobaan pertama dengan order = 3 dan threshold 22 dapat diperoleh MSE sebesar 808585 Selanjutnya pada percobaan kedua dengan order = 6 dan threshold = 34 diperoleh MSE sebesar 965547 Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 61
Berdasarkan Gambar 61 order yang berbeda - beda mempengaruhi besar nilai MSE Dalam penelitian ini menentukan order memiliki ketentuan yaitu nilai order harus lebih dari 0 dan batas maksimal order adalah setengah dari nilai data training (LinYang 2009) Nilai MSE terbesar yang ditunjukkan pada pengujian ini adalah 965547 pada pengujian order 6 dan nilai MSE terkecil adalah 5418393 pada pengujian order 30 Pada Gambar 61 menunjukkan bahwa pada order 3 ke order 6 mengalami peningkatan nilai MSE selanjutnya pada order 6 hingga order 30 mengalami penurunan Pada order 3 memiliki nilai MSE lebih kecil dari order 6 order 9 dan order 12 karena memiliki lebih banyak hasil selisih tingkat kecocokan data time series yang tidak terlalu besar dan kurang dari threshold Selain itu karena data time series dari data sampel yang diperoleh memiliki pola data musiman dimana perubahan pola data dasarian tidak terlalu banyak berubah dari tahun ke tahun Selanjutnya pada order 6 hingga order 30 menunjukkan penurunan nilai MSE dan order terbesar memiliki nilai MSE terkecil sehingga dapat disumpulkan bahwa semakin besar order maka semakin kecil pula nilai MSE Dalam hal ini dengan semakin besarnya order maka data sebelumnya yang digunakan untuk pertimbangan dalam menentukan peramalan semakin banyak Sehingga semakin besar nilai order maka dapat membuat peramalan semakin akurat Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin besar nilai order maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE
85
622 Pengujian pengaruh threshold terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh threshold terhadap nilai MSE Threshold merupakan hasil dari mengalikan jumlah order dengan jumlah faktor pada data kemudian dijumlahkan dengan dengan nilai konstanta Pada proses defuzzifikasi terdapat proses menghitung selisih antara pangkat bawah Fuzzy Logical Relationship (FLR) data training dan pangkat bawah FLR data testing Selanjutnya setelah mendapatkan nilai selisih maka nilai selisih tersebut dibandingkan dengan nilai threshold untuk mencari FLR yang cocok Pada pengujian ini nilai konstanta saja yang diubah ndash ubah sementara variabel lainnya tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 dan Nilai order adalah 30 Pada penentuan input konstanta nilai minimal harus lebih besar dari 0 dan nilai maksimal menyesuaikan data sampel yang digunakan (LinYang 2009) Berikut adalah hasil pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 62
Tabel 62 Hasil pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1 10 130 558485
2 20 140 577498
3 30 150 597364
4 40 160 604660
5 50 170 646951
6 60 180 680257
7 70 190 703013
8 80 200 741484
9 90 210 756749
10 100 220 780600
Dari hasil pengujian threshold seperti yang telah ditunjukkan pada Tabel 62 maka dapat dilihat bahwa konstanta yang dilakukan pengujian dimulai dengan nilai 10 sampai 100 Hasil yang didapat pada percobaan pertama dengan konstanta = 10 dan threshold 130 diperoleh MSE sebesar 558485 Selanjutnya pada percobaan kedua dengan konstanta = 20 dan threshold = 140 diperoleh MSE sebesar 577498 Selanjutnya dapat kita lihat pada percobaan yang telah dilakukan dari percobaan pertama hingga percobaan kesepuluh nilai MSE yang diperoleh mengalami perubahan pada setiap percobaan Dapat dilihat bahwa peningkatan MSE lebih dominan menunjukkan peningkatan sehingga dalam hal ini semakin besar nilai konstanta dan threshold maka semakin besar pula nilai MSE yang diperoleh Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 62
86
Berdasarkan grafik dari Gambar 62 nilai input konstanta yang berbeda - beda mempengaruhi besar nilai MSE semakin besar nilai konstanta maka nilai threshold juga semakin besar karena threshold diperoleh dari perhitungan order dikali jumlah faktor dan selanjutnya dijumlah dengan nilai konstanta Dalam hal ini dengan semakin besar nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR juga semakin luas batasannya dan jika semakin kecil nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR menjadi semakin sempit dan mempermudah proses peramalan karena hanya adanya sedikit data yang cocok dengan data yang akan diramalkan dan mempermudah proses defuzzifikasi Oleh karena itu semakin kecil threshold maka dapat membuat peramalan semakin akurat Akan tetapi nilai threshold tidak boleh terlalu kecil karena dapat menyebabkan kegagalan peramalan Kegagalan peramalan itu terjadi karena tidak adanya data training yang cocok dengan data testing karena pada metode yang digunakan pada penelitian ini sangat bergantung pada data ndash data sebelumnya Dari hasil percobaan diatas hasil MSE terbesar adalah 7806 yaitu pada konstanta 100 serta threshold 220 dan hasil MSE terkecil adalah 558485 yaitu pada konstanta 10 dan threshold 130 Dalam pengujian ini memiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin kecil nilai konstanta maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
623 Pengujian pengaruh jumlah data training terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh jumlah data training terhadap nilai MSE Pada pengujian ini jumlah data training adalah data dasarian yaitu 1 tahun 2 tahun 3 tahun 4 tahun dan 5 tahun dimana dari setiap 1 tahun memiliki 36 data dasarian Pengujian ini akan dilakukan sebanyak lima kali Pada pengujian ini jumlah data testing adalah 36 nilai order adalah setengah dari
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE
87
nilai data training nilai konstanta adalah 20 Berikut adalah hasil pengujian pengaruh jumlah data training terhadap nilai MSE yang ditunjukkan pada Tabel 63
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1 36 786586
2 72 634527
3 108 627190
4 144 614184
5 180 539698
Dari hasil pengujian jumlah data training seperti yang telah ditunjukkan pada Tabel 63 maka pada percobaan pertama dengan data training = 36 dapat diperoleh MSE sebesar 786586 Selanjutnya pada percobaan kedua dengan data training = 72 diperoleh MSE sebesar 634527 Dalam hal ini dari percobaan satu dan dua nilai MSE mengalami penurunan Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 63
Berdasarkan dari Gambar 63 pengujian pertama sampai pengujian kelima mengalami penerunan nilai MSE Sehingga dapat disimpulkan bahwa semakin besar data training maka semakin kecil nilai MSE yang diperoleh Nilai MSE semakin kecil apabila menggunakan data training dalam jumlah besar karena data yang digunakan memiliki rentang jauh dari periode data testing atau data yang akan diramalkan Sedangkan data training yang sedikit memiliki nilai MSE yang besar karena data training yang memiliki kecocokan dengan data testing berada pada periode yang jauh dengan data testing sehingga nilai MSE menjadi tinggi Dalam hal ini terbukti bahwa metode yang digunakan pada penelitian ini memerlukan jumlah data training yang banyak sehingga dapat menurunkan nilai kesalahannya Dari hasil percobaan diatas hasil MSE terbesar adalah 786586 dan
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE
88
hasil MSE terkecil adalah 539698 Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoPeramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Seriesrdquo yang menyatakan bahwa semakin besar jumlah data training maka semakin kecil nilai kesalahannya (Elfajar et al 2017)
624 Pengujian validasi sistem
Pada pengujian ini dilakukan untuk mengetahui kestabilan dari sistem dengan menggunakan order threshold terbaik dari pengujian sebelumnya Pada pengujian ini akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai data training menggunakan 36 data yang berbeda agar dapat menunjukkan gambaran variasi dari nilai kesalahan MSE pada peramalan nilai order adalah 18 dan konstanta adalah 10 sehingga nilai threshold adalah 92 Berikut adalah hasil pengujian validasi sistem yang ditunjukkan pada Tabel 64
Tabel 64 Hasil pengujian validasi sistem
Percobaan ke- MSE
1 714290
2 703856
3 732564
4 732815
5 6973958
6 7532825
7 741726
8 760457
9 709961
10 6256204
Dari hasil pengujian validasi sistem seperti yang telah ditunjukkan pada Tabel 64 maka dapat digambarkan dengan grafik yang ditunjukkan oleh Gambar 64
Gambar 64 Grafik hasil pengujian validasi sistem
89
Berdasarkan dari gambar grafik Gambar 64 bahwa pengujian dari validasi sistem memiliki hasil MSE yang tidak terlalu jauh berbeda dari penggunaan data yang berbeda - beda Oleh karena itu dapat disimpulkan bahwa implementasi dari metode High Order Fuzzy Time Series Multi Factors yang telah digunakan sudah cukup baik untuk digunakan peramalan
Berdasarkan dari pengujian yang dilakukan diatas dapat diketahui bahwa nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun 2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016 Nilai order adalah 90 dan konstanta adalah 10 Berikut adalah perbandingan data aktual dengan hasil peramalan yang ditunjukkan pada grafik Gambar 65
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan
90
BAB 7 PENUTUP
Pada bab ini terdiri dari dua sub bab yaitu kesimpulan dan saran Kesimpulan adalah tahapan yang berisi hasil penelitian yang dilakukan dan jawaban semua rumusan masalah yang sudah ditetapkan sebelumnya dan saran adalah tahapan yang berisi hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
71 Kesimpulan
Pada kesimpulan ini mengacu pada penelitian yang telah dilakukan yang meliputi perancangan implementasi serta pengujian dan analisis terhadap hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diambil kesimpulan sebagai berikut
1 Berdasarkan dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam melakukan peramalan curah hujan dasarian dilakukan dengan beberapa langkah yaitu langkah pertama perhitungan Universe of Discourse yang terdiri perhitungan mean standar deviasi dan perhitungan Dmin serta Dmax langkah kedua yaitu perhitungan jumlah cluster langkah ketiga yaitu perhitungan pusat cluster langkah keempat yaitu pembentukan subinterval dan fuzzy set langkah kelima yaitu proses fuzzifikasi langkah keenam yaitu pembentukan Fuzzy Logical Relationship(FLR) langkah ketujuh adalah defuzzifikasi yang hasil outputnya merupakan hasil peramalan curah hujan
2 Berdasarkan dari pengujian peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diketahui bahwa
a Order berpengaruh terhadap nilai error semakin besar nilai order maka hasil peramalan semakin baik
b Threshold berpengaruh terhadap nilai error semakin rendah nilai threshold maka hasil peramalan semakin baik Akan tetapi nilai threshold tidak boleh terlalu rendah karena dapat menyebabkan kegagalan peramalan
c Data training berpengaruh terhadap nilai error semakin besar jumlah data training maka hasil peramalan semakin baik Sehingga peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors memerlukan banyak data training
d Hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors cukup baik digunakan untuk peramalan Hal ini terbukti hasil pengujian validasi sistem menunjukkan grafik yang cukup stabil
Dari pengujian yang telah dilakukan nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun
91
2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016
72 Saran
Pada penelitian ini dilakukan peramalan curah hujan dasarian dengan faktor yang mempengaruhi adalah suhu kelembaban dan kecapatan angin Saran penulis diharapkan untuk penelitian selanjutnya melakukan penambahan faktor yang mempengaruhi curah hujan atau melakukan peramalan objek lain dengan mempertimbangkan faktor ndash faktor yang mempengaruhinya Serta diharapkan pada penelitian selanjutnya untuk menambahkan data yang lebih banyak serta bervariatif sehingga nilai hasil perhitungan akurasi peramalan yang dihasilkan dalam penelitian dapat meningkat Penggunaan data training yang banyak dan bervariatif dapat membuat pola data semakin terlihat sehingga hasil peramalan yang dihasilkan memiliki akurasi yang lebih baik
92
DAFTAR PUSTAKA
Ardiyanto 2016 ldquoTerendam Air Petani Lamongan Terpaksa Panen Dinirdquo Times Indonesia November 18 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
Badan Penelitian dan Pengembangan Pertanian Kementrian Pertanian 2015 ldquoKalender Tanam Terpadu Versi 25 Kota Malang Prov Jawa Timurrdquo httpkatamlitbangpertaniangoidkatam_terpadu2016mh33535733573_tinggipdf (Diakses 25 Februari 2017)
Bagirov M Adil Mahmood Arshad and Barton Andrew 2017 Prediction of monthly rainfall in Victoria Australia Clusterwise linear regression approach Elsevier Atmos Research 188 20-29
BMKG Staklim Karangploso Malang 2015 ldquoAnalisis Dinamika Atmosfer Dan Laut Dasarian III Maret 2015 Update 2 April 2015rdquo httpkarangplosojatimbmkgogoidindexphpanalisis-kondisi-dinamika-atmosfer-laut-dasarian-tahun-2015399-analisis-dinamika-atmosfer-dan-laut-dasarian-iii-maret-2015-update-2-april-2015axzz3X8h9y4fgampgsctab=0 (Diakses 25 Februari 2017)
BPS Kabupaten Malang 2016 ldquoKabupaten Malang Dalam Angka 2016rdquo httpsmalangkabbpsgoidwebsitepdf_publikasiKabupaten-Malang-Dalam-Angka-2016pdf (Diakses 25 Februari 2017)
BPS Jawa Timur 2015 ldquoJawa Timur Dalam Angka 2015rdquo httpsjatimbpsgoid4dmnpdf_publikasiJawa-Timur-Dalam-Angka-2015pdf (Diakses 25 Februari 2017)
Buffa S Elwood Rakesh and Sarin K 1996 Modern Production and Operation Management Eight Edition John Willey and Sons Inc London
Chen M 1996 Forecasting Enrollments based on Fuzzy Time Series Fuzzy Sets and Systems 311-319
Dewi Candra Kartikasari Dani Mursityo Yusi 2014 Prediksi Cuaca Pada Data Time Series Menggunakan Adaptive Neuro Fuzzy Inference System (ANFIS) Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK) Vol 1 No 1 hlm 18-24
Dewi Candra Muslikh M 2013 Perbandingan Akurasi Backpropagation Neural Network dan ANFIS Untuk Memprediksi Cuaca NATURAL-A Journal of Scientific Modeling amp Computation Volume 1 No1
Elfajar Aria Setiawan Budi Dewi Candra 2017 Peramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Series Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer Vol 1 No 2 Hlmn 85-94
93
Fauziah Normalita Wahyuningsih Sri dan Nasution Yuki 2016 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) Vol4 Statistika
Forest Mahyu 2015 ldquoDefenisi amp Pengertian Kelembabanrdquo httpilmupengetahuaalamblogspotcoid201506defenisi-pengertian-kelembabanhtml (Diakses 25 Februari 2017)
Irsyad Muhammad Metarice Sonya 2013 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan Jurnal Sains dan Teknologi Industri Vol 10 No 02
Klawon F 2001 What is About Fuzzy Clustering Understanding and Improving the Concept of the Fuzzier Science Journal httppublic-rzfh-wolfebuetteldeklawon
Kurniawan Carlos 2007 Analisis dan Perancangan Program Aplikasi Peramalan Curah Hujan dengan Metode Wavelet (Studi Kasus BMKG)
Kusumadewi S 2003 ldquoArtificial Intelegence (Teknik amp Aplikasinya)rdquo Graha Ilmu Yogyakarta
Kusumadewi S Purnomo H 2004 ldquoAplikasi Logika Fuzzy untuk Pendukung Keputusanrdquo Graha Ilmu Yogyakarta
Kusumadewi Sri 2002 Analisis amp Desain Sistem Fuzzy Tollbox MATLAB Graha Ilmu Yogyakarta
Lin Yupei Yang Y 2009 Stock Markets Forecasting Based on Fuzzy Time Series Model IEEE Conference Publications 782-886
Makridakis S Steven C Wheelwright Victor E and Gee MC 1999 Metode dan Aplikasi Peramalan Jilid I Edisi Kedua Jakarta Binarupa Aksara
Mirawati T Yasin H and Rusgiyono A 2013 Prediksi Curah Hujan dengan Metode Kalman Filter(Studi Kasus di Kota Semarang 2012) Jurnal Gaussian 2(3) pp 239-248
Pradipta Nur Sembiring Pasukat Bangun Pengarapen 2013 Analisis Pengaruh Curah Hujan di Kota Medan Saintia Matematika Vol 1
Sipayung Putri Metha 2013 Pemodelan Hubungan Kelembapan Udara terhadap Curah Hujan (Studi Kasus Curah Hujan Periode 2001-2009 pada Stasiun Dramaga) httprepositoryipbacidhandle12345678960623 (Diakses 25 Februari 2017)
User 2015 httpstaklimnegaranet[Online] Available at httpwwwstaklimnegaranetindexphpbuletin-hujanpengertian-istilah (Diakses 25 Februari 2017)
Wang Nai-Yi Chen Shyi-Ming 2009 Temperature prediction and TAIFEX forecasting based on automatic clustering techniques and two-factors high-order fuzzy time series Elsevier Expert Systems with Applications 36 2143ndash2154
94
Wardhani Dessy Ratnawati Dian Setiawan Budi 2015 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Saham Repositori Jurnal Mahasiswa PTIIK UB Doro Jurnal Vol 6 No 6
Wiyanti T and Pulungan R 2012 Peramalan Deret Waktu Menggunakan Model Fungsi Basis Radial (RBF) dan Auto Regressive Integrated Moving Average (ARIMA) Jurnal MIPA 35(2) pp 175-182
Yunanto Utomo 2014 ldquoBMKG Akui Prakiraan Cuacanya Masih Kurang Akuratrdquo Kompas Sains Januari 30 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
vii
DAFTAR ISI
PENGESAHAN ii
PERNYATAAN ORISINALITAS iii
KATA PENGANTAR iv
ABSTRAK v
ABSTRACT vi
DAFTAR ISI vii
DAFTAR TABEL xi
DAFTAR GAMBAR xiii
DAFTAR KODE PROGRAM xv
DAFTAR LAMPIRAN xvi
BAB 1 PENDAHULUAN 1
11 Latar belakang 1
12 Rumusan masalah 2
13 Tujuan 3
14 Manfaat 3
15 Batasan masalah 3
16 Sistematika pembahasan 3
BAB 2 LANDASAN KEPUSTAKAAN 5
21 Kajian Pustaka 5
22 Dasar Teori 7
221 Peramalan 8
222 Curah hujan 8
223 Data time series 9
224 Logika Fuzzy 10
225 Metode Fuzzy C-means 13
226 Metode Peramalan dengan Fuzzy Time Series 15
227 Metode High Order Fuzzy Time Series Multi Factors 17
228 Perhitungan keakuratan metode peramalan 20
BAB 3 METODOLOGI 22
31 Studi Literatur 22
viii
32 Pengumpulan Data 23
33 Perancangan 23
34 Implementasi 23
35 Pengujian dan Analisis 23
36 Kesimpulan dan Saran 24
BAB 4 PERANCANGAN 25
41 Perancangan Proses 25
411 Proses perhitungan Universe of Discourse 26
4111 Proses perhitungan Mean 28
4112 Proses perhitungan standar deviasi 29
4113 Proses perhitungan nilai Dmin dan Dmax 30
412 Proses perhitungan jumlah cluster 31
413 Proses perhitungan pusat cluster 32
414 Proses pembentukan subinterval dan Fuzzy set 37
415 Proses Fuzzifikasi 38
416 Proses pembentukan Fuzzy Logical Relationship 41
417 Proses Defuzzifikasi 43
42 Perhitungan Manual 46
421 Perhitungan Universe of Discourse (U) 46
422 Perhitungan jumlah cluster (k) 48
423 Perhitungan pusat cluster dan subinterval 49
4231 Penentuan pusat cluster 49
4232 Perhitungan batas subinterval 55
424 Pembentukan Fuzzy Set 56
425 Fuzzifikasi 56
426 Pembentukan Fuzzy Logical Relationship (FLR) 58
427 Defuzzifikasi 58
43 Perancangan antarmuka 60
431 Halaman input 60
432 Halaman tampil data 61
433 Halaman proses 62
434 Halaman hasil 63
ix
435 Halaman perhitungan error 64
44 Perancangan pengujian 64
441 Perancangan pengaruh order terhadap nilai MSE 64
442 Perancangan pengaruh threshold terhadap nilai MSE 65
443 Perancangan pengaruh jumlah data training terhadap nilai MSE 65
444 Perancangan validasi sistem 65
BAB 5 IMPLEMENTASI 67
51 Spesifikasi Sistem 67
511 Spesifikasi Perangkat Keras 67
512 Spesifikasi Perangkat Lunak 67
52 Implementasi Algoritma 67
521 Implementasi Proses Universe of Discourse 68
5211 Implementasi proses mean 68
5212 Implementasi proses standar deviasi 68
5213 Implementasi proses Dmin dan Dmax 69
522 Implementasi Proses Jumlah Cluster 69
523 Implementasi Proses Pusat Cluster 70
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set 72
525 Implementasi proses fuzzifikasi 74
526 Implementasi Pembentukan Fuzzy Logical Relationship 75
527 Implementasi Proses Defuzzifikasi 77
53 Implementasi Antarmuka 79
531 Implementasi antarmuka halaman input 79
532 Implementasi antarmuka halaman tampil data 80
533 Implementasi antarmuka halaman proses 80
534 Implementasi antarmuka halaman hasil 82
535 Implementasi antarmuka halaman perhitungan error 82
BAB 6 PENGUJIAN DAN ANALISIS 83
61 Sistematika Pengujian 83
62 Hasil dan Analisis Pembahasan 83
621 Pengujian pengaruh order terhadap nilai MSE 83
x
622 Pengujian pengaruh threshold terhadap nilai MSE 85
623 Pengujian pengaruh jumlah data training terhadap nilai MSE 86
624 Pengujian validasi sistem 88
BAB 7 PENUTUP 90
71 Kesimpulan 90
72 Saran 91
DAFTAR PUSTAKA 92
LAMPIRAN 95
Lampiran 1 Data Sampel 95
xi
DAFTAR TABEL
Tabel 21 Kajian Pustaka 5
Tabel 22 Fuzzy Logic Relationship 19
Tabel 23 Peramalan fuzzy set 20
Tabel 41 Data Sampel Perhitungan Manual 46
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean 47
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi 47
Tabel 44 Hasil Universe of Discourse 48
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya 48
Tabel 46 Hasil jumlah cluster data 49
Tabel 47 Matriks partisi awal pada cluster data A 50
Tabel 48 Derajat keanggotaan matriks partisi data A 51
Tabel 49 Perhitungan pusat cluster data A 52
Tabel 410 Fungsi objektif data A 53
Tabel 411 Perbaikan matriks partisi 54
Tabel 412 Hasil perbaikan matriks partisi 54
Tabel 413 Hasil pusat cluster 55
Tabel 414 Batas subinterval masing ndash masing atribut data 55
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A 57
Tabel 416 Hasil fuzzifikasi semua data attribut 57
Tabel 417 Hasil pembentukan FLR data training 58
Tabel 418 Hasil pembentukan FLR data testing 58
Tabel 419 Frekuensi FLR yang cocok dengan data testing 59
Tabel 420 Perbandingan data aktual dan hasil peramalan 60
Tabel 421 Rancangan pengujian order terhadap nilai MSE 64
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE 65
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE 65
Tabel 424 Rancangan pengujian validasi sistem 66
Tabel 51 Spesifikasi Perangkat Keras 67
Tabel 52 Spesifikasi Perangkat Lunak 67
Tabel 61 Hasil pengujian order terhadap nilai MSE 83
xii
Tabel 62 Hasil pengujian threshold terhadap nilai MSE 85
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE 87
Tabel 64 Hasil pengujian validasi sistem 88
xiii
DAFTAR GAMBAR
Gambar 21 Representasi linear naik 11
Gambar 22 Representasi linear turun 12
Gambar 23 Representasi kurva segitiga 12
Gambar 31 Diagram blok metodologi penelitian 22
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1) 25
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2) 26
Gambar 43 Diagram alir proses perhitungan Universe of Discourse 27
Gambar 44 Diagram alir proses perhitungan mean 28
Gambar 45 Diagram alir proses perhitungan standar deviasi 29
Gambar 46 Diagram alir perhitungan nilai Min dan Max 30
Gambar 47 Diagram alir proses perhitungan jumlah cluster 31
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1) 32
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2) 33
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3) 34
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4) 35
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5) 36
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1) 37
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2) 38
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1) 39
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2) 40
Gambar 417 Diagram alir proses Pembentukan FLR (bagian 1) 41
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2) 42
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3) 43
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1) 44
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2) 45
Gambar 422 Grafik fuzzy set data A 56
Gambar 423 Rancangan antarmuka halaman input 61
Gambar 424 Rancangan antarmuka halaman tampil data 61
Gambar 425 Rancangan antarmuka halaman proses clustering 62
Gambar 426 Rancangan antarmuka proses fuzzifikasi 62
xiv
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship 63
Gambar 428 Rancangan antarmuka halaman hasil peramalan 63
Gambar 429 Rancangan antarmuka halaman perhitungan error 64
Gambar 51 Implementasi antarmuka halaman input 79
Gambar 52 Implementasi antarmuka halaman tampil data 80
Gambar 53 Implementasi antarmuka halaman proses clustering 80
Gambar 54 Implementasi antarmuka halaman proses fuzzification 81
Gambar 55 Implementasi halaman antarmuka proses FLR 81
Gambar 56 Implementasi halaman antarmuka hasil 82
Gambar 57 Implementasi halaman antarmuka perhitungan error 82
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE 84
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE 86
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE 87
Gambar 64 Grafik hasil pengujian validasi sistem 88
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan 89
xv
DAFTAR KODE PROGRAM
Kode Program 51 Implementasi proses Universe of Discourse 68
Kode Program 52 Implementasi proses mean 68
Kode Program 53 Implementasi proses standar deviasi 69
Kode Program 54 Implementasi proses Dmin dan Dmax 69
Kode Program 55 Implementasi proses jumlah cluster 70
Kode Program 56 Implementasi proses pusat cluster 72
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set 74
Kode Program 58 Implementasi proses fuzzifikasi 75
Kode Program 59 Implementasi pembentukan FLR 77
Kode Program 510 Implementasi proses defuzzifikasi 79
xvi
DAFTAR LAMPIRAN
Lampiran 1 Tabel Data Sampel 95
1
BAB 1 PENDAHULUAN
11 Latar belakang
Kabupaten Malang merupakan salah satu kabupaten di Jawa Timur yang terkenal akan potensi alam yang dimiliki (BPS Kabupaten Malang 2016) Dalam hal ini terkenal akan potensi alamnya karena kabupaten Malang memiliki tingkat produksi di sektor pertanian yang cukup tinggi dimana hampir seluruh kecamatan di kabupaten Malang memiliki lahan pertaniaaan (BPS Jatim 2015) Permasalahan yang terjadi pada sektor pertanian yaitu terjadinya gagal panen apabila memasuki musim penghujan dengan curah hujan yang tinggi yaitu diatas 200 mm per bulan serta apabila memasuki musim kemarau dengan curah hujan yang rendah yaitu dibawah 100 mm per bulan (BMKG Staklim Karangploso Malang 2015) Dalam mengatasi hal tersebut upaya yang dilakukan petani selama ini hanya melakukan tindakan seperti melakukan panen secara dini Upaya ini dianggap petani cukup efektif dalam mengurangi besarnya kerugian gagal panen akan tetapi sebaiknya yang dilakukan adalah melakukan suatu tindakan agar kerugian yang dialami petani tidak terjadi lagi (Ardiyanto 2016)
Salah satu contoh tindakan yang dapat dilakukan adalah membuat Kalender Tanam (KATAM) KATAM dapat digunakan petani sebagai alat bantu atau pedoman dalam menentukan awal musim tanam terbaik seperti yang telah dilakukan oleh Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian Dalam pembuatan KATAM Balitbang menggunakan data peramalan curah hujan dari Badan Meteorologi Klimatologi dan Geofisika (BMKG) Akan tetapi BMKG mengakui bahwa prakiraan cuacanya saat ini memang masih kurang akurat dan masih kalah dengan prakiraan cuaca di Amerika Serikat (Yunanto 2014) Pentingnya akan prakiraan cuaca terbukti adanya beberapa penelitian sebelumnya yaitu penelitian prakiraan cuaca dengan input faktor yang mempengaruhi cuaca yang berupa data time series menggunakan metode Adaptive Neuro Fuzzy Inference System (ANFIS) (Dewi 2014) dan penelitian mengenai prediksi cuaca menggunakan metode Backpropagation Neural Network yang terbukti memiliki nilai akurasi yang baik dalam prediksi cuaca (Dewi 2013)
Teknik atau metode peramalan curah hujan yang sering digunakan BMKG adalah metode Autoregressive Integrated Moving Average (ARIMA) ANFIS dan Wavelet (Kurniawan 2007) Namun dalam penerapannya gabungan dari ketiga metode tersebut masih kurang memuaskan yaitu tingkat akurasinya hanya mencapai 60 - 70 Menurut BMKG kurangnya tingkat akurasinya ini disebabkan oleh keadaan pola atmosfer di Indonesia yang selalu berubah ndash ubah dan kurang menentu
Selain metode yang digunakan oleh BMKG adapun penelitian sebelumnya yang meramalkan curah hujan yaitu penelitian menggunakan metode Fuzzy Time Series Chen dengan studi kasus curah hujan di Samarinda dalam penelitian ini menggunakan data time series curah hujan bulanan dengan kesimpulan pengunaan data yang sedikit memiliki tingkat akurasi lebih tinggi dibandingkan
2
menggunakan data yang banyak yaitu menghasilkan nilai RMSE terkecil 7368 dan MAE terkecil 539 (Fauziah et al 2016)
Selain peramalan yang hanya menggunakan data time series dari data yang akan diramalkan juga terdapat penelitian sebelumnya yang menggunakan faktor - faktor yang mempengaruhi dari data yang akan diramalkan Salah satunya yaitu penelitian dengan menggunakan metode Clusterwise Linear Regression (CLR) Penelitian ini menggunakan data bulanan pada delapan stasiun cuaca di kota Victoria Australia Peramalan curah hujan pada penelitian ini menggunakan faktor yang mempengaruhi yaitu suhu maksimum suhu minimum penguapan tekanan uap dan radiasi matahari Hasil penelitian ini terbukti dapat melakukan peramalan curah hujan dengan hasil yang cukup baik yaitu dengan nilai RMSE terkecil 197 dan MAE terkecil 129 (Bagirov et al 2017)
Berdasarkan paparan yang telah dijelaskan penulis memiliki ide untuk melakukan penelitian dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Pada metode ini dilakukan klasterisasi data untuk membangun subinterval dengan menggunakan metode fuzzy C-means (LinYang 2009) Dari proses hasil klasterisasi akan digunakan untuk membagi data semesta yang selanjutnya menghasilkan fuzzy set atau himpunan fuzzy yang menggambarkan fitur data (LinYang 2009) Keunggulan dari metode fuzzy time series dengan multi faktor yaitu dengan berdasarkan pada penelitian ndash penelitian sebelumnya yang menggunakan metode tersebut yaitu penelitian prediksi harga emas dengan beberapa faktor yang mempengaruhi menggunakan metode Multi-factors High order Fuzzy Time Series Model dari hasil penelitian ini dengan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 (Wardhani et al 2015) dan penelitian peramalan Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen menggunakan metode Fuzzy Time Series Model dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 (Lin Yang 2009) terbukti menghasilkan hasil peramalan dengan tingkat akurasi yang cukup tinggi Penggunaan metode ini juga sesuai dengan curah hujan yang dipengaruhi oleh beberapa faktor yaitu kelembaban udara kecepatan angin dan suhu (Pradipta 2013) Penelitian ini diharapkan dapat memberikan hasil peramalan curah hujan yang lebih akurat dan memiliki nilai kesalahan yang lebih sedikit
12 Rumusan masalah
Berdasarkan latar belakang yang telah dipaparkan dibuatlah beberapa rumusan masalah sebagai berikut
1 Bagaimana mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Berapa tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
3
13 Tujuan
Adapun maksud dan tujuan dari penelitian ini adalah sebagai berikut
1 Mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Mengetahui tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
14 Manfaat
Adapun manfaat dari penelitian ini adalah sebagai berikut
1 Bagi Badan Meteorologi dan Geofisika (BMKG) untuk dapat memberikan peramalan curah hujan yang lebih akurat dari sebelumnya
2 Bagi Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian untuk dapat membuat Kalender tanam (KATAM) dengan menggunakan data ramalan curah hujan yang lebih akurat
3 Bagi penduduk kabupaten Malang khususnya yang bekerja pada sektor pertanian agar dapat mengoptimalkan hasil produksi dengan menyesuaikan penanaman sesuai dengan Kalender Tanam (KATAM) yang telah dibuat Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian
15 Batasan masalah
Penelitian ini dibatasi oleh hal ndash hal sebagai berikut
1 Data curah hujan kelembaban udara kecepatan angin dan suhu udara yang digunakan pada penelitian ini merupakan data berdasarkan dasarian dan hanya mencakup wilayah kabupaten Malang dan data diperoleh dari BMKG Karangkates Kabupaten Malang dengan data time series yang digunakan pada penelitian ini yaitu dari tahun 2011 - 2016
2 Model peramalan yang diterapkan adalah semua nilai yang membentuk pola dataset training dan testing diketahui nilainya
3 Perhitungan nilai tingkat kesalahan permalan menggunakan metode Mean Square Error (MSE)
16 Sistematika pembahasan
Sistematika pembahasan penelitian ditunjukkan untuk memberikan gambaran dan uraian dari penyusunan proposal yang meliputi beberapa bab sebagai berikut
BAB 1 PENDAHULUAN
Pada bab ini berisi latar belakang rumusan masalah tujuan penelitian manfaat penelitian batasan masalah sistematika pembahasan dan rencana kerja atau jadwal penelitian
4
BAB 2 LANDASAN KEPUSTAKAAN
Pada bab ini berisi tentang kajian pustaka dan dasar teori yang menjadi dasar dalam melakukan implementasi peramalan curah hujan dengan Metode High Order Fuzzy Time Series Multi Factors
BAB 3 METODOLOGI
Pada bab ini diuraikan tentang tahapan atau langkah ndash langkah yang dilakukan dalam proses penelitian tentang peramalan curah hujan dengan metode High Order Fuzzy Time Series Multi Factors Langkah ndash langkah tersebut terdiri dari tahapan penelitian teknik pengumpulan data algoritma yang digunakan lingkungan pengujian dan pengujian algoritma yang digunakan serta pengambilan kesimpulan
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan proses algoritma perhitungan manual metode High Order Fuzzy Time Series Multi Factors perancangan antar muka dan perancangan pengujian
BAB 5 IMPLEMENTASI
Pada bab ini berisi tentang penjelasan peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors bagaimana user interface dan source code dalam pengimplementasian metode ini
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini berisi tentang penjelasan proses dan hasil pengujian dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam peramalan curah hujan serta analisis dari pengujian tersebut
BAB 7 PENUTUP
Pada bab ini berisi kesimpulan yang diperoleh dari hasil pengujian dan saran ndash saran untuk pengembangan penelitian selan
5
BAB 2 LANDASAN KEPUSTAKAAN
Bab ini berisi mengenai kajian pustaka dan dasar ndash dasar teori yang akan dibahas serta digunakan untuk menunjang topik ndash topik pembahasan Pada kajian akan dibahas perbedaan antara penelitian yang telah ada dengan penelitian yang diusulkan oleh penulis Sedangkan pada dasar teori akan dibahas mengenai teori ndash teori yang digunakan pada penelitian yang diusulkan
21 Kajian Pustaka
Pada kajian pustaka disini berisi mengenai perbandingan antara penelitian yang diusulkan oleh penulis dengan penelitian sebelumnya yang relevan Perbandingan tersebut dapat dilihat padat Tabel 21
Tabel 21 Kajian Pustaka
No Judul Objek dan Input Penelitian Metode
1 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan (Irsyad Metarice 2013)
Objek Curah hujan
Input Penelitian
Data aktual curah hujan
Metode High Order Fuzzy Time Series dan Automatic Clustering
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
2 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) (Fauziah et al 2016)
Objek Curah Hujan
Input Penelitian
Data aktual curah hujan
Metode Fuzzy Time Series Chen
Nilai evaluasi
Mean Absolute Error (MAE) Root Mean of Square Error (RMSE)
3 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emas (Wardhani et al 2015)
Objek Harga Emas
Input Penelitian
Kurs Dollar hari sebelumnya
Kurs Euro hari sebelumnya
Harga Emas London hari sebelumnya
Harga Emas hari sebelumnya
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
4 Stock Markets Forecasting Based on Fuzzy Time Series Model (Lin Yang 2009)
Objek Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
6
Input Penelitian
Historical return
Historical turnover volume
Rata ndash rata selisih pergerakan harga selama lima hari
Selisih antara kekuatan bull dan bear
Indeks komposit bursa efek harian Shanghai sebelumnya
Indeks komposit bursa efek harian Shenzhen
Nilai evalusi
Average Relative Error (ARError)
5 Peramalan Curah Hujan Menggunakan Metode High Order Fuzzy Time Series Multi Factors
Objek Curah hujan
Input Penelitian
Suhu
Kelembaban
Kecepatan angin
Curah hujan
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Square Error (MSE)
Sumber (Irsyad Metarice 2013) (Fauziah et al 2016) (Wardhani et al 2015) dan (Lin Yang 2009)
Pada penelitian yang pertama yaitu penelitian yang dilakukan oleh Muhammad Irsyad dan Sonya Metarice pada tahun 2013 dengan objek penelitian yang diramalkan adalah curah hujan Inputan yang digunakan pada penelitian ini merupakan data aktual curah hujan bulanan Metode yang digunakan penelitian ini adalah Automatic Clustering dan High Order Fuzzy Time Series Pada penelitian ini metode Automatic Clustering digunakan untuk membangun interval dan High Order Fuzzy Time Series untuk melakukan peramalan curah hujan Kesimpulan yang diperoleh dari penelitian ini yaitu metode ini dapat diterapkan untuk permalan curah hujan dan hasil evaluasi menggunakan metode Mean Absolute Percentage Error(MAPE) dari beberapa bercobaan dapat diperoleh nilai kesalahan sebesar 437 Berdasarkan dari hasil nilai kesalahan tersebut maka tingkat kesalahan data pada permalan ini termasuk rendah
Pada tahun 2016 Normalita Fauziah Sri Wahyuningsih dan Yuki Novia Nasution melakukan penelitian dengan objek penelitian curah hujan di kota Samarinda Inputan yang digunakan pada penelitian berupa data aktual bulanan curah hujan di kota Samarinda Metode yang digunakan pada penelitian ini adalah Fuzzy Time Series Chen dengan dalam pembentukkan panjang interval berbasis rata ndash rata atau average based Pada penelitian ini permalan curah hujan terbaik yaitu dengan menggunkan data sebanyak 29 data dengan menghasilkan tingkat nilai kesalahan terkecil yaitu dengan metode Root Mean of Squared Error (RMSE) sebesar 7368 dan metode Mean Absolute Error (MAE) sebesar 539 Pada
(Lanjutan) Tabel 21 Kajian Pustaka
7
penelitian ini disimpulkan bahwa data sebanyak 29 data memiliki tingkat kesalahan lebih kecil dibandingkan dengan menggunakan data dengan jumlah sampel yang lebih banyak
Pada penelitian selanjutnya adalah penelitian yang dilakukan oleh Dessy Kusuma Wardhani Dian Eka Ratnawati dan Budi Darma Setiawan pada tahun 2015 dengan objek penelitian yang diramalkan adalah harga emas harian Inputan yang digunakan pada penelitian ini data aktual harian harga emas indonesia harga emas london kurs dollar ke rupiah dan kurs euro ke rupiah Metode yang digunakan pada penelitian pada pembentukkan sub interval menggunakan metode fuzzy C-means dan untuk peramalan menggunakan metode High Order Fuzzy Time Series Model Hasil pada penelitian ini berdasarkan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 karena nilai error lebih kecil dari 10 menunjukkan bahwa metode ini sangat baik digunakan untuk peramalan harga emas
Pada tahun 2009 Yupei Lin dan Yiwei Yang melakukan penelitian dengan objek yang diramalkan adalah indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen Data input penelitian ini meliputi historical return historical turnover volume dan rata ndash rata selisih pergerakan harga selama lima hari serta selisih antara kekuatan bull dan bear Dalam penelitian ini pembentukan subinterval yang berfungsi dalam pendefinisian himpunan fuzzy dilakukan dengan menggunakan klasterisasi fuzzy C-means Hasil dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 Dalam hal ini membuktikan bahwa penelitian dapat menghasilkan peramalan yang cukup baik karena memiliki nilai ARError kurang dari 5
Pada penelitian ini membahas tentang peramalan curah hujan dasarian menggunakan metode High Order Fuzzy Time Series Multi Factors Terdapat empat inputan yang juga dijadikan sebagai variabel dalam penelitian ini yaitu kelembaban udara kecepatan angin suhu udara dan curah hujan Pembentukan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan klasterisasi fuzzy C-means Penelitian ini menggunakan high order fuzzy logic relationship yaitu membentuk fuzzy logic relationship berdasarkan data dalam kurun waktu beberapa dasarian sebelum dasarian yang akan diramal Pada penelitian ini dalam melakukan perhitungan nilai error untuk mendapatkan hasil evaluasi menggunakan metode Mean Square Error (MSE)
22 Dasar Teori
Pada dasar teori disini dijelaskan tentang metode ndash metode yang digunakan pada penelitian ini yang meliputi peramalan curah hujan data time series logika fuzzy fuzzy C-means metode peramalan dengan Fuzzy Time Series High Order Fuzzy Time Series Multi Factors dan metode perhitungan keakuratan metode peramalan
8
221 Peramalan
Terdapat beberapa definisi tentang peramalan menurut Kamus Besar Bahasa Indonesia (KBBI) yaitu
a Peramalan merupakan prediksi rencana atau estimasi kejadian masa depan yang tidak pasti (KBBI)
b Peramalan adalah sebagai penggunaan teknik ndash teknik statistik dalam bentuk gambaran masa depan berdasarkan pengolahan angka ndash angka yang terjadi pada masa lalu (Buffa et al1996)
c Peramalan adalah bagian internal dari pengambilan keputusan manajemen (Makridakis et al1999)
Berdasarkan beberapa definisi diatas dapat disimpulkan bahwa peramalan merupakan tindakan apa yang akan terjadi di masa mendatang peramalan diperlukan untuk mengambil sebuah keputusan Dalam pengambilan keputusan harus diambil dari pertimbangan ndash pertimbangan yang ada Oleh karena itu peramalan sangat penting hubungannya dengan pengambilan keputusan sehingga kejadian di masa yang akan datang dapat dipersiapkan tindakan apa yang perlu dilakukan
222 Curah hujan
Curah hujan merupakan salah satu faktor penting yang mempengaruhi perubahan iklim suatu wilayah (Mirawati et al 2013) Salah satu contoh kasus nyata yaitu terjadinya perubahan iklim secara tiba ndash tiba atau bisa disebut dengan cuaca ekstrim Curah hujan dapat dijelaskan dengan air hujan yang terkumpul pada suatu wadah datar dimana air hujan tersebut tidak meresap tidak menguap dan tidak mengalir sehingga dapat diukur ketinggiannya Sebagai contoh curah hujan 1 (satu) milimeter dapat dijelaskan dalam suatu wadah datar dengan luas satu meter persegi tertampung air dengan ketinggian sekitar satu milimeter atau tertampung air sebanyak satu liter Metode dalam mendapatkan data curah hujan adalah dengan menggunakan penakar hujan yang kemudian diukur dengan satuan milimeter (mm) (User2015) Intensitas curah hujan dapat dikategorikan ringan jika dibawah 20mm dalam 24 jam dikategorikan lebat jika di atas 50mm dan dikategorikan sedang jika selang 20mm hingga 50mm (User 2015)
Curah hujan mempengaruhi beberapa sektor diantarannya sektor komunikasi dimana penggunaan frekuensi diatas 10 GHz dapat terkena redaman hujan (Mauludiyanto et al 2009) Akan tetapi curah hujan paling berpengaruh terhadap sektor pertanian Hal ini terbukti bahwa sebagian besar terjadinya penurunan produktifitas dan gagal panen di sektor pertanian adalah terjadinya curah hujan yang tinggi
Tinggi dan rendahnya curah hujan dipengaruhi oleh beberapa faktor yaitu kelembaban udara temperatur dan kecepatan angin Pada tahun 2013 Nur Suri Pradipta Pasukat Sembiring dan Pengarapen Bangun melakukan penelitian mengenai pengaruh curah hujan di kota Medan (Pradipta et al 2013)
9
Berdasarkan penelitian tersebut faktor yang mempengaruhi dan digunakan dalam peramalan curah hujan yaitu
1 Kelembaban udara
Kelembaban udara adalah banyaknya kandungan uap air di atmosfer Udara atmosfer adalah campuran dari udara kering dan uap air selain itu kelembaban udara merupakan komponen cuaca yang mempunyai peranan sangat penting bagi stabilitas kehidupan organisme di bumi maupun unsur-unsur cuaca yang lain (Forest 2015) Kelembaban udara berpengaruh terhadap curah hujan Hal ini didukung penelitian oleh (Sipayung et al 2013) yang menyatakan Kelembaban udara berpengaruh positif terhadap curah hujan
2 Kecepatan angin
Kecepatan angin merupakan kecepatan udara yang bergerak secara horizontal pada ketinggian 2 meter diatas tanah Dalam hal ini faktor yang menentukan kecepatan angin adalah perbedaan tekanan udara antara asal dan tujuan angin Kecepatan angin berpengaruh positif terhadap curah hujan artinya jika kecepatan angin tinggi maka curah hujan akan tinggi (Pradipta et al2013)
3 Suhu udara
Suhu udara merupakan ukuran energi kinetik rata ndash rata dari pergerakan molekul ndash molekul Suhu udara berpengaruh negatif terhadap curah hujan artinya jika suhu udara tinggi maka curah hujan akan berkurang (Pradipta et al2013)
223 Data time series
Data time series adalah data statistik yang telah dihimpun dari masa lampau hingga sekarang dan dapat digunakan sebagai acuan dalam melakukan peramalan terhadap data yang akan datang (Wiyanti amp Pulungan 2012) Data time series juga dapat didefinisikan sebagai sebuah kegiatan mengamati data statistik dimana terdapat korelasi (dependensi) antar datanya sehingga data yang sekarang sedang diamati memiliki ketergantungan dengan satu atau lebih data pengamatan sebelumnya (Mirawati et al 2013)
Terdapat dua teknik prediksi yang menggunakan basis data time series yaitu teknik model matematika statistik dan berdasarkan kecerdasan buatan (Wiyanti amp Pulungan 2012) Analisa time series sendiri memiliki beberapa peruntukan salah satunya digunakan dalam melakukan peramalan untuk masa yang akan datang Dalam penggunaan data time series merupakan salah satu proses peramalan kuantitatif dimana berdasar data kuantitatif masa lampau yang direpresentasikan dalam bentuk angka atau nilai (Mirawati et al 2013)
10
224 Logika Fuzzy
Pada tahun 1965 Prof Lotfi A Zadeh memperkenalkan teori logika fuzzy Logika fuzzy merupakan suatu komponen soft computing dan juga suatu cara yang tepat untuk memetakan suatu ruang input ke dalam ruang output Antara ruang input dan ruang output terdapat black box yang berfungsi memetakan input ke ruang output yang sesuai Dasar logika fuzzy adalah teori fuzzy set Pada teori fuzzy set peranan derajat keanggotaan sebagai penentu keberadaan elemen dalam suatu himpunan sangatlah penting Oleh karena itu derajat keanggotaan menjadi ciri utama dalam penalaran dengan logika fuzzy Logika fuzzy bekerja dengan menggunakan derajat keanggotan dari sebuah nilai yang kemudian digunakan untuk menentukan hasil yang ingin dihasilkan berdasarkan atas kriteria yang telah ditentukan (Kusumadewi 2003)
Berikut adalah beberapa alasan digunakannya logika fuzzy (Kusumadewi 2002)
1 Logika fuzzy sangat fleksibel
2 Konsep logika fuzzy mudah dimengerti dan dipahami
3 Logika fuzzy memiliki toleransi terhadap data ndash data yang homogen dan data ndash data yang kurang tepat
4 Logika fuzzy didasari pada bahasa alami atau bahasa sehari - hari sehingga mudah dimengerti
5 Logika fuzzy dapat bekerjasama dengan teknik ndash teknik kendali secara konvensional
6 Logika fuzzy mampu membangun dan mengaplikasikan pengalaman ndash pengalaman para pakar secara langsung tanpa harus melalui tahap atau proses pelatihan
A Himpunan Fuzzy
Himpunan fuzzy atau fuzzy set merupakan perluasan himpunan tegas atau himpunan crisp jadi fungsi karakteristik mencakup bilangan real pada interval [01] Dalam definisi lain himpunan fuzzy adalah suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dalam suatu variabel fuzzy Keanggotaan fuzzy berbeda dengan probabilitas jika keanggotaan fuzzy pada setiap fungsi karakteristik memberikan suatu pendapat atau keputusan sedangkan probabilitas menunjukan seberapa besar nilai kebenaran dalam fungsi karakteristik tersebut Contohnya yaitu nilai keanggotaan suatu himpunan fuzzy umur muda 09 berarti nilai dalam himpunan tersebut memiliki kemungkinan 90 anggotanya berumur muda dan 10 diharapkan tidak muda Dalam himpunan fuzzy suatu bilangan bisa memiliki dua keanggotaan sekaligus Himpunan fuzzy memiliki dua attribut (Kusumadewi2003)
11
1 Linguistik merupakan penamaan suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami misalnya muda parobaya tua
2 Numeris merupakan suatu nilai (angka) yang menunjukkan ukuran dari suatu
variabel seperti 402550 dan sebagainya
B Fungsi Keanggotaan
Fungsi keanggotaan adalah suatu kurva yang menunjukkan pemetaan titik ndash titik input data ke dalam derajat keanggotaannya yang memiliki subinterval antara 0 sampai 1 (Kusumadewi Purnomo 2004) Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi Ada beberapa fungsi keanggotaa yang dapat digunakan
1 Fungsi representasi linear
Pada fungsi representasi linear pemetaan input ke derajat keanggotaannya digambarkan sebagai suatu garis lurus Bentuk ini paling sederhana dan menjadi pilihan yang baik untuk mendekati suatu konsep yang kurang jelas Keadaan linear himpunan fuzzy terdiri dari dua keadaan yaitu keadaan linear naik dan keadaan linear turun Pada keadaan linear naik kenaikan himpunan dimulai pada nilai domain yang memiliki nilai derajat keanggotaan nol bergerak ke kanan menuju ke nilai domain yang memiliki derajat keanggotaan yang lebih tinggi seperti yang ditunjukkan Gambar 21 Persamaan fungsi keanggotaan pada representasi linear naik ditunjukkan oleh Persamaan 21
Fungsi Keanggotaan
120583(119909) = 0
(119909 minus 119886)(119887 minus 119886)1
119909 le 119886 119886 le 119909 le 119887119909 ge 119887
(21)
b a 0
1
Gambar 21 Representasi linear naik
Sumber Kusumadewi (2002)
120583(119909)
12
Pada keadaan linear turun berbanding terbalik dengan keadaan linear naik Garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi pada sisi kiri kemudian bergerak menurun ke nilai domain yang memiliki derajat keanggotaan lebih rendah yang ditunjukkan Gambar 22 Persamaan fungsi keanggotaan pada representasi linear turun ditunjukkan oleh Persamaan 22
Fungsi Keanggotaan
120583(119909) = (119887 minus 119909)(119887 minus 119886)0
119886 le 119909 le 119887
119909 ge 119887 (22)
2 Fungsi representasi kurva segitiga
Representasi kurva segitiga pada dasarnya merupakan gabungan antara 2 garis linear yaitu linear naik dan linear turun Fungsi representasi kurva segitiga ditandai oleh adanya tiga parameter abc yang akan menentukan koordinat x dari tiga sudut seperti ditunjukkan pada Gambar 23 Persamaan fungsi keanggotaan pada representasi kurva segitiga ditunjukkan oleh Persamaan 23
b a 0
1
Sumber Kusumadewi (2002)
Gambar 22 Representasi linear turun
120583(119909)
c a 0
1
b
Sumber Kusumadewi (2002)
Gambar 23 Representasi kurva segitiga
120583(119909)
13
Fungsi Keanggotaan
120583(119909) =
0 (119909 minus 119886)(119887 minus 119886) (119887 minus 119909)(119888 minus 119887)
119909 le 119886 119886119905119886119906 119909 ge 119888
119886 le 119909 le 119887 119887 le 119909 le 119888
(23)
225 Metode Fuzzy C-means
Fuzzy C-means (FCM) pertama kali diperkenalkan oleh Dunn dan dikembangkan oleh Bezdek yang banyak digunakan dalam pengenalan pola Metode ini merupakan pengembangan dari metode non-hierarkhi K-Means Cluster selanjutnya dilakukan iterasi sampai mendapatkan keanggotaan kelompok tersebut (Klawon 2001)
FCM merupakan salah satu algoritma fuzzy clustering dan juga teknik klasterisasi dimana tiap data ditentukan oleh derajat keanggotaanya Tujuan penggunaan algoritma FCM yaitu untuk menemukan pusat cluster atau centroid dengan meminimumkan fungsi objektif (Bazdek 1984) Ouput dari FCM bukan merupakan fuzzy inference system melainkan deretan pusat cluster dan beberapa derajat keanggotaan untuk setiap titik data Hasil output ini dapat digunakan untuk membangun suatu fuzzy inference system Berikut adalah langkah ndash langkah dari FCM (Kusumadewi 2004)
1 Langkah pertama menentukan jumlah cluster (c ge 2) pembobot (infin gt 119908 gt1) (Bazdek 1984) maksimum iterasi (maxIter) error minimum yang diharapkan yaitu nilai positif yang sangat kecil (120585) fungsi objektif awal (P0 = 0) iterasi awal dideklarasikan 1
2 Langkah kedua memasukkan data X yang akan diklasterisasi berupa matriks berukuran m x n (m = jumlah sampel data n = attribut setiap data) Contoh Xij = data sampel ke-i (i = 1234m) attribu ke-j (j=1234n)
3 Langkah ketiga yaitu dengan membuat bilangan random microik i = 1234n dan k = 123c (n = jumlah sampel pada data c = jumlah cluster yang akan dibentuk) sebagai elemen ndash elemen matriks partisi awal Untuk bilangan penyusun matriks partisi awal dihitung dihitung jumlahnya setiap kolom yang ditunjukkan pada pada Persamaan 24 (Kusumadewi 2004)
119876119896 = sum 120583119894119896119888119896=1 (24)
Dimana
119876119896 = jumlah bilangan pada kolom k
120583119894119896 = bilangan random pada baris i kolom k
119888 = jumlah kolom
14
Selanjutnya untuk menghitung derajat keanggotaan awal dengan melakukan normalisasi pada matiks partisi pada normalisasi dilakukan menggunakan Persamaan 25 (Kusumadewi 2004)
120583119894119896 = 120583119894119896119876119896 (25)
4 Langkah keempat melakukan perhitungan cluster ke-k Vkj dengan k = 1234c dan j = 1234m Perhitungan pusat cluster ditunjukkan pada Persamaan 26 (Kusumadewi 2004)
119881119896119895 = sum ((120583119894119896)119908 times 119883119894119895)119899
119894=1
sum (120583119894119896)119908119899119894=1
(26)
Dimana
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
120583119894119896 = derajat keanggotaan pada data ke-i cluster ke-k
119883119894119895 = data sampel pada data ke-i attribut ke-j
119908 = pembobot
5 Langkah kelima melakukan perhitungan fungsi objektif pada iterasi ke-t P1 Perhitungan fungsi objektif ditunjukkan pada Persamaan 27 (Kusumadewi 2004)
119875119905 = sum sum ([sum (119883119894119895 minus 119881119896119895)119898119895=1
2](120583119894119896)119908)119888
119896=1119899119894=1 (27)
Dimana
119875119905 = fungsi objektif
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
6 Langkah keenam melakukan perhitungan perbaikan matriks partisi yang telah ditunjukkan Persamaan 28 (Kusumadewi 2004)
120583119894119896 = [sum (119883119894119895minus119881119896119895)119898
119895=12
]
minus1119908minus1
sum [sum (119883119894119895minus119881119896119895)119898119895=1
2]
minus1119908minus1119888
119896minus1
(28)
Dimana
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
119908 = pembobot
7 Langkah ketujuh yaitu melakukan pemerikasaan kondisi berhenti dengan kondisi sebagai berikut
a Jika (|119875119905 minus 119875119905minus1| lt 120585) atau ( t gt MaxIter) maka berhenti
b Jika tidak memenuhi t = t +1 ulangi mulai dari langkah ke-4
15
226 Metode Peramalan dengan Fuzzy Time Series
Pada tahun 1996 Chen memperkenalkan metode peramalan dengan menggunakan metode Fuzzy Time Series Metode Fuzzy Time Series memiliki perbedaan dengan metode peramalan time series biasa atau konvensional yaitu terdapat pada data yang digunakan untuk peramalan Fuzzy Time Series data yang digunakan adalah berupa fuzzy set atau himpunan fuzzy dari bilangan ndash bilangan real atas himpunan semesta yang ditentukan Jadi Fuzzy Time Series merupakan metode dengan menggunakan data berupa fuzzy set yang berasal dari bilangan real atas Universe of Discorse pada data aktual Universe of Discourse adalah himpunan semesta dari data penelitian
Berikut adalah langkah ndash langkah metode Fuzzy Time Series yang telah diperkenalkan oleh Chen terdapat enam langkah yaitu
1 Langkah pertama yaitu membagi Universe of Discourse dari bilangan aktual ke dalam subinterval dengan jumlah interval yang sama Perhitungan Universe of Discourse ditunjukkan pada Persamaan 29 (Chen 1996)
119880 = [119863119898119894119899 minus 1198631 119863119898119886119909 + 1198632] (29)
Dimana
119880 = Universe of Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
1198631 dan 1198632 = bilangan positif yang ditentukan oleh user untuk menentukan Universe of Discourse dari himpunan data sampel
2 Langkah kedua adalah mendefinisikan fuzzy set dari Universe of Discourse (U) menjadikan A1 A2 A3 An ke dalam fuzzy set dengan nilai linguistik sesuai dengan keadaan U Selanjutnya mendefinisikan fuzzy set tersebut ditunjukkan pada Persamaan 210 (Chen 1996)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (210)
1198602 =11989121
1199061+
11989122
1199062+
11989123
1199063+ ⋯ +
1198912119896
119906119896
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
Dimana 119891119894119895120598 [01] 1 le 119894 le 119896 dan 1 le 119895 le 119898 Variabel 119891119894119895 menunjukkan
derajat keanggotaan dari subinterval 119906119895 dari fuzzy set 1198601 Pada konsep ini
Chen menggunakan nilai linguistik 1198601 = (not many) 1198602 = (not too many) 1198603= (many) 1198604 = (many many) 1198605 = (very many) 1198606 = (too many) 1198607= (too many many) Kemudian nilai linguistik tersebut dimasukkan ke tiap fuzzy set Dari U tersebut dapat dibangun fuzzy set sebagai berikut
16
1198601 = 1
1199061+
05
1199062+
0
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198602 = 05
1199061+
1
1199062+
05
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198603 = 0
1199061+
05
1199062+
1
1199063+
05
1199064+
0
1199065+
0
1199066+
0
1199067
1198604 = 0
1199061+
0
1199062+
05
1199063+
1
1199064+
05
1199065+
0
1199066+
0
1199067
1198605 = 0
1199061+
0
1199062+
0
1199063+
05
1199064+
1
1199065+
05
1199066+
0
1199067
1198606 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
05
1199065+
1
1199066+
05
1199067
1198607 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
0
1199065+
05
1199066+
1
1199067
3 Langkah ketiga yaitu melakukan fuzzifikasi data historis proses fuzzifikasi merupakan proses merubah data aktual yang merupakan bilangan crisp ke dalam bentuk bilangan fuzzy Bilangan fuzzy yang dimaksudkan adalah dalam bentuk derajat keanggotaan Dari beberapa derajat keanggotaan yang terbentuk kemudian dipilih satu fuzzy set yang memiliki derajat keanggotaan teringgi Fuzzifikasi dinotasikan sebagai berikut jika F(t-1) berada pada fuzzy set Ak maka F(t-1) difuzzifikasikan sebagai Ak
4 Langkah keempat adalah mengidentifikasi Fuzzy Logic Relationship (FLR) FLR diidentifikasikan sebagai Ai dan F(t) difuzzifikasikan sebagai Ai rarr Aj Ai sebagai sisi kiri relationship disebut sebagai current state dan Aj sebagai sisi kanan relationship disebut next state Jika terjadi perulangan relationship maka tetap dihitung satu kali
5 Langkah kelima yaitu mengelompokkan menjadi Fuzzy Logical Relationship Group (FLRG) FLRG dibangun berdasarkan sisi kiri (current state) yang sama
6 Langkah terakhir yaitu langkah keenam adalah melakukan defuzzifikasi nilai keluaran peramalan Defuzzifikasi adalah mengubah nilai keluaran fuzzy menjadi bilangan crisp kembali sehingga diperoleh hasil akhir peramalan Defuzzifikasi didasarkan pada tiga (3) rule aturan yaitu (Chen 1996)
I Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai hanya memiliki satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj dimana nilai maksimum fungsi keanggotaanya berada pada 119906119895 maka nilai peramalan untuk n+1 adalah
nilai tengah dari 119906119895 atau didefinisikan dengan 119898119895
II Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai memiliki lebih dari satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj1 Aj2 Ajp Dimana nilai tengah untuk masing ndash masing Aj1 Aj2 Aj3 Ajp adalah mj1 mj2 mj3 mjp
maka nilai peramalan untuk n+1 adalah (mj1 mj2 mj3 mjp) p
III Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai tidak memiliki FLR pada FLRG dimana nilai maksimum fungsi keanggotaannya berada pada 119906119895
17
maka nilai peramalan untuk n+1 adalah nilai tengah dari 119906119895 atau
didefinisikan dengan 119898119895
227 Metode High Order Fuzzy Time Series Multi Factors
Metode High Order Fuzzy Time Series Multi Factors adalah metode Fuzzy Time Series (FTS) yang melibatkan beberapa faktor yang mempengaruhi peramalan dengan berdasarkan beberapa periode waktu sebelum periode yang akan diramalkan dalam proses pembentukkan Fuzzy Logical Relationship (FLR) Hasil peramalan dengan banyak faktor yang mempengaruhi dinilai lebih baik dari pada dengan hanya satu faktor yang mempengaruhi (LinYang 2009) Pada metode ini pembentukkan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan teknik klasterisasi fuzzy C-means Berikut adalah langkah ndash langkah Metode High Order Fuzzy Time Series Multi Factors (LinYang 2009)
1 Langkah pertama adalah melakukan perhitungan Universe of Discourse (U) Sebelum menghitung nilai U terlebih dulu menghitung nilai mean (rata ndash rata) sampel lalu menghitung nilai standar deviasi (120590) Mean merupakan perhitungan jumlah dari semua nilai dalam kumpulan data kemudian dibagi dengan jumlah total data untuk menghitung nilai mean ditunjukkan pada Persamaan 211 (Weisstein 2015) Standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel untuk menghitung nilai standar deviasi (120590) ditunjukkan pada Persamaan 212 (Weisstein 2015) Perhitungan U ditunjukkan pada Persamaan 213 (LinYang 2009)
119909 =sum 119909119894
119899119894=1
119899 (211)
Dimana
= mean (rata ndash rata)
119909119894 = nilai data ke-i
119899 = banyak data
120590 = radicsum (119909119894minus ) 2119899
119894=1
119899minus1 (212)
Dimana
120590 = Standar deviasi data
119880 = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590] (213)
Dimana
119880 = Universal 0f Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
18
2 Langkah kedua yaitu menentukan jumlah cluster data Proses klasterisasi bertujuan untuk membagi U kedalam beberapa subinterval Hasil perhitungan banyaknya cluster apabila bernilai pecahan maka harus dibulatkan menjadi bilangan bulat Perhitungan banyaknya cluster ditunjukkan pada Persamaan 214 (LinYang 2009)
119896 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905)minus119883(119905minus1)|119899
119905=1
119899minus1| (214)
Dimana
119896 = banyaknya jumlah cluster
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
119899 = banyaknya data sampel
119883(119905) = data pada waktu ke-t
3 Langkah ketiga yaitu melakukan pembentukan pusat cluster Pada metode ini proses klasterisasi data menggunakan fuzzy C-means (FCM) untuk mendapatkan pusat cluster sebanyak k Tahapannya U dibagi kedalam k subinterval (119863119898119894119899 1198891) (1198891 1198892) (1198892 1198893) hellip (119889119896minus1 119863119898119886119909) dimana di (i = 123k-1) merupakan titik tengah antara dua pusat cluster k subinterval didefinisikan sebagai 1199061 1199062 1199063 hellip 119906119896 Sehingga dalam hal ini subinterval
dengan panjang berbeda dapat menggambarkan struktur data kompleks dengan baik dan dapat meningkatkan peramalan dibandingkan menggunakan subinterval dengan panjang yang sama (LinYang 2009)
4 Langkah keempat yaitu melakukan pembentukan himpunan fuzzy atau fuzzy set Pada langkah ini fuzzy set direpresentasikan dengan kurva bahu Pembentukkan fuzy set ditunjukkan pada Persamaan 215 (LinYang 2009)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (215)
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
5 Langkah kelima yaitu proses fuzzifikasi Proses fuzzifikasi bertujuan untuk mengubah data sampel yang masih berupa bilangan crisp sehingga menjadi bilangan fuzzy Masing ndash masing data dihitung derajat keanggotaannya terhadap fuzzy set yang sudah terbentuk selajutnya derajat kanggotaan dihitung berdasarkan kurva bahu dan derajat keanggotaan tertinggi menunjukkan hasil fuzzifikasi data tersebut Contohnya A(t) B(t) C(t) dan D(t) dimana t= 123n merupakan time series dari faktor yang mempengaruhi serta n merupakan banyaknya data Berdasarkan pembagian subinterval masing ndash masing time series ini difuzzifikasikan Misalkan hasil dari Persamaan 215 yaitu menghitung banyak cluster dari k1 k2 k3 k4 Jadi time series difuzzifikasikan menjadi empat fuzzy time series yaitu
19
A(ti) dimana i = 1234k1
B(tj) dimana j = 1234k2
C(tp) dimana p = 1234k3
D(tq) dimana q = 1234k4 t = 123n
6 Langkah keenam yaitu melakukan pembentukkan Fuzzy Logical relationship (FLR) Data sampel sebanyak n periode dipilih sebagai data training untuk membentuk fuzzy time series model Misalkan t merupakan periode waktu yang akan diramal dengan menggunakan order ndash 3 maka tiga periode sebelum periode t adalah t-3 t-2 dan t-1 dimana t = 456n Maka FLR yang dihasilkan ditunjukkan pada Persamaan 216 dan berdasarkan persamaan tersebut maka akan membentuk sebuah kumpulan FLR dari data training (LinYang 2009)
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023)) (216)
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
Tabel 22 Fuzzy Logic Relationship
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023))
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
(119860(119905minus21198943) 119861(119905minus21198953) 119862(119905minus21199013) 119863(119905minus21199023))
(119860(119905minus11198942) 119861(119905minus11198952) 119862(119905minus11199012) 119863(119905minus21199022))
(119860(1199051198941) 119861(1199051198951) 119862(1199051199011) 119863(1199051199021)) rarr 119860(119905+11198944)
(119860(119905+119899minus71198943) 119861(119905+119899minus71198953) 119862(119905+119899minus71199013) 119863(119905+119899minus71199023))
(119860(119905+119899minus61198942) 119861(119905+119899minus61198952) 119862(119905+119899minus61199012) 119863(119905+119899minus61199022))
(119860(119905+119899minus51198941) 119861(119905+119899minus51198951) 119862(119905+119899minus51199011) 119863(119905+119899minus51199021)) rarr 119860(119905+119899minus41198944)
Sumber (LinYang 2009)
7 Langkah terakhir adalah proses Defuzzifikasi Berdasarkan langkah sebelumnya maka dapat diambil hasil fuzzy ke- H yaitu yang digunakan sebagai data testing atau data uji seperti yang ditunjukkan pada Persamaan 217 (LinYang 2009)
(119860(119867minus31198943) 119861(119867minus31198953) 119862(119867minus31199013) 119863(119867minus31199023)) (217)
(119860(119867minus21198942) 119861(119867minus21198952) 119862(119867minus21199012) 119863(119867minus21199022))
(119860(119867minus11198941) 119861(119867minus11198951) 119862(119867minus11199011) 119863(119867minus11199021)) rarr 119860(1198671198944)
20
Faktor ndash faktor di ruas kiri pada Persaman 217 dibandingkan satu per satu dengan FLR data training yang sudah dicatat sebelumnya pada Tabel 22 membandingkannya yaitu dengan cara menghitung nilai absolut dari selisih antara pangkat bawah kedua faktor pada posisi yang sama di FLR Terdapat 12 fuzzy set di ruas kiri pada masing ndash masing FLR sehingga dari hasil perbandingan diperoleh 12 nilai absolut yang kemudian dijumlahkan untuk mendapat total selisihnya Jadi jika total selisih lebih kecil dari threshold yang ditentukan maka FLR tersebut dinyatakan cocok (LinYang 2009)
Selanjutnya jika FLR menemukan N pasangan yang cocok pada Tabel 22 maka N faktor di ruas kanan dari N FLR ini mendasari peramalan fuzzy set A() yang mana jumlah dari setiap fuzzy set pada umumnya berbeda Untuk peramalan dengan fuzzy set ditunjukkan pada Tabel 23 (LinYang 2009)
Tabel 23 Peramalan fuzzy set
Ruas Kanan A(1) A(2) A(3) A(k1)
Pusat cluster c1 c2 c3 ck1
Frekuensi f1 f2 f3 fk1
Sumber (Lin Yang 2009)
Berdasarkan Tabel 23 dengan menggunakan metode centroid untuk melakukan proses defuzzifikasi Proses defuzzifikasi dapat ditunjukkan pada Persamaan 218 (LinYang 2009)
119903119867 =sum 119888119894times 119891119894
1198961119894=1
sum 119891119894119896119894119894=1
(218)
Dimana
119903119867 = hasil (result) peramalan data ke-H
119888119894 = pusat cluster i dimana A(i) adalah ruas kanan dari FLR hasil proses pencocokan
119891119894 = frekuensi banyaknya muncul A(i) pada saat proses pencocokan
228 Perhitungan keakuratan metode peramalan
Dalam perencanaan peramalan tentu menginginkan hasil ramalan yang tepat atau paling tidak hampir mendekati sehingga rencana yang dibuat menjadi rencana yang realistis Keakuratan atau ketepatan merupakan yang menjadi kriteria performance suatu metode peramalan Keakuratan tersebut dapat dinyatakan sebagai kesalahan peramalan (forecast error) Semaikin kecil nilai kesalahan peramalan maka semaikin tinggi keakuratan metode peramalan yang digunakan dan sebaliknya semakin tinggi nilai kesalahan maka semakin rendah keakuratan metode peramalan yang digunakan
Mean Square Error (MSE) adalah salah satu metode yang digunakan untuk menghitung nilai akurasi atau keakuratan dari metode yang digunakan sebagai peramalan atau prediksi MSE merupakan perhitungan pangkat dua dari selisih
21
antara nilai data hasil peramalan dengan nilai data aktual dan kemudian dibagi dengan banyaknya data yang telah diramalkan Pada penentuan nilai evaluasi memilih menggunakan metode MSE karena metode ini dapat menunjukan hasil skala kemiripan antara hasil data peramalan dengan data aktual Berikut merupakan metode Mean Square Error (MSE) yang ditunjukan pada Persamaan 219 (Wang Chen 2009)
119872119878119864 = sum (119865119905minus119860119905)2119899
119894=1
119899 (219)
Dimana 119872119878119864 = nilai Mean Square Error Rate 119860119905 = nilai aktual pada data ke-t 119865119905 = nilai hasil peramalan untuk data ke-t n = banyaknya data
22
BAB 3 METODOLOGI
Pada bab ini akan dibahas mengenai metode yang digunakan beserta tahap ndash tahap pengerjaan penelitian skripsi dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Penilitian ini digolongkan sebagai penelitian implementatif dengan pendekatan perancangan (design)
Metode penelitian ini meliputi studi literatur pengumpulan data perancangan implementasi pengujian dan analisis pengambilan kesimpulan Berikut adalah alur dari metode penelitian dapat ditunjukkan pada Gambar 31
31 Studi Literatur
Pada tahap studi literatur penelitian ini bertujuan untuk mempelajari literatur dan konsep dari beberapa informasi dan pustaka yang berkaitan dengan penelitian ini Literatur dan sumber ilmu dari penelitian ini diperoleh dari internet buku dan bimbingan oleh dosen pembimbing Adapun literatur yang dipelajari yaitu tentang curah hujan serta faktor ndash faktor yang mempengaruhinya dan metode High Order Fuzzy Time Series Multi Factors
Studi Literatur
Pengumpulan Data
Perancangan
Implementasi
Pengujian dan Analisis
Kesimpulan dan Saran
Gambar 31 Diagram blok metodologi penelitian
23
32 Pengumpulan Data
Pada tahap pengumpulan penelitian ini sumber data yang diperoleh yaitu dari Badan Meteorologi Klimatologi dan Geofisikia (BMKG) Stasiun Klimatologi Kelas III Karangkates Kabupaten Malang Data yang diperoleh untuk peramalan curah hujan yaitu data aktual time series (2011 - 2016) Data yang digunakan dalam bentuk dasarian yaitu dalam rentang waktu sepuluh hari sehingga dalam satu bulan dibagi menjadi tiga dasarian
Dasarian pertama yaitu pada tanggal 1 sampai dengan 10
Dasarian kedua yaitu pada tanggal 11 sampai dengan 20
Dasarian ketiga yaitu pada tanggal 21 sampai dengan akhir bulan
Pada penelitian ini data curah hujan dalam satuan milimeter (mm) kelembaban dalam persen () suhu udara dalam satuan celsius (˚C) kecepatan angin dalam satuan kilometer per jam (kmjam)
33 Perancangan
Pada tahap perancangan penelitian ini bertujuan untuk mengetahui rancangan ndash rancangan yang merupakan langkah yang dilakukan saat melakukan tahap implementasi Pada tahap ini terdapat beberapa perancangan yaitu perancangan proses yang berisi tahapan ndash tahapan proses metode High Order Fuzzy Time Series Multi Factors perhitungan manual yang merupakan manualisasi dari metode yang digunakan pada penelitian ini perancangan antar muka atau user interface yang berisi gambaran kasar dari tampilan antar muka prototype aplikasi yang nantinya diterapkan pada tahap implementasi selanjutnya adalah perancangan pengujian yang berisi rancangan ndash rancangan pengujian metode yang digunakan untuk mengetahui berapa tingkat kesalahan atau error yang dimiliki metode pada penelitian ini dalam melakukan peramalan curah hujan
34 Implementasi
Pada tahap implementasi peneltian ini dilakukan sesuai dengan perancangan yang telah dibuat pada tahapan perancangan sebelumnya Implementasi dari metode High Order Fuzzy Time Series Multi Factors dilakukan menggunakan bahasa pemrograman java serta Integrated Development Environment (IDE) yang digunakan adalah Netbeans Sehingga nantinya hasil dari tahap ini berupa prototype aplikasi dari implementasi metode High Order Fuzzy Time Series Multi Factors untuk peramalan curah hujan
35 Pengujian dan Analisis
Pada tahapan penelitian pengujian ini diperlukan perangkat lunak dan perangkat keras agar pengujian dari hasil implementasi dapat berjalan dengan baik maka pengujian perangkat lunak dijalankan pada laptop ataupun PC (Personal Computer) dengan spesifikasi sebagai berikut
24
1 Prosesor Intel Core i3
2 Memory RAM 8 Gigabytes
3 Sistem Operasi menggunakan Windows 7 64bit
4 Hardisk dengan kapasitas 500 GB
5 Netbeans 81 JDK 7
Pengujian hasil peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors yaitu menggunakan metode Mean Square Error (MSE) Dimana rumus pengujian sesuai dengan Persamaan 219 Dalam pengujian menggunakan metode ini semakin kecil nilai MSE maka semakin tinggi tingkat akurasi hasil peramalan tersebut Pada penelitian ini untuk keperluan pengujian dari proses implementasi dilakukan empat pengujian yaitu pengujian terhadap perbedaan nilai order pengujian terhadap perbedaan nilai threshold pengujian terhadap data training untuk mengetahui pengaruhnya terhadap nilai MSE dan pengujian validasi sistem untuk mengetahui bahwa hasil implementasi metode High Order Fuzzy Time Series Multi Factors dapat melakukan peramalan
36 Kesimpulan dan Saran
Pada pengambilan kesimpulan akan dilakukan apabila semua tahapan ndash tahapan penelitian sudah dilakukan yaitu yang meliputi perancangan implementasi dan pengujian dan analisis telah selesai dilakukan Kesimpulan merupakan tahapan dimana semua rumusan masalah yang sudah ditetapkan sebelumnya dapat terjawab semua Selanjutnya pada saran merupakan berkenaan dengan hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
25
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan yang nantinya digunakan sebagai dasar dalam tahap implementasi Hal yang dibahas meliputi perancangan proses perhitungan manual perancangan pengujian dan perancangan antar muka
41 Perancangan Proses
Pada perancangan proses ini berisi mengenai tahapan ndash tahapan dari metode yang digunakan yaitu metode High Order Fuzzy Time Series Multi Factors Pada penelitian ini melibatkan faktor ndash faktor yang mempengaruhi curah hujan yaitu suhu udara kelembaban udara dan kecepatan angin Data time series dari curah hujan merupakan faktor utama dalam proses peramalan pada penelitian ini Inputan pada peneltian ini yaitu data time series curah hujan serta faktor ndash faktor yang mempengaruhinya Order yang digunakan pada metode ini merupakan order lebih dari satu oleh karena itu disebut dengan High Order Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Berikut merupakan diagram alir dari proses peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors yang ditunjukkan pada Gambar 41 dan Gambar 42
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1)
Mulai
Data curah hujan suhu kelembaban kecepatan angin jmlh_Banyakdata jmlh_Faktor
Universe_of_Discourse
A
Jumlah_Cluster
26
411 Proses perhitungan Universe of Discourse
Pada perhitungan Universe of Discourse harus sudah dilakukan inputan data agar dapat memulai tahapan perhitungan Tahapan dari proses perhitungannya yaitu pada langkah pertama dilakukan perhitungan nilai mean (rata ndash rata) sesuai dengan Persamaan 211 Setelah mendapatkan nilai mean dapat dilakukan perhitungan untuk mencari nilai standar deviasi sesuai dengan Persamaan 212 Selanjutnya dicari nilai terkecil (119863119898119894119899) dan nilai terbesar (119863119898119886119909) Setelah menyelesaikan tahap ndash tahap tersebut dapat dilakukan perhitungan untuk
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2)
A
Perhitungan Pusat Cluster
Fuzzifikasi
Pembentukan Fuzzy Logical Relationship
Defuzzifikasi
Nilai hasil peramalan
Berhenti
Pembentukan Subinterval dan Fuzzy set
27
mencari Universe of Discourse sesuai dengan Persamaan 213 Berikut merupakan diagram alir dari proses perhitungan Universe of Discourse yang ditunjukkan pada Gambar 43
Perhitungan Universe of Discourse
Mulai
Min_dan_Max
mean
standar_deviasi
for i = 0 to jmlh_Faktor-1
i
hsl_uMin ke i = hsl_min ke i ndash hsl_stdev ke i
hsl_uMax ke i = hsl_max ke i + hsl_stdev ke i
hsl_uMin hsl_uMax
Berhenti
Gambar 43 Diagram alir proses perhitungan Universe of Discourse
28
4111 Proses perhitungan Mean
Pada proses perhitungan mean merupakan nilai rata ndash rata dari setiap faktor dimana nilai mean ini nantinya dibutuhkan untuk melakukan proses perhitungan standar deviasi Berikut merupakan diagram alir dari proses perhitungan mean yang ditunjukkan pada Gambar 44
mean
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
tmp_jmlh = 0
tmp_jmlh = tmp_jmlh + data ke ij
j
hsl_mean ke i = tmp_jmlhjmlh_DataTraining
i
hsl_mean
Berhenti
Gambar 44 Diagram alir proses perhitungan mean
29
4112 Proses perhitungan standar deviasi
Pada proses perhitungan standar deviasi dapat dilakukan setelah mendapatkan nilai mean dari setiap data sesuai proses sebelumnya Berikut merupakan diagram alir dari proses perhitungan standar deviasi yang ditunjukkan pada Gambar 45
standar_deviasi
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
result = 0
result = result + (data ke ij ndash mean ke i)2
j
hsl_stdev ke i = radicresult
jmlh_DataTrainingminus1
i
hsl_stdev
Berhenti
Gambar 45 Diagram alir proses perhitungan standar deviasi
30
4113 Proses perhitungan nilai Dmin dan Dmax
Pada proses perhitungan ini merupakan proses perhitungan untuk mencari nilai terkecil dan terbesar dari setiap faktor data Setelah mendapat nilai terkecil dan terbesar maka data dilakukan proses perhitungan Universe of Discourse Berikut merupakan diagran alir dari proses perhitungan nilai Dmin dan Dmax yang ditunjukkan pada Gambar 46
Gambar 46 Diagram alir perhitungan nilai Min dan Max
ya
ya
tidak
tidak
Min_dan_Max
Mulai
for i = 0 to jmlh_Faktor-1
besar = data ke i0
kecil = data ke i0
for j=0 to jmlh_DataTraining
data ke ij gt besar
besar = data ke ij
data ke ij lt kecil
kecil = data ke ij
j
hsl_max ke i = besar
hsl_min ke i = kecil
i
hsl_max hsl_min
Berhenti 1
1
2
2
3
4
4
5
5
3
31
412 Proses perhitungan jumlah cluster
Pada proses perhitungan jumlah cluster memiliki masukkan proses Dmin dan Dmax
dari proses perhitungan sebelumnya Pada proses ini terdapat perhitungan nilai dari selisih setiap data Pada perhitungan jumlah cluster sesuai dengan Persamaan 214 Berikut merupakan langkah ndash langkah perhitungan jumlah cluster yang ditunjukkan pada Gambar 47
jumlah_Cluster
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to (jmlh_DataTraining-1)
Berhenti
hsl_max hsl_min
selisih = 0
selisih = selisih + |data ke ij ndash data ke i (j+1)|
j
jmlh_Cluster ke i = |ℎ119904119897_119898119894119899 119896119890 119894minusℎ119904119897_119898119886119909 119896119890 119894|
119904119890119897119894119904119894ℎ
119895119898119897ℎ_119863119886119905119886119879119903119886119894119899119894119899119892minus1
i
jmlh_Cluster
Gambar 47 Diagram alir proses perhitungan jumlah cluster
32
413 Proses perhitungan pusat cluster
Pada proses perhitungan pusat cluster ini diperlukan beberapa variabel yang harus dideklarasikan terlebih dahulu yaitu nilai bobot fungsi objektif nilai iterasi awal nilai iterasi maksimum dan error terkecil Perhitungan subinterval ini menggunakan metode fuzzy C-means yang diawali dengan pencarian pusat cluster terlebih dahulu Berikut merupakan langkah ndash langkah perhitungan subinterval yang ditunjukkan pada Gambar 48 Gambar 49 Gambar 410 Gambar 411 Gambar 412
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1)
Perhitungan pusat cluster
Mulai
jmlh_Cluster
for i = 0 to jmlh_Faktor-1
Deklarasi bobot selisih_f_objektif
iter_maksimum error_min
Pembentukan Matriks partisi faktor A jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor A
for iter = iter to iter_maksimum
A
i == 0
Perhitungan pusat_cluster1 faktor A
B C D
tidak
ya
33
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2)
ya
tidak
tidak
ya
Perhitungan f_objektif faktor A
A B C D
Perhitungan selisih_f_objektif faktor A
Perbaikan matriks partisi faktor A
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster1 faktor A
Iter = iter_maksimum
iter
i == 1
Pembentukan Matriks partisi faktor B jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor B
for iter = iter to iter_maksimum
F A G E
34
tidak
tidak
ya
A E F G
Perhitungan pusat_cluster2 faktor B
Perhitungan f_objektif faktor B
Perhitungan selisih_f_objektif faktor B
Perbaikan matriks partisi faktor B
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster2 faktor B
Iter = iter_maksimum
iter
i == 2
Pembentukan Matriks partisi faktor C jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor C
I A H
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3)
ya
35
tidak
tidak
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4)
ya
A H I
for iter = iter to iter_maksimum
Perhitungan pusat_cluster3 faktor C
Perhitungan f_objektif faktor C
Perhitungan selisih_f_objektif faktor C
Perbaikan matriks partisi faktor C
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster3 faktor C
Iter = iter_maksimum
iter
i == 3
Pembentukan Matriks partisi faktor D jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor D
J A K
ya
36
tidak
ya
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5)
A K J
for iter = iter to iter_maksimum
Perhitungan pusat_cluster4 faktor D
Perhitungan f_objektif faktor D
Perhitungan selisih_f_objektif faktor D
Perbaikan matriks partisi faktor D
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster4 faktor D
Iter = iter_maksimum
iter
i
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
Berhenti
37
tidak
ya
tidak
ya
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1)
414 Proses pembentukan subinterval dan Fuzzy set
Pada proses pembentukan fuzzy set atau himpunan fuzzy pada penelitian ini dapat dilakukan setelah perhitungan subinterval selesai dilakukan Nilai subniterval merupakan masukan utama pada pembentukkan fuzzy set Pembentukan fuzzy sesuai dengan Persamaan 215 Berikut merupakan langkah ndash langkah proses pembentukan fuzzy set yang ditunjukkan pada Gambar 413 dan Gambar 414
Pembentukan subinteval dan Fuzzy set
Mulai
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
for i = 0 to jmlh_Faktor-1
Menentukan batas_subintervalMinA dan
batas_subintervalMaxA
Menentukan batas_fuzzysetMinA dan batas_fuzzysetMaxA
i == 0
i == 1
Menentukan batas_subintervalMinB dan
batas_subintervalMaxB
Menentukan batas_fuzzysetMinB dan batas_fuzzysetMaxB
A C B
38
tidak
tidak
ya
ya
415 Proses Fuzzifikasi
Pada proses fuzzifikasi ini pembentukanya sesuai derajat keanggotaan pada setiap data Pada proses ini derajat keanggotaan dihitung berdassarkan fungsi keanggotaan kurva bahu Hasil dari proses ini merupakan data yang sudah difuzzifikasikan menjadi data fuzzy Berikut langkah ndash langkah dari proses fuzzifikasi ditunjukkan pada Gambar 415 dan Gambar 416
i == 2
A B C
Menentukan batas_subintervalMinC dan batas_subintervalMaxC
Menentukan batas_fuzzysetMinC dan batas_fuzzysetMaxC
i == 3
Menentukan batas_subintervalMinD dan batas_subintervalMaxD
Menentukan batas_fuzzysetMinD dan batas_fuzzysetMaxD
i
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
Berhenti
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2)
39
tidak
ya
ya
tidak
Fuzzifikasi
Mulai
for i = 0 to jmlh_Faktor-1
Menentukan hasil_fuzzifikasiA dari faktor A
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinA batas_fuzzysetMaxA
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1)
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
DD
i == 0
i == 1
Menentukan hasil_fuzzifikasiB
dari faktor B
Menghitung derajat keanggotaan
berdasarkan batas_fuzzysetMinB
batas_fuzzysetMaxB
C A B
40
tidak
ya
ya
tidak
ya
i == 2
A B C
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinC batas_fuzzysetMaxC
Menentukan hasil_fuzzifikasiC dari faktor C
i == 3
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinD
batas_fuzzysetMaxD
Menentukan hasil_fuzzifikasiD dari faktor D
i
hasil_fuzzifikasiA hasil_fuzzifikasiB hasil_fuzzifikasiC hasil_fuzzifikasiD
Berhenti
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2)
41
tidak
ya
416 Proses pembentukan Fuzzy Logical Relationship
Setelah data melalui proses fuzzifikasi dan sudah menjadi data fuzzy maka dapat dilakukan pembentukan Fuzzy Logical Relationship (FLR) Pembentukan FLR dilakukan sesuai dengan Persamaan 216Berikut adalah langkah ndash langkah proses pembentukan Fuzzy Logical Relationship (FLR) yang ditunjukkan pada Gambar 417 Gambar 418 dan Gambar 419
Gambar 417 Diagram alir proses Pembentukan FLR
(bagian 1)
Pembentukan Fuzzy Logical Relationship
Mulai
hasil_fuzzifikasiAhasil_fuzzifikasiB hasil_fuzzifikasiChasil_fuzzifikasiD order
for i = 0 to jmlh_dataTraining
max_inc = order jmlh_dataTraining = dataTraining - order
for j = i to max_inc
for k = 0 to jmlh_Faktor-1
j == 0
FLR_kiri_training ke ijk = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D)
ke j
E A B C D
42
ya
tidak
ya
tidak
A B C E D
FLR_kiri_training ke i(j-i)k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
j = 0
k
j
FLR_kanan_training ke i = hasil_fuzzifikasiA ke (i+order)
Max_inc lt (jmlh_DataTraining-1)
i
tmp_JmlhDatatraining = tmp_JmlhDatatraining +1
max_inc = max_inc + 1 tmp_JmlhDatatraining = i
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2)
for j = 0 to tmp_JmlhDatatraining
for j = tmp_JmlhDatatraining to max_inc
for k = 0 to jmlh_Faktor-1
I H G F
43
tidak
ya
417 Proses Defuzzifikasi
Proses defuzzifikasi merupakan proses akhir dimana keluaran dari proses ini merupakan nilai hasil peramalan Data yang diperlukan pada proses defuzzifikasi adalah hasil dari proses pembentukan Fuzzy Logical Relationship (FLR) nilai threshold yang harus dideklarasikan sebelumnya jumlah data training dan jumlah data testing Dalam proses ini dilakukan perhitungan selisih pada FLR antara data testing dan data training FLR yang dihitung nilai selisihnya adalah FLR pangkat bawah yang terdapat pada ruas kiri Setelah dilakukan perhitungan selisih dan total jumlah selisih lebih kecil dari nilai threshold maka pada setiap FLR yang
I H G F
FLR_kiri_testing ke i(j-tmp_jmlhDatatraining) k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
k
j
FLR_kanan_testing ke i = hasil_fuzzifikasiA ke (i+order)
i
Max_inc lt (jmlh_DataTraining-1)
max_inc = max_inc + 1 tmp_JmlhDatatraining++
FLR_kiri_training FLR_kanan_training FLR_kiri_testing FLR_kanan_testing
Mulai
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3)
44
ya
tidak
sesuai dengan kondisi tersebut dapat dikatakan cocok atau dapat dilakukan ke tahap perhitungan selanjutnya Setelah mendapatkan FLR yang cocok maka dilakukan pengelompokkan berdasarkan FLR ruas kanan Pengelompokkan ini dihitung jumlah frekuensi yang sama sesuai dengan fuzzy set di ruas kanan Selanjutnya untuk memperoleh hasil peramalan dilakukan proses perhitungan sesuai dengan Persamaan 218 Berikut adalah langkah ndash langkah proses defuzzifikasi yang ditunjukkan pada Gambar 420 dan Gambar 421
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1)
Defuzzifikasi
Mulai
FLR_kiri FLR_kanan order dataTraining dataTesting konstanta
threshold = (jmlh_Faktor x order)+konstanta
for i = 0 to dataTesting
for j = 0 to (dataTraining-i)
Perhitungan hitung_selisih antara FLR_kiri data training dan data testing
hitung_selisih lt threshold
match ke ij = hitung_selisih
j
i
A
45
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2)
A
Menghitung jumlah total FLR_kiri yang cocok untuk setiap data testing
Mencocokan FLR_kiri yang cocok dengan FLR_kanan untuk setiap data testing
for i = 0 to dataTesting
Menghitung frekuensi setiap FLR_kanan yang cocok untuk setap data testing
for j = 0 to jumlah total FLR kiri yang cocok
peramalan = peramalan + Frekuensi setiap FLR_kanan yang cocok x pusat_cluster1
sesuai dengan value FLR_kanannya
j
hasil_peramlan ke i = peramalan jumlah total FLR kiri yang cocok
i
Hasil_permalan
Berhenti
46
42 Perhitungan Manual
Dalam perhitungan manual ini data sampel yang digunakan merupakan data time series dasarian ke-2 pada periode April 2014 sampai dengan dasarian ke-2 Juli 2014 data sampel ditunjukkan pada Tabel 41
Tabel 41 Data Sampel Perhitungan Manual
No Dasarian Curah Hujan
(A)
Suhu (B) Kelembaban (C)
Kecepatan Angin(D)
1 Dasarian 2 (April 2014) 95 2615 8248 629
2 Dasarian 3 (April 2014) 90 2612 8247 628
3 Dasarian 1 (Mei 2014) 94 2607 8247 627
4 Dasarian 2 (Mei 2014) 83 2625 8232 623
5 Dasarian 3 (Mei 2014) 85 2628 8235 623
6 Dasarian 1 (Juni 2014) 92 2609 8241 626
7 Dasarian 2 (Juni 2014) 86 2627 8235 624
8 Dasarian 3 (Juni 2014) 89 2621 8238 624
9 Dasarian 1 (Juli 2014) 93 2607 8242 626
10 Dasarian 2 (Juli 2014) 86 2626 8237 623
Sumber BMKG Kelas III Karangkates Malang
421 Perhitungan Universe of Discourse (U)
Sebelum melakukan perhitungan U maka harus dicari terlebih dahulu nilai 119863119898119894119899 119863119898119886119909 dan standar deviasi 119863119898119894119899 adalah nilai minimum atau nilai terkecil dari data sampel yang ada sedangkan 119863119898119886119909 adalah nilai maksimum atau nilai paling besar dari data sampel yang ada Untuk mencari nilai standar deviasi harus menghitung nilai mean (rata ndash rata) terlebih dahulu sesuai dengan Persamaan 211 Mean dari data curah hujan (A) dihitung dengan cara sebagai berikut
Mean = (data ke-1 + data ke-2 + data ke-3 + + data ke-10) 10
= (95 + 90 + 94 + 83 + 85 + 92 + 86 + 89 + 93 + 86) 10
= 893 10
= 893
Selanjutnya setelah diperoleh nilai mean dilanjutkan melakukan perhitungan standar deviasi sesuai dengan Persamaan 212 Standar deviasi adalah akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Untuk menghitung standar deviasi agar lebih mudah kita terlebih dahulu melakukan perhitungan nilai kuadrat dari selisih data ke-i dan mean yang ditunjukkan pada Tabel 42
47
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean
i Data ke-i Data ke-i mean (Data ke-i - mean)sup2
1 95 57 32490
2 90 07 0490
3 94 47 22090
4 83 -63 39690
5 85 -43 18490
6 92 27 7290
7 86 -33 10890
8 89 -03 0090
9 93 37 13690
10 86 -33 10890
Jumlah 1561
Setelah mendapatkan hasil nilai kuadrat dari selisih data ke-i dan mean sesuai dengan Tabel 42 maka dapat dilanjutkan melakukan perhitungan standar deviasi dengan cara sebagai berikut
Standar_deviasi = radic1
10minus1sum (119889119886119905119886 119896119890 minus 119894 minus 119898119890119886119899)10
119894=1
2
= radic1
9 times 1561
= 4165
Untuk perhitungan standar deviasi juga dilakukan pada faktor lainnya yaitu suhu (B) kelembaban (C) dan kecepatan angin (D) Hasil perhitungan 119863119898119894119899 119863119898119886119909 dan standar deviasi ditunjukkan pada Tabel 43
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi
Data D min D max Standar Deviasi
A 83 95 4165
B 2607 2628 0086
C 8232 8248 0057
D 623 629 0022
Berdasarkan hasil yang ditunjukkan Tabel 43 selanjutnya dapat dilakukan perhitungan nilai U sesuai dengan Persamaan 213 Berikut adalah perhitungan U pada data A
U = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590]
= [(83 ndash 4165) (95 ndash 4165)]
= [78835 99165]
48
Untuk perhitungan U juga dilakukan pada semua faktor yaitu data B C dan D Sehingga diperoleh nilai U yang ditunjukkan pada Tabel 44
Tabel 44 Hasil Universe of Discourse
Data U
Batas Bawah Batas Atas
A 78835 99165
B 25984 26366
C 82263 82537
D 6208 6312
422 Perhitungan jumlah cluster (k)
Pada perhitungan jumlah cluster langkah pertamanya adalah mencari nilai absolut dari selisih data hari ke-t dengan hari sebelumnya Perhitungan selisih dilakukan hingga data ke-10 Perhitungan nilai selisih dilakukan pada semua data A B C dan D Selanjutnya masing ndash masing nilai selisih dijumlah sehingga hasilnya seperti ditunjukkan pada Tabel 45
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya
No Tanggal A B C D
1 Dasarian 3 (April 2014) 5 003 001 001
2 Dasarian 1 (Mei 2014) 4 005 0 001
3 Dasarian 2 (Mei 2014) 11 018 015 004
4 Dasarian 3 (Mei 2014) 2 003 003 0
5 Dasarian 1 (Juni 2014) 7 019 006 003
6 Dasarian 2 (Juni 2014) 6 018 006 002
7 Dasarian 3 (Juni 2014) 3 006 003 0
8 Dasarian 1 (Juli 2014) 4 014 004 002
9 Dasarian 2 (Juli 2014) 7 019 005 003
Jumlah 49 105 043 016
Setelah mendapatkan nilai absolut selisih data hari ke-t dengan hari sebelumnya dapat dilanjutkan dengan menghitung jumlah cluster sesuai dengan Persamaan 214 Perhitungan jumlah cluster pada data A (k1) berdasarkan pada Tabel 43 diketahui nilai 119863119898119894119899 adalah 171 nilai 119863119898119886119909 adalah 2048 maka jumlah cluster data A dapat ditunjukkan sebagai berikut
49
1198961 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905) minus 119883(119905 minus 1)|119899
119905=1
119899 minus 1|
= |83 minus 9549
10minus1| = 2204
Apabila hasil perhitungan jumlah cluster merupakan bilangan pecahan maka hasilnya harus dibulatkan Sehingga jumlah cluster pada data A adalah 2 Perhitungan jumlah cluster juga dilakukan pada data B (k2) C (k3) dan D (k4) Berikut merupakan hasil semua perhitungan jumlah cluster yang ditunjukkan pada Tabel 46
Tabel 46 Hasil jumlah cluster data
No Cluster Jumlah Cluster
1 k1 2
2 k2 2
3 k3 3
4 k4 3
423 Perhitungan pusat cluster dan subinterval
Pada pembentukan subinterval berdasarkan pada Tabel 46 yang menunjukkan jumlah subinterval yang selanjutnya digunakan untuk menentukan pusat cluster menggunakan algoritma fuzzy C-means (FCM)
4231 Penentuan pusat cluster
a Penentuan nilai variabel
Pada penentuan subinterval diawali dengan klasterisasi menggunakan algoritma FCM pada awal proses ditentukkan beberapa variabel sebagai berikut
Banyak cluster = k1 = 2
Bobot (w) = 2
Fungsi objektif awal = 0
Iterasi awal = 1
Iterasi maksimum = 100
Error terkecil = 001 b Pembentukan matriks partisi awal (micro)
Data pada pembentukan matriks partisi awal merupakan nilai random diantara nilai 0 sampai 1 Dimensi pada matriks partisi awal dibentuk dengan dimensi jumlah data (i) x jumlah cluster (k) Dalam hal ini telah diketahui jumlah data adalah 10 dan k1 adalah 2 maka partisi dimensi matriks awal adalah 10 x 2 Hasil pembentukan matriks partisi awal ditunjukkan pada Tabel 47 dimana Cluster disimbolkan dengan C
50
Tabel 47 Matriks partisi awal pada cluster data A
c Normalisasi matriks partisi awal
Langkah pertama normalisasi matriks partisi awal adalah dengan menghitung jumlah bilangan penyusun matriks pada setiap kolom yang dapat dilihat pada Tabel 47 dijumlah berdasarkan dengan Persamaan 24 Diketahui jumlah kolom matriks sebanyak 2 sehingga diperoleh Q1 untuk penjumlahan kolom c1 Q2 untuk penjumlahan kolom c2
Q1 = 0355 + 0174 + 02 + 0387 + 0598 + 0819 + 0702 + 0719 + 0349 +
0852
= 5154
Q2 = 0170 + 0815 + 0190 + 0456 + 0526 + 0170 + 0232 + 0572 + 0102 +
0322
= 3554
Langkah selanjutnya dilakukan proses normalisasi menggunakan Persamaan 25 Dimana setiap bilangan penyusun matriks awal dibagi dengan nilai Q sesuai dengan kolomnya masing ndash masing Bilangan penyusun matriks disimbolkan dengan microik dimana i menunjukkan baris dan k menunjukkan kolom posisi bilangan tersebut pada matriks
i micro
c1 c2
1 0355 0170
2 0174 0815
3 0200 0190
4 0387 0456
5 0598 0526
6 0819 0170
7 0702 0232
8 0719 0572
9 0349 0102
10 0852 0322
51
μ11 = bilangan matriks partisi pada baris 1 kolom 1
Q1
= 0355
5154
= 0069
μ12 = bilangan matriks partisi pada baris 1 kolom 2
Q2
= 0170
3554
= 0048
Setelah melakukan perhitungan seperti diatas untuk semua bilangan matriks sehingga matriks partisi sudah ternormalisasi seperti yang ditunjukkan pada Tabel 48
Tabel 48 Derajat keanggotaan matriks partisi data A
i micro
C1 C2
1 0069 0048
2 0034 0229
3 0039 0054
4 0075 0128
5 0116 0148
6 0159 0048
7 0136 0065
8 0140 0161
9 0068 0029
10 0165 0090
d Perhitungan pusat cluster (V)
Pada perhitungan pusat cluster (V) berdasarkan Persamaan 26 Dimana setiap bilangan penyusun matriks partisi (micro) dipangkatkan dengan w dimana variabel w yang sudah dideklarisakan terlebih dahulu dengan nilai sama dengan 2 dan dikalikan dengan bilangan penyusun matriks X yang merupakan matriks berisi data yang ada pada Tabel 41 Selanjutnya hasil perkalian tersebut dijumlah dan dibagi dengan jumlah hasil kuadrat dari bilangan penyusun matriks partisi Hasil perhitungan ditunjukkan pada Tabel 49
52
Tabel 49 Perhitungan pusat cluster data A
Berdasarkan jumlah cluster dari data A yaitu 2 maka terdapat 2 pusat cluster (V) yaitu V1 V2 Perhitungan nilai V adalah sebagai berikut
V1 = sum ((μic1)2 times Xi)10
i=1
sum (μic1)210i=1
= 10730216
0121620
= 8822718207
V2 = sum ((μic2)2 times Xi)10
i=1
sum (μic2)210i=1
= 12111287
0137572
= 8803592572
Jadi berdasarkan perhitungan diatas pusat cluster untuk data A pada iterasi ke-1 adalah 8822718207 8803592572
e Perhitungan fungsi objektif (P)
Pada perhitungan P menggunakan Persamaan 27 dimana setiap baris pada data matriks X dikurangi pusat cluster (V) selanjutnya dikuadratkan Hasilnya
i X microsup2 microsup2 x X
C1 C2 C1 C2
1 95 0004731 0002292 0449450 0217718
2 90 0001137 0052633 0102304 4736927
3 94 0001512 0002864 0142117 0269234
4 83 0005630 0016427 0467258 1363472
5 85 0013448 0021907 1143107 1862112
6 92 0025233 0002291 2321422 0210787
7 86 0018542 0004243 1594602 0364916
8 89 0019487 0025916 1734356 2306543
9 93 0004590 0000816 0426841 0075870
10 86 0027311 0008183 2348759 0703706
Jumlah 0121620 0137572 10730216 12111287
53
kemudian dikalikan dengan micro yang sudah dipangkatkan dengan bobot (w) seperti yang telah ditunjukkan pada Tabel 49 Selanjutnya hasil tersebut dijumlah per kolom seperti yang ditunjukkan pada Tabel 410
Tabel 410 Fungsi objektif data A
i X (X-V)sup2 (X-V)sup2 x microsup2
C1 C2 C1 C2
1 95 458711 484983 02170 01111
2 90 31429 38576 00036 02030
3 94 333254 355702 00504 01019
4 83 273234 253605 01538 04166
5 85 104147 92168 01401 02019
6 92 142342 157139 03592 00360
7 86 49603 41450 00920 00176
8 89 05972 09294 00116 00241
9 93 227798 246420 01046 00201
10 86 49603 41450 01355 00339
Jumlah 1267661573 1166282827
Fungsi Objektif (P) 24339444
Perhitungan nilai fungsi objektif dilakukan seperti Persamaan 27 Nilai fungsi objektif diperoleh dengan cara sebagai berikut P = sum sum ([(Xi minus Vc)2](μik)2)3
c=110i=1
P = 1267661573 + 1166282827
= 24339444
f Perbaikan matriks partisi
Pada langkah ini perbaikan matriks partisi dilakukan berdasarkan Persamaan 28 Data matriks X untuk setiap barisnya dikurangi pusat cluster lalu dikuadratkan seperti yang ditunjukkan pada Tabel 410 Selanjutnya hasilnya dipangkatkan dengan -11 karena w-1 = 1 Hasil pangkat -1 terhadap (X-V)2 ditunjukkan pada Tabel 411
54
Tabel 411 Perbaikan matriks partisi
i ((X-V)sup2)^-1
Jumlah C1 C2
1 0022 0021 0042
2 0318 0259 0577
3 0030 0028 0058
4 0037 0039 0076
5 0096 0108 0205
6 0070 0064 0134
7 0202 0241 0443
8 1674 1076 2750
9 0044 0041 0084
10 0202 0241 0443
Berdasarkan tabel diatas bilangan penyusun matriks partisi yang baru atau yang telah diperbaiki diperoleh dari hasil pembagian data terhadap jumlah per barisnya
12058311 = 0022
0042= 0514
12058312 = 0021
0042= 0486
Pada perhitungan nilai matriks yang sudah diperbaiki dilakukan pada semua elemen matriks sehingga hasil perbaikan matriks seperti yang ditunjukkan pada Tabel 412
Tabel 412 Hasil perbaikan matriks partisi
Setelah mendapatkan hasil perbaikan matriks partisi kita lakukan pengecekan selama iterasi kurang dari iterasi maksimum (maxIter) atau selisih antara fungsi objektif iterasi saat ini dengan iterasi sebelumnya bernilai lebih dari nilai error terkecil yaitu 001 maka proses berlanjut dengan kembali melakukan perhitungan pusat cluster hingga perbaikan matriks partisi Hasil
i micro
C1 C2
1 0514 0486
2 0551 0449
3 0516 0484
4 0481 0519
5 0469 0531
6 0525 0475
7 0455 0545
8 0609 0391
9 0520 0480
10 0455 0545
55
perhitungan pusat cluster dari data A B C dan D setelah dilakukan proses tiga kali iterasi dan diurutkan mulai dari yang terkecil sampai yang terbesar ditunjukkan pada Tabel 413
Tabel 413 Hasil pusat cluster
4232 Perhitungan batas subinterval
Perhitungan batas subinterval dilakukan dengan mencari nilai tengah (Median) dari setiap pusat cluster Berikut merupakan contoh perhitungan batas subinterval pada data A
a Interval 1 Batas bawah = 78835 (Batas bawah Universe of Discourse pada data A) Batas atas = 89347 (Median 88303 dan 90390)
b Interval 2 Batas bawah = 89347 (Median 88303 dan 90390) Batas atas = 99165 (Batas atas Universe of Discourse pada data A)
Seperti perhitungan diatas juga dilakukan pada data suhu (B) kelembaban (C) dan kecepatan angin (D) Dalam hal ini jumlah subinterval setiap atribut berbeda ndash beda sesuai dengan jumlah cluster yang sebelumnya ditunjukkan pada Tabel 46 Berikut merupakan batas subinterval masing ndash masing atribut yang ditunjukkan pada Tabel 414
Tabel 414 Batas subinterval masing ndash masing atribut data
Interval (micro)
A B C D
1
78835 25984 751708 6208
sd sd sd sd
89347 26181 823863 6249
2
89347 26181 823863 6249
sd sd sd sd
99165 26366 82411 6256
3
82411 6256
- - sd sd
82537 6312
Cluster A B C D
1 88303 26165 82391 62497
2 90390 26197 82408 62499
3 - - 82415 62613
56
424 Pembentukan Fuzzy Set
Pembentukan fuzzy set berdasarkan pada derajat keanggotaan dari subinterval (micro) fuzzy set dari data A ditentukan dengan derajat keanggotaan sebagai berikut
A1 = 1micro1 + 05micro2
A2 = 05micro1 + 1micro2
Pada derajat keanggotaan data A diatas simbol ldquo+rdquo menunjukkan operator himpunan gabungan Berdasarkan subinterval pada Tabel 414 nilai batas fuzzy set dari data atribut A dapat ditentukan dengan cara sebagai berikut
A1 = 78835 sd 94256 (Batas bawah interval 1 sd titik tengah interval 2)
A2 = 84091 sd 99165 (Titik tengah interval 1 sd batas atas interval 2)
Setelah diketahui batas masing ndash masing fuzzy set grafik fungsi keanggotaan fuzzy set data A yang direpresentasikan dalam kurva bahu yang ditunjukkan pada Gambar 422 Dengan cara yang sama juga ditentukan pula fuzzy set dari data attribut B C dan D
425 Fuzzifikasi
Pada langkah fuzzifikasi dilakukan dengan mencari derajat keanggotaan yang memiliki nilai paling besar (maksimum) dari masing ndash masing data terhadap fuzzy set yang sudah terbentuk Derajat keanggotaan dicari berdasarkan fungsi keanggotaan kurva bentuk bahu Berikut ini adalah perhitungan derajat keanggotaan dari data attribut A
Data aktual curah hujan (A) pada April 2014 dasarian ke-3 = 90
1198601 = 942558 ndash 90
942558minus840911= 041868427
Gambar 422 Grafik fuzzy set data A
57
1198602 = 90minus840911
942558minus840911= 058131636
Derajat keanggotaan paling besar berada pada A2 sehingga data attribut A pada April 2014 dasarian ke-3 difuzzifikasikan ke fuzzy set A2 Perhitungan yang sama dilakukan pada seluruh data attribut A sehingga didapat derajat keanggotaan dan hasil fuzzifikasi dari data A ditunjukkan pada Tabel 415
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A
i Data A1 A2 Fuzzyfikasi
1 95 0 1 A2
2 90 041868363 058131636 A2
3 94 002516357 097483642 A2
4 83 1 0 A1
5 85 09105837 008941629 A1
6 92 02219236 077807639 A2
7 86 08122036 018779631 A1
8 89 05170636 048293635 A1
9 93 01235436 087645641 A2
10 86 08122037 018779631 A1
Perhitungan yang sama juga dilakukan pada semua attribut yaitu attribut B C dan D Sehingga dapat diperoleh hasil fuzzifikasi sesuai derajat keanggotaan dengan nilai paling besar Berikut adalah hasil fuzzifikasi untuk semua attribut yang dapat dilihat pada Tabel 416
Tabel 416 Hasil fuzzifikasi semua data attribut
No Tanggal A B C D
1 Dasarian 2 (April 2014) A2 B1 C3 D3
2 Dasarian 3 (April 2014) A2 B1 C3 D3
3 Dasarian 1 (Mei 2014) A2 B1 C3 D3
4 Dasarian 2 (Mei 2014) A1 B2 C1 D1
5 Dasarian 3 (Mei 2014) A1 B2 C1 D1
6 Dasarian 1 (Juni 2014) A2 B1 C2 D2
7 Dasarian 2 (Juni 2014) A1 B2 C1 D1
8 Dasarian 3 (Juni 2014) A1 B2 C2 D1
9 Dasarian 1 (Juli 2014) A2 B1 C2 D2
10 Dasarian 2 (Juli 2014) A1 B2 C2 D1
58
426 Pembentukan Fuzzy Logical Relationship (FLR)
Pada tahap pembentukan FLR dengan berdasarkan nilai order yang sudah ditentukan Pada manualisasi ini berdasarkan dari Tabel 416 di misalkan nilai order kita deklarasikan dengan nilai 3 sehingga dapat menghasilkan 7 FLR Hasil pembentukan FLR Data training dapat ditunjukkan pada Tabel 417 Hasil pembentukan FLR Data testing dapat ditunjukkan pada Tabel 418
Tabel 417 Hasil pembentukan FLR data training
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(32)B(31)C(33)D(33)) rarr A1
2 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(31)B(32)C(31)D(31)) rarr A1
3 (A(12)B(11)C(13)D(13)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(31)D(31)) rarr A2
4 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(21)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
5 (A(11)B(12)C(11)D(11)) (A(22)B(21)C(22)D(22)) (A(31)B(32)C(31)D(31)) rarr A1
Tabel 418 Hasil pembentukan FLR data testing
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(12)D(12)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(32)D(31)) rarr A2
2 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(22)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
427 Defuzzifikasi
Pada tahap ini misalkan jumlah data yang digunakan untuk data uji atau data testing adalah dua yaitu yang pertama data periode ke-9 dan yang kedua data periode ke-10 Sehingga yang digunakan data latih atau data training adalah data pada periode ke-1 sampai data periode ke-8 Pada data testing yang pertama melibatkan FLR ke-1 sampai FLR ke-5 untuk disesuaikan dengan FLR ke-6 yang berdasarkan pada Tabel 417 Pada data testing yang kedua melibatkan FLR ke-1 sampai FLR ke-6 untuk disesuaikan dengan FLR ke-7 yang berdasarkan pada Tabel 417 Selanjutnya setiap ruas kiri FLR data testing dibandingkan dengan FLR data training yaitu pada bilang pangkat bawah fuzzy set dibandingkan sesuai dengan posisinya dan dihitung selisihnya Hasil dari perhitungan selisih tersebut dijumlahkan dan apabila jumlah selisihnya kurang dari threshold maka FLR tersebut dikatakan cocok Threshold merupakan dari hasil mengalikan jumlah order dengan jumlah faktor kemudian dijumlahkan dengan dengan sebuah konstanta Contoh perhitungan selisih nilai ruas kiri FLR pada data testing pertama adalah sebagai berikut
59
Data testing = (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(32) B(31) C(33) D(33)) rarr A1
Data training =
1 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
2 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
3 (A(12) B(11) C(13) D(13)) (A(21) B(22) C(21) D(21)) (A(31) B(32) C(31) D(31)) rarr A2
4 (A(11) B(12) C(11) D(11)) (A(21) B(22) C(21) D(21)) (A(32) B(31) C(32) D(32)) rarr A1
5 (A(11) B(12) C(11) D(11)) (A(22) B(21) C(22) D(22)) (A(31) B(32) C(31) D(31)) rarr A1
Selisih data ke- 1 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|2-1|+|1-2|+|3-2|+|3-1| = 13
Selisih data ke- 2 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Selisih data ke- 3 = |2-2|+|1-1|+|3-2|+|3-2|+|1-1|+|2-2|+|1-1|+|1-1|+|1-1|+|2-2|+|1-2|+|1-1| = 3
Selisih data ke- 4 = |1-2|+|2-1|+|1-2|+|1-2|+|1-1|+|2-2|+|1-1|+|1-1|+|2-1|+|1-2|+|2-2|+|2-1| = 7
Selisih data ke- 5 = |1-2|+|2-1|+|1-2|+|1-2|+|2-1|+|1-2|+|2-1|+|2-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Pada perhitungan selisih nilai ruas kiri FLR pada data testing juga dilakukan pada semua data testing yang sudah dideklarasikan sebelumnya Dalam hal ini agar dapat menemukan FLR yang cocok dengan data testing Tahap selanjutnya adalah proses defuzzifikasi menggunakan threshold yang dimisalkan 18 sehingga FLR yang memiliki kecocokan dengan data testing pertama adalah semua FLR dari ke-1 sampai ke-5 karena memiliki hasil selisih kurang dari 18 Semua FLR yang cocok ditampung dikelompokkan berdasarkan FLR pada ruas kanan yang sama kemudian dhitung frekuensinya Berikut adalah frekuensi dan pusat cluster dari ruas kanan FLR yang cocok dengan data testing pertama dan kedua ditunjukkan pada Tabel 419
Tabel 419 Frekuensi FLR yang cocok dengan data testing
Data testing 1 Data testing 2
Ruas kanan A1 A2 A1 A2
Pusat Cluster 88303 90390 88303 90390
Frekuensi 4 1 4 2
Berdasarkan pada Tabel 419 dilakukan defuzzifikasi sesuai dengan Persamaan 218 sebagai berikut
119863119886119905119886 119905119890119904119905119894119899119892 1 = (88303times4)+(90390times1)
5= 887204
60
119863119886119905119886 119905119890119904119905119894119899119892 2 = (88303times4)+(90390times2)
6= 889987
Jadi berdasarkan perhitungan diatas diperoleh hasil peramalan curah hujan pada pada April 2014 dasarian ke-3 adalah 1384601636 sedangkan pada tanggal 10012016 adalah 2769203272 Perbandingan data curah hujan aktual dan hasil peramalan dengan metode High Order Fuzzy Time Series Multi Factors dapat dilihat pada Tabel 420
Tabel 420 Perbandingan data aktual dan hasil peramalan
No Data Aktual Hasil Peramalan
1 93 887204
2 86 889987
Dari hasil peramalan yang ditunjukkan pada Tabel 420 dapat dilakukan perhitungan kesalahan peramalan menggunakan metode Mean Square Error (MSE) seperti Persamaan 219
119872119878119864 = ((93minus887206)2+(86minus889989)2)
2
= 136536
43 Perancangan antarmuka
Perancangan antarmuka merupakan perancangan dari tampilan antarmuka atau interface yang nantinya akan diterapkan pada tahapan implementasi Pada perancangan antarmuka ini terdapat lima halaman utama dan juga terdapat dalam menu berupa button yaitu halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
431 Halaman input
Pada halaman input terdapat inputan data dengan nama button Browse Data pada inputan data ini pengguna diharuskan memasukkan inputan file data dalam bentuk ekstensi xls serta direktori lokasi file yang di inputkan akan ditampilkan pada textfield dan juga terdapat label yang menampilkan jumlah banyaknya data yang terdapat pada file yang telah di inputkan Selanjutnya juga terdata inputan textfield data training data testing order dan nilai konstanta Pada halaman input ini juga terdapat button fuzzification yang berfungsi untuk melakukan proses clustering fuzzifikasi dan FLR Selanjutnya pada button forecasting berfungsi untuk melakukan peramalan atau defuzzifikasi dari hasil proses fuzzifikasi serta menghitung nilai error dari hasil peramalan Berikut
61
merupakan rancangan tampilan antarmuka dari halaman input yang ditunjukkan pada Gambar 423
432 Halaman tampil data
Pada halaman tampil data terdapat tabel yang menampilkan isi data dari xls yang sudah dimasukkan terlebih dahulu pada halaman input Tabel tampil data akan menampilkan tanggal curah hujan kelembaban suhu dan kecepatan angin Berikut merupakan tampilan rancangan halaman tampil data yang ditunjukkan pada Gambar 424
Gambar 423 Rancangan antarmuka halaman input
Gambar 424 Rancangan antarmuka halaman tampil data
62
433 Halaman proses
Pada halaman proses akan menampilkan hasil clustering fuzzifikasi dan fuzzy logical relationship Pada tampilan halaman clustering akan menampilkan Universe of Discourse curah hujan suhu kelembaban dan kecepatan angin Selanjutnya tampilan dibawahnya akan menampilkan jumlah cluster dari setiap faktor yaitu jumlah cluster curah hujan suhu kelembaban dan kecepatan angin Berikut merupakan tampilan perancangan halaman proses clustering yang ditunjukkan Gambar 425
Selanjutnya pada tampilan proses fuzzifikasi akan menampilkan tabel hasil fuzzifikasi dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzifikasi yang ditunjukkan pada Gambar 426
Gambar 425 Rancangan antarmuka halaman proses clustering
Gambar 426 Rancangan antarmuka proses fuzzifikasi
63
Pada tampilan proses fuzzy logical relationship (FLR) akan menampilkan textarea berisi hasil proses FLR dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzy logical relationship yang ditunjukkan pada Gambar 427
434 Halaman hasil
Pada halaman hasil peramalan akan menampilkan tabel yang berisi hasil peramalan curah hujan dan data curah hujan yang sebenarnya Serta terdapat text link yang akan menampilkan grafik perbandingan data hasil peramalan dan data yang sebenarnya Berikut adalah tampilan rancangan halaman hasil yang ditunjukkan pada Gambar 428
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship
Gambar 428 Rancangan antarmuka halaman hasil peramalan
64
435 Halaman perhitungan error
Pada halaman perhitungan error akan menampilkan nilai dari hasil perhitungan Mean Square Error (MSE) pada textfield Berikut adalah tampilan rancangan halaman perhitungan error yang ditunjukkan pada Gambar 429
44 Perancangan pengujian
Pada penelitian ini akan dilakukan empat pengujian yaitu pengujian terhadap nilai order nilai threshold pengujian terhadap jumlah data training untuk mengetahui pengaruhnya terhadap nilai Mean Square Error (MSE) dan pengujian validasi sistem untuk mengetahui kestabilan hasil implementasi
441 Perancangan pengaruh order terhadap nilai MSE
Order merupakan jumlah urutan data yang digunakan dalam pembentukkan Fuzzy Logical Relationship (FLR) Pada pengujian ini dilakukan percobaan dengan order yang berbeda ndash beda Pengujian ini bertujuan untuk mengetahui pengaruh order terhadap hasil peramalan Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Pada setiap pengujian yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan order yang berbeda Berikut adalah perancangan pengujian order terhadap nilai MSE ditunjukkan pada Tabel 421
Tabel 421 Rancangan pengujian order terhadap nilai MSE
No Order Threshold MSE
1
Gambar 429 Rancangan antarmuka halaman perhitungan error
65
442 Perancangan pengaruh threshold terhadap nilai MSE
Nilai threshold bergantung jumlah order karena untuk nilai threshold merupakan dari hasil mengalikan jumlah faktor yang mempengaruhi dengan order selanjutnya dijumlah dengan sebuah konstanta Pada pengujian ini dilakukan percobaan dengan konstanta yang berbeda ndash beda sehingga menghasilkan threshold yang berbeda pula Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan konstanta dan threshold yang berbeda Berikut merupakan rancangan pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 422
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1
443 Perancangan pengaruh jumlah data training terhadap nilai MSE
Data training sangat berperan penting dalam proses defuzzifikasi sehingga pada penelitian ini dilakukan pengujian pengaruh jumlah data training terhadap tingkat kesalahan dari hasil peramalan Pada pengujian ini dilakukan percobaan dengan jumlah data training yang berbeda ndash beda Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan dilakukan perhitungan nilai MSE untuk mengetahui tingkat kesalahan dari hasil peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors dengan jumlah data training yang berbeda ndash beda Sehingga dari hasil pengujian ini dapat diketahui pengaruh dari jumlah data training Berikut merupakan rancangan pengujian pengaruh jumlah data training yang ditunjukkan pada Tabel 423
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1
444 Perancangan validasi sistem
Pada pengujian validasi sistem akan melakukan pengujian dengan menggunakan order threshold terbaik seperti yang telah dilakukan pada
66
pengujian ndash pengujian sebelumnya yang menghasilkan hasil error MSE terendah Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Berikut merupakan rancangan pengujian validasi sistem yang ditunjukkan pada Tabel 424
Tabel 424 Rancangan pengujian validasi sistem
Percobaan ke- MSE
1
67
BAB 5 IMPLEMENTASI
Pada bab ini berisi pembahasan hasil implementasi metode High Order Fuzzy Time Series Multi Factors yang sesuai dengan bab sebelumnya yaitu perancangan Bab ini terdiri dari spesifikasi sistem implementasi algoritma dan implementasi antarmuka
51 Spesifikasi Sistem
Pada spesifikasi sistem ini dibagi mejadi dua yaitu spesifikasi perangkat keras dan spesifikasi perangkat lunak
511 Spesifikasi Perangkat Keras
Spesifikasi perangkat keras merupakan perangkat keras yang digunakan pada implementasi penelitian ini Perangkat keras yang digunakan adalah laptop dengan spesifikasi sesuai dengan pada Tabel 51 berikut
Tabel 51 Spesifikasi Perangkat Keras
Komponen Spesifikasi
Processor Intelcopy Core i3-3217U 180 GHz
Memori (RAM) 8 GB RAM
Harddisk 500 GB RAM
512 Spesifikasi Perangkat Lunak
Spesifikasi perangkat lunak merupakan perangkat lunak yang digunakan pada implementasi penelitian ini Perangkat lunak yang digunakan pada implementasi penelitian sesuai dengan yang ditunjukkan pada Tabel 52 berikut
Tabel 52 Spesifikasi Perangkat Lunak
Sistem Operasi Microsoft Windows 7 (64 bit)
Bahasa Pemrograman Java
Tools Pemrograman Netbeans 81
Data Microsoft Excel 2013
52 Implementasi Algoritma
Pada implementasi algoritma ini membahas mengenai hasil implementasi algoritma metode High Order Fuzzy Time Series Multi Factors yang mengacu pada bab sebelumnya yaitu perancangan Dalam penelitian ini implementasi algoritma menggunakan bahasa pemrograman java berbasis desktop Implementasi algoritma terdiri dari beberapa method sesuai dengan langkah ndash langkah pada algoritma metode High Order Fuzzy Time Series Multi Factors
68
521 Implementasi Proses Universe of Discourse
Pada implementasi Universe of Discourse seperti yang ditunjukkan Kode Program 51 dimana pada source code method Universe_of_Discourse baris 3 - 5 terdapat pemanggilan method mean standar_deviasi dan Min_dan_Max Dimana pemanggilan method tersebut dibutuhkan untuk melakukan proses perhitungan selanjutnya yaitu untuk menghitung batas bawah dan batas atas dari Univers of Discourse Baris 7-10 untuk menghitung hasil Universe of Discourse Berikut merupakan source code dari proses Universe of Discourse yang ditunjukkan pada Kode Program 51
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
private void Universe_of_Discourse()
mean()
standar_deviasi()
Min_dan_Max()
hsl_uMin = new double[jmlh_Faktor]
hsl_uMax = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
hsl_uMin[i] = hsl_min[i] - hsl_stdev[i]
hsl_uMax[i] = hsl_max[i] + hsl_stdev[i]
Kode Program 51 Implementasi proses Universe of Discourse
5211 Implementasi proses mean
Pada implementasi proses mean merupakan proses perhitungan nilai rata ndash rata dari setiap faktor yang nantinya hasilnya diperlukan untuk proses perhitungan standar deviasi Berikut merupakan source code dari proses mean yang ditunjukkan pada Kode Program 52 Perhitungan utama proses mean terdapat pada baris 3 ndash 8
Baris Kode
1 2 3 4 5 6 7 8 9
private void mean()
hsl_mean = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double tmp_jmlh = 0
for (int j = 0 j lt jmlh_DataTraining j++)
tmp_jmlh = tmp_jmlh + data[i][j]
hsl_mean[i] = (tmp_jmlh jmlh_DataTraining)
Kode Program 52 Implementasi proses mean
5212 Implementasi proses standar deviasi
Pada implementasi proses perhitungan standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Standar deviasi dapat dilakukan perhitungan setelah mendapat nilai hasil dari perhitungan mean Berikut merupakan source code dari implementasi proses standar deviasi yang ditunjukkan pada Kode Program 53 Perhitungan utama proses standar deviasi terdapat pada baris 3 ndash 9
69
Baris Kode
1 2 3 4 5 6 7 8 9 10 11
private void standar_deviasi()
hsl_stdev = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double result = 0
for (int j = 0 j lt jmlh_DataTraining j++)
result = result + (Mathpow((data[i][j] ndash
hsl_mean[i]) 2))
hsl_stdev[i]=Mathsqrt(result(jmlh_DataTraining-
1))
Kode Program 53 Implementasi proses standar deviasi
5213 Implementasi proses Dmin dan Dmax
Pada implementasi proses Dmin dan Dmax merukan untuk mencari nilai minimum dan nilai maksimum dari data sampel untuk setiap faktor Berikut merupakan source code dari implementasi dari proses Dmin dan Dmax yang ditunjukkan pada Kode Program 54 Pada baris 8 ndash 10 merupakan bagian dari proses untuk untuk menentukan nilai data terbesar Selanjutnya pada baris 11 ndash 13 untuk menentukan nilai data terkecil
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
19
private void Min_dan_Max()
hsl_max = new double[jmlh_Faktor]
hsl_min = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double besar = data[i][0]
double kecil = data[i][0]
for (int j = 0 j lt jmlh_DataTraining j++)
if (data[i][j] gt besar)
besar = data[i][j]
if (data[i][j] lt kecil)
kecil = data[i][j]
hsl_max[i] = besar
hsl_min[i] = kecil
Kode Program 54 Implementasi proses Dmin dan Dmax
522 Implementasi Proses Jumlah Cluster
Pada implementasi proses jumlah cluster merupakan proses perhitungan jumlah cluster dari setiap faktor Implementasi ini dapat dilakukan apabila sudah mendapatkan hasil output dari method Min_dan_Max() sudah didapatkan Berikut merupakan source code dari implementasi proses jumlah cluster yang ditunjukkan pada Kode Program 55 Pada baris 3 ndash 7 untuk digunakan untuk menghitung selisih data sampel setiap baris dari semua faktor pada data sampel ke t dengan t+1 Selanjutnya pada baris 9 ndash 10 untuk menghitung jumlah cluster dari setiap faktor
70
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
private void jumlah_Cluster()
jmlh_Cluster = new int[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double selisih = 0
for (int j = 0 j lt (jmlh_DataTraining - 1) j++)
selisih = selisih + (Mathabs((data[i][j]
- data[i][(j + 1)])))
jmlh_Cluster[i] = (int) Mathround((Mathabs(
hsl_min[i]-hsl_max[i]))(selisih(jmlh_DataTraining
-1)))
Kode Program 55 Implementasi proses jumlah cluster
523 Implementasi Proses Pusat Cluster
Implementasi proses perhitungan pusat cluster ini menggunakan metode fuzzy C-means untuk mendapatkan pusat cluster yang nantinya digunkan sebagai subinterval Implementasi ini memerlukan hasil dari proses method jumlah_Cluster() agar dapat melakukan perhitungan subinterval Berikut merupakan source code dari implementasi proses subinterval yang ditunjukkan pada Kode Program 56 Pada Kode Program 56 hanya menampilkan source code pembentukan subinterval pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 2 ndash 3 merupakan deklarasi variabel bobot iterasi maksimum selisih fungsi objektif awal dan error minimum Pada baris 8 ndash 20 merupakan proses pembentukan matriks partisi dengan nilai random 0 sampai 1 Pada baris 22 ndash 26 merupakan proses normalisasi matriks partisi yang telah terbentuk Pada baris 28 ndash 63 merupakan proses untuk menentukan pusat cluster Pada baris 65 ndash 86 merupakan proses perhitungan fungsi objektif dari iterasi Pada baris 88 ndash 90 merupakan proses perhitungan selisih fungsi objektif Pada baris 92 ndash 108 adalah proses perbaikan matriks partisi Pada baris 110 ndash 115 adalah proses hasil perbaikan matriks partisi Pada baris 116 - 133 adalah proses dengan pengkondisian apakah selisih fungsi objektif lebih kecil dari error minimum serta apabila memenuhi kondisi maka dilanjutkan ke proses pengurutan pusat cluster secara ascending dari hasil iterasi terakhir dan proses pengkondisian iterasi berhenti
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void pusat_cluster()
int bobot = 2int iter_maksimum = 100
double selisih_f_objektif = 0double error_min = 001
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
Pembentukkan matriks partisi
tmp_Matriks1=new
double[jmlh_Cluster[i]][jmlh_DataTraining]
q1 = new double[jmlh_Cluster[i]]
double jmlh_q1
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_q1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
71
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
double random = ThreadLocalRandomcurrent()
nextDouble(01 1)
tmp_Matriks1[j][k] = random
jmlh_q1 = jmlh_q1 + random
q1[j] = jmlh_q1
normalisasi matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k] q1[j]
Perhitungan pusat cluster
for (int iter = 0 iter lt iter_maksimum iter++)
selisih_f_objektif = 0
jumA1 = new double[iter_maksimum][jmlh_Cluster[i]]
jumA2 = new double[iter_maksimum][jmlh_Cluster[i]]
miu_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
XV_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
pusat_cluster1 = new double[jmlh_Cluster[i]]
double hitung_jum1
double hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(tmp_Matriks1
[j][k]bobot)
miu_Matriks1[j][k] = tmp_Matriks1[j][k]
hitung_jum1 = hitung_jum1 + tmp_Matriks1
[j][k]
jumA1[iter][j] = hitung_jum1
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum2 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
data[i][k]
hitung_jum2 = hitung_jum2 +
tmp_Matriks1[j][k]
jumA2[iter][j] = hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
pusat_cluster1[j] = jumA2[iter][j]
jumA1[iter][j]
perhitungan fungsi objektif
jumA3 = new double[iter_maksimum][jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
double hitung_jum3 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow((data[i][k]
ndash pusat_cluster1[j])
bobot)
XV_Matriks1[j][k] = tmp_Matriks1[j][k]
tmp_Matriks1[j][k] = XV_Matriks1[j][k]
miu_Matriks1[j][k]
hitung_jum3 = hitung_jum3 +
tmp_Matriks1[j][k]
jumA3[iter][j] = hitung_jum3
72
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
double jmlh_f_objektif = 0
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_f_objektif = jmlh_f_objektif
+jumA3[iter][j]
if (iter lt (iter_maksimum - 1))
f_objektif1[iter + 1] = jmlh_f_objektif
perhitungan selisih fungsi objektif
selisih_f_objektif = f_objektif1[iter + 1]
-f_objektif1[iter]
perbaikan matriks partisi
int hitung = bobot - 1int pangkat = -1 hitung
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(XV_Matriks1
[j][k] pangkat)
jumA4 = new
double[iter_maksimum][jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
double hitung_jum4 = 0
for (int k = 0 k lt jmlh_Cluster[i] k++)
hitung_jum4 = hitung_jum4 +
tmp_Matriks1[k][j]
jumA4[iter][j] = hitung_jum4
hasil perbaikan matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
jumA4[iter][k]
if (selisih_f_objektif lt error_min)
pengurutan ascending pusat cluster
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 kltjmlh_Cluster[i]k++)
if (k lt (jmlh_Cluster[i] - 1))
if (pusat_cluster1[k] gt
pusat_cluster1[k + 1])
double tmp =
pusat_cluster1[k]
pusat_cluster1[k]=
pusat_cluster1[k+1]
pusat_cluster1[k+1] = tmp
iter = iter_maksimum
Kode Program 56 Implementasi proses pusat cluster
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set
Pada implementasi proses pembentukan suinterval dan fuzzy set memiliki dua proses yaitu proses menentukan batas subinterval minumum serta maksimum dan proses menentukan batas fuzzy set minimum serta maksimum
73
Proses pembentukan fuzzy dapat menjalankan prosesnya setelah method subinterval() telah diakses Berikut merupakan source code proses pembentukan fuzzy set yang ditunjukkan pada Kode Program 57 Pada Kode Program 57 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 6 ndash 29 merupakan proses pembentukan batas minimum dan batas maksimum subinterval Pada baris 31 ndash 54 merupakan pembentukan batas minimum dan batas maksimum fuzzy set
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
private void subinterval_dan_fuzzy_set()
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
batas subinterval
batas_subintervalMinA = new double[jmlh_Cluster[i]]
batas_subintervalMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_subintervalMinA[j] = hsl_uMin[i]
batas_subintervalMaxA[j]=(pusat_cluster1[j]
+pusat_cluster1[j+
1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1] +pusat_cluster1
[j])2
batas_subintervalMaxA[j]=
hsl_uMax[i]
else if ((0 lt j) ampamp (j lt (jmlh_Cluster[i] -
1)))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1]+
pusat_cluster1[j])2
batas_subintervalMaxA[j]=
(pusat_cluster1[j]+
pusat_cluster1[j+1)2
batas fuzzy set
batas_fuzzysetMinA = new double[jmlh_Cluster[i]]
batas_fuzzysetMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_fuzzysetMinA[j]=
batas_subintervalMinA[j]
batas_fuzzysetMaxA[j]=
(batas_subintervalMinA[j+1]
+batas_subintervalMaxA[j + 1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]
+batas_subintervalMaxA[j - 1])2
batas_fuzzysetMaxA[j] =
batas_subintervalMaxA[j]
else if ((0 lt j) ampamp (jlt(jmlh_Cluster[i]-1)))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]+
batas_subintervalMaxA[j-1])2
batas_fuzzysetMaxA[j]=
74
51
52
53
54
55
56
(batas_subintervalMinA[j+1]+
batas_subintervalMaxA[j + 1])2
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set
525 Implementasi proses fuzzifikasi
Pada Implementasi proses fuzzifikasi memiliki dua proses utama yaitu menentukan derajat keanggotaan dan proses fuzzifikasi Dalam proses ini method fuzzy_set() harus dieksekusi terlebih dahulu karena implementasi proses ini memerlukan output dari method tersebut Berikut merupakan source code fuzzifikasi ditunjukkan pada Kode Program 58 Pada Kode Program 58 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 3 ndash 81 merupakan proses perhitungan derajat keanggotaan Pada baris 83 ndash 94 adalah proses penentuan fuzzifikasi
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
private void fuzzifikasi()
if (i == 0)
hitung_fuzzifikasiA = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
if(j == 0)
if((data[i][k]gtbatas_fuzzysetMinA[j])ampamp
(data[i][k]lt batas_fuzzysetMinA[j + 1]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA[j + 1])
ampamp (data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j] - data[i][k])
(batas_fuzzysetMaxA[j] ndash
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j]) ampamp
(data[i][k] lt batas_fuzzysetMinA[j + 1])
ampamp(data[i][k] gt batas_fuzzysetMinA[j+1])
ampamp(data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
else if (j == (jmlh_Cluster[i] - 1))
if((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
(batas_fuzzysetMaxA[(jmlh_Cluster[i]ndash
2)]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
if((data[i][k] gt batas_fuzzysetMaxA
75
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
[(jmlh_Cluster[i]- 2)]) ampamp (data[i][k]
lt batas_fuzzysetMaxA[(jmlh_Cluster[i]
- 1)]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] gt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 1)]))
hitung_fuzzifikasiA[j][k] = 0
else if ((0 lt j)ampamp(j lt (jmlh_Cluster[i] - 1)))
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA[j
+1]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA[j])
(batas_fuzzysetMinA[j + 1]-
batas_fuzzysetMinA[j])
if ((data[i][k] gt batas_fuzzysetMinA
[j+1])ampamp (data[i][k] lt
batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j]-data[i][k])
(batas_fuzzysetMaxA[j]-
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA
[j + 1]) ampamp (data[i][k] gt
batas_fuzzysetMinA[j + 1]) ampamp
(data[i][k]ltbatas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
hasil_fuzzifikasiA = new int[jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
int cluster = 0
double besar=hitung_fuzzifikasiA[0][j]
for (int k = 0 k lt jmlh_Cluster[i] k++)
if (besar lt hitung_fuzzifikasiA[k][j])
besar = hitung_fuzzifikasiA[k][j]
cluster = k
hasil_fuzzifikasiA[j] = cluster + 1
Kode Program 58 Implementasi proses fuzzifikasi
526 Implementasi Pembentukan Fuzzy Logical Relationship
Pada implementasi pembentukan Fuzzy Logical Relationship (FLR) memiliki dua output yaitu FLR_kiri dan FLR_kanan Dimana FLR_kiri berisi group dari kelima faktor dan pada FLR_kanan merupakan dari faktor yang akan diramalkan yaitu
76
faktor curah hujan (A) Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code pembentukan Fuzzy Logical Relationship (FLR) dapat ditunjukkan pada Kode Program 59 berikut Pada baris 3 ndash 14 merupakan deklarasi variabel Pada baris 15 ndash 55 adalah proses pembentukan fuzzy logical relationship data training Pada baris 56 ndash 58 merupakan deklarasi variabel Pada baris 59 ndash 86 adalah proses pembentukan fuzzy logical relationship data testing
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Fuzzy Logical Relationship
private void fuzzy_logical_relationship()
String input_order = fieldOrdergetText()
order = IntegerparseInt(input_order)
int max_inc = order
String input_dataTraining = fieldDatatraininggetText()
int dataTraining = IntegervalueOf(input_dataTraining)
int tmp_jmlhDatatraining = 0
int tmp_order = 0
int jmlh_dataTraining = dataTraining - order
String input_dataTesting = fieldDatatestinggetText()
int jmlh_dataTesting = IntegervalueOf(input_dataTesting)
FLR_kiri_training = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_training = new int[jmlh_DataTraining]
for (int i = 0 i lt jmlh_dataTraining i++)
for (int j = i j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (j == 0)
if (k == 0)
FLR_kiri_training[i][j][k]=
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiD[j]
else if (j = 0)
if (k == 0)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiD[j]
tmp_order = j
FLR_kanan_training[i] = hasil_fuzzifikasiA[(i + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
77
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
tmp_jmlhDatatraining = i
FLR_kiri_testing = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_testing = new int[(jmlh_DataTraining)]
tmp_jmlhDatatraining = tmp_jmlhDatatraining + 1
for (int i = 0 i lt jmlh_dataTesting i++)
for (int j = tmp_jmlhDatatraining j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (k == 0)
FLR_kiri_testing[i][j - tmp_jmlhDatatraining][k]
= hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiD[j]
FLR_kanan_testing[i] =
hasil_fuzzifikasiA[(tmp_jmlhDatatraining + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
tmp_jmlhDatatraining++
Kode Program 59 Implementasi pembentukan FLR
527 Implementasi Proses Defuzzifikasi
Pada implementasi proses defuzzifikasi merupakan proses dimana menentukan hasil peramalan dari data testing berdasarkan dari bilangan fuzzy yang terbentuk Implementasi ini memiliki beberapa inputan penting yaitu data training data testing order dan konstanta Inputan tersebut sangat berperan penting dalam proses implementasi defuzzifikasi Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code defuzzifikasi dapat ditunjukkan pada Kode Program 510 berikut Pada baris 2 ndash 11 merupakan deklarasi variabel Pada baris 13 ndash 37 merupakan proses perhitungan selisih antara data training dengan data testing Pada baris 40 ndash 47 menghitung jumlah FLR yang cocok Pada baris 49 ndash 65 merupakan proses mencocokan FLR kiri yang cocok dengan FLR kanan Pada baris 67 ndash 81 merupakan proses menghitung jumlah frekuensi FLR kanan yang cocok Pada baris 83 ndash 91 adalah proses perhitungan hasil peramalan
Baris Kode 1
2
3
4
private void defuzifikasi()
String input_dataTraining = fieldDatatraininggetText()
String input_dataTesting = fieldDatatestinggetText()
String input_konstanta = fieldKonstantagetText()
78
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
int dataTraining = IntegervalueOf(input_dataTraining)
int dataTesting = IntegervalueOf(input_dataTesting)
int konstanta = IntegervalueOf(input_konstanta)
int match[][]
match = new int[dataTesting][2000]
int threshold = (jmlh_Faktor order) + konstanta
int hitung_selisih = 0
perhitungan selisih
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
hitung_selisih = 0
for (int k = 0 k lt order k++)
for (int l = 0 l lt jmlh_Faktor l++)
if (i == 0)
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
else if (i gt 0)
FLR_kiri_training[(dataTraining-
1)+i][k][l] = FLR_kiri_testing[i-
1][k][l]
FLR_kanan_training[(dataTraining-1)+i]
= FLR_kanan_testing[i-1]
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
if (hitung_selisih lt threshold)
match[i][j] = hitung_selisih
menghitung jumlah total FLR yang cocok untuk setiap data
testing
int countGroup[] = new int[dataTesting]
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
countGroup[i]++
mencocokan FLR_kiri yang cocok dengan FLR_kanan
group = new int[dataTesting][2000]
for (int i = 0 i lt dataTesting i++)
int tmp_count = 0
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
if (tmp_count lt countGroup[i])
group[i][tmp_count] = j
tmp_count++
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt countGroup[i] j++)
group[i][j] = FLR_kanan[group[i][j]]
mengelompokkan yang sama
MapltInteger Integergt map = new HashMapltInteger Integergt()
hasil_peramalan = new double[dataTesting]
for (int i = 0 i lt dataTesting i++)
79
70
71
72
73
74
75 76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
double peramalan = 0
mapclear()
for (int j = 0 j lt countGroup[i] j++)
int key = group[i][j]
if (mapcontainsKey(key))
int occurrence = mapget(key)
occurrence++
mapput(key occurrence)
else
mapput(key 1)
menghitung hasil peramlaan
Iterator iterator = mapkeySet()iterator()
while (iteratorhasNext())
int key = (Integer) iteratornext()
int occurrence = mapget(key)
peramalan = (peramalan + (pusat_cluster1[(key - 1)]
occurrence))
hasil_peramalan[i] = (peramalan countGroup[i])
Kode Program 510 Implementasi proses defuzzifikasi
53 Implementasi Antarmuka
Pada implementasi antarmuka dijelaskan beberapa halaman antarmuka untuk penggunaan dari program hasil implementasi Implementasi antarmuka berdasarkan perancangan yang telah dijelasakan pada bab sebelumnya yaitu bab perancangan Halaman antarmuka yang dibuat adalah halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
531 Implementasi antarmuka halaman input
Halaman input merupakan halaman yang pertama muncul setelah program dijalankan Pada halaman input ini terdapat beberapa inputan yang harus di masukkan yaitu data input data training data testing order dan konstanta Selain itu pada halaman input juga terdapat tiga button yaitu button browse data button fuzzification dan button forecasting Berikut tampilan antarmuka halaman input yang ditunjukkan pada Gambar 51
Gambar 51 Implementasi antarmuka halaman input
80
532 Implementasi antarmuka halaman tampil data
Halaman tampil data merupakan halaman yang tampil setelah melakukan input data Halaman ini berisi tabel yang menampilkan data curah hujan suhu kecepatan angin dan kelembaban Berikut tampilan antarmuka halaman tampil data yang ditunjukkan pada Gambar 52
533 Implementasi antarmuka halaman proses
Halaman proses merupakan halaman yang muncul setelah button fuzzification telah dieksekusi Halaman proses ini terdiri dari tiga bagian atau tab yaitu clustering fuzzification dan Fuzzy logical relationship Pada halaman antarmuka clustering menampilkan Universe of Discourse dan jumlah cluster pada masing ndash masing faktor Berikut merupakan tampilan antarmuka halaman proses bagian clustering yang ditunjukkan pada Gambar 53
Gambar 52 Implementasi antarmuka halaman tampil data
Gambar 53 Implementasi antarmuka halaman proses clustering
81
Pada tab selanjutnya yaitu pada tab fuzzification tab ini menampilkan hasil proses fuzzifikasi Pada halaman ini menampilkan tabel yang berisi hasil fuzzifikasi dari setiap faktor Berikut merupakan tampilan antarmuka halaman proses bagian fuzzification yang ditunjukkan pada Gambar 54
Pada tab Fuzzy Logical Relationship menampilakn hasil dari proses pembentukan Fuzzy Logical Relationship Tampilan pada halaman ini menampilkan berupa textarea yang berisi dari output proses tersebut Berikut merupakan tampilan antarmuka halaman proses bagian Fuzzy Logical Relationship yang ditunjukkan pada Gambar 55
Gambar 54 Implementasi antarmuka halaman proses fuzzification
Gambar 55 Implementasi halaman antarmuka proses FLR
82
534 Implementasi antarmuka halaman hasil
Pada implementasi antarmuka halaman hasil ini merupakan halaman yang menampilkan hasil dari proses defuzzifikasi Halaman hasil ini menampilkan tabel yang berisi data aktual dan data dari hasil peramlan Berikut merupakan tampilan antarmuka halaman hasil yang ditunjukkan pada Gambar 56
535 Implementasi antarmuka halaman perhitungan error
Pada implementasi antarmuka halaman perhitungan error merupakan halaman yang menampilkan hasil dari proses perhitungan Mean Square Error (MSE) Pada halaman antarmuka ini menampilkan hasil error MSE pada textfield Berikut merupakan tampilan antarmuka halaman perhitungan error yang ditunjukkan pada Gambar 57
Gambar 56 Implementasi halaman antarmuka hasil
Gambar 57 Implementasi halaman antarmuka perhitungan error
83
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini membahas hasil pengujian dan analisis hasil pengujian dari hasil implementasi metode High Order Fuzzy Time Series Multi factors untuk peramalan curah hujan dasarian Pada pengujian ini disesuaikan dengan perancangan pengujian pada bab 4
61 Sistematika Pengujian
Pada bab sebelumnya yaitu bab 4 mengenai perancangan telah dibahas perancangan pengujian dikatakan bahwa pengujian akan dilakukan sebanyak empat pengujian Pengujian order pengujian threshold pengujian jumlah data training dan pengujian validasi sistem Dari semua pengujian tersebut akan di uji dan di analisis bagaimana pengaruhnya terhadap hasil perhitungan Mean Square Error (MSE)
62 Hasil dan Analisis Pembahasan
Berikut hasil pengujian dan analisis yang disesuaikan dengan perancangan pengujian pada bab sebelumnya
621 Pengujian pengaruh order terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh order terhadap nilai MSE Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Jadi jika nilai order adalah 3 maka peramalan akan melibatkan 3 data sebelumnya pada proses pembentukan Fuzzy Logical Relationship (FLR) Pada pengujian ini hanya nilai order yang diubah ndash ubah sedangkan variabel lain akan dibuat tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 konstanta adalah 10 Nilai threshold diperoleh dari perhitungan jumlah faktor dikali order dan dijumlah nilai konstanta Berikut adalah hasil pengujian pengaruh order terhadap nilai MSE yang ditunjukkan pada Tabel 61
Tabel 61 Hasil pengujian order terhadap nilai MSE
No Order Threshold MSE
1 3 22 808585
2 6 34 965547
3 9 46 912631
4 12 58 875884
5 15 70 719284
6 18 82 6801207
7 21 94 5637184
8 24 106 5444184
9 27 118 5433631
10 30 130 5418393
84
Dari hasil pengujian order seperti yang telah ditunjukkan pada Tabel 61 maka pada percobaan pertama dengan order = 3 dan threshold 22 dapat diperoleh MSE sebesar 808585 Selanjutnya pada percobaan kedua dengan order = 6 dan threshold = 34 diperoleh MSE sebesar 965547 Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 61
Berdasarkan Gambar 61 order yang berbeda - beda mempengaruhi besar nilai MSE Dalam penelitian ini menentukan order memiliki ketentuan yaitu nilai order harus lebih dari 0 dan batas maksimal order adalah setengah dari nilai data training (LinYang 2009) Nilai MSE terbesar yang ditunjukkan pada pengujian ini adalah 965547 pada pengujian order 6 dan nilai MSE terkecil adalah 5418393 pada pengujian order 30 Pada Gambar 61 menunjukkan bahwa pada order 3 ke order 6 mengalami peningkatan nilai MSE selanjutnya pada order 6 hingga order 30 mengalami penurunan Pada order 3 memiliki nilai MSE lebih kecil dari order 6 order 9 dan order 12 karena memiliki lebih banyak hasil selisih tingkat kecocokan data time series yang tidak terlalu besar dan kurang dari threshold Selain itu karena data time series dari data sampel yang diperoleh memiliki pola data musiman dimana perubahan pola data dasarian tidak terlalu banyak berubah dari tahun ke tahun Selanjutnya pada order 6 hingga order 30 menunjukkan penurunan nilai MSE dan order terbesar memiliki nilai MSE terkecil sehingga dapat disumpulkan bahwa semakin besar order maka semakin kecil pula nilai MSE Dalam hal ini dengan semakin besarnya order maka data sebelumnya yang digunakan untuk pertimbangan dalam menentukan peramalan semakin banyak Sehingga semakin besar nilai order maka dapat membuat peramalan semakin akurat Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin besar nilai order maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE
85
622 Pengujian pengaruh threshold terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh threshold terhadap nilai MSE Threshold merupakan hasil dari mengalikan jumlah order dengan jumlah faktor pada data kemudian dijumlahkan dengan dengan nilai konstanta Pada proses defuzzifikasi terdapat proses menghitung selisih antara pangkat bawah Fuzzy Logical Relationship (FLR) data training dan pangkat bawah FLR data testing Selanjutnya setelah mendapatkan nilai selisih maka nilai selisih tersebut dibandingkan dengan nilai threshold untuk mencari FLR yang cocok Pada pengujian ini nilai konstanta saja yang diubah ndash ubah sementara variabel lainnya tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 dan Nilai order adalah 30 Pada penentuan input konstanta nilai minimal harus lebih besar dari 0 dan nilai maksimal menyesuaikan data sampel yang digunakan (LinYang 2009) Berikut adalah hasil pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 62
Tabel 62 Hasil pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1 10 130 558485
2 20 140 577498
3 30 150 597364
4 40 160 604660
5 50 170 646951
6 60 180 680257
7 70 190 703013
8 80 200 741484
9 90 210 756749
10 100 220 780600
Dari hasil pengujian threshold seperti yang telah ditunjukkan pada Tabel 62 maka dapat dilihat bahwa konstanta yang dilakukan pengujian dimulai dengan nilai 10 sampai 100 Hasil yang didapat pada percobaan pertama dengan konstanta = 10 dan threshold 130 diperoleh MSE sebesar 558485 Selanjutnya pada percobaan kedua dengan konstanta = 20 dan threshold = 140 diperoleh MSE sebesar 577498 Selanjutnya dapat kita lihat pada percobaan yang telah dilakukan dari percobaan pertama hingga percobaan kesepuluh nilai MSE yang diperoleh mengalami perubahan pada setiap percobaan Dapat dilihat bahwa peningkatan MSE lebih dominan menunjukkan peningkatan sehingga dalam hal ini semakin besar nilai konstanta dan threshold maka semakin besar pula nilai MSE yang diperoleh Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 62
86
Berdasarkan grafik dari Gambar 62 nilai input konstanta yang berbeda - beda mempengaruhi besar nilai MSE semakin besar nilai konstanta maka nilai threshold juga semakin besar karena threshold diperoleh dari perhitungan order dikali jumlah faktor dan selanjutnya dijumlah dengan nilai konstanta Dalam hal ini dengan semakin besar nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR juga semakin luas batasannya dan jika semakin kecil nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR menjadi semakin sempit dan mempermudah proses peramalan karena hanya adanya sedikit data yang cocok dengan data yang akan diramalkan dan mempermudah proses defuzzifikasi Oleh karena itu semakin kecil threshold maka dapat membuat peramalan semakin akurat Akan tetapi nilai threshold tidak boleh terlalu kecil karena dapat menyebabkan kegagalan peramalan Kegagalan peramalan itu terjadi karena tidak adanya data training yang cocok dengan data testing karena pada metode yang digunakan pada penelitian ini sangat bergantung pada data ndash data sebelumnya Dari hasil percobaan diatas hasil MSE terbesar adalah 7806 yaitu pada konstanta 100 serta threshold 220 dan hasil MSE terkecil adalah 558485 yaitu pada konstanta 10 dan threshold 130 Dalam pengujian ini memiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin kecil nilai konstanta maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
623 Pengujian pengaruh jumlah data training terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh jumlah data training terhadap nilai MSE Pada pengujian ini jumlah data training adalah data dasarian yaitu 1 tahun 2 tahun 3 tahun 4 tahun dan 5 tahun dimana dari setiap 1 tahun memiliki 36 data dasarian Pengujian ini akan dilakukan sebanyak lima kali Pada pengujian ini jumlah data testing adalah 36 nilai order adalah setengah dari
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE
87
nilai data training nilai konstanta adalah 20 Berikut adalah hasil pengujian pengaruh jumlah data training terhadap nilai MSE yang ditunjukkan pada Tabel 63
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1 36 786586
2 72 634527
3 108 627190
4 144 614184
5 180 539698
Dari hasil pengujian jumlah data training seperti yang telah ditunjukkan pada Tabel 63 maka pada percobaan pertama dengan data training = 36 dapat diperoleh MSE sebesar 786586 Selanjutnya pada percobaan kedua dengan data training = 72 diperoleh MSE sebesar 634527 Dalam hal ini dari percobaan satu dan dua nilai MSE mengalami penurunan Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 63
Berdasarkan dari Gambar 63 pengujian pertama sampai pengujian kelima mengalami penerunan nilai MSE Sehingga dapat disimpulkan bahwa semakin besar data training maka semakin kecil nilai MSE yang diperoleh Nilai MSE semakin kecil apabila menggunakan data training dalam jumlah besar karena data yang digunakan memiliki rentang jauh dari periode data testing atau data yang akan diramalkan Sedangkan data training yang sedikit memiliki nilai MSE yang besar karena data training yang memiliki kecocokan dengan data testing berada pada periode yang jauh dengan data testing sehingga nilai MSE menjadi tinggi Dalam hal ini terbukti bahwa metode yang digunakan pada penelitian ini memerlukan jumlah data training yang banyak sehingga dapat menurunkan nilai kesalahannya Dari hasil percobaan diatas hasil MSE terbesar adalah 786586 dan
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE
88
hasil MSE terkecil adalah 539698 Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoPeramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Seriesrdquo yang menyatakan bahwa semakin besar jumlah data training maka semakin kecil nilai kesalahannya (Elfajar et al 2017)
624 Pengujian validasi sistem
Pada pengujian ini dilakukan untuk mengetahui kestabilan dari sistem dengan menggunakan order threshold terbaik dari pengujian sebelumnya Pada pengujian ini akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai data training menggunakan 36 data yang berbeda agar dapat menunjukkan gambaran variasi dari nilai kesalahan MSE pada peramalan nilai order adalah 18 dan konstanta adalah 10 sehingga nilai threshold adalah 92 Berikut adalah hasil pengujian validasi sistem yang ditunjukkan pada Tabel 64
Tabel 64 Hasil pengujian validasi sistem
Percobaan ke- MSE
1 714290
2 703856
3 732564
4 732815
5 6973958
6 7532825
7 741726
8 760457
9 709961
10 6256204
Dari hasil pengujian validasi sistem seperti yang telah ditunjukkan pada Tabel 64 maka dapat digambarkan dengan grafik yang ditunjukkan oleh Gambar 64
Gambar 64 Grafik hasil pengujian validasi sistem
89
Berdasarkan dari gambar grafik Gambar 64 bahwa pengujian dari validasi sistem memiliki hasil MSE yang tidak terlalu jauh berbeda dari penggunaan data yang berbeda - beda Oleh karena itu dapat disimpulkan bahwa implementasi dari metode High Order Fuzzy Time Series Multi Factors yang telah digunakan sudah cukup baik untuk digunakan peramalan
Berdasarkan dari pengujian yang dilakukan diatas dapat diketahui bahwa nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun 2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016 Nilai order adalah 90 dan konstanta adalah 10 Berikut adalah perbandingan data aktual dengan hasil peramalan yang ditunjukkan pada grafik Gambar 65
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan
90
BAB 7 PENUTUP
Pada bab ini terdiri dari dua sub bab yaitu kesimpulan dan saran Kesimpulan adalah tahapan yang berisi hasil penelitian yang dilakukan dan jawaban semua rumusan masalah yang sudah ditetapkan sebelumnya dan saran adalah tahapan yang berisi hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
71 Kesimpulan
Pada kesimpulan ini mengacu pada penelitian yang telah dilakukan yang meliputi perancangan implementasi serta pengujian dan analisis terhadap hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diambil kesimpulan sebagai berikut
1 Berdasarkan dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam melakukan peramalan curah hujan dasarian dilakukan dengan beberapa langkah yaitu langkah pertama perhitungan Universe of Discourse yang terdiri perhitungan mean standar deviasi dan perhitungan Dmin serta Dmax langkah kedua yaitu perhitungan jumlah cluster langkah ketiga yaitu perhitungan pusat cluster langkah keempat yaitu pembentukan subinterval dan fuzzy set langkah kelima yaitu proses fuzzifikasi langkah keenam yaitu pembentukan Fuzzy Logical Relationship(FLR) langkah ketujuh adalah defuzzifikasi yang hasil outputnya merupakan hasil peramalan curah hujan
2 Berdasarkan dari pengujian peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diketahui bahwa
a Order berpengaruh terhadap nilai error semakin besar nilai order maka hasil peramalan semakin baik
b Threshold berpengaruh terhadap nilai error semakin rendah nilai threshold maka hasil peramalan semakin baik Akan tetapi nilai threshold tidak boleh terlalu rendah karena dapat menyebabkan kegagalan peramalan
c Data training berpengaruh terhadap nilai error semakin besar jumlah data training maka hasil peramalan semakin baik Sehingga peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors memerlukan banyak data training
d Hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors cukup baik digunakan untuk peramalan Hal ini terbukti hasil pengujian validasi sistem menunjukkan grafik yang cukup stabil
Dari pengujian yang telah dilakukan nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun
91
2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016
72 Saran
Pada penelitian ini dilakukan peramalan curah hujan dasarian dengan faktor yang mempengaruhi adalah suhu kelembaban dan kecapatan angin Saran penulis diharapkan untuk penelitian selanjutnya melakukan penambahan faktor yang mempengaruhi curah hujan atau melakukan peramalan objek lain dengan mempertimbangkan faktor ndash faktor yang mempengaruhinya Serta diharapkan pada penelitian selanjutnya untuk menambahkan data yang lebih banyak serta bervariatif sehingga nilai hasil perhitungan akurasi peramalan yang dihasilkan dalam penelitian dapat meningkat Penggunaan data training yang banyak dan bervariatif dapat membuat pola data semakin terlihat sehingga hasil peramalan yang dihasilkan memiliki akurasi yang lebih baik
92
DAFTAR PUSTAKA
Ardiyanto 2016 ldquoTerendam Air Petani Lamongan Terpaksa Panen Dinirdquo Times Indonesia November 18 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
Badan Penelitian dan Pengembangan Pertanian Kementrian Pertanian 2015 ldquoKalender Tanam Terpadu Versi 25 Kota Malang Prov Jawa Timurrdquo httpkatamlitbangpertaniangoidkatam_terpadu2016mh33535733573_tinggipdf (Diakses 25 Februari 2017)
Bagirov M Adil Mahmood Arshad and Barton Andrew 2017 Prediction of monthly rainfall in Victoria Australia Clusterwise linear regression approach Elsevier Atmos Research 188 20-29
BMKG Staklim Karangploso Malang 2015 ldquoAnalisis Dinamika Atmosfer Dan Laut Dasarian III Maret 2015 Update 2 April 2015rdquo httpkarangplosojatimbmkgogoidindexphpanalisis-kondisi-dinamika-atmosfer-laut-dasarian-tahun-2015399-analisis-dinamika-atmosfer-dan-laut-dasarian-iii-maret-2015-update-2-april-2015axzz3X8h9y4fgampgsctab=0 (Diakses 25 Februari 2017)
BPS Kabupaten Malang 2016 ldquoKabupaten Malang Dalam Angka 2016rdquo httpsmalangkabbpsgoidwebsitepdf_publikasiKabupaten-Malang-Dalam-Angka-2016pdf (Diakses 25 Februari 2017)
BPS Jawa Timur 2015 ldquoJawa Timur Dalam Angka 2015rdquo httpsjatimbpsgoid4dmnpdf_publikasiJawa-Timur-Dalam-Angka-2015pdf (Diakses 25 Februari 2017)
Buffa S Elwood Rakesh and Sarin K 1996 Modern Production and Operation Management Eight Edition John Willey and Sons Inc London
Chen M 1996 Forecasting Enrollments based on Fuzzy Time Series Fuzzy Sets and Systems 311-319
Dewi Candra Kartikasari Dani Mursityo Yusi 2014 Prediksi Cuaca Pada Data Time Series Menggunakan Adaptive Neuro Fuzzy Inference System (ANFIS) Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK) Vol 1 No 1 hlm 18-24
Dewi Candra Muslikh M 2013 Perbandingan Akurasi Backpropagation Neural Network dan ANFIS Untuk Memprediksi Cuaca NATURAL-A Journal of Scientific Modeling amp Computation Volume 1 No1
Elfajar Aria Setiawan Budi Dewi Candra 2017 Peramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Series Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer Vol 1 No 2 Hlmn 85-94
93
Fauziah Normalita Wahyuningsih Sri dan Nasution Yuki 2016 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) Vol4 Statistika
Forest Mahyu 2015 ldquoDefenisi amp Pengertian Kelembabanrdquo httpilmupengetahuaalamblogspotcoid201506defenisi-pengertian-kelembabanhtml (Diakses 25 Februari 2017)
Irsyad Muhammad Metarice Sonya 2013 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan Jurnal Sains dan Teknologi Industri Vol 10 No 02
Klawon F 2001 What is About Fuzzy Clustering Understanding and Improving the Concept of the Fuzzier Science Journal httppublic-rzfh-wolfebuetteldeklawon
Kurniawan Carlos 2007 Analisis dan Perancangan Program Aplikasi Peramalan Curah Hujan dengan Metode Wavelet (Studi Kasus BMKG)
Kusumadewi S 2003 ldquoArtificial Intelegence (Teknik amp Aplikasinya)rdquo Graha Ilmu Yogyakarta
Kusumadewi S Purnomo H 2004 ldquoAplikasi Logika Fuzzy untuk Pendukung Keputusanrdquo Graha Ilmu Yogyakarta
Kusumadewi Sri 2002 Analisis amp Desain Sistem Fuzzy Tollbox MATLAB Graha Ilmu Yogyakarta
Lin Yupei Yang Y 2009 Stock Markets Forecasting Based on Fuzzy Time Series Model IEEE Conference Publications 782-886
Makridakis S Steven C Wheelwright Victor E and Gee MC 1999 Metode dan Aplikasi Peramalan Jilid I Edisi Kedua Jakarta Binarupa Aksara
Mirawati T Yasin H and Rusgiyono A 2013 Prediksi Curah Hujan dengan Metode Kalman Filter(Studi Kasus di Kota Semarang 2012) Jurnal Gaussian 2(3) pp 239-248
Pradipta Nur Sembiring Pasukat Bangun Pengarapen 2013 Analisis Pengaruh Curah Hujan di Kota Medan Saintia Matematika Vol 1
Sipayung Putri Metha 2013 Pemodelan Hubungan Kelembapan Udara terhadap Curah Hujan (Studi Kasus Curah Hujan Periode 2001-2009 pada Stasiun Dramaga) httprepositoryipbacidhandle12345678960623 (Diakses 25 Februari 2017)
User 2015 httpstaklimnegaranet[Online] Available at httpwwwstaklimnegaranetindexphpbuletin-hujanpengertian-istilah (Diakses 25 Februari 2017)
Wang Nai-Yi Chen Shyi-Ming 2009 Temperature prediction and TAIFEX forecasting based on automatic clustering techniques and two-factors high-order fuzzy time series Elsevier Expert Systems with Applications 36 2143ndash2154
94
Wardhani Dessy Ratnawati Dian Setiawan Budi 2015 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Saham Repositori Jurnal Mahasiswa PTIIK UB Doro Jurnal Vol 6 No 6
Wiyanti T and Pulungan R 2012 Peramalan Deret Waktu Menggunakan Model Fungsi Basis Radial (RBF) dan Auto Regressive Integrated Moving Average (ARIMA) Jurnal MIPA 35(2) pp 175-182
Yunanto Utomo 2014 ldquoBMKG Akui Prakiraan Cuacanya Masih Kurang Akuratrdquo Kompas Sains Januari 30 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
viii
32 Pengumpulan Data 23
33 Perancangan 23
34 Implementasi 23
35 Pengujian dan Analisis 23
36 Kesimpulan dan Saran 24
BAB 4 PERANCANGAN 25
41 Perancangan Proses 25
411 Proses perhitungan Universe of Discourse 26
4111 Proses perhitungan Mean 28
4112 Proses perhitungan standar deviasi 29
4113 Proses perhitungan nilai Dmin dan Dmax 30
412 Proses perhitungan jumlah cluster 31
413 Proses perhitungan pusat cluster 32
414 Proses pembentukan subinterval dan Fuzzy set 37
415 Proses Fuzzifikasi 38
416 Proses pembentukan Fuzzy Logical Relationship 41
417 Proses Defuzzifikasi 43
42 Perhitungan Manual 46
421 Perhitungan Universe of Discourse (U) 46
422 Perhitungan jumlah cluster (k) 48
423 Perhitungan pusat cluster dan subinterval 49
4231 Penentuan pusat cluster 49
4232 Perhitungan batas subinterval 55
424 Pembentukan Fuzzy Set 56
425 Fuzzifikasi 56
426 Pembentukan Fuzzy Logical Relationship (FLR) 58
427 Defuzzifikasi 58
43 Perancangan antarmuka 60
431 Halaman input 60
432 Halaman tampil data 61
433 Halaman proses 62
434 Halaman hasil 63
ix
435 Halaman perhitungan error 64
44 Perancangan pengujian 64
441 Perancangan pengaruh order terhadap nilai MSE 64
442 Perancangan pengaruh threshold terhadap nilai MSE 65
443 Perancangan pengaruh jumlah data training terhadap nilai MSE 65
444 Perancangan validasi sistem 65
BAB 5 IMPLEMENTASI 67
51 Spesifikasi Sistem 67
511 Spesifikasi Perangkat Keras 67
512 Spesifikasi Perangkat Lunak 67
52 Implementasi Algoritma 67
521 Implementasi Proses Universe of Discourse 68
5211 Implementasi proses mean 68
5212 Implementasi proses standar deviasi 68
5213 Implementasi proses Dmin dan Dmax 69
522 Implementasi Proses Jumlah Cluster 69
523 Implementasi Proses Pusat Cluster 70
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set 72
525 Implementasi proses fuzzifikasi 74
526 Implementasi Pembentukan Fuzzy Logical Relationship 75
527 Implementasi Proses Defuzzifikasi 77
53 Implementasi Antarmuka 79
531 Implementasi antarmuka halaman input 79
532 Implementasi antarmuka halaman tampil data 80
533 Implementasi antarmuka halaman proses 80
534 Implementasi antarmuka halaman hasil 82
535 Implementasi antarmuka halaman perhitungan error 82
BAB 6 PENGUJIAN DAN ANALISIS 83
61 Sistematika Pengujian 83
62 Hasil dan Analisis Pembahasan 83
621 Pengujian pengaruh order terhadap nilai MSE 83
x
622 Pengujian pengaruh threshold terhadap nilai MSE 85
623 Pengujian pengaruh jumlah data training terhadap nilai MSE 86
624 Pengujian validasi sistem 88
BAB 7 PENUTUP 90
71 Kesimpulan 90
72 Saran 91
DAFTAR PUSTAKA 92
LAMPIRAN 95
Lampiran 1 Data Sampel 95
xi
DAFTAR TABEL
Tabel 21 Kajian Pustaka 5
Tabel 22 Fuzzy Logic Relationship 19
Tabel 23 Peramalan fuzzy set 20
Tabel 41 Data Sampel Perhitungan Manual 46
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean 47
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi 47
Tabel 44 Hasil Universe of Discourse 48
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya 48
Tabel 46 Hasil jumlah cluster data 49
Tabel 47 Matriks partisi awal pada cluster data A 50
Tabel 48 Derajat keanggotaan matriks partisi data A 51
Tabel 49 Perhitungan pusat cluster data A 52
Tabel 410 Fungsi objektif data A 53
Tabel 411 Perbaikan matriks partisi 54
Tabel 412 Hasil perbaikan matriks partisi 54
Tabel 413 Hasil pusat cluster 55
Tabel 414 Batas subinterval masing ndash masing atribut data 55
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A 57
Tabel 416 Hasil fuzzifikasi semua data attribut 57
Tabel 417 Hasil pembentukan FLR data training 58
Tabel 418 Hasil pembentukan FLR data testing 58
Tabel 419 Frekuensi FLR yang cocok dengan data testing 59
Tabel 420 Perbandingan data aktual dan hasil peramalan 60
Tabel 421 Rancangan pengujian order terhadap nilai MSE 64
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE 65
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE 65
Tabel 424 Rancangan pengujian validasi sistem 66
Tabel 51 Spesifikasi Perangkat Keras 67
Tabel 52 Spesifikasi Perangkat Lunak 67
Tabel 61 Hasil pengujian order terhadap nilai MSE 83
xii
Tabel 62 Hasil pengujian threshold terhadap nilai MSE 85
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE 87
Tabel 64 Hasil pengujian validasi sistem 88
xiii
DAFTAR GAMBAR
Gambar 21 Representasi linear naik 11
Gambar 22 Representasi linear turun 12
Gambar 23 Representasi kurva segitiga 12
Gambar 31 Diagram blok metodologi penelitian 22
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1) 25
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2) 26
Gambar 43 Diagram alir proses perhitungan Universe of Discourse 27
Gambar 44 Diagram alir proses perhitungan mean 28
Gambar 45 Diagram alir proses perhitungan standar deviasi 29
Gambar 46 Diagram alir perhitungan nilai Min dan Max 30
Gambar 47 Diagram alir proses perhitungan jumlah cluster 31
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1) 32
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2) 33
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3) 34
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4) 35
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5) 36
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1) 37
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2) 38
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1) 39
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2) 40
Gambar 417 Diagram alir proses Pembentukan FLR (bagian 1) 41
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2) 42
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3) 43
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1) 44
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2) 45
Gambar 422 Grafik fuzzy set data A 56
Gambar 423 Rancangan antarmuka halaman input 61
Gambar 424 Rancangan antarmuka halaman tampil data 61
Gambar 425 Rancangan antarmuka halaman proses clustering 62
Gambar 426 Rancangan antarmuka proses fuzzifikasi 62
xiv
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship 63
Gambar 428 Rancangan antarmuka halaman hasil peramalan 63
Gambar 429 Rancangan antarmuka halaman perhitungan error 64
Gambar 51 Implementasi antarmuka halaman input 79
Gambar 52 Implementasi antarmuka halaman tampil data 80
Gambar 53 Implementasi antarmuka halaman proses clustering 80
Gambar 54 Implementasi antarmuka halaman proses fuzzification 81
Gambar 55 Implementasi halaman antarmuka proses FLR 81
Gambar 56 Implementasi halaman antarmuka hasil 82
Gambar 57 Implementasi halaman antarmuka perhitungan error 82
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE 84
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE 86
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE 87
Gambar 64 Grafik hasil pengujian validasi sistem 88
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan 89
xv
DAFTAR KODE PROGRAM
Kode Program 51 Implementasi proses Universe of Discourse 68
Kode Program 52 Implementasi proses mean 68
Kode Program 53 Implementasi proses standar deviasi 69
Kode Program 54 Implementasi proses Dmin dan Dmax 69
Kode Program 55 Implementasi proses jumlah cluster 70
Kode Program 56 Implementasi proses pusat cluster 72
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set 74
Kode Program 58 Implementasi proses fuzzifikasi 75
Kode Program 59 Implementasi pembentukan FLR 77
Kode Program 510 Implementasi proses defuzzifikasi 79
xvi
DAFTAR LAMPIRAN
Lampiran 1 Tabel Data Sampel 95
1
BAB 1 PENDAHULUAN
11 Latar belakang
Kabupaten Malang merupakan salah satu kabupaten di Jawa Timur yang terkenal akan potensi alam yang dimiliki (BPS Kabupaten Malang 2016) Dalam hal ini terkenal akan potensi alamnya karena kabupaten Malang memiliki tingkat produksi di sektor pertanian yang cukup tinggi dimana hampir seluruh kecamatan di kabupaten Malang memiliki lahan pertaniaaan (BPS Jatim 2015) Permasalahan yang terjadi pada sektor pertanian yaitu terjadinya gagal panen apabila memasuki musim penghujan dengan curah hujan yang tinggi yaitu diatas 200 mm per bulan serta apabila memasuki musim kemarau dengan curah hujan yang rendah yaitu dibawah 100 mm per bulan (BMKG Staklim Karangploso Malang 2015) Dalam mengatasi hal tersebut upaya yang dilakukan petani selama ini hanya melakukan tindakan seperti melakukan panen secara dini Upaya ini dianggap petani cukup efektif dalam mengurangi besarnya kerugian gagal panen akan tetapi sebaiknya yang dilakukan adalah melakukan suatu tindakan agar kerugian yang dialami petani tidak terjadi lagi (Ardiyanto 2016)
Salah satu contoh tindakan yang dapat dilakukan adalah membuat Kalender Tanam (KATAM) KATAM dapat digunakan petani sebagai alat bantu atau pedoman dalam menentukan awal musim tanam terbaik seperti yang telah dilakukan oleh Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian Dalam pembuatan KATAM Balitbang menggunakan data peramalan curah hujan dari Badan Meteorologi Klimatologi dan Geofisika (BMKG) Akan tetapi BMKG mengakui bahwa prakiraan cuacanya saat ini memang masih kurang akurat dan masih kalah dengan prakiraan cuaca di Amerika Serikat (Yunanto 2014) Pentingnya akan prakiraan cuaca terbukti adanya beberapa penelitian sebelumnya yaitu penelitian prakiraan cuaca dengan input faktor yang mempengaruhi cuaca yang berupa data time series menggunakan metode Adaptive Neuro Fuzzy Inference System (ANFIS) (Dewi 2014) dan penelitian mengenai prediksi cuaca menggunakan metode Backpropagation Neural Network yang terbukti memiliki nilai akurasi yang baik dalam prediksi cuaca (Dewi 2013)
Teknik atau metode peramalan curah hujan yang sering digunakan BMKG adalah metode Autoregressive Integrated Moving Average (ARIMA) ANFIS dan Wavelet (Kurniawan 2007) Namun dalam penerapannya gabungan dari ketiga metode tersebut masih kurang memuaskan yaitu tingkat akurasinya hanya mencapai 60 - 70 Menurut BMKG kurangnya tingkat akurasinya ini disebabkan oleh keadaan pola atmosfer di Indonesia yang selalu berubah ndash ubah dan kurang menentu
Selain metode yang digunakan oleh BMKG adapun penelitian sebelumnya yang meramalkan curah hujan yaitu penelitian menggunakan metode Fuzzy Time Series Chen dengan studi kasus curah hujan di Samarinda dalam penelitian ini menggunakan data time series curah hujan bulanan dengan kesimpulan pengunaan data yang sedikit memiliki tingkat akurasi lebih tinggi dibandingkan
2
menggunakan data yang banyak yaitu menghasilkan nilai RMSE terkecil 7368 dan MAE terkecil 539 (Fauziah et al 2016)
Selain peramalan yang hanya menggunakan data time series dari data yang akan diramalkan juga terdapat penelitian sebelumnya yang menggunakan faktor - faktor yang mempengaruhi dari data yang akan diramalkan Salah satunya yaitu penelitian dengan menggunakan metode Clusterwise Linear Regression (CLR) Penelitian ini menggunakan data bulanan pada delapan stasiun cuaca di kota Victoria Australia Peramalan curah hujan pada penelitian ini menggunakan faktor yang mempengaruhi yaitu suhu maksimum suhu minimum penguapan tekanan uap dan radiasi matahari Hasil penelitian ini terbukti dapat melakukan peramalan curah hujan dengan hasil yang cukup baik yaitu dengan nilai RMSE terkecil 197 dan MAE terkecil 129 (Bagirov et al 2017)
Berdasarkan paparan yang telah dijelaskan penulis memiliki ide untuk melakukan penelitian dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Pada metode ini dilakukan klasterisasi data untuk membangun subinterval dengan menggunakan metode fuzzy C-means (LinYang 2009) Dari proses hasil klasterisasi akan digunakan untuk membagi data semesta yang selanjutnya menghasilkan fuzzy set atau himpunan fuzzy yang menggambarkan fitur data (LinYang 2009) Keunggulan dari metode fuzzy time series dengan multi faktor yaitu dengan berdasarkan pada penelitian ndash penelitian sebelumnya yang menggunakan metode tersebut yaitu penelitian prediksi harga emas dengan beberapa faktor yang mempengaruhi menggunakan metode Multi-factors High order Fuzzy Time Series Model dari hasil penelitian ini dengan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 (Wardhani et al 2015) dan penelitian peramalan Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen menggunakan metode Fuzzy Time Series Model dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 (Lin Yang 2009) terbukti menghasilkan hasil peramalan dengan tingkat akurasi yang cukup tinggi Penggunaan metode ini juga sesuai dengan curah hujan yang dipengaruhi oleh beberapa faktor yaitu kelembaban udara kecepatan angin dan suhu (Pradipta 2013) Penelitian ini diharapkan dapat memberikan hasil peramalan curah hujan yang lebih akurat dan memiliki nilai kesalahan yang lebih sedikit
12 Rumusan masalah
Berdasarkan latar belakang yang telah dipaparkan dibuatlah beberapa rumusan masalah sebagai berikut
1 Bagaimana mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Berapa tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
3
13 Tujuan
Adapun maksud dan tujuan dari penelitian ini adalah sebagai berikut
1 Mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Mengetahui tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
14 Manfaat
Adapun manfaat dari penelitian ini adalah sebagai berikut
1 Bagi Badan Meteorologi dan Geofisika (BMKG) untuk dapat memberikan peramalan curah hujan yang lebih akurat dari sebelumnya
2 Bagi Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian untuk dapat membuat Kalender tanam (KATAM) dengan menggunakan data ramalan curah hujan yang lebih akurat
3 Bagi penduduk kabupaten Malang khususnya yang bekerja pada sektor pertanian agar dapat mengoptimalkan hasil produksi dengan menyesuaikan penanaman sesuai dengan Kalender Tanam (KATAM) yang telah dibuat Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian
15 Batasan masalah
Penelitian ini dibatasi oleh hal ndash hal sebagai berikut
1 Data curah hujan kelembaban udara kecepatan angin dan suhu udara yang digunakan pada penelitian ini merupakan data berdasarkan dasarian dan hanya mencakup wilayah kabupaten Malang dan data diperoleh dari BMKG Karangkates Kabupaten Malang dengan data time series yang digunakan pada penelitian ini yaitu dari tahun 2011 - 2016
2 Model peramalan yang diterapkan adalah semua nilai yang membentuk pola dataset training dan testing diketahui nilainya
3 Perhitungan nilai tingkat kesalahan permalan menggunakan metode Mean Square Error (MSE)
16 Sistematika pembahasan
Sistematika pembahasan penelitian ditunjukkan untuk memberikan gambaran dan uraian dari penyusunan proposal yang meliputi beberapa bab sebagai berikut
BAB 1 PENDAHULUAN
Pada bab ini berisi latar belakang rumusan masalah tujuan penelitian manfaat penelitian batasan masalah sistematika pembahasan dan rencana kerja atau jadwal penelitian
4
BAB 2 LANDASAN KEPUSTAKAAN
Pada bab ini berisi tentang kajian pustaka dan dasar teori yang menjadi dasar dalam melakukan implementasi peramalan curah hujan dengan Metode High Order Fuzzy Time Series Multi Factors
BAB 3 METODOLOGI
Pada bab ini diuraikan tentang tahapan atau langkah ndash langkah yang dilakukan dalam proses penelitian tentang peramalan curah hujan dengan metode High Order Fuzzy Time Series Multi Factors Langkah ndash langkah tersebut terdiri dari tahapan penelitian teknik pengumpulan data algoritma yang digunakan lingkungan pengujian dan pengujian algoritma yang digunakan serta pengambilan kesimpulan
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan proses algoritma perhitungan manual metode High Order Fuzzy Time Series Multi Factors perancangan antar muka dan perancangan pengujian
BAB 5 IMPLEMENTASI
Pada bab ini berisi tentang penjelasan peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors bagaimana user interface dan source code dalam pengimplementasian metode ini
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini berisi tentang penjelasan proses dan hasil pengujian dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam peramalan curah hujan serta analisis dari pengujian tersebut
BAB 7 PENUTUP
Pada bab ini berisi kesimpulan yang diperoleh dari hasil pengujian dan saran ndash saran untuk pengembangan penelitian selan
5
BAB 2 LANDASAN KEPUSTAKAAN
Bab ini berisi mengenai kajian pustaka dan dasar ndash dasar teori yang akan dibahas serta digunakan untuk menunjang topik ndash topik pembahasan Pada kajian akan dibahas perbedaan antara penelitian yang telah ada dengan penelitian yang diusulkan oleh penulis Sedangkan pada dasar teori akan dibahas mengenai teori ndash teori yang digunakan pada penelitian yang diusulkan
21 Kajian Pustaka
Pada kajian pustaka disini berisi mengenai perbandingan antara penelitian yang diusulkan oleh penulis dengan penelitian sebelumnya yang relevan Perbandingan tersebut dapat dilihat padat Tabel 21
Tabel 21 Kajian Pustaka
No Judul Objek dan Input Penelitian Metode
1 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan (Irsyad Metarice 2013)
Objek Curah hujan
Input Penelitian
Data aktual curah hujan
Metode High Order Fuzzy Time Series dan Automatic Clustering
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
2 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) (Fauziah et al 2016)
Objek Curah Hujan
Input Penelitian
Data aktual curah hujan
Metode Fuzzy Time Series Chen
Nilai evaluasi
Mean Absolute Error (MAE) Root Mean of Square Error (RMSE)
3 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emas (Wardhani et al 2015)
Objek Harga Emas
Input Penelitian
Kurs Dollar hari sebelumnya
Kurs Euro hari sebelumnya
Harga Emas London hari sebelumnya
Harga Emas hari sebelumnya
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
4 Stock Markets Forecasting Based on Fuzzy Time Series Model (Lin Yang 2009)
Objek Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
6
Input Penelitian
Historical return
Historical turnover volume
Rata ndash rata selisih pergerakan harga selama lima hari
Selisih antara kekuatan bull dan bear
Indeks komposit bursa efek harian Shanghai sebelumnya
Indeks komposit bursa efek harian Shenzhen
Nilai evalusi
Average Relative Error (ARError)
5 Peramalan Curah Hujan Menggunakan Metode High Order Fuzzy Time Series Multi Factors
Objek Curah hujan
Input Penelitian
Suhu
Kelembaban
Kecepatan angin
Curah hujan
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Square Error (MSE)
Sumber (Irsyad Metarice 2013) (Fauziah et al 2016) (Wardhani et al 2015) dan (Lin Yang 2009)
Pada penelitian yang pertama yaitu penelitian yang dilakukan oleh Muhammad Irsyad dan Sonya Metarice pada tahun 2013 dengan objek penelitian yang diramalkan adalah curah hujan Inputan yang digunakan pada penelitian ini merupakan data aktual curah hujan bulanan Metode yang digunakan penelitian ini adalah Automatic Clustering dan High Order Fuzzy Time Series Pada penelitian ini metode Automatic Clustering digunakan untuk membangun interval dan High Order Fuzzy Time Series untuk melakukan peramalan curah hujan Kesimpulan yang diperoleh dari penelitian ini yaitu metode ini dapat diterapkan untuk permalan curah hujan dan hasil evaluasi menggunakan metode Mean Absolute Percentage Error(MAPE) dari beberapa bercobaan dapat diperoleh nilai kesalahan sebesar 437 Berdasarkan dari hasil nilai kesalahan tersebut maka tingkat kesalahan data pada permalan ini termasuk rendah
Pada tahun 2016 Normalita Fauziah Sri Wahyuningsih dan Yuki Novia Nasution melakukan penelitian dengan objek penelitian curah hujan di kota Samarinda Inputan yang digunakan pada penelitian berupa data aktual bulanan curah hujan di kota Samarinda Metode yang digunakan pada penelitian ini adalah Fuzzy Time Series Chen dengan dalam pembentukkan panjang interval berbasis rata ndash rata atau average based Pada penelitian ini permalan curah hujan terbaik yaitu dengan menggunkan data sebanyak 29 data dengan menghasilkan tingkat nilai kesalahan terkecil yaitu dengan metode Root Mean of Squared Error (RMSE) sebesar 7368 dan metode Mean Absolute Error (MAE) sebesar 539 Pada
(Lanjutan) Tabel 21 Kajian Pustaka
7
penelitian ini disimpulkan bahwa data sebanyak 29 data memiliki tingkat kesalahan lebih kecil dibandingkan dengan menggunakan data dengan jumlah sampel yang lebih banyak
Pada penelitian selanjutnya adalah penelitian yang dilakukan oleh Dessy Kusuma Wardhani Dian Eka Ratnawati dan Budi Darma Setiawan pada tahun 2015 dengan objek penelitian yang diramalkan adalah harga emas harian Inputan yang digunakan pada penelitian ini data aktual harian harga emas indonesia harga emas london kurs dollar ke rupiah dan kurs euro ke rupiah Metode yang digunakan pada penelitian pada pembentukkan sub interval menggunakan metode fuzzy C-means dan untuk peramalan menggunakan metode High Order Fuzzy Time Series Model Hasil pada penelitian ini berdasarkan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 karena nilai error lebih kecil dari 10 menunjukkan bahwa metode ini sangat baik digunakan untuk peramalan harga emas
Pada tahun 2009 Yupei Lin dan Yiwei Yang melakukan penelitian dengan objek yang diramalkan adalah indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen Data input penelitian ini meliputi historical return historical turnover volume dan rata ndash rata selisih pergerakan harga selama lima hari serta selisih antara kekuatan bull dan bear Dalam penelitian ini pembentukan subinterval yang berfungsi dalam pendefinisian himpunan fuzzy dilakukan dengan menggunakan klasterisasi fuzzy C-means Hasil dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 Dalam hal ini membuktikan bahwa penelitian dapat menghasilkan peramalan yang cukup baik karena memiliki nilai ARError kurang dari 5
Pada penelitian ini membahas tentang peramalan curah hujan dasarian menggunakan metode High Order Fuzzy Time Series Multi Factors Terdapat empat inputan yang juga dijadikan sebagai variabel dalam penelitian ini yaitu kelembaban udara kecepatan angin suhu udara dan curah hujan Pembentukan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan klasterisasi fuzzy C-means Penelitian ini menggunakan high order fuzzy logic relationship yaitu membentuk fuzzy logic relationship berdasarkan data dalam kurun waktu beberapa dasarian sebelum dasarian yang akan diramal Pada penelitian ini dalam melakukan perhitungan nilai error untuk mendapatkan hasil evaluasi menggunakan metode Mean Square Error (MSE)
22 Dasar Teori
Pada dasar teori disini dijelaskan tentang metode ndash metode yang digunakan pada penelitian ini yang meliputi peramalan curah hujan data time series logika fuzzy fuzzy C-means metode peramalan dengan Fuzzy Time Series High Order Fuzzy Time Series Multi Factors dan metode perhitungan keakuratan metode peramalan
8
221 Peramalan
Terdapat beberapa definisi tentang peramalan menurut Kamus Besar Bahasa Indonesia (KBBI) yaitu
a Peramalan merupakan prediksi rencana atau estimasi kejadian masa depan yang tidak pasti (KBBI)
b Peramalan adalah sebagai penggunaan teknik ndash teknik statistik dalam bentuk gambaran masa depan berdasarkan pengolahan angka ndash angka yang terjadi pada masa lalu (Buffa et al1996)
c Peramalan adalah bagian internal dari pengambilan keputusan manajemen (Makridakis et al1999)
Berdasarkan beberapa definisi diatas dapat disimpulkan bahwa peramalan merupakan tindakan apa yang akan terjadi di masa mendatang peramalan diperlukan untuk mengambil sebuah keputusan Dalam pengambilan keputusan harus diambil dari pertimbangan ndash pertimbangan yang ada Oleh karena itu peramalan sangat penting hubungannya dengan pengambilan keputusan sehingga kejadian di masa yang akan datang dapat dipersiapkan tindakan apa yang perlu dilakukan
222 Curah hujan
Curah hujan merupakan salah satu faktor penting yang mempengaruhi perubahan iklim suatu wilayah (Mirawati et al 2013) Salah satu contoh kasus nyata yaitu terjadinya perubahan iklim secara tiba ndash tiba atau bisa disebut dengan cuaca ekstrim Curah hujan dapat dijelaskan dengan air hujan yang terkumpul pada suatu wadah datar dimana air hujan tersebut tidak meresap tidak menguap dan tidak mengalir sehingga dapat diukur ketinggiannya Sebagai contoh curah hujan 1 (satu) milimeter dapat dijelaskan dalam suatu wadah datar dengan luas satu meter persegi tertampung air dengan ketinggian sekitar satu milimeter atau tertampung air sebanyak satu liter Metode dalam mendapatkan data curah hujan adalah dengan menggunakan penakar hujan yang kemudian diukur dengan satuan milimeter (mm) (User2015) Intensitas curah hujan dapat dikategorikan ringan jika dibawah 20mm dalam 24 jam dikategorikan lebat jika di atas 50mm dan dikategorikan sedang jika selang 20mm hingga 50mm (User 2015)
Curah hujan mempengaruhi beberapa sektor diantarannya sektor komunikasi dimana penggunaan frekuensi diatas 10 GHz dapat terkena redaman hujan (Mauludiyanto et al 2009) Akan tetapi curah hujan paling berpengaruh terhadap sektor pertanian Hal ini terbukti bahwa sebagian besar terjadinya penurunan produktifitas dan gagal panen di sektor pertanian adalah terjadinya curah hujan yang tinggi
Tinggi dan rendahnya curah hujan dipengaruhi oleh beberapa faktor yaitu kelembaban udara temperatur dan kecepatan angin Pada tahun 2013 Nur Suri Pradipta Pasukat Sembiring dan Pengarapen Bangun melakukan penelitian mengenai pengaruh curah hujan di kota Medan (Pradipta et al 2013)
9
Berdasarkan penelitian tersebut faktor yang mempengaruhi dan digunakan dalam peramalan curah hujan yaitu
1 Kelembaban udara
Kelembaban udara adalah banyaknya kandungan uap air di atmosfer Udara atmosfer adalah campuran dari udara kering dan uap air selain itu kelembaban udara merupakan komponen cuaca yang mempunyai peranan sangat penting bagi stabilitas kehidupan organisme di bumi maupun unsur-unsur cuaca yang lain (Forest 2015) Kelembaban udara berpengaruh terhadap curah hujan Hal ini didukung penelitian oleh (Sipayung et al 2013) yang menyatakan Kelembaban udara berpengaruh positif terhadap curah hujan
2 Kecepatan angin
Kecepatan angin merupakan kecepatan udara yang bergerak secara horizontal pada ketinggian 2 meter diatas tanah Dalam hal ini faktor yang menentukan kecepatan angin adalah perbedaan tekanan udara antara asal dan tujuan angin Kecepatan angin berpengaruh positif terhadap curah hujan artinya jika kecepatan angin tinggi maka curah hujan akan tinggi (Pradipta et al2013)
3 Suhu udara
Suhu udara merupakan ukuran energi kinetik rata ndash rata dari pergerakan molekul ndash molekul Suhu udara berpengaruh negatif terhadap curah hujan artinya jika suhu udara tinggi maka curah hujan akan berkurang (Pradipta et al2013)
223 Data time series
Data time series adalah data statistik yang telah dihimpun dari masa lampau hingga sekarang dan dapat digunakan sebagai acuan dalam melakukan peramalan terhadap data yang akan datang (Wiyanti amp Pulungan 2012) Data time series juga dapat didefinisikan sebagai sebuah kegiatan mengamati data statistik dimana terdapat korelasi (dependensi) antar datanya sehingga data yang sekarang sedang diamati memiliki ketergantungan dengan satu atau lebih data pengamatan sebelumnya (Mirawati et al 2013)
Terdapat dua teknik prediksi yang menggunakan basis data time series yaitu teknik model matematika statistik dan berdasarkan kecerdasan buatan (Wiyanti amp Pulungan 2012) Analisa time series sendiri memiliki beberapa peruntukan salah satunya digunakan dalam melakukan peramalan untuk masa yang akan datang Dalam penggunaan data time series merupakan salah satu proses peramalan kuantitatif dimana berdasar data kuantitatif masa lampau yang direpresentasikan dalam bentuk angka atau nilai (Mirawati et al 2013)
10
224 Logika Fuzzy
Pada tahun 1965 Prof Lotfi A Zadeh memperkenalkan teori logika fuzzy Logika fuzzy merupakan suatu komponen soft computing dan juga suatu cara yang tepat untuk memetakan suatu ruang input ke dalam ruang output Antara ruang input dan ruang output terdapat black box yang berfungsi memetakan input ke ruang output yang sesuai Dasar logika fuzzy adalah teori fuzzy set Pada teori fuzzy set peranan derajat keanggotaan sebagai penentu keberadaan elemen dalam suatu himpunan sangatlah penting Oleh karena itu derajat keanggotaan menjadi ciri utama dalam penalaran dengan logika fuzzy Logika fuzzy bekerja dengan menggunakan derajat keanggotan dari sebuah nilai yang kemudian digunakan untuk menentukan hasil yang ingin dihasilkan berdasarkan atas kriteria yang telah ditentukan (Kusumadewi 2003)
Berikut adalah beberapa alasan digunakannya logika fuzzy (Kusumadewi 2002)
1 Logika fuzzy sangat fleksibel
2 Konsep logika fuzzy mudah dimengerti dan dipahami
3 Logika fuzzy memiliki toleransi terhadap data ndash data yang homogen dan data ndash data yang kurang tepat
4 Logika fuzzy didasari pada bahasa alami atau bahasa sehari - hari sehingga mudah dimengerti
5 Logika fuzzy dapat bekerjasama dengan teknik ndash teknik kendali secara konvensional
6 Logika fuzzy mampu membangun dan mengaplikasikan pengalaman ndash pengalaman para pakar secara langsung tanpa harus melalui tahap atau proses pelatihan
A Himpunan Fuzzy
Himpunan fuzzy atau fuzzy set merupakan perluasan himpunan tegas atau himpunan crisp jadi fungsi karakteristik mencakup bilangan real pada interval [01] Dalam definisi lain himpunan fuzzy adalah suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dalam suatu variabel fuzzy Keanggotaan fuzzy berbeda dengan probabilitas jika keanggotaan fuzzy pada setiap fungsi karakteristik memberikan suatu pendapat atau keputusan sedangkan probabilitas menunjukan seberapa besar nilai kebenaran dalam fungsi karakteristik tersebut Contohnya yaitu nilai keanggotaan suatu himpunan fuzzy umur muda 09 berarti nilai dalam himpunan tersebut memiliki kemungkinan 90 anggotanya berumur muda dan 10 diharapkan tidak muda Dalam himpunan fuzzy suatu bilangan bisa memiliki dua keanggotaan sekaligus Himpunan fuzzy memiliki dua attribut (Kusumadewi2003)
11
1 Linguistik merupakan penamaan suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami misalnya muda parobaya tua
2 Numeris merupakan suatu nilai (angka) yang menunjukkan ukuran dari suatu
variabel seperti 402550 dan sebagainya
B Fungsi Keanggotaan
Fungsi keanggotaan adalah suatu kurva yang menunjukkan pemetaan titik ndash titik input data ke dalam derajat keanggotaannya yang memiliki subinterval antara 0 sampai 1 (Kusumadewi Purnomo 2004) Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi Ada beberapa fungsi keanggotaa yang dapat digunakan
1 Fungsi representasi linear
Pada fungsi representasi linear pemetaan input ke derajat keanggotaannya digambarkan sebagai suatu garis lurus Bentuk ini paling sederhana dan menjadi pilihan yang baik untuk mendekati suatu konsep yang kurang jelas Keadaan linear himpunan fuzzy terdiri dari dua keadaan yaitu keadaan linear naik dan keadaan linear turun Pada keadaan linear naik kenaikan himpunan dimulai pada nilai domain yang memiliki nilai derajat keanggotaan nol bergerak ke kanan menuju ke nilai domain yang memiliki derajat keanggotaan yang lebih tinggi seperti yang ditunjukkan Gambar 21 Persamaan fungsi keanggotaan pada representasi linear naik ditunjukkan oleh Persamaan 21
Fungsi Keanggotaan
120583(119909) = 0
(119909 minus 119886)(119887 minus 119886)1
119909 le 119886 119886 le 119909 le 119887119909 ge 119887
(21)
b a 0
1
Gambar 21 Representasi linear naik
Sumber Kusumadewi (2002)
120583(119909)
12
Pada keadaan linear turun berbanding terbalik dengan keadaan linear naik Garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi pada sisi kiri kemudian bergerak menurun ke nilai domain yang memiliki derajat keanggotaan lebih rendah yang ditunjukkan Gambar 22 Persamaan fungsi keanggotaan pada representasi linear turun ditunjukkan oleh Persamaan 22
Fungsi Keanggotaan
120583(119909) = (119887 minus 119909)(119887 minus 119886)0
119886 le 119909 le 119887
119909 ge 119887 (22)
2 Fungsi representasi kurva segitiga
Representasi kurva segitiga pada dasarnya merupakan gabungan antara 2 garis linear yaitu linear naik dan linear turun Fungsi representasi kurva segitiga ditandai oleh adanya tiga parameter abc yang akan menentukan koordinat x dari tiga sudut seperti ditunjukkan pada Gambar 23 Persamaan fungsi keanggotaan pada representasi kurva segitiga ditunjukkan oleh Persamaan 23
b a 0
1
Sumber Kusumadewi (2002)
Gambar 22 Representasi linear turun
120583(119909)
c a 0
1
b
Sumber Kusumadewi (2002)
Gambar 23 Representasi kurva segitiga
120583(119909)
13
Fungsi Keanggotaan
120583(119909) =
0 (119909 minus 119886)(119887 minus 119886) (119887 minus 119909)(119888 minus 119887)
119909 le 119886 119886119905119886119906 119909 ge 119888
119886 le 119909 le 119887 119887 le 119909 le 119888
(23)
225 Metode Fuzzy C-means
Fuzzy C-means (FCM) pertama kali diperkenalkan oleh Dunn dan dikembangkan oleh Bezdek yang banyak digunakan dalam pengenalan pola Metode ini merupakan pengembangan dari metode non-hierarkhi K-Means Cluster selanjutnya dilakukan iterasi sampai mendapatkan keanggotaan kelompok tersebut (Klawon 2001)
FCM merupakan salah satu algoritma fuzzy clustering dan juga teknik klasterisasi dimana tiap data ditentukan oleh derajat keanggotaanya Tujuan penggunaan algoritma FCM yaitu untuk menemukan pusat cluster atau centroid dengan meminimumkan fungsi objektif (Bazdek 1984) Ouput dari FCM bukan merupakan fuzzy inference system melainkan deretan pusat cluster dan beberapa derajat keanggotaan untuk setiap titik data Hasil output ini dapat digunakan untuk membangun suatu fuzzy inference system Berikut adalah langkah ndash langkah dari FCM (Kusumadewi 2004)
1 Langkah pertama menentukan jumlah cluster (c ge 2) pembobot (infin gt 119908 gt1) (Bazdek 1984) maksimum iterasi (maxIter) error minimum yang diharapkan yaitu nilai positif yang sangat kecil (120585) fungsi objektif awal (P0 = 0) iterasi awal dideklarasikan 1
2 Langkah kedua memasukkan data X yang akan diklasterisasi berupa matriks berukuran m x n (m = jumlah sampel data n = attribut setiap data) Contoh Xij = data sampel ke-i (i = 1234m) attribu ke-j (j=1234n)
3 Langkah ketiga yaitu dengan membuat bilangan random microik i = 1234n dan k = 123c (n = jumlah sampel pada data c = jumlah cluster yang akan dibentuk) sebagai elemen ndash elemen matriks partisi awal Untuk bilangan penyusun matriks partisi awal dihitung dihitung jumlahnya setiap kolom yang ditunjukkan pada pada Persamaan 24 (Kusumadewi 2004)
119876119896 = sum 120583119894119896119888119896=1 (24)
Dimana
119876119896 = jumlah bilangan pada kolom k
120583119894119896 = bilangan random pada baris i kolom k
119888 = jumlah kolom
14
Selanjutnya untuk menghitung derajat keanggotaan awal dengan melakukan normalisasi pada matiks partisi pada normalisasi dilakukan menggunakan Persamaan 25 (Kusumadewi 2004)
120583119894119896 = 120583119894119896119876119896 (25)
4 Langkah keempat melakukan perhitungan cluster ke-k Vkj dengan k = 1234c dan j = 1234m Perhitungan pusat cluster ditunjukkan pada Persamaan 26 (Kusumadewi 2004)
119881119896119895 = sum ((120583119894119896)119908 times 119883119894119895)119899
119894=1
sum (120583119894119896)119908119899119894=1
(26)
Dimana
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
120583119894119896 = derajat keanggotaan pada data ke-i cluster ke-k
119883119894119895 = data sampel pada data ke-i attribut ke-j
119908 = pembobot
5 Langkah kelima melakukan perhitungan fungsi objektif pada iterasi ke-t P1 Perhitungan fungsi objektif ditunjukkan pada Persamaan 27 (Kusumadewi 2004)
119875119905 = sum sum ([sum (119883119894119895 minus 119881119896119895)119898119895=1
2](120583119894119896)119908)119888
119896=1119899119894=1 (27)
Dimana
119875119905 = fungsi objektif
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
6 Langkah keenam melakukan perhitungan perbaikan matriks partisi yang telah ditunjukkan Persamaan 28 (Kusumadewi 2004)
120583119894119896 = [sum (119883119894119895minus119881119896119895)119898
119895=12
]
minus1119908minus1
sum [sum (119883119894119895minus119881119896119895)119898119895=1
2]
minus1119908minus1119888
119896minus1
(28)
Dimana
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
119908 = pembobot
7 Langkah ketujuh yaitu melakukan pemerikasaan kondisi berhenti dengan kondisi sebagai berikut
a Jika (|119875119905 minus 119875119905minus1| lt 120585) atau ( t gt MaxIter) maka berhenti
b Jika tidak memenuhi t = t +1 ulangi mulai dari langkah ke-4
15
226 Metode Peramalan dengan Fuzzy Time Series
Pada tahun 1996 Chen memperkenalkan metode peramalan dengan menggunakan metode Fuzzy Time Series Metode Fuzzy Time Series memiliki perbedaan dengan metode peramalan time series biasa atau konvensional yaitu terdapat pada data yang digunakan untuk peramalan Fuzzy Time Series data yang digunakan adalah berupa fuzzy set atau himpunan fuzzy dari bilangan ndash bilangan real atas himpunan semesta yang ditentukan Jadi Fuzzy Time Series merupakan metode dengan menggunakan data berupa fuzzy set yang berasal dari bilangan real atas Universe of Discorse pada data aktual Universe of Discourse adalah himpunan semesta dari data penelitian
Berikut adalah langkah ndash langkah metode Fuzzy Time Series yang telah diperkenalkan oleh Chen terdapat enam langkah yaitu
1 Langkah pertama yaitu membagi Universe of Discourse dari bilangan aktual ke dalam subinterval dengan jumlah interval yang sama Perhitungan Universe of Discourse ditunjukkan pada Persamaan 29 (Chen 1996)
119880 = [119863119898119894119899 minus 1198631 119863119898119886119909 + 1198632] (29)
Dimana
119880 = Universe of Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
1198631 dan 1198632 = bilangan positif yang ditentukan oleh user untuk menentukan Universe of Discourse dari himpunan data sampel
2 Langkah kedua adalah mendefinisikan fuzzy set dari Universe of Discourse (U) menjadikan A1 A2 A3 An ke dalam fuzzy set dengan nilai linguistik sesuai dengan keadaan U Selanjutnya mendefinisikan fuzzy set tersebut ditunjukkan pada Persamaan 210 (Chen 1996)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (210)
1198602 =11989121
1199061+
11989122
1199062+
11989123
1199063+ ⋯ +
1198912119896
119906119896
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
Dimana 119891119894119895120598 [01] 1 le 119894 le 119896 dan 1 le 119895 le 119898 Variabel 119891119894119895 menunjukkan
derajat keanggotaan dari subinterval 119906119895 dari fuzzy set 1198601 Pada konsep ini
Chen menggunakan nilai linguistik 1198601 = (not many) 1198602 = (not too many) 1198603= (many) 1198604 = (many many) 1198605 = (very many) 1198606 = (too many) 1198607= (too many many) Kemudian nilai linguistik tersebut dimasukkan ke tiap fuzzy set Dari U tersebut dapat dibangun fuzzy set sebagai berikut
16
1198601 = 1
1199061+
05
1199062+
0
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198602 = 05
1199061+
1
1199062+
05
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198603 = 0
1199061+
05
1199062+
1
1199063+
05
1199064+
0
1199065+
0
1199066+
0
1199067
1198604 = 0
1199061+
0
1199062+
05
1199063+
1
1199064+
05
1199065+
0
1199066+
0
1199067
1198605 = 0
1199061+
0
1199062+
0
1199063+
05
1199064+
1
1199065+
05
1199066+
0
1199067
1198606 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
05
1199065+
1
1199066+
05
1199067
1198607 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
0
1199065+
05
1199066+
1
1199067
3 Langkah ketiga yaitu melakukan fuzzifikasi data historis proses fuzzifikasi merupakan proses merubah data aktual yang merupakan bilangan crisp ke dalam bentuk bilangan fuzzy Bilangan fuzzy yang dimaksudkan adalah dalam bentuk derajat keanggotaan Dari beberapa derajat keanggotaan yang terbentuk kemudian dipilih satu fuzzy set yang memiliki derajat keanggotaan teringgi Fuzzifikasi dinotasikan sebagai berikut jika F(t-1) berada pada fuzzy set Ak maka F(t-1) difuzzifikasikan sebagai Ak
4 Langkah keempat adalah mengidentifikasi Fuzzy Logic Relationship (FLR) FLR diidentifikasikan sebagai Ai dan F(t) difuzzifikasikan sebagai Ai rarr Aj Ai sebagai sisi kiri relationship disebut sebagai current state dan Aj sebagai sisi kanan relationship disebut next state Jika terjadi perulangan relationship maka tetap dihitung satu kali
5 Langkah kelima yaitu mengelompokkan menjadi Fuzzy Logical Relationship Group (FLRG) FLRG dibangun berdasarkan sisi kiri (current state) yang sama
6 Langkah terakhir yaitu langkah keenam adalah melakukan defuzzifikasi nilai keluaran peramalan Defuzzifikasi adalah mengubah nilai keluaran fuzzy menjadi bilangan crisp kembali sehingga diperoleh hasil akhir peramalan Defuzzifikasi didasarkan pada tiga (3) rule aturan yaitu (Chen 1996)
I Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai hanya memiliki satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj dimana nilai maksimum fungsi keanggotaanya berada pada 119906119895 maka nilai peramalan untuk n+1 adalah
nilai tengah dari 119906119895 atau didefinisikan dengan 119898119895
II Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai memiliki lebih dari satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj1 Aj2 Ajp Dimana nilai tengah untuk masing ndash masing Aj1 Aj2 Aj3 Ajp adalah mj1 mj2 mj3 mjp
maka nilai peramalan untuk n+1 adalah (mj1 mj2 mj3 mjp) p
III Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai tidak memiliki FLR pada FLRG dimana nilai maksimum fungsi keanggotaannya berada pada 119906119895
17
maka nilai peramalan untuk n+1 adalah nilai tengah dari 119906119895 atau
didefinisikan dengan 119898119895
227 Metode High Order Fuzzy Time Series Multi Factors
Metode High Order Fuzzy Time Series Multi Factors adalah metode Fuzzy Time Series (FTS) yang melibatkan beberapa faktor yang mempengaruhi peramalan dengan berdasarkan beberapa periode waktu sebelum periode yang akan diramalkan dalam proses pembentukkan Fuzzy Logical Relationship (FLR) Hasil peramalan dengan banyak faktor yang mempengaruhi dinilai lebih baik dari pada dengan hanya satu faktor yang mempengaruhi (LinYang 2009) Pada metode ini pembentukkan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan teknik klasterisasi fuzzy C-means Berikut adalah langkah ndash langkah Metode High Order Fuzzy Time Series Multi Factors (LinYang 2009)
1 Langkah pertama adalah melakukan perhitungan Universe of Discourse (U) Sebelum menghitung nilai U terlebih dulu menghitung nilai mean (rata ndash rata) sampel lalu menghitung nilai standar deviasi (120590) Mean merupakan perhitungan jumlah dari semua nilai dalam kumpulan data kemudian dibagi dengan jumlah total data untuk menghitung nilai mean ditunjukkan pada Persamaan 211 (Weisstein 2015) Standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel untuk menghitung nilai standar deviasi (120590) ditunjukkan pada Persamaan 212 (Weisstein 2015) Perhitungan U ditunjukkan pada Persamaan 213 (LinYang 2009)
119909 =sum 119909119894
119899119894=1
119899 (211)
Dimana
= mean (rata ndash rata)
119909119894 = nilai data ke-i
119899 = banyak data
120590 = radicsum (119909119894minus ) 2119899
119894=1
119899minus1 (212)
Dimana
120590 = Standar deviasi data
119880 = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590] (213)
Dimana
119880 = Universal 0f Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
18
2 Langkah kedua yaitu menentukan jumlah cluster data Proses klasterisasi bertujuan untuk membagi U kedalam beberapa subinterval Hasil perhitungan banyaknya cluster apabila bernilai pecahan maka harus dibulatkan menjadi bilangan bulat Perhitungan banyaknya cluster ditunjukkan pada Persamaan 214 (LinYang 2009)
119896 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905)minus119883(119905minus1)|119899
119905=1
119899minus1| (214)
Dimana
119896 = banyaknya jumlah cluster
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
119899 = banyaknya data sampel
119883(119905) = data pada waktu ke-t
3 Langkah ketiga yaitu melakukan pembentukan pusat cluster Pada metode ini proses klasterisasi data menggunakan fuzzy C-means (FCM) untuk mendapatkan pusat cluster sebanyak k Tahapannya U dibagi kedalam k subinterval (119863119898119894119899 1198891) (1198891 1198892) (1198892 1198893) hellip (119889119896minus1 119863119898119886119909) dimana di (i = 123k-1) merupakan titik tengah antara dua pusat cluster k subinterval didefinisikan sebagai 1199061 1199062 1199063 hellip 119906119896 Sehingga dalam hal ini subinterval
dengan panjang berbeda dapat menggambarkan struktur data kompleks dengan baik dan dapat meningkatkan peramalan dibandingkan menggunakan subinterval dengan panjang yang sama (LinYang 2009)
4 Langkah keempat yaitu melakukan pembentukan himpunan fuzzy atau fuzzy set Pada langkah ini fuzzy set direpresentasikan dengan kurva bahu Pembentukkan fuzy set ditunjukkan pada Persamaan 215 (LinYang 2009)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (215)
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
5 Langkah kelima yaitu proses fuzzifikasi Proses fuzzifikasi bertujuan untuk mengubah data sampel yang masih berupa bilangan crisp sehingga menjadi bilangan fuzzy Masing ndash masing data dihitung derajat keanggotaannya terhadap fuzzy set yang sudah terbentuk selajutnya derajat kanggotaan dihitung berdasarkan kurva bahu dan derajat keanggotaan tertinggi menunjukkan hasil fuzzifikasi data tersebut Contohnya A(t) B(t) C(t) dan D(t) dimana t= 123n merupakan time series dari faktor yang mempengaruhi serta n merupakan banyaknya data Berdasarkan pembagian subinterval masing ndash masing time series ini difuzzifikasikan Misalkan hasil dari Persamaan 215 yaitu menghitung banyak cluster dari k1 k2 k3 k4 Jadi time series difuzzifikasikan menjadi empat fuzzy time series yaitu
19
A(ti) dimana i = 1234k1
B(tj) dimana j = 1234k2
C(tp) dimana p = 1234k3
D(tq) dimana q = 1234k4 t = 123n
6 Langkah keenam yaitu melakukan pembentukkan Fuzzy Logical relationship (FLR) Data sampel sebanyak n periode dipilih sebagai data training untuk membentuk fuzzy time series model Misalkan t merupakan periode waktu yang akan diramal dengan menggunakan order ndash 3 maka tiga periode sebelum periode t adalah t-3 t-2 dan t-1 dimana t = 456n Maka FLR yang dihasilkan ditunjukkan pada Persamaan 216 dan berdasarkan persamaan tersebut maka akan membentuk sebuah kumpulan FLR dari data training (LinYang 2009)
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023)) (216)
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
Tabel 22 Fuzzy Logic Relationship
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023))
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
(119860(119905minus21198943) 119861(119905minus21198953) 119862(119905minus21199013) 119863(119905minus21199023))
(119860(119905minus11198942) 119861(119905minus11198952) 119862(119905minus11199012) 119863(119905minus21199022))
(119860(1199051198941) 119861(1199051198951) 119862(1199051199011) 119863(1199051199021)) rarr 119860(119905+11198944)
(119860(119905+119899minus71198943) 119861(119905+119899minus71198953) 119862(119905+119899minus71199013) 119863(119905+119899minus71199023))
(119860(119905+119899minus61198942) 119861(119905+119899minus61198952) 119862(119905+119899minus61199012) 119863(119905+119899minus61199022))
(119860(119905+119899minus51198941) 119861(119905+119899minus51198951) 119862(119905+119899minus51199011) 119863(119905+119899minus51199021)) rarr 119860(119905+119899minus41198944)
Sumber (LinYang 2009)
7 Langkah terakhir adalah proses Defuzzifikasi Berdasarkan langkah sebelumnya maka dapat diambil hasil fuzzy ke- H yaitu yang digunakan sebagai data testing atau data uji seperti yang ditunjukkan pada Persamaan 217 (LinYang 2009)
(119860(119867minus31198943) 119861(119867minus31198953) 119862(119867minus31199013) 119863(119867minus31199023)) (217)
(119860(119867minus21198942) 119861(119867minus21198952) 119862(119867minus21199012) 119863(119867minus21199022))
(119860(119867minus11198941) 119861(119867minus11198951) 119862(119867minus11199011) 119863(119867minus11199021)) rarr 119860(1198671198944)
20
Faktor ndash faktor di ruas kiri pada Persaman 217 dibandingkan satu per satu dengan FLR data training yang sudah dicatat sebelumnya pada Tabel 22 membandingkannya yaitu dengan cara menghitung nilai absolut dari selisih antara pangkat bawah kedua faktor pada posisi yang sama di FLR Terdapat 12 fuzzy set di ruas kiri pada masing ndash masing FLR sehingga dari hasil perbandingan diperoleh 12 nilai absolut yang kemudian dijumlahkan untuk mendapat total selisihnya Jadi jika total selisih lebih kecil dari threshold yang ditentukan maka FLR tersebut dinyatakan cocok (LinYang 2009)
Selanjutnya jika FLR menemukan N pasangan yang cocok pada Tabel 22 maka N faktor di ruas kanan dari N FLR ini mendasari peramalan fuzzy set A() yang mana jumlah dari setiap fuzzy set pada umumnya berbeda Untuk peramalan dengan fuzzy set ditunjukkan pada Tabel 23 (LinYang 2009)
Tabel 23 Peramalan fuzzy set
Ruas Kanan A(1) A(2) A(3) A(k1)
Pusat cluster c1 c2 c3 ck1
Frekuensi f1 f2 f3 fk1
Sumber (Lin Yang 2009)
Berdasarkan Tabel 23 dengan menggunakan metode centroid untuk melakukan proses defuzzifikasi Proses defuzzifikasi dapat ditunjukkan pada Persamaan 218 (LinYang 2009)
119903119867 =sum 119888119894times 119891119894
1198961119894=1
sum 119891119894119896119894119894=1
(218)
Dimana
119903119867 = hasil (result) peramalan data ke-H
119888119894 = pusat cluster i dimana A(i) adalah ruas kanan dari FLR hasil proses pencocokan
119891119894 = frekuensi banyaknya muncul A(i) pada saat proses pencocokan
228 Perhitungan keakuratan metode peramalan
Dalam perencanaan peramalan tentu menginginkan hasil ramalan yang tepat atau paling tidak hampir mendekati sehingga rencana yang dibuat menjadi rencana yang realistis Keakuratan atau ketepatan merupakan yang menjadi kriteria performance suatu metode peramalan Keakuratan tersebut dapat dinyatakan sebagai kesalahan peramalan (forecast error) Semaikin kecil nilai kesalahan peramalan maka semaikin tinggi keakuratan metode peramalan yang digunakan dan sebaliknya semakin tinggi nilai kesalahan maka semakin rendah keakuratan metode peramalan yang digunakan
Mean Square Error (MSE) adalah salah satu metode yang digunakan untuk menghitung nilai akurasi atau keakuratan dari metode yang digunakan sebagai peramalan atau prediksi MSE merupakan perhitungan pangkat dua dari selisih
21
antara nilai data hasil peramalan dengan nilai data aktual dan kemudian dibagi dengan banyaknya data yang telah diramalkan Pada penentuan nilai evaluasi memilih menggunakan metode MSE karena metode ini dapat menunjukan hasil skala kemiripan antara hasil data peramalan dengan data aktual Berikut merupakan metode Mean Square Error (MSE) yang ditunjukan pada Persamaan 219 (Wang Chen 2009)
119872119878119864 = sum (119865119905minus119860119905)2119899
119894=1
119899 (219)
Dimana 119872119878119864 = nilai Mean Square Error Rate 119860119905 = nilai aktual pada data ke-t 119865119905 = nilai hasil peramalan untuk data ke-t n = banyaknya data
22
BAB 3 METODOLOGI
Pada bab ini akan dibahas mengenai metode yang digunakan beserta tahap ndash tahap pengerjaan penelitian skripsi dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Penilitian ini digolongkan sebagai penelitian implementatif dengan pendekatan perancangan (design)
Metode penelitian ini meliputi studi literatur pengumpulan data perancangan implementasi pengujian dan analisis pengambilan kesimpulan Berikut adalah alur dari metode penelitian dapat ditunjukkan pada Gambar 31
31 Studi Literatur
Pada tahap studi literatur penelitian ini bertujuan untuk mempelajari literatur dan konsep dari beberapa informasi dan pustaka yang berkaitan dengan penelitian ini Literatur dan sumber ilmu dari penelitian ini diperoleh dari internet buku dan bimbingan oleh dosen pembimbing Adapun literatur yang dipelajari yaitu tentang curah hujan serta faktor ndash faktor yang mempengaruhinya dan metode High Order Fuzzy Time Series Multi Factors
Studi Literatur
Pengumpulan Data
Perancangan
Implementasi
Pengujian dan Analisis
Kesimpulan dan Saran
Gambar 31 Diagram blok metodologi penelitian
23
32 Pengumpulan Data
Pada tahap pengumpulan penelitian ini sumber data yang diperoleh yaitu dari Badan Meteorologi Klimatologi dan Geofisikia (BMKG) Stasiun Klimatologi Kelas III Karangkates Kabupaten Malang Data yang diperoleh untuk peramalan curah hujan yaitu data aktual time series (2011 - 2016) Data yang digunakan dalam bentuk dasarian yaitu dalam rentang waktu sepuluh hari sehingga dalam satu bulan dibagi menjadi tiga dasarian
Dasarian pertama yaitu pada tanggal 1 sampai dengan 10
Dasarian kedua yaitu pada tanggal 11 sampai dengan 20
Dasarian ketiga yaitu pada tanggal 21 sampai dengan akhir bulan
Pada penelitian ini data curah hujan dalam satuan milimeter (mm) kelembaban dalam persen () suhu udara dalam satuan celsius (˚C) kecepatan angin dalam satuan kilometer per jam (kmjam)
33 Perancangan
Pada tahap perancangan penelitian ini bertujuan untuk mengetahui rancangan ndash rancangan yang merupakan langkah yang dilakukan saat melakukan tahap implementasi Pada tahap ini terdapat beberapa perancangan yaitu perancangan proses yang berisi tahapan ndash tahapan proses metode High Order Fuzzy Time Series Multi Factors perhitungan manual yang merupakan manualisasi dari metode yang digunakan pada penelitian ini perancangan antar muka atau user interface yang berisi gambaran kasar dari tampilan antar muka prototype aplikasi yang nantinya diterapkan pada tahap implementasi selanjutnya adalah perancangan pengujian yang berisi rancangan ndash rancangan pengujian metode yang digunakan untuk mengetahui berapa tingkat kesalahan atau error yang dimiliki metode pada penelitian ini dalam melakukan peramalan curah hujan
34 Implementasi
Pada tahap implementasi peneltian ini dilakukan sesuai dengan perancangan yang telah dibuat pada tahapan perancangan sebelumnya Implementasi dari metode High Order Fuzzy Time Series Multi Factors dilakukan menggunakan bahasa pemrograman java serta Integrated Development Environment (IDE) yang digunakan adalah Netbeans Sehingga nantinya hasil dari tahap ini berupa prototype aplikasi dari implementasi metode High Order Fuzzy Time Series Multi Factors untuk peramalan curah hujan
35 Pengujian dan Analisis
Pada tahapan penelitian pengujian ini diperlukan perangkat lunak dan perangkat keras agar pengujian dari hasil implementasi dapat berjalan dengan baik maka pengujian perangkat lunak dijalankan pada laptop ataupun PC (Personal Computer) dengan spesifikasi sebagai berikut
24
1 Prosesor Intel Core i3
2 Memory RAM 8 Gigabytes
3 Sistem Operasi menggunakan Windows 7 64bit
4 Hardisk dengan kapasitas 500 GB
5 Netbeans 81 JDK 7
Pengujian hasil peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors yaitu menggunakan metode Mean Square Error (MSE) Dimana rumus pengujian sesuai dengan Persamaan 219 Dalam pengujian menggunakan metode ini semakin kecil nilai MSE maka semakin tinggi tingkat akurasi hasil peramalan tersebut Pada penelitian ini untuk keperluan pengujian dari proses implementasi dilakukan empat pengujian yaitu pengujian terhadap perbedaan nilai order pengujian terhadap perbedaan nilai threshold pengujian terhadap data training untuk mengetahui pengaruhnya terhadap nilai MSE dan pengujian validasi sistem untuk mengetahui bahwa hasil implementasi metode High Order Fuzzy Time Series Multi Factors dapat melakukan peramalan
36 Kesimpulan dan Saran
Pada pengambilan kesimpulan akan dilakukan apabila semua tahapan ndash tahapan penelitian sudah dilakukan yaitu yang meliputi perancangan implementasi dan pengujian dan analisis telah selesai dilakukan Kesimpulan merupakan tahapan dimana semua rumusan masalah yang sudah ditetapkan sebelumnya dapat terjawab semua Selanjutnya pada saran merupakan berkenaan dengan hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
25
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan yang nantinya digunakan sebagai dasar dalam tahap implementasi Hal yang dibahas meliputi perancangan proses perhitungan manual perancangan pengujian dan perancangan antar muka
41 Perancangan Proses
Pada perancangan proses ini berisi mengenai tahapan ndash tahapan dari metode yang digunakan yaitu metode High Order Fuzzy Time Series Multi Factors Pada penelitian ini melibatkan faktor ndash faktor yang mempengaruhi curah hujan yaitu suhu udara kelembaban udara dan kecepatan angin Data time series dari curah hujan merupakan faktor utama dalam proses peramalan pada penelitian ini Inputan pada peneltian ini yaitu data time series curah hujan serta faktor ndash faktor yang mempengaruhinya Order yang digunakan pada metode ini merupakan order lebih dari satu oleh karena itu disebut dengan High Order Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Berikut merupakan diagram alir dari proses peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors yang ditunjukkan pada Gambar 41 dan Gambar 42
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1)
Mulai
Data curah hujan suhu kelembaban kecepatan angin jmlh_Banyakdata jmlh_Faktor
Universe_of_Discourse
A
Jumlah_Cluster
26
411 Proses perhitungan Universe of Discourse
Pada perhitungan Universe of Discourse harus sudah dilakukan inputan data agar dapat memulai tahapan perhitungan Tahapan dari proses perhitungannya yaitu pada langkah pertama dilakukan perhitungan nilai mean (rata ndash rata) sesuai dengan Persamaan 211 Setelah mendapatkan nilai mean dapat dilakukan perhitungan untuk mencari nilai standar deviasi sesuai dengan Persamaan 212 Selanjutnya dicari nilai terkecil (119863119898119894119899) dan nilai terbesar (119863119898119886119909) Setelah menyelesaikan tahap ndash tahap tersebut dapat dilakukan perhitungan untuk
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2)
A
Perhitungan Pusat Cluster
Fuzzifikasi
Pembentukan Fuzzy Logical Relationship
Defuzzifikasi
Nilai hasil peramalan
Berhenti
Pembentukan Subinterval dan Fuzzy set
27
mencari Universe of Discourse sesuai dengan Persamaan 213 Berikut merupakan diagram alir dari proses perhitungan Universe of Discourse yang ditunjukkan pada Gambar 43
Perhitungan Universe of Discourse
Mulai
Min_dan_Max
mean
standar_deviasi
for i = 0 to jmlh_Faktor-1
i
hsl_uMin ke i = hsl_min ke i ndash hsl_stdev ke i
hsl_uMax ke i = hsl_max ke i + hsl_stdev ke i
hsl_uMin hsl_uMax
Berhenti
Gambar 43 Diagram alir proses perhitungan Universe of Discourse
28
4111 Proses perhitungan Mean
Pada proses perhitungan mean merupakan nilai rata ndash rata dari setiap faktor dimana nilai mean ini nantinya dibutuhkan untuk melakukan proses perhitungan standar deviasi Berikut merupakan diagram alir dari proses perhitungan mean yang ditunjukkan pada Gambar 44
mean
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
tmp_jmlh = 0
tmp_jmlh = tmp_jmlh + data ke ij
j
hsl_mean ke i = tmp_jmlhjmlh_DataTraining
i
hsl_mean
Berhenti
Gambar 44 Diagram alir proses perhitungan mean
29
4112 Proses perhitungan standar deviasi
Pada proses perhitungan standar deviasi dapat dilakukan setelah mendapatkan nilai mean dari setiap data sesuai proses sebelumnya Berikut merupakan diagram alir dari proses perhitungan standar deviasi yang ditunjukkan pada Gambar 45
standar_deviasi
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
result = 0
result = result + (data ke ij ndash mean ke i)2
j
hsl_stdev ke i = radicresult
jmlh_DataTrainingminus1
i
hsl_stdev
Berhenti
Gambar 45 Diagram alir proses perhitungan standar deviasi
30
4113 Proses perhitungan nilai Dmin dan Dmax
Pada proses perhitungan ini merupakan proses perhitungan untuk mencari nilai terkecil dan terbesar dari setiap faktor data Setelah mendapat nilai terkecil dan terbesar maka data dilakukan proses perhitungan Universe of Discourse Berikut merupakan diagran alir dari proses perhitungan nilai Dmin dan Dmax yang ditunjukkan pada Gambar 46
Gambar 46 Diagram alir perhitungan nilai Min dan Max
ya
ya
tidak
tidak
Min_dan_Max
Mulai
for i = 0 to jmlh_Faktor-1
besar = data ke i0
kecil = data ke i0
for j=0 to jmlh_DataTraining
data ke ij gt besar
besar = data ke ij
data ke ij lt kecil
kecil = data ke ij
j
hsl_max ke i = besar
hsl_min ke i = kecil
i
hsl_max hsl_min
Berhenti 1
1
2
2
3
4
4
5
5
3
31
412 Proses perhitungan jumlah cluster
Pada proses perhitungan jumlah cluster memiliki masukkan proses Dmin dan Dmax
dari proses perhitungan sebelumnya Pada proses ini terdapat perhitungan nilai dari selisih setiap data Pada perhitungan jumlah cluster sesuai dengan Persamaan 214 Berikut merupakan langkah ndash langkah perhitungan jumlah cluster yang ditunjukkan pada Gambar 47
jumlah_Cluster
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to (jmlh_DataTraining-1)
Berhenti
hsl_max hsl_min
selisih = 0
selisih = selisih + |data ke ij ndash data ke i (j+1)|
j
jmlh_Cluster ke i = |ℎ119904119897_119898119894119899 119896119890 119894minusℎ119904119897_119898119886119909 119896119890 119894|
119904119890119897119894119904119894ℎ
119895119898119897ℎ_119863119886119905119886119879119903119886119894119899119894119899119892minus1
i
jmlh_Cluster
Gambar 47 Diagram alir proses perhitungan jumlah cluster
32
413 Proses perhitungan pusat cluster
Pada proses perhitungan pusat cluster ini diperlukan beberapa variabel yang harus dideklarasikan terlebih dahulu yaitu nilai bobot fungsi objektif nilai iterasi awal nilai iterasi maksimum dan error terkecil Perhitungan subinterval ini menggunakan metode fuzzy C-means yang diawali dengan pencarian pusat cluster terlebih dahulu Berikut merupakan langkah ndash langkah perhitungan subinterval yang ditunjukkan pada Gambar 48 Gambar 49 Gambar 410 Gambar 411 Gambar 412
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1)
Perhitungan pusat cluster
Mulai
jmlh_Cluster
for i = 0 to jmlh_Faktor-1
Deklarasi bobot selisih_f_objektif
iter_maksimum error_min
Pembentukan Matriks partisi faktor A jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor A
for iter = iter to iter_maksimum
A
i == 0
Perhitungan pusat_cluster1 faktor A
B C D
tidak
ya
33
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2)
ya
tidak
tidak
ya
Perhitungan f_objektif faktor A
A B C D
Perhitungan selisih_f_objektif faktor A
Perbaikan matriks partisi faktor A
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster1 faktor A
Iter = iter_maksimum
iter
i == 1
Pembentukan Matriks partisi faktor B jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor B
for iter = iter to iter_maksimum
F A G E
34
tidak
tidak
ya
A E F G
Perhitungan pusat_cluster2 faktor B
Perhitungan f_objektif faktor B
Perhitungan selisih_f_objektif faktor B
Perbaikan matriks partisi faktor B
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster2 faktor B
Iter = iter_maksimum
iter
i == 2
Pembentukan Matriks partisi faktor C jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor C
I A H
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3)
ya
35
tidak
tidak
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4)
ya
A H I
for iter = iter to iter_maksimum
Perhitungan pusat_cluster3 faktor C
Perhitungan f_objektif faktor C
Perhitungan selisih_f_objektif faktor C
Perbaikan matriks partisi faktor C
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster3 faktor C
Iter = iter_maksimum
iter
i == 3
Pembentukan Matriks partisi faktor D jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor D
J A K
ya
36
tidak
ya
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5)
A K J
for iter = iter to iter_maksimum
Perhitungan pusat_cluster4 faktor D
Perhitungan f_objektif faktor D
Perhitungan selisih_f_objektif faktor D
Perbaikan matriks partisi faktor D
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster4 faktor D
Iter = iter_maksimum
iter
i
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
Berhenti
37
tidak
ya
tidak
ya
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1)
414 Proses pembentukan subinterval dan Fuzzy set
Pada proses pembentukan fuzzy set atau himpunan fuzzy pada penelitian ini dapat dilakukan setelah perhitungan subinterval selesai dilakukan Nilai subniterval merupakan masukan utama pada pembentukkan fuzzy set Pembentukan fuzzy sesuai dengan Persamaan 215 Berikut merupakan langkah ndash langkah proses pembentukan fuzzy set yang ditunjukkan pada Gambar 413 dan Gambar 414
Pembentukan subinteval dan Fuzzy set
Mulai
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
for i = 0 to jmlh_Faktor-1
Menentukan batas_subintervalMinA dan
batas_subintervalMaxA
Menentukan batas_fuzzysetMinA dan batas_fuzzysetMaxA
i == 0
i == 1
Menentukan batas_subintervalMinB dan
batas_subintervalMaxB
Menentukan batas_fuzzysetMinB dan batas_fuzzysetMaxB
A C B
38
tidak
tidak
ya
ya
415 Proses Fuzzifikasi
Pada proses fuzzifikasi ini pembentukanya sesuai derajat keanggotaan pada setiap data Pada proses ini derajat keanggotaan dihitung berdassarkan fungsi keanggotaan kurva bahu Hasil dari proses ini merupakan data yang sudah difuzzifikasikan menjadi data fuzzy Berikut langkah ndash langkah dari proses fuzzifikasi ditunjukkan pada Gambar 415 dan Gambar 416
i == 2
A B C
Menentukan batas_subintervalMinC dan batas_subintervalMaxC
Menentukan batas_fuzzysetMinC dan batas_fuzzysetMaxC
i == 3
Menentukan batas_subintervalMinD dan batas_subintervalMaxD
Menentukan batas_fuzzysetMinD dan batas_fuzzysetMaxD
i
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
Berhenti
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2)
39
tidak
ya
ya
tidak
Fuzzifikasi
Mulai
for i = 0 to jmlh_Faktor-1
Menentukan hasil_fuzzifikasiA dari faktor A
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinA batas_fuzzysetMaxA
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1)
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
DD
i == 0
i == 1
Menentukan hasil_fuzzifikasiB
dari faktor B
Menghitung derajat keanggotaan
berdasarkan batas_fuzzysetMinB
batas_fuzzysetMaxB
C A B
40
tidak
ya
ya
tidak
ya
i == 2
A B C
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinC batas_fuzzysetMaxC
Menentukan hasil_fuzzifikasiC dari faktor C
i == 3
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinD
batas_fuzzysetMaxD
Menentukan hasil_fuzzifikasiD dari faktor D
i
hasil_fuzzifikasiA hasil_fuzzifikasiB hasil_fuzzifikasiC hasil_fuzzifikasiD
Berhenti
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2)
41
tidak
ya
416 Proses pembentukan Fuzzy Logical Relationship
Setelah data melalui proses fuzzifikasi dan sudah menjadi data fuzzy maka dapat dilakukan pembentukan Fuzzy Logical Relationship (FLR) Pembentukan FLR dilakukan sesuai dengan Persamaan 216Berikut adalah langkah ndash langkah proses pembentukan Fuzzy Logical Relationship (FLR) yang ditunjukkan pada Gambar 417 Gambar 418 dan Gambar 419
Gambar 417 Diagram alir proses Pembentukan FLR
(bagian 1)
Pembentukan Fuzzy Logical Relationship
Mulai
hasil_fuzzifikasiAhasil_fuzzifikasiB hasil_fuzzifikasiChasil_fuzzifikasiD order
for i = 0 to jmlh_dataTraining
max_inc = order jmlh_dataTraining = dataTraining - order
for j = i to max_inc
for k = 0 to jmlh_Faktor-1
j == 0
FLR_kiri_training ke ijk = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D)
ke j
E A B C D
42
ya
tidak
ya
tidak
A B C E D
FLR_kiri_training ke i(j-i)k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
j = 0
k
j
FLR_kanan_training ke i = hasil_fuzzifikasiA ke (i+order)
Max_inc lt (jmlh_DataTraining-1)
i
tmp_JmlhDatatraining = tmp_JmlhDatatraining +1
max_inc = max_inc + 1 tmp_JmlhDatatraining = i
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2)
for j = 0 to tmp_JmlhDatatraining
for j = tmp_JmlhDatatraining to max_inc
for k = 0 to jmlh_Faktor-1
I H G F
43
tidak
ya
417 Proses Defuzzifikasi
Proses defuzzifikasi merupakan proses akhir dimana keluaran dari proses ini merupakan nilai hasil peramalan Data yang diperlukan pada proses defuzzifikasi adalah hasil dari proses pembentukan Fuzzy Logical Relationship (FLR) nilai threshold yang harus dideklarasikan sebelumnya jumlah data training dan jumlah data testing Dalam proses ini dilakukan perhitungan selisih pada FLR antara data testing dan data training FLR yang dihitung nilai selisihnya adalah FLR pangkat bawah yang terdapat pada ruas kiri Setelah dilakukan perhitungan selisih dan total jumlah selisih lebih kecil dari nilai threshold maka pada setiap FLR yang
I H G F
FLR_kiri_testing ke i(j-tmp_jmlhDatatraining) k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
k
j
FLR_kanan_testing ke i = hasil_fuzzifikasiA ke (i+order)
i
Max_inc lt (jmlh_DataTraining-1)
max_inc = max_inc + 1 tmp_JmlhDatatraining++
FLR_kiri_training FLR_kanan_training FLR_kiri_testing FLR_kanan_testing
Mulai
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3)
44
ya
tidak
sesuai dengan kondisi tersebut dapat dikatakan cocok atau dapat dilakukan ke tahap perhitungan selanjutnya Setelah mendapatkan FLR yang cocok maka dilakukan pengelompokkan berdasarkan FLR ruas kanan Pengelompokkan ini dihitung jumlah frekuensi yang sama sesuai dengan fuzzy set di ruas kanan Selanjutnya untuk memperoleh hasil peramalan dilakukan proses perhitungan sesuai dengan Persamaan 218 Berikut adalah langkah ndash langkah proses defuzzifikasi yang ditunjukkan pada Gambar 420 dan Gambar 421
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1)
Defuzzifikasi
Mulai
FLR_kiri FLR_kanan order dataTraining dataTesting konstanta
threshold = (jmlh_Faktor x order)+konstanta
for i = 0 to dataTesting
for j = 0 to (dataTraining-i)
Perhitungan hitung_selisih antara FLR_kiri data training dan data testing
hitung_selisih lt threshold
match ke ij = hitung_selisih
j
i
A
45
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2)
A
Menghitung jumlah total FLR_kiri yang cocok untuk setiap data testing
Mencocokan FLR_kiri yang cocok dengan FLR_kanan untuk setiap data testing
for i = 0 to dataTesting
Menghitung frekuensi setiap FLR_kanan yang cocok untuk setap data testing
for j = 0 to jumlah total FLR kiri yang cocok
peramalan = peramalan + Frekuensi setiap FLR_kanan yang cocok x pusat_cluster1
sesuai dengan value FLR_kanannya
j
hasil_peramlan ke i = peramalan jumlah total FLR kiri yang cocok
i
Hasil_permalan
Berhenti
46
42 Perhitungan Manual
Dalam perhitungan manual ini data sampel yang digunakan merupakan data time series dasarian ke-2 pada periode April 2014 sampai dengan dasarian ke-2 Juli 2014 data sampel ditunjukkan pada Tabel 41
Tabel 41 Data Sampel Perhitungan Manual
No Dasarian Curah Hujan
(A)
Suhu (B) Kelembaban (C)
Kecepatan Angin(D)
1 Dasarian 2 (April 2014) 95 2615 8248 629
2 Dasarian 3 (April 2014) 90 2612 8247 628
3 Dasarian 1 (Mei 2014) 94 2607 8247 627
4 Dasarian 2 (Mei 2014) 83 2625 8232 623
5 Dasarian 3 (Mei 2014) 85 2628 8235 623
6 Dasarian 1 (Juni 2014) 92 2609 8241 626
7 Dasarian 2 (Juni 2014) 86 2627 8235 624
8 Dasarian 3 (Juni 2014) 89 2621 8238 624
9 Dasarian 1 (Juli 2014) 93 2607 8242 626
10 Dasarian 2 (Juli 2014) 86 2626 8237 623
Sumber BMKG Kelas III Karangkates Malang
421 Perhitungan Universe of Discourse (U)
Sebelum melakukan perhitungan U maka harus dicari terlebih dahulu nilai 119863119898119894119899 119863119898119886119909 dan standar deviasi 119863119898119894119899 adalah nilai minimum atau nilai terkecil dari data sampel yang ada sedangkan 119863119898119886119909 adalah nilai maksimum atau nilai paling besar dari data sampel yang ada Untuk mencari nilai standar deviasi harus menghitung nilai mean (rata ndash rata) terlebih dahulu sesuai dengan Persamaan 211 Mean dari data curah hujan (A) dihitung dengan cara sebagai berikut
Mean = (data ke-1 + data ke-2 + data ke-3 + + data ke-10) 10
= (95 + 90 + 94 + 83 + 85 + 92 + 86 + 89 + 93 + 86) 10
= 893 10
= 893
Selanjutnya setelah diperoleh nilai mean dilanjutkan melakukan perhitungan standar deviasi sesuai dengan Persamaan 212 Standar deviasi adalah akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Untuk menghitung standar deviasi agar lebih mudah kita terlebih dahulu melakukan perhitungan nilai kuadrat dari selisih data ke-i dan mean yang ditunjukkan pada Tabel 42
47
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean
i Data ke-i Data ke-i mean (Data ke-i - mean)sup2
1 95 57 32490
2 90 07 0490
3 94 47 22090
4 83 -63 39690
5 85 -43 18490
6 92 27 7290
7 86 -33 10890
8 89 -03 0090
9 93 37 13690
10 86 -33 10890
Jumlah 1561
Setelah mendapatkan hasil nilai kuadrat dari selisih data ke-i dan mean sesuai dengan Tabel 42 maka dapat dilanjutkan melakukan perhitungan standar deviasi dengan cara sebagai berikut
Standar_deviasi = radic1
10minus1sum (119889119886119905119886 119896119890 minus 119894 minus 119898119890119886119899)10
119894=1
2
= radic1
9 times 1561
= 4165
Untuk perhitungan standar deviasi juga dilakukan pada faktor lainnya yaitu suhu (B) kelembaban (C) dan kecepatan angin (D) Hasil perhitungan 119863119898119894119899 119863119898119886119909 dan standar deviasi ditunjukkan pada Tabel 43
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi
Data D min D max Standar Deviasi
A 83 95 4165
B 2607 2628 0086
C 8232 8248 0057
D 623 629 0022
Berdasarkan hasil yang ditunjukkan Tabel 43 selanjutnya dapat dilakukan perhitungan nilai U sesuai dengan Persamaan 213 Berikut adalah perhitungan U pada data A
U = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590]
= [(83 ndash 4165) (95 ndash 4165)]
= [78835 99165]
48
Untuk perhitungan U juga dilakukan pada semua faktor yaitu data B C dan D Sehingga diperoleh nilai U yang ditunjukkan pada Tabel 44
Tabel 44 Hasil Universe of Discourse
Data U
Batas Bawah Batas Atas
A 78835 99165
B 25984 26366
C 82263 82537
D 6208 6312
422 Perhitungan jumlah cluster (k)
Pada perhitungan jumlah cluster langkah pertamanya adalah mencari nilai absolut dari selisih data hari ke-t dengan hari sebelumnya Perhitungan selisih dilakukan hingga data ke-10 Perhitungan nilai selisih dilakukan pada semua data A B C dan D Selanjutnya masing ndash masing nilai selisih dijumlah sehingga hasilnya seperti ditunjukkan pada Tabel 45
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya
No Tanggal A B C D
1 Dasarian 3 (April 2014) 5 003 001 001
2 Dasarian 1 (Mei 2014) 4 005 0 001
3 Dasarian 2 (Mei 2014) 11 018 015 004
4 Dasarian 3 (Mei 2014) 2 003 003 0
5 Dasarian 1 (Juni 2014) 7 019 006 003
6 Dasarian 2 (Juni 2014) 6 018 006 002
7 Dasarian 3 (Juni 2014) 3 006 003 0
8 Dasarian 1 (Juli 2014) 4 014 004 002
9 Dasarian 2 (Juli 2014) 7 019 005 003
Jumlah 49 105 043 016
Setelah mendapatkan nilai absolut selisih data hari ke-t dengan hari sebelumnya dapat dilanjutkan dengan menghitung jumlah cluster sesuai dengan Persamaan 214 Perhitungan jumlah cluster pada data A (k1) berdasarkan pada Tabel 43 diketahui nilai 119863119898119894119899 adalah 171 nilai 119863119898119886119909 adalah 2048 maka jumlah cluster data A dapat ditunjukkan sebagai berikut
49
1198961 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905) minus 119883(119905 minus 1)|119899
119905=1
119899 minus 1|
= |83 minus 9549
10minus1| = 2204
Apabila hasil perhitungan jumlah cluster merupakan bilangan pecahan maka hasilnya harus dibulatkan Sehingga jumlah cluster pada data A adalah 2 Perhitungan jumlah cluster juga dilakukan pada data B (k2) C (k3) dan D (k4) Berikut merupakan hasil semua perhitungan jumlah cluster yang ditunjukkan pada Tabel 46
Tabel 46 Hasil jumlah cluster data
No Cluster Jumlah Cluster
1 k1 2
2 k2 2
3 k3 3
4 k4 3
423 Perhitungan pusat cluster dan subinterval
Pada pembentukan subinterval berdasarkan pada Tabel 46 yang menunjukkan jumlah subinterval yang selanjutnya digunakan untuk menentukan pusat cluster menggunakan algoritma fuzzy C-means (FCM)
4231 Penentuan pusat cluster
a Penentuan nilai variabel
Pada penentuan subinterval diawali dengan klasterisasi menggunakan algoritma FCM pada awal proses ditentukkan beberapa variabel sebagai berikut
Banyak cluster = k1 = 2
Bobot (w) = 2
Fungsi objektif awal = 0
Iterasi awal = 1
Iterasi maksimum = 100
Error terkecil = 001 b Pembentukan matriks partisi awal (micro)
Data pada pembentukan matriks partisi awal merupakan nilai random diantara nilai 0 sampai 1 Dimensi pada matriks partisi awal dibentuk dengan dimensi jumlah data (i) x jumlah cluster (k) Dalam hal ini telah diketahui jumlah data adalah 10 dan k1 adalah 2 maka partisi dimensi matriks awal adalah 10 x 2 Hasil pembentukan matriks partisi awal ditunjukkan pada Tabel 47 dimana Cluster disimbolkan dengan C
50
Tabel 47 Matriks partisi awal pada cluster data A
c Normalisasi matriks partisi awal
Langkah pertama normalisasi matriks partisi awal adalah dengan menghitung jumlah bilangan penyusun matriks pada setiap kolom yang dapat dilihat pada Tabel 47 dijumlah berdasarkan dengan Persamaan 24 Diketahui jumlah kolom matriks sebanyak 2 sehingga diperoleh Q1 untuk penjumlahan kolom c1 Q2 untuk penjumlahan kolom c2
Q1 = 0355 + 0174 + 02 + 0387 + 0598 + 0819 + 0702 + 0719 + 0349 +
0852
= 5154
Q2 = 0170 + 0815 + 0190 + 0456 + 0526 + 0170 + 0232 + 0572 + 0102 +
0322
= 3554
Langkah selanjutnya dilakukan proses normalisasi menggunakan Persamaan 25 Dimana setiap bilangan penyusun matriks awal dibagi dengan nilai Q sesuai dengan kolomnya masing ndash masing Bilangan penyusun matriks disimbolkan dengan microik dimana i menunjukkan baris dan k menunjukkan kolom posisi bilangan tersebut pada matriks
i micro
c1 c2
1 0355 0170
2 0174 0815
3 0200 0190
4 0387 0456
5 0598 0526
6 0819 0170
7 0702 0232
8 0719 0572
9 0349 0102
10 0852 0322
51
μ11 = bilangan matriks partisi pada baris 1 kolom 1
Q1
= 0355
5154
= 0069
μ12 = bilangan matriks partisi pada baris 1 kolom 2
Q2
= 0170
3554
= 0048
Setelah melakukan perhitungan seperti diatas untuk semua bilangan matriks sehingga matriks partisi sudah ternormalisasi seperti yang ditunjukkan pada Tabel 48
Tabel 48 Derajat keanggotaan matriks partisi data A
i micro
C1 C2
1 0069 0048
2 0034 0229
3 0039 0054
4 0075 0128
5 0116 0148
6 0159 0048
7 0136 0065
8 0140 0161
9 0068 0029
10 0165 0090
d Perhitungan pusat cluster (V)
Pada perhitungan pusat cluster (V) berdasarkan Persamaan 26 Dimana setiap bilangan penyusun matriks partisi (micro) dipangkatkan dengan w dimana variabel w yang sudah dideklarisakan terlebih dahulu dengan nilai sama dengan 2 dan dikalikan dengan bilangan penyusun matriks X yang merupakan matriks berisi data yang ada pada Tabel 41 Selanjutnya hasil perkalian tersebut dijumlah dan dibagi dengan jumlah hasil kuadrat dari bilangan penyusun matriks partisi Hasil perhitungan ditunjukkan pada Tabel 49
52
Tabel 49 Perhitungan pusat cluster data A
Berdasarkan jumlah cluster dari data A yaitu 2 maka terdapat 2 pusat cluster (V) yaitu V1 V2 Perhitungan nilai V adalah sebagai berikut
V1 = sum ((μic1)2 times Xi)10
i=1
sum (μic1)210i=1
= 10730216
0121620
= 8822718207
V2 = sum ((μic2)2 times Xi)10
i=1
sum (μic2)210i=1
= 12111287
0137572
= 8803592572
Jadi berdasarkan perhitungan diatas pusat cluster untuk data A pada iterasi ke-1 adalah 8822718207 8803592572
e Perhitungan fungsi objektif (P)
Pada perhitungan P menggunakan Persamaan 27 dimana setiap baris pada data matriks X dikurangi pusat cluster (V) selanjutnya dikuadratkan Hasilnya
i X microsup2 microsup2 x X
C1 C2 C1 C2
1 95 0004731 0002292 0449450 0217718
2 90 0001137 0052633 0102304 4736927
3 94 0001512 0002864 0142117 0269234
4 83 0005630 0016427 0467258 1363472
5 85 0013448 0021907 1143107 1862112
6 92 0025233 0002291 2321422 0210787
7 86 0018542 0004243 1594602 0364916
8 89 0019487 0025916 1734356 2306543
9 93 0004590 0000816 0426841 0075870
10 86 0027311 0008183 2348759 0703706
Jumlah 0121620 0137572 10730216 12111287
53
kemudian dikalikan dengan micro yang sudah dipangkatkan dengan bobot (w) seperti yang telah ditunjukkan pada Tabel 49 Selanjutnya hasil tersebut dijumlah per kolom seperti yang ditunjukkan pada Tabel 410
Tabel 410 Fungsi objektif data A
i X (X-V)sup2 (X-V)sup2 x microsup2
C1 C2 C1 C2
1 95 458711 484983 02170 01111
2 90 31429 38576 00036 02030
3 94 333254 355702 00504 01019
4 83 273234 253605 01538 04166
5 85 104147 92168 01401 02019
6 92 142342 157139 03592 00360
7 86 49603 41450 00920 00176
8 89 05972 09294 00116 00241
9 93 227798 246420 01046 00201
10 86 49603 41450 01355 00339
Jumlah 1267661573 1166282827
Fungsi Objektif (P) 24339444
Perhitungan nilai fungsi objektif dilakukan seperti Persamaan 27 Nilai fungsi objektif diperoleh dengan cara sebagai berikut P = sum sum ([(Xi minus Vc)2](μik)2)3
c=110i=1
P = 1267661573 + 1166282827
= 24339444
f Perbaikan matriks partisi
Pada langkah ini perbaikan matriks partisi dilakukan berdasarkan Persamaan 28 Data matriks X untuk setiap barisnya dikurangi pusat cluster lalu dikuadratkan seperti yang ditunjukkan pada Tabel 410 Selanjutnya hasilnya dipangkatkan dengan -11 karena w-1 = 1 Hasil pangkat -1 terhadap (X-V)2 ditunjukkan pada Tabel 411
54
Tabel 411 Perbaikan matriks partisi
i ((X-V)sup2)^-1
Jumlah C1 C2
1 0022 0021 0042
2 0318 0259 0577
3 0030 0028 0058
4 0037 0039 0076
5 0096 0108 0205
6 0070 0064 0134
7 0202 0241 0443
8 1674 1076 2750
9 0044 0041 0084
10 0202 0241 0443
Berdasarkan tabel diatas bilangan penyusun matriks partisi yang baru atau yang telah diperbaiki diperoleh dari hasil pembagian data terhadap jumlah per barisnya
12058311 = 0022
0042= 0514
12058312 = 0021
0042= 0486
Pada perhitungan nilai matriks yang sudah diperbaiki dilakukan pada semua elemen matriks sehingga hasil perbaikan matriks seperti yang ditunjukkan pada Tabel 412
Tabel 412 Hasil perbaikan matriks partisi
Setelah mendapatkan hasil perbaikan matriks partisi kita lakukan pengecekan selama iterasi kurang dari iterasi maksimum (maxIter) atau selisih antara fungsi objektif iterasi saat ini dengan iterasi sebelumnya bernilai lebih dari nilai error terkecil yaitu 001 maka proses berlanjut dengan kembali melakukan perhitungan pusat cluster hingga perbaikan matriks partisi Hasil
i micro
C1 C2
1 0514 0486
2 0551 0449
3 0516 0484
4 0481 0519
5 0469 0531
6 0525 0475
7 0455 0545
8 0609 0391
9 0520 0480
10 0455 0545
55
perhitungan pusat cluster dari data A B C dan D setelah dilakukan proses tiga kali iterasi dan diurutkan mulai dari yang terkecil sampai yang terbesar ditunjukkan pada Tabel 413
Tabel 413 Hasil pusat cluster
4232 Perhitungan batas subinterval
Perhitungan batas subinterval dilakukan dengan mencari nilai tengah (Median) dari setiap pusat cluster Berikut merupakan contoh perhitungan batas subinterval pada data A
a Interval 1 Batas bawah = 78835 (Batas bawah Universe of Discourse pada data A) Batas atas = 89347 (Median 88303 dan 90390)
b Interval 2 Batas bawah = 89347 (Median 88303 dan 90390) Batas atas = 99165 (Batas atas Universe of Discourse pada data A)
Seperti perhitungan diatas juga dilakukan pada data suhu (B) kelembaban (C) dan kecepatan angin (D) Dalam hal ini jumlah subinterval setiap atribut berbeda ndash beda sesuai dengan jumlah cluster yang sebelumnya ditunjukkan pada Tabel 46 Berikut merupakan batas subinterval masing ndash masing atribut yang ditunjukkan pada Tabel 414
Tabel 414 Batas subinterval masing ndash masing atribut data
Interval (micro)
A B C D
1
78835 25984 751708 6208
sd sd sd sd
89347 26181 823863 6249
2
89347 26181 823863 6249
sd sd sd sd
99165 26366 82411 6256
3
82411 6256
- - sd sd
82537 6312
Cluster A B C D
1 88303 26165 82391 62497
2 90390 26197 82408 62499
3 - - 82415 62613
56
424 Pembentukan Fuzzy Set
Pembentukan fuzzy set berdasarkan pada derajat keanggotaan dari subinterval (micro) fuzzy set dari data A ditentukan dengan derajat keanggotaan sebagai berikut
A1 = 1micro1 + 05micro2
A2 = 05micro1 + 1micro2
Pada derajat keanggotaan data A diatas simbol ldquo+rdquo menunjukkan operator himpunan gabungan Berdasarkan subinterval pada Tabel 414 nilai batas fuzzy set dari data atribut A dapat ditentukan dengan cara sebagai berikut
A1 = 78835 sd 94256 (Batas bawah interval 1 sd titik tengah interval 2)
A2 = 84091 sd 99165 (Titik tengah interval 1 sd batas atas interval 2)
Setelah diketahui batas masing ndash masing fuzzy set grafik fungsi keanggotaan fuzzy set data A yang direpresentasikan dalam kurva bahu yang ditunjukkan pada Gambar 422 Dengan cara yang sama juga ditentukan pula fuzzy set dari data attribut B C dan D
425 Fuzzifikasi
Pada langkah fuzzifikasi dilakukan dengan mencari derajat keanggotaan yang memiliki nilai paling besar (maksimum) dari masing ndash masing data terhadap fuzzy set yang sudah terbentuk Derajat keanggotaan dicari berdasarkan fungsi keanggotaan kurva bentuk bahu Berikut ini adalah perhitungan derajat keanggotaan dari data attribut A
Data aktual curah hujan (A) pada April 2014 dasarian ke-3 = 90
1198601 = 942558 ndash 90
942558minus840911= 041868427
Gambar 422 Grafik fuzzy set data A
57
1198602 = 90minus840911
942558minus840911= 058131636
Derajat keanggotaan paling besar berada pada A2 sehingga data attribut A pada April 2014 dasarian ke-3 difuzzifikasikan ke fuzzy set A2 Perhitungan yang sama dilakukan pada seluruh data attribut A sehingga didapat derajat keanggotaan dan hasil fuzzifikasi dari data A ditunjukkan pada Tabel 415
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A
i Data A1 A2 Fuzzyfikasi
1 95 0 1 A2
2 90 041868363 058131636 A2
3 94 002516357 097483642 A2
4 83 1 0 A1
5 85 09105837 008941629 A1
6 92 02219236 077807639 A2
7 86 08122036 018779631 A1
8 89 05170636 048293635 A1
9 93 01235436 087645641 A2
10 86 08122037 018779631 A1
Perhitungan yang sama juga dilakukan pada semua attribut yaitu attribut B C dan D Sehingga dapat diperoleh hasil fuzzifikasi sesuai derajat keanggotaan dengan nilai paling besar Berikut adalah hasil fuzzifikasi untuk semua attribut yang dapat dilihat pada Tabel 416
Tabel 416 Hasil fuzzifikasi semua data attribut
No Tanggal A B C D
1 Dasarian 2 (April 2014) A2 B1 C3 D3
2 Dasarian 3 (April 2014) A2 B1 C3 D3
3 Dasarian 1 (Mei 2014) A2 B1 C3 D3
4 Dasarian 2 (Mei 2014) A1 B2 C1 D1
5 Dasarian 3 (Mei 2014) A1 B2 C1 D1
6 Dasarian 1 (Juni 2014) A2 B1 C2 D2
7 Dasarian 2 (Juni 2014) A1 B2 C1 D1
8 Dasarian 3 (Juni 2014) A1 B2 C2 D1
9 Dasarian 1 (Juli 2014) A2 B1 C2 D2
10 Dasarian 2 (Juli 2014) A1 B2 C2 D1
58
426 Pembentukan Fuzzy Logical Relationship (FLR)
Pada tahap pembentukan FLR dengan berdasarkan nilai order yang sudah ditentukan Pada manualisasi ini berdasarkan dari Tabel 416 di misalkan nilai order kita deklarasikan dengan nilai 3 sehingga dapat menghasilkan 7 FLR Hasil pembentukan FLR Data training dapat ditunjukkan pada Tabel 417 Hasil pembentukan FLR Data testing dapat ditunjukkan pada Tabel 418
Tabel 417 Hasil pembentukan FLR data training
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(32)B(31)C(33)D(33)) rarr A1
2 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(31)B(32)C(31)D(31)) rarr A1
3 (A(12)B(11)C(13)D(13)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(31)D(31)) rarr A2
4 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(21)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
5 (A(11)B(12)C(11)D(11)) (A(22)B(21)C(22)D(22)) (A(31)B(32)C(31)D(31)) rarr A1
Tabel 418 Hasil pembentukan FLR data testing
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(12)D(12)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(32)D(31)) rarr A2
2 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(22)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
427 Defuzzifikasi
Pada tahap ini misalkan jumlah data yang digunakan untuk data uji atau data testing adalah dua yaitu yang pertama data periode ke-9 dan yang kedua data periode ke-10 Sehingga yang digunakan data latih atau data training adalah data pada periode ke-1 sampai data periode ke-8 Pada data testing yang pertama melibatkan FLR ke-1 sampai FLR ke-5 untuk disesuaikan dengan FLR ke-6 yang berdasarkan pada Tabel 417 Pada data testing yang kedua melibatkan FLR ke-1 sampai FLR ke-6 untuk disesuaikan dengan FLR ke-7 yang berdasarkan pada Tabel 417 Selanjutnya setiap ruas kiri FLR data testing dibandingkan dengan FLR data training yaitu pada bilang pangkat bawah fuzzy set dibandingkan sesuai dengan posisinya dan dihitung selisihnya Hasil dari perhitungan selisih tersebut dijumlahkan dan apabila jumlah selisihnya kurang dari threshold maka FLR tersebut dikatakan cocok Threshold merupakan dari hasil mengalikan jumlah order dengan jumlah faktor kemudian dijumlahkan dengan dengan sebuah konstanta Contoh perhitungan selisih nilai ruas kiri FLR pada data testing pertama adalah sebagai berikut
59
Data testing = (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(32) B(31) C(33) D(33)) rarr A1
Data training =
1 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
2 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
3 (A(12) B(11) C(13) D(13)) (A(21) B(22) C(21) D(21)) (A(31) B(32) C(31) D(31)) rarr A2
4 (A(11) B(12) C(11) D(11)) (A(21) B(22) C(21) D(21)) (A(32) B(31) C(32) D(32)) rarr A1
5 (A(11) B(12) C(11) D(11)) (A(22) B(21) C(22) D(22)) (A(31) B(32) C(31) D(31)) rarr A1
Selisih data ke- 1 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|2-1|+|1-2|+|3-2|+|3-1| = 13
Selisih data ke- 2 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Selisih data ke- 3 = |2-2|+|1-1|+|3-2|+|3-2|+|1-1|+|2-2|+|1-1|+|1-1|+|1-1|+|2-2|+|1-2|+|1-1| = 3
Selisih data ke- 4 = |1-2|+|2-1|+|1-2|+|1-2|+|1-1|+|2-2|+|1-1|+|1-1|+|2-1|+|1-2|+|2-2|+|2-1| = 7
Selisih data ke- 5 = |1-2|+|2-1|+|1-2|+|1-2|+|2-1|+|1-2|+|2-1|+|2-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Pada perhitungan selisih nilai ruas kiri FLR pada data testing juga dilakukan pada semua data testing yang sudah dideklarasikan sebelumnya Dalam hal ini agar dapat menemukan FLR yang cocok dengan data testing Tahap selanjutnya adalah proses defuzzifikasi menggunakan threshold yang dimisalkan 18 sehingga FLR yang memiliki kecocokan dengan data testing pertama adalah semua FLR dari ke-1 sampai ke-5 karena memiliki hasil selisih kurang dari 18 Semua FLR yang cocok ditampung dikelompokkan berdasarkan FLR pada ruas kanan yang sama kemudian dhitung frekuensinya Berikut adalah frekuensi dan pusat cluster dari ruas kanan FLR yang cocok dengan data testing pertama dan kedua ditunjukkan pada Tabel 419
Tabel 419 Frekuensi FLR yang cocok dengan data testing
Data testing 1 Data testing 2
Ruas kanan A1 A2 A1 A2
Pusat Cluster 88303 90390 88303 90390
Frekuensi 4 1 4 2
Berdasarkan pada Tabel 419 dilakukan defuzzifikasi sesuai dengan Persamaan 218 sebagai berikut
119863119886119905119886 119905119890119904119905119894119899119892 1 = (88303times4)+(90390times1)
5= 887204
60
119863119886119905119886 119905119890119904119905119894119899119892 2 = (88303times4)+(90390times2)
6= 889987
Jadi berdasarkan perhitungan diatas diperoleh hasil peramalan curah hujan pada pada April 2014 dasarian ke-3 adalah 1384601636 sedangkan pada tanggal 10012016 adalah 2769203272 Perbandingan data curah hujan aktual dan hasil peramalan dengan metode High Order Fuzzy Time Series Multi Factors dapat dilihat pada Tabel 420
Tabel 420 Perbandingan data aktual dan hasil peramalan
No Data Aktual Hasil Peramalan
1 93 887204
2 86 889987
Dari hasil peramalan yang ditunjukkan pada Tabel 420 dapat dilakukan perhitungan kesalahan peramalan menggunakan metode Mean Square Error (MSE) seperti Persamaan 219
119872119878119864 = ((93minus887206)2+(86minus889989)2)
2
= 136536
43 Perancangan antarmuka
Perancangan antarmuka merupakan perancangan dari tampilan antarmuka atau interface yang nantinya akan diterapkan pada tahapan implementasi Pada perancangan antarmuka ini terdapat lima halaman utama dan juga terdapat dalam menu berupa button yaitu halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
431 Halaman input
Pada halaman input terdapat inputan data dengan nama button Browse Data pada inputan data ini pengguna diharuskan memasukkan inputan file data dalam bentuk ekstensi xls serta direktori lokasi file yang di inputkan akan ditampilkan pada textfield dan juga terdapat label yang menampilkan jumlah banyaknya data yang terdapat pada file yang telah di inputkan Selanjutnya juga terdata inputan textfield data training data testing order dan nilai konstanta Pada halaman input ini juga terdapat button fuzzification yang berfungsi untuk melakukan proses clustering fuzzifikasi dan FLR Selanjutnya pada button forecasting berfungsi untuk melakukan peramalan atau defuzzifikasi dari hasil proses fuzzifikasi serta menghitung nilai error dari hasil peramalan Berikut
61
merupakan rancangan tampilan antarmuka dari halaman input yang ditunjukkan pada Gambar 423
432 Halaman tampil data
Pada halaman tampil data terdapat tabel yang menampilkan isi data dari xls yang sudah dimasukkan terlebih dahulu pada halaman input Tabel tampil data akan menampilkan tanggal curah hujan kelembaban suhu dan kecepatan angin Berikut merupakan tampilan rancangan halaman tampil data yang ditunjukkan pada Gambar 424
Gambar 423 Rancangan antarmuka halaman input
Gambar 424 Rancangan antarmuka halaman tampil data
62
433 Halaman proses
Pada halaman proses akan menampilkan hasil clustering fuzzifikasi dan fuzzy logical relationship Pada tampilan halaman clustering akan menampilkan Universe of Discourse curah hujan suhu kelembaban dan kecepatan angin Selanjutnya tampilan dibawahnya akan menampilkan jumlah cluster dari setiap faktor yaitu jumlah cluster curah hujan suhu kelembaban dan kecepatan angin Berikut merupakan tampilan perancangan halaman proses clustering yang ditunjukkan Gambar 425
Selanjutnya pada tampilan proses fuzzifikasi akan menampilkan tabel hasil fuzzifikasi dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzifikasi yang ditunjukkan pada Gambar 426
Gambar 425 Rancangan antarmuka halaman proses clustering
Gambar 426 Rancangan antarmuka proses fuzzifikasi
63
Pada tampilan proses fuzzy logical relationship (FLR) akan menampilkan textarea berisi hasil proses FLR dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzy logical relationship yang ditunjukkan pada Gambar 427
434 Halaman hasil
Pada halaman hasil peramalan akan menampilkan tabel yang berisi hasil peramalan curah hujan dan data curah hujan yang sebenarnya Serta terdapat text link yang akan menampilkan grafik perbandingan data hasil peramalan dan data yang sebenarnya Berikut adalah tampilan rancangan halaman hasil yang ditunjukkan pada Gambar 428
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship
Gambar 428 Rancangan antarmuka halaman hasil peramalan
64
435 Halaman perhitungan error
Pada halaman perhitungan error akan menampilkan nilai dari hasil perhitungan Mean Square Error (MSE) pada textfield Berikut adalah tampilan rancangan halaman perhitungan error yang ditunjukkan pada Gambar 429
44 Perancangan pengujian
Pada penelitian ini akan dilakukan empat pengujian yaitu pengujian terhadap nilai order nilai threshold pengujian terhadap jumlah data training untuk mengetahui pengaruhnya terhadap nilai Mean Square Error (MSE) dan pengujian validasi sistem untuk mengetahui kestabilan hasil implementasi
441 Perancangan pengaruh order terhadap nilai MSE
Order merupakan jumlah urutan data yang digunakan dalam pembentukkan Fuzzy Logical Relationship (FLR) Pada pengujian ini dilakukan percobaan dengan order yang berbeda ndash beda Pengujian ini bertujuan untuk mengetahui pengaruh order terhadap hasil peramalan Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Pada setiap pengujian yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan order yang berbeda Berikut adalah perancangan pengujian order terhadap nilai MSE ditunjukkan pada Tabel 421
Tabel 421 Rancangan pengujian order terhadap nilai MSE
No Order Threshold MSE
1
Gambar 429 Rancangan antarmuka halaman perhitungan error
65
442 Perancangan pengaruh threshold terhadap nilai MSE
Nilai threshold bergantung jumlah order karena untuk nilai threshold merupakan dari hasil mengalikan jumlah faktor yang mempengaruhi dengan order selanjutnya dijumlah dengan sebuah konstanta Pada pengujian ini dilakukan percobaan dengan konstanta yang berbeda ndash beda sehingga menghasilkan threshold yang berbeda pula Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan konstanta dan threshold yang berbeda Berikut merupakan rancangan pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 422
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1
443 Perancangan pengaruh jumlah data training terhadap nilai MSE
Data training sangat berperan penting dalam proses defuzzifikasi sehingga pada penelitian ini dilakukan pengujian pengaruh jumlah data training terhadap tingkat kesalahan dari hasil peramalan Pada pengujian ini dilakukan percobaan dengan jumlah data training yang berbeda ndash beda Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan dilakukan perhitungan nilai MSE untuk mengetahui tingkat kesalahan dari hasil peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors dengan jumlah data training yang berbeda ndash beda Sehingga dari hasil pengujian ini dapat diketahui pengaruh dari jumlah data training Berikut merupakan rancangan pengujian pengaruh jumlah data training yang ditunjukkan pada Tabel 423
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1
444 Perancangan validasi sistem
Pada pengujian validasi sistem akan melakukan pengujian dengan menggunakan order threshold terbaik seperti yang telah dilakukan pada
66
pengujian ndash pengujian sebelumnya yang menghasilkan hasil error MSE terendah Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Berikut merupakan rancangan pengujian validasi sistem yang ditunjukkan pada Tabel 424
Tabel 424 Rancangan pengujian validasi sistem
Percobaan ke- MSE
1
67
BAB 5 IMPLEMENTASI
Pada bab ini berisi pembahasan hasil implementasi metode High Order Fuzzy Time Series Multi Factors yang sesuai dengan bab sebelumnya yaitu perancangan Bab ini terdiri dari spesifikasi sistem implementasi algoritma dan implementasi antarmuka
51 Spesifikasi Sistem
Pada spesifikasi sistem ini dibagi mejadi dua yaitu spesifikasi perangkat keras dan spesifikasi perangkat lunak
511 Spesifikasi Perangkat Keras
Spesifikasi perangkat keras merupakan perangkat keras yang digunakan pada implementasi penelitian ini Perangkat keras yang digunakan adalah laptop dengan spesifikasi sesuai dengan pada Tabel 51 berikut
Tabel 51 Spesifikasi Perangkat Keras
Komponen Spesifikasi
Processor Intelcopy Core i3-3217U 180 GHz
Memori (RAM) 8 GB RAM
Harddisk 500 GB RAM
512 Spesifikasi Perangkat Lunak
Spesifikasi perangkat lunak merupakan perangkat lunak yang digunakan pada implementasi penelitian ini Perangkat lunak yang digunakan pada implementasi penelitian sesuai dengan yang ditunjukkan pada Tabel 52 berikut
Tabel 52 Spesifikasi Perangkat Lunak
Sistem Operasi Microsoft Windows 7 (64 bit)
Bahasa Pemrograman Java
Tools Pemrograman Netbeans 81
Data Microsoft Excel 2013
52 Implementasi Algoritma
Pada implementasi algoritma ini membahas mengenai hasil implementasi algoritma metode High Order Fuzzy Time Series Multi Factors yang mengacu pada bab sebelumnya yaitu perancangan Dalam penelitian ini implementasi algoritma menggunakan bahasa pemrograman java berbasis desktop Implementasi algoritma terdiri dari beberapa method sesuai dengan langkah ndash langkah pada algoritma metode High Order Fuzzy Time Series Multi Factors
68
521 Implementasi Proses Universe of Discourse
Pada implementasi Universe of Discourse seperti yang ditunjukkan Kode Program 51 dimana pada source code method Universe_of_Discourse baris 3 - 5 terdapat pemanggilan method mean standar_deviasi dan Min_dan_Max Dimana pemanggilan method tersebut dibutuhkan untuk melakukan proses perhitungan selanjutnya yaitu untuk menghitung batas bawah dan batas atas dari Univers of Discourse Baris 7-10 untuk menghitung hasil Universe of Discourse Berikut merupakan source code dari proses Universe of Discourse yang ditunjukkan pada Kode Program 51
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
private void Universe_of_Discourse()
mean()
standar_deviasi()
Min_dan_Max()
hsl_uMin = new double[jmlh_Faktor]
hsl_uMax = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
hsl_uMin[i] = hsl_min[i] - hsl_stdev[i]
hsl_uMax[i] = hsl_max[i] + hsl_stdev[i]
Kode Program 51 Implementasi proses Universe of Discourse
5211 Implementasi proses mean
Pada implementasi proses mean merupakan proses perhitungan nilai rata ndash rata dari setiap faktor yang nantinya hasilnya diperlukan untuk proses perhitungan standar deviasi Berikut merupakan source code dari proses mean yang ditunjukkan pada Kode Program 52 Perhitungan utama proses mean terdapat pada baris 3 ndash 8
Baris Kode
1 2 3 4 5 6 7 8 9
private void mean()
hsl_mean = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double tmp_jmlh = 0
for (int j = 0 j lt jmlh_DataTraining j++)
tmp_jmlh = tmp_jmlh + data[i][j]
hsl_mean[i] = (tmp_jmlh jmlh_DataTraining)
Kode Program 52 Implementasi proses mean
5212 Implementasi proses standar deviasi
Pada implementasi proses perhitungan standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Standar deviasi dapat dilakukan perhitungan setelah mendapat nilai hasil dari perhitungan mean Berikut merupakan source code dari implementasi proses standar deviasi yang ditunjukkan pada Kode Program 53 Perhitungan utama proses standar deviasi terdapat pada baris 3 ndash 9
69
Baris Kode
1 2 3 4 5 6 7 8 9 10 11
private void standar_deviasi()
hsl_stdev = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double result = 0
for (int j = 0 j lt jmlh_DataTraining j++)
result = result + (Mathpow((data[i][j] ndash
hsl_mean[i]) 2))
hsl_stdev[i]=Mathsqrt(result(jmlh_DataTraining-
1))
Kode Program 53 Implementasi proses standar deviasi
5213 Implementasi proses Dmin dan Dmax
Pada implementasi proses Dmin dan Dmax merukan untuk mencari nilai minimum dan nilai maksimum dari data sampel untuk setiap faktor Berikut merupakan source code dari implementasi dari proses Dmin dan Dmax yang ditunjukkan pada Kode Program 54 Pada baris 8 ndash 10 merupakan bagian dari proses untuk untuk menentukan nilai data terbesar Selanjutnya pada baris 11 ndash 13 untuk menentukan nilai data terkecil
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
19
private void Min_dan_Max()
hsl_max = new double[jmlh_Faktor]
hsl_min = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double besar = data[i][0]
double kecil = data[i][0]
for (int j = 0 j lt jmlh_DataTraining j++)
if (data[i][j] gt besar)
besar = data[i][j]
if (data[i][j] lt kecil)
kecil = data[i][j]
hsl_max[i] = besar
hsl_min[i] = kecil
Kode Program 54 Implementasi proses Dmin dan Dmax
522 Implementasi Proses Jumlah Cluster
Pada implementasi proses jumlah cluster merupakan proses perhitungan jumlah cluster dari setiap faktor Implementasi ini dapat dilakukan apabila sudah mendapatkan hasil output dari method Min_dan_Max() sudah didapatkan Berikut merupakan source code dari implementasi proses jumlah cluster yang ditunjukkan pada Kode Program 55 Pada baris 3 ndash 7 untuk digunakan untuk menghitung selisih data sampel setiap baris dari semua faktor pada data sampel ke t dengan t+1 Selanjutnya pada baris 9 ndash 10 untuk menghitung jumlah cluster dari setiap faktor
70
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
private void jumlah_Cluster()
jmlh_Cluster = new int[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double selisih = 0
for (int j = 0 j lt (jmlh_DataTraining - 1) j++)
selisih = selisih + (Mathabs((data[i][j]
- data[i][(j + 1)])))
jmlh_Cluster[i] = (int) Mathround((Mathabs(
hsl_min[i]-hsl_max[i]))(selisih(jmlh_DataTraining
-1)))
Kode Program 55 Implementasi proses jumlah cluster
523 Implementasi Proses Pusat Cluster
Implementasi proses perhitungan pusat cluster ini menggunakan metode fuzzy C-means untuk mendapatkan pusat cluster yang nantinya digunkan sebagai subinterval Implementasi ini memerlukan hasil dari proses method jumlah_Cluster() agar dapat melakukan perhitungan subinterval Berikut merupakan source code dari implementasi proses subinterval yang ditunjukkan pada Kode Program 56 Pada Kode Program 56 hanya menampilkan source code pembentukan subinterval pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 2 ndash 3 merupakan deklarasi variabel bobot iterasi maksimum selisih fungsi objektif awal dan error minimum Pada baris 8 ndash 20 merupakan proses pembentukan matriks partisi dengan nilai random 0 sampai 1 Pada baris 22 ndash 26 merupakan proses normalisasi matriks partisi yang telah terbentuk Pada baris 28 ndash 63 merupakan proses untuk menentukan pusat cluster Pada baris 65 ndash 86 merupakan proses perhitungan fungsi objektif dari iterasi Pada baris 88 ndash 90 merupakan proses perhitungan selisih fungsi objektif Pada baris 92 ndash 108 adalah proses perbaikan matriks partisi Pada baris 110 ndash 115 adalah proses hasil perbaikan matriks partisi Pada baris 116 - 133 adalah proses dengan pengkondisian apakah selisih fungsi objektif lebih kecil dari error minimum serta apabila memenuhi kondisi maka dilanjutkan ke proses pengurutan pusat cluster secara ascending dari hasil iterasi terakhir dan proses pengkondisian iterasi berhenti
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void pusat_cluster()
int bobot = 2int iter_maksimum = 100
double selisih_f_objektif = 0double error_min = 001
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
Pembentukkan matriks partisi
tmp_Matriks1=new
double[jmlh_Cluster[i]][jmlh_DataTraining]
q1 = new double[jmlh_Cluster[i]]
double jmlh_q1
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_q1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
71
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
double random = ThreadLocalRandomcurrent()
nextDouble(01 1)
tmp_Matriks1[j][k] = random
jmlh_q1 = jmlh_q1 + random
q1[j] = jmlh_q1
normalisasi matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k] q1[j]
Perhitungan pusat cluster
for (int iter = 0 iter lt iter_maksimum iter++)
selisih_f_objektif = 0
jumA1 = new double[iter_maksimum][jmlh_Cluster[i]]
jumA2 = new double[iter_maksimum][jmlh_Cluster[i]]
miu_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
XV_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
pusat_cluster1 = new double[jmlh_Cluster[i]]
double hitung_jum1
double hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(tmp_Matriks1
[j][k]bobot)
miu_Matriks1[j][k] = tmp_Matriks1[j][k]
hitung_jum1 = hitung_jum1 + tmp_Matriks1
[j][k]
jumA1[iter][j] = hitung_jum1
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum2 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
data[i][k]
hitung_jum2 = hitung_jum2 +
tmp_Matriks1[j][k]
jumA2[iter][j] = hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
pusat_cluster1[j] = jumA2[iter][j]
jumA1[iter][j]
perhitungan fungsi objektif
jumA3 = new double[iter_maksimum][jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
double hitung_jum3 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow((data[i][k]
ndash pusat_cluster1[j])
bobot)
XV_Matriks1[j][k] = tmp_Matriks1[j][k]
tmp_Matriks1[j][k] = XV_Matriks1[j][k]
miu_Matriks1[j][k]
hitung_jum3 = hitung_jum3 +
tmp_Matriks1[j][k]
jumA3[iter][j] = hitung_jum3
72
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
double jmlh_f_objektif = 0
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_f_objektif = jmlh_f_objektif
+jumA3[iter][j]
if (iter lt (iter_maksimum - 1))
f_objektif1[iter + 1] = jmlh_f_objektif
perhitungan selisih fungsi objektif
selisih_f_objektif = f_objektif1[iter + 1]
-f_objektif1[iter]
perbaikan matriks partisi
int hitung = bobot - 1int pangkat = -1 hitung
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(XV_Matriks1
[j][k] pangkat)
jumA4 = new
double[iter_maksimum][jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
double hitung_jum4 = 0
for (int k = 0 k lt jmlh_Cluster[i] k++)
hitung_jum4 = hitung_jum4 +
tmp_Matriks1[k][j]
jumA4[iter][j] = hitung_jum4
hasil perbaikan matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
jumA4[iter][k]
if (selisih_f_objektif lt error_min)
pengurutan ascending pusat cluster
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 kltjmlh_Cluster[i]k++)
if (k lt (jmlh_Cluster[i] - 1))
if (pusat_cluster1[k] gt
pusat_cluster1[k + 1])
double tmp =
pusat_cluster1[k]
pusat_cluster1[k]=
pusat_cluster1[k+1]
pusat_cluster1[k+1] = tmp
iter = iter_maksimum
Kode Program 56 Implementasi proses pusat cluster
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set
Pada implementasi proses pembentukan suinterval dan fuzzy set memiliki dua proses yaitu proses menentukan batas subinterval minumum serta maksimum dan proses menentukan batas fuzzy set minimum serta maksimum
73
Proses pembentukan fuzzy dapat menjalankan prosesnya setelah method subinterval() telah diakses Berikut merupakan source code proses pembentukan fuzzy set yang ditunjukkan pada Kode Program 57 Pada Kode Program 57 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 6 ndash 29 merupakan proses pembentukan batas minimum dan batas maksimum subinterval Pada baris 31 ndash 54 merupakan pembentukan batas minimum dan batas maksimum fuzzy set
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
private void subinterval_dan_fuzzy_set()
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
batas subinterval
batas_subintervalMinA = new double[jmlh_Cluster[i]]
batas_subintervalMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_subintervalMinA[j] = hsl_uMin[i]
batas_subintervalMaxA[j]=(pusat_cluster1[j]
+pusat_cluster1[j+
1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1] +pusat_cluster1
[j])2
batas_subintervalMaxA[j]=
hsl_uMax[i]
else if ((0 lt j) ampamp (j lt (jmlh_Cluster[i] -
1)))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1]+
pusat_cluster1[j])2
batas_subintervalMaxA[j]=
(pusat_cluster1[j]+
pusat_cluster1[j+1)2
batas fuzzy set
batas_fuzzysetMinA = new double[jmlh_Cluster[i]]
batas_fuzzysetMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_fuzzysetMinA[j]=
batas_subintervalMinA[j]
batas_fuzzysetMaxA[j]=
(batas_subintervalMinA[j+1]
+batas_subintervalMaxA[j + 1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]
+batas_subintervalMaxA[j - 1])2
batas_fuzzysetMaxA[j] =
batas_subintervalMaxA[j]
else if ((0 lt j) ampamp (jlt(jmlh_Cluster[i]-1)))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]+
batas_subintervalMaxA[j-1])2
batas_fuzzysetMaxA[j]=
74
51
52
53
54
55
56
(batas_subintervalMinA[j+1]+
batas_subintervalMaxA[j + 1])2
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set
525 Implementasi proses fuzzifikasi
Pada Implementasi proses fuzzifikasi memiliki dua proses utama yaitu menentukan derajat keanggotaan dan proses fuzzifikasi Dalam proses ini method fuzzy_set() harus dieksekusi terlebih dahulu karena implementasi proses ini memerlukan output dari method tersebut Berikut merupakan source code fuzzifikasi ditunjukkan pada Kode Program 58 Pada Kode Program 58 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 3 ndash 81 merupakan proses perhitungan derajat keanggotaan Pada baris 83 ndash 94 adalah proses penentuan fuzzifikasi
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
private void fuzzifikasi()
if (i == 0)
hitung_fuzzifikasiA = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
if(j == 0)
if((data[i][k]gtbatas_fuzzysetMinA[j])ampamp
(data[i][k]lt batas_fuzzysetMinA[j + 1]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA[j + 1])
ampamp (data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j] - data[i][k])
(batas_fuzzysetMaxA[j] ndash
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j]) ampamp
(data[i][k] lt batas_fuzzysetMinA[j + 1])
ampamp(data[i][k] gt batas_fuzzysetMinA[j+1])
ampamp(data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
else if (j == (jmlh_Cluster[i] - 1))
if((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
(batas_fuzzysetMaxA[(jmlh_Cluster[i]ndash
2)]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
if((data[i][k] gt batas_fuzzysetMaxA
75
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
[(jmlh_Cluster[i]- 2)]) ampamp (data[i][k]
lt batas_fuzzysetMaxA[(jmlh_Cluster[i]
- 1)]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] gt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 1)]))
hitung_fuzzifikasiA[j][k] = 0
else if ((0 lt j)ampamp(j lt (jmlh_Cluster[i] - 1)))
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA[j
+1]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA[j])
(batas_fuzzysetMinA[j + 1]-
batas_fuzzysetMinA[j])
if ((data[i][k] gt batas_fuzzysetMinA
[j+1])ampamp (data[i][k] lt
batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j]-data[i][k])
(batas_fuzzysetMaxA[j]-
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA
[j + 1]) ampamp (data[i][k] gt
batas_fuzzysetMinA[j + 1]) ampamp
(data[i][k]ltbatas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
hasil_fuzzifikasiA = new int[jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
int cluster = 0
double besar=hitung_fuzzifikasiA[0][j]
for (int k = 0 k lt jmlh_Cluster[i] k++)
if (besar lt hitung_fuzzifikasiA[k][j])
besar = hitung_fuzzifikasiA[k][j]
cluster = k
hasil_fuzzifikasiA[j] = cluster + 1
Kode Program 58 Implementasi proses fuzzifikasi
526 Implementasi Pembentukan Fuzzy Logical Relationship
Pada implementasi pembentukan Fuzzy Logical Relationship (FLR) memiliki dua output yaitu FLR_kiri dan FLR_kanan Dimana FLR_kiri berisi group dari kelima faktor dan pada FLR_kanan merupakan dari faktor yang akan diramalkan yaitu
76
faktor curah hujan (A) Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code pembentukan Fuzzy Logical Relationship (FLR) dapat ditunjukkan pada Kode Program 59 berikut Pada baris 3 ndash 14 merupakan deklarasi variabel Pada baris 15 ndash 55 adalah proses pembentukan fuzzy logical relationship data training Pada baris 56 ndash 58 merupakan deklarasi variabel Pada baris 59 ndash 86 adalah proses pembentukan fuzzy logical relationship data testing
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Fuzzy Logical Relationship
private void fuzzy_logical_relationship()
String input_order = fieldOrdergetText()
order = IntegerparseInt(input_order)
int max_inc = order
String input_dataTraining = fieldDatatraininggetText()
int dataTraining = IntegervalueOf(input_dataTraining)
int tmp_jmlhDatatraining = 0
int tmp_order = 0
int jmlh_dataTraining = dataTraining - order
String input_dataTesting = fieldDatatestinggetText()
int jmlh_dataTesting = IntegervalueOf(input_dataTesting)
FLR_kiri_training = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_training = new int[jmlh_DataTraining]
for (int i = 0 i lt jmlh_dataTraining i++)
for (int j = i j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (j == 0)
if (k == 0)
FLR_kiri_training[i][j][k]=
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiD[j]
else if (j = 0)
if (k == 0)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiD[j]
tmp_order = j
FLR_kanan_training[i] = hasil_fuzzifikasiA[(i + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
77
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
tmp_jmlhDatatraining = i
FLR_kiri_testing = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_testing = new int[(jmlh_DataTraining)]
tmp_jmlhDatatraining = tmp_jmlhDatatraining + 1
for (int i = 0 i lt jmlh_dataTesting i++)
for (int j = tmp_jmlhDatatraining j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (k == 0)
FLR_kiri_testing[i][j - tmp_jmlhDatatraining][k]
= hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiD[j]
FLR_kanan_testing[i] =
hasil_fuzzifikasiA[(tmp_jmlhDatatraining + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
tmp_jmlhDatatraining++
Kode Program 59 Implementasi pembentukan FLR
527 Implementasi Proses Defuzzifikasi
Pada implementasi proses defuzzifikasi merupakan proses dimana menentukan hasil peramalan dari data testing berdasarkan dari bilangan fuzzy yang terbentuk Implementasi ini memiliki beberapa inputan penting yaitu data training data testing order dan konstanta Inputan tersebut sangat berperan penting dalam proses implementasi defuzzifikasi Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code defuzzifikasi dapat ditunjukkan pada Kode Program 510 berikut Pada baris 2 ndash 11 merupakan deklarasi variabel Pada baris 13 ndash 37 merupakan proses perhitungan selisih antara data training dengan data testing Pada baris 40 ndash 47 menghitung jumlah FLR yang cocok Pada baris 49 ndash 65 merupakan proses mencocokan FLR kiri yang cocok dengan FLR kanan Pada baris 67 ndash 81 merupakan proses menghitung jumlah frekuensi FLR kanan yang cocok Pada baris 83 ndash 91 adalah proses perhitungan hasil peramalan
Baris Kode 1
2
3
4
private void defuzifikasi()
String input_dataTraining = fieldDatatraininggetText()
String input_dataTesting = fieldDatatestinggetText()
String input_konstanta = fieldKonstantagetText()
78
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
int dataTraining = IntegervalueOf(input_dataTraining)
int dataTesting = IntegervalueOf(input_dataTesting)
int konstanta = IntegervalueOf(input_konstanta)
int match[][]
match = new int[dataTesting][2000]
int threshold = (jmlh_Faktor order) + konstanta
int hitung_selisih = 0
perhitungan selisih
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
hitung_selisih = 0
for (int k = 0 k lt order k++)
for (int l = 0 l lt jmlh_Faktor l++)
if (i == 0)
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
else if (i gt 0)
FLR_kiri_training[(dataTraining-
1)+i][k][l] = FLR_kiri_testing[i-
1][k][l]
FLR_kanan_training[(dataTraining-1)+i]
= FLR_kanan_testing[i-1]
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
if (hitung_selisih lt threshold)
match[i][j] = hitung_selisih
menghitung jumlah total FLR yang cocok untuk setiap data
testing
int countGroup[] = new int[dataTesting]
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
countGroup[i]++
mencocokan FLR_kiri yang cocok dengan FLR_kanan
group = new int[dataTesting][2000]
for (int i = 0 i lt dataTesting i++)
int tmp_count = 0
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
if (tmp_count lt countGroup[i])
group[i][tmp_count] = j
tmp_count++
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt countGroup[i] j++)
group[i][j] = FLR_kanan[group[i][j]]
mengelompokkan yang sama
MapltInteger Integergt map = new HashMapltInteger Integergt()
hasil_peramalan = new double[dataTesting]
for (int i = 0 i lt dataTesting i++)
79
70
71
72
73
74
75 76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
double peramalan = 0
mapclear()
for (int j = 0 j lt countGroup[i] j++)
int key = group[i][j]
if (mapcontainsKey(key))
int occurrence = mapget(key)
occurrence++
mapput(key occurrence)
else
mapput(key 1)
menghitung hasil peramlaan
Iterator iterator = mapkeySet()iterator()
while (iteratorhasNext())
int key = (Integer) iteratornext()
int occurrence = mapget(key)
peramalan = (peramalan + (pusat_cluster1[(key - 1)]
occurrence))
hasil_peramalan[i] = (peramalan countGroup[i])
Kode Program 510 Implementasi proses defuzzifikasi
53 Implementasi Antarmuka
Pada implementasi antarmuka dijelaskan beberapa halaman antarmuka untuk penggunaan dari program hasil implementasi Implementasi antarmuka berdasarkan perancangan yang telah dijelasakan pada bab sebelumnya yaitu bab perancangan Halaman antarmuka yang dibuat adalah halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
531 Implementasi antarmuka halaman input
Halaman input merupakan halaman yang pertama muncul setelah program dijalankan Pada halaman input ini terdapat beberapa inputan yang harus di masukkan yaitu data input data training data testing order dan konstanta Selain itu pada halaman input juga terdapat tiga button yaitu button browse data button fuzzification dan button forecasting Berikut tampilan antarmuka halaman input yang ditunjukkan pada Gambar 51
Gambar 51 Implementasi antarmuka halaman input
80
532 Implementasi antarmuka halaman tampil data
Halaman tampil data merupakan halaman yang tampil setelah melakukan input data Halaman ini berisi tabel yang menampilkan data curah hujan suhu kecepatan angin dan kelembaban Berikut tampilan antarmuka halaman tampil data yang ditunjukkan pada Gambar 52
533 Implementasi antarmuka halaman proses
Halaman proses merupakan halaman yang muncul setelah button fuzzification telah dieksekusi Halaman proses ini terdiri dari tiga bagian atau tab yaitu clustering fuzzification dan Fuzzy logical relationship Pada halaman antarmuka clustering menampilkan Universe of Discourse dan jumlah cluster pada masing ndash masing faktor Berikut merupakan tampilan antarmuka halaman proses bagian clustering yang ditunjukkan pada Gambar 53
Gambar 52 Implementasi antarmuka halaman tampil data
Gambar 53 Implementasi antarmuka halaman proses clustering
81
Pada tab selanjutnya yaitu pada tab fuzzification tab ini menampilkan hasil proses fuzzifikasi Pada halaman ini menampilkan tabel yang berisi hasil fuzzifikasi dari setiap faktor Berikut merupakan tampilan antarmuka halaman proses bagian fuzzification yang ditunjukkan pada Gambar 54
Pada tab Fuzzy Logical Relationship menampilakn hasil dari proses pembentukan Fuzzy Logical Relationship Tampilan pada halaman ini menampilkan berupa textarea yang berisi dari output proses tersebut Berikut merupakan tampilan antarmuka halaman proses bagian Fuzzy Logical Relationship yang ditunjukkan pada Gambar 55
Gambar 54 Implementasi antarmuka halaman proses fuzzification
Gambar 55 Implementasi halaman antarmuka proses FLR
82
534 Implementasi antarmuka halaman hasil
Pada implementasi antarmuka halaman hasil ini merupakan halaman yang menampilkan hasil dari proses defuzzifikasi Halaman hasil ini menampilkan tabel yang berisi data aktual dan data dari hasil peramlan Berikut merupakan tampilan antarmuka halaman hasil yang ditunjukkan pada Gambar 56
535 Implementasi antarmuka halaman perhitungan error
Pada implementasi antarmuka halaman perhitungan error merupakan halaman yang menampilkan hasil dari proses perhitungan Mean Square Error (MSE) Pada halaman antarmuka ini menampilkan hasil error MSE pada textfield Berikut merupakan tampilan antarmuka halaman perhitungan error yang ditunjukkan pada Gambar 57
Gambar 56 Implementasi halaman antarmuka hasil
Gambar 57 Implementasi halaman antarmuka perhitungan error
83
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini membahas hasil pengujian dan analisis hasil pengujian dari hasil implementasi metode High Order Fuzzy Time Series Multi factors untuk peramalan curah hujan dasarian Pada pengujian ini disesuaikan dengan perancangan pengujian pada bab 4
61 Sistematika Pengujian
Pada bab sebelumnya yaitu bab 4 mengenai perancangan telah dibahas perancangan pengujian dikatakan bahwa pengujian akan dilakukan sebanyak empat pengujian Pengujian order pengujian threshold pengujian jumlah data training dan pengujian validasi sistem Dari semua pengujian tersebut akan di uji dan di analisis bagaimana pengaruhnya terhadap hasil perhitungan Mean Square Error (MSE)
62 Hasil dan Analisis Pembahasan
Berikut hasil pengujian dan analisis yang disesuaikan dengan perancangan pengujian pada bab sebelumnya
621 Pengujian pengaruh order terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh order terhadap nilai MSE Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Jadi jika nilai order adalah 3 maka peramalan akan melibatkan 3 data sebelumnya pada proses pembentukan Fuzzy Logical Relationship (FLR) Pada pengujian ini hanya nilai order yang diubah ndash ubah sedangkan variabel lain akan dibuat tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 konstanta adalah 10 Nilai threshold diperoleh dari perhitungan jumlah faktor dikali order dan dijumlah nilai konstanta Berikut adalah hasil pengujian pengaruh order terhadap nilai MSE yang ditunjukkan pada Tabel 61
Tabel 61 Hasil pengujian order terhadap nilai MSE
No Order Threshold MSE
1 3 22 808585
2 6 34 965547
3 9 46 912631
4 12 58 875884
5 15 70 719284
6 18 82 6801207
7 21 94 5637184
8 24 106 5444184
9 27 118 5433631
10 30 130 5418393
84
Dari hasil pengujian order seperti yang telah ditunjukkan pada Tabel 61 maka pada percobaan pertama dengan order = 3 dan threshold 22 dapat diperoleh MSE sebesar 808585 Selanjutnya pada percobaan kedua dengan order = 6 dan threshold = 34 diperoleh MSE sebesar 965547 Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 61
Berdasarkan Gambar 61 order yang berbeda - beda mempengaruhi besar nilai MSE Dalam penelitian ini menentukan order memiliki ketentuan yaitu nilai order harus lebih dari 0 dan batas maksimal order adalah setengah dari nilai data training (LinYang 2009) Nilai MSE terbesar yang ditunjukkan pada pengujian ini adalah 965547 pada pengujian order 6 dan nilai MSE terkecil adalah 5418393 pada pengujian order 30 Pada Gambar 61 menunjukkan bahwa pada order 3 ke order 6 mengalami peningkatan nilai MSE selanjutnya pada order 6 hingga order 30 mengalami penurunan Pada order 3 memiliki nilai MSE lebih kecil dari order 6 order 9 dan order 12 karena memiliki lebih banyak hasil selisih tingkat kecocokan data time series yang tidak terlalu besar dan kurang dari threshold Selain itu karena data time series dari data sampel yang diperoleh memiliki pola data musiman dimana perubahan pola data dasarian tidak terlalu banyak berubah dari tahun ke tahun Selanjutnya pada order 6 hingga order 30 menunjukkan penurunan nilai MSE dan order terbesar memiliki nilai MSE terkecil sehingga dapat disumpulkan bahwa semakin besar order maka semakin kecil pula nilai MSE Dalam hal ini dengan semakin besarnya order maka data sebelumnya yang digunakan untuk pertimbangan dalam menentukan peramalan semakin banyak Sehingga semakin besar nilai order maka dapat membuat peramalan semakin akurat Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin besar nilai order maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE
85
622 Pengujian pengaruh threshold terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh threshold terhadap nilai MSE Threshold merupakan hasil dari mengalikan jumlah order dengan jumlah faktor pada data kemudian dijumlahkan dengan dengan nilai konstanta Pada proses defuzzifikasi terdapat proses menghitung selisih antara pangkat bawah Fuzzy Logical Relationship (FLR) data training dan pangkat bawah FLR data testing Selanjutnya setelah mendapatkan nilai selisih maka nilai selisih tersebut dibandingkan dengan nilai threshold untuk mencari FLR yang cocok Pada pengujian ini nilai konstanta saja yang diubah ndash ubah sementara variabel lainnya tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 dan Nilai order adalah 30 Pada penentuan input konstanta nilai minimal harus lebih besar dari 0 dan nilai maksimal menyesuaikan data sampel yang digunakan (LinYang 2009) Berikut adalah hasil pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 62
Tabel 62 Hasil pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1 10 130 558485
2 20 140 577498
3 30 150 597364
4 40 160 604660
5 50 170 646951
6 60 180 680257
7 70 190 703013
8 80 200 741484
9 90 210 756749
10 100 220 780600
Dari hasil pengujian threshold seperti yang telah ditunjukkan pada Tabel 62 maka dapat dilihat bahwa konstanta yang dilakukan pengujian dimulai dengan nilai 10 sampai 100 Hasil yang didapat pada percobaan pertama dengan konstanta = 10 dan threshold 130 diperoleh MSE sebesar 558485 Selanjutnya pada percobaan kedua dengan konstanta = 20 dan threshold = 140 diperoleh MSE sebesar 577498 Selanjutnya dapat kita lihat pada percobaan yang telah dilakukan dari percobaan pertama hingga percobaan kesepuluh nilai MSE yang diperoleh mengalami perubahan pada setiap percobaan Dapat dilihat bahwa peningkatan MSE lebih dominan menunjukkan peningkatan sehingga dalam hal ini semakin besar nilai konstanta dan threshold maka semakin besar pula nilai MSE yang diperoleh Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 62
86
Berdasarkan grafik dari Gambar 62 nilai input konstanta yang berbeda - beda mempengaruhi besar nilai MSE semakin besar nilai konstanta maka nilai threshold juga semakin besar karena threshold diperoleh dari perhitungan order dikali jumlah faktor dan selanjutnya dijumlah dengan nilai konstanta Dalam hal ini dengan semakin besar nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR juga semakin luas batasannya dan jika semakin kecil nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR menjadi semakin sempit dan mempermudah proses peramalan karena hanya adanya sedikit data yang cocok dengan data yang akan diramalkan dan mempermudah proses defuzzifikasi Oleh karena itu semakin kecil threshold maka dapat membuat peramalan semakin akurat Akan tetapi nilai threshold tidak boleh terlalu kecil karena dapat menyebabkan kegagalan peramalan Kegagalan peramalan itu terjadi karena tidak adanya data training yang cocok dengan data testing karena pada metode yang digunakan pada penelitian ini sangat bergantung pada data ndash data sebelumnya Dari hasil percobaan diatas hasil MSE terbesar adalah 7806 yaitu pada konstanta 100 serta threshold 220 dan hasil MSE terkecil adalah 558485 yaitu pada konstanta 10 dan threshold 130 Dalam pengujian ini memiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin kecil nilai konstanta maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
623 Pengujian pengaruh jumlah data training terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh jumlah data training terhadap nilai MSE Pada pengujian ini jumlah data training adalah data dasarian yaitu 1 tahun 2 tahun 3 tahun 4 tahun dan 5 tahun dimana dari setiap 1 tahun memiliki 36 data dasarian Pengujian ini akan dilakukan sebanyak lima kali Pada pengujian ini jumlah data testing adalah 36 nilai order adalah setengah dari
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE
87
nilai data training nilai konstanta adalah 20 Berikut adalah hasil pengujian pengaruh jumlah data training terhadap nilai MSE yang ditunjukkan pada Tabel 63
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1 36 786586
2 72 634527
3 108 627190
4 144 614184
5 180 539698
Dari hasil pengujian jumlah data training seperti yang telah ditunjukkan pada Tabel 63 maka pada percobaan pertama dengan data training = 36 dapat diperoleh MSE sebesar 786586 Selanjutnya pada percobaan kedua dengan data training = 72 diperoleh MSE sebesar 634527 Dalam hal ini dari percobaan satu dan dua nilai MSE mengalami penurunan Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 63
Berdasarkan dari Gambar 63 pengujian pertama sampai pengujian kelima mengalami penerunan nilai MSE Sehingga dapat disimpulkan bahwa semakin besar data training maka semakin kecil nilai MSE yang diperoleh Nilai MSE semakin kecil apabila menggunakan data training dalam jumlah besar karena data yang digunakan memiliki rentang jauh dari periode data testing atau data yang akan diramalkan Sedangkan data training yang sedikit memiliki nilai MSE yang besar karena data training yang memiliki kecocokan dengan data testing berada pada periode yang jauh dengan data testing sehingga nilai MSE menjadi tinggi Dalam hal ini terbukti bahwa metode yang digunakan pada penelitian ini memerlukan jumlah data training yang banyak sehingga dapat menurunkan nilai kesalahannya Dari hasil percobaan diatas hasil MSE terbesar adalah 786586 dan
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE
88
hasil MSE terkecil adalah 539698 Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoPeramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Seriesrdquo yang menyatakan bahwa semakin besar jumlah data training maka semakin kecil nilai kesalahannya (Elfajar et al 2017)
624 Pengujian validasi sistem
Pada pengujian ini dilakukan untuk mengetahui kestabilan dari sistem dengan menggunakan order threshold terbaik dari pengujian sebelumnya Pada pengujian ini akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai data training menggunakan 36 data yang berbeda agar dapat menunjukkan gambaran variasi dari nilai kesalahan MSE pada peramalan nilai order adalah 18 dan konstanta adalah 10 sehingga nilai threshold adalah 92 Berikut adalah hasil pengujian validasi sistem yang ditunjukkan pada Tabel 64
Tabel 64 Hasil pengujian validasi sistem
Percobaan ke- MSE
1 714290
2 703856
3 732564
4 732815
5 6973958
6 7532825
7 741726
8 760457
9 709961
10 6256204
Dari hasil pengujian validasi sistem seperti yang telah ditunjukkan pada Tabel 64 maka dapat digambarkan dengan grafik yang ditunjukkan oleh Gambar 64
Gambar 64 Grafik hasil pengujian validasi sistem
89
Berdasarkan dari gambar grafik Gambar 64 bahwa pengujian dari validasi sistem memiliki hasil MSE yang tidak terlalu jauh berbeda dari penggunaan data yang berbeda - beda Oleh karena itu dapat disimpulkan bahwa implementasi dari metode High Order Fuzzy Time Series Multi Factors yang telah digunakan sudah cukup baik untuk digunakan peramalan
Berdasarkan dari pengujian yang dilakukan diatas dapat diketahui bahwa nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun 2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016 Nilai order adalah 90 dan konstanta adalah 10 Berikut adalah perbandingan data aktual dengan hasil peramalan yang ditunjukkan pada grafik Gambar 65
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan
90
BAB 7 PENUTUP
Pada bab ini terdiri dari dua sub bab yaitu kesimpulan dan saran Kesimpulan adalah tahapan yang berisi hasil penelitian yang dilakukan dan jawaban semua rumusan masalah yang sudah ditetapkan sebelumnya dan saran adalah tahapan yang berisi hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
71 Kesimpulan
Pada kesimpulan ini mengacu pada penelitian yang telah dilakukan yang meliputi perancangan implementasi serta pengujian dan analisis terhadap hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diambil kesimpulan sebagai berikut
1 Berdasarkan dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam melakukan peramalan curah hujan dasarian dilakukan dengan beberapa langkah yaitu langkah pertama perhitungan Universe of Discourse yang terdiri perhitungan mean standar deviasi dan perhitungan Dmin serta Dmax langkah kedua yaitu perhitungan jumlah cluster langkah ketiga yaitu perhitungan pusat cluster langkah keempat yaitu pembentukan subinterval dan fuzzy set langkah kelima yaitu proses fuzzifikasi langkah keenam yaitu pembentukan Fuzzy Logical Relationship(FLR) langkah ketujuh adalah defuzzifikasi yang hasil outputnya merupakan hasil peramalan curah hujan
2 Berdasarkan dari pengujian peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diketahui bahwa
a Order berpengaruh terhadap nilai error semakin besar nilai order maka hasil peramalan semakin baik
b Threshold berpengaruh terhadap nilai error semakin rendah nilai threshold maka hasil peramalan semakin baik Akan tetapi nilai threshold tidak boleh terlalu rendah karena dapat menyebabkan kegagalan peramalan
c Data training berpengaruh terhadap nilai error semakin besar jumlah data training maka hasil peramalan semakin baik Sehingga peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors memerlukan banyak data training
d Hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors cukup baik digunakan untuk peramalan Hal ini terbukti hasil pengujian validasi sistem menunjukkan grafik yang cukup stabil
Dari pengujian yang telah dilakukan nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun
91
2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016
72 Saran
Pada penelitian ini dilakukan peramalan curah hujan dasarian dengan faktor yang mempengaruhi adalah suhu kelembaban dan kecapatan angin Saran penulis diharapkan untuk penelitian selanjutnya melakukan penambahan faktor yang mempengaruhi curah hujan atau melakukan peramalan objek lain dengan mempertimbangkan faktor ndash faktor yang mempengaruhinya Serta diharapkan pada penelitian selanjutnya untuk menambahkan data yang lebih banyak serta bervariatif sehingga nilai hasil perhitungan akurasi peramalan yang dihasilkan dalam penelitian dapat meningkat Penggunaan data training yang banyak dan bervariatif dapat membuat pola data semakin terlihat sehingga hasil peramalan yang dihasilkan memiliki akurasi yang lebih baik
92
DAFTAR PUSTAKA
Ardiyanto 2016 ldquoTerendam Air Petani Lamongan Terpaksa Panen Dinirdquo Times Indonesia November 18 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
Badan Penelitian dan Pengembangan Pertanian Kementrian Pertanian 2015 ldquoKalender Tanam Terpadu Versi 25 Kota Malang Prov Jawa Timurrdquo httpkatamlitbangpertaniangoidkatam_terpadu2016mh33535733573_tinggipdf (Diakses 25 Februari 2017)
Bagirov M Adil Mahmood Arshad and Barton Andrew 2017 Prediction of monthly rainfall in Victoria Australia Clusterwise linear regression approach Elsevier Atmos Research 188 20-29
BMKG Staklim Karangploso Malang 2015 ldquoAnalisis Dinamika Atmosfer Dan Laut Dasarian III Maret 2015 Update 2 April 2015rdquo httpkarangplosojatimbmkgogoidindexphpanalisis-kondisi-dinamika-atmosfer-laut-dasarian-tahun-2015399-analisis-dinamika-atmosfer-dan-laut-dasarian-iii-maret-2015-update-2-april-2015axzz3X8h9y4fgampgsctab=0 (Diakses 25 Februari 2017)
BPS Kabupaten Malang 2016 ldquoKabupaten Malang Dalam Angka 2016rdquo httpsmalangkabbpsgoidwebsitepdf_publikasiKabupaten-Malang-Dalam-Angka-2016pdf (Diakses 25 Februari 2017)
BPS Jawa Timur 2015 ldquoJawa Timur Dalam Angka 2015rdquo httpsjatimbpsgoid4dmnpdf_publikasiJawa-Timur-Dalam-Angka-2015pdf (Diakses 25 Februari 2017)
Buffa S Elwood Rakesh and Sarin K 1996 Modern Production and Operation Management Eight Edition John Willey and Sons Inc London
Chen M 1996 Forecasting Enrollments based on Fuzzy Time Series Fuzzy Sets and Systems 311-319
Dewi Candra Kartikasari Dani Mursityo Yusi 2014 Prediksi Cuaca Pada Data Time Series Menggunakan Adaptive Neuro Fuzzy Inference System (ANFIS) Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK) Vol 1 No 1 hlm 18-24
Dewi Candra Muslikh M 2013 Perbandingan Akurasi Backpropagation Neural Network dan ANFIS Untuk Memprediksi Cuaca NATURAL-A Journal of Scientific Modeling amp Computation Volume 1 No1
Elfajar Aria Setiawan Budi Dewi Candra 2017 Peramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Series Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer Vol 1 No 2 Hlmn 85-94
93
Fauziah Normalita Wahyuningsih Sri dan Nasution Yuki 2016 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) Vol4 Statistika
Forest Mahyu 2015 ldquoDefenisi amp Pengertian Kelembabanrdquo httpilmupengetahuaalamblogspotcoid201506defenisi-pengertian-kelembabanhtml (Diakses 25 Februari 2017)
Irsyad Muhammad Metarice Sonya 2013 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan Jurnal Sains dan Teknologi Industri Vol 10 No 02
Klawon F 2001 What is About Fuzzy Clustering Understanding and Improving the Concept of the Fuzzier Science Journal httppublic-rzfh-wolfebuetteldeklawon
Kurniawan Carlos 2007 Analisis dan Perancangan Program Aplikasi Peramalan Curah Hujan dengan Metode Wavelet (Studi Kasus BMKG)
Kusumadewi S 2003 ldquoArtificial Intelegence (Teknik amp Aplikasinya)rdquo Graha Ilmu Yogyakarta
Kusumadewi S Purnomo H 2004 ldquoAplikasi Logika Fuzzy untuk Pendukung Keputusanrdquo Graha Ilmu Yogyakarta
Kusumadewi Sri 2002 Analisis amp Desain Sistem Fuzzy Tollbox MATLAB Graha Ilmu Yogyakarta
Lin Yupei Yang Y 2009 Stock Markets Forecasting Based on Fuzzy Time Series Model IEEE Conference Publications 782-886
Makridakis S Steven C Wheelwright Victor E and Gee MC 1999 Metode dan Aplikasi Peramalan Jilid I Edisi Kedua Jakarta Binarupa Aksara
Mirawati T Yasin H and Rusgiyono A 2013 Prediksi Curah Hujan dengan Metode Kalman Filter(Studi Kasus di Kota Semarang 2012) Jurnal Gaussian 2(3) pp 239-248
Pradipta Nur Sembiring Pasukat Bangun Pengarapen 2013 Analisis Pengaruh Curah Hujan di Kota Medan Saintia Matematika Vol 1
Sipayung Putri Metha 2013 Pemodelan Hubungan Kelembapan Udara terhadap Curah Hujan (Studi Kasus Curah Hujan Periode 2001-2009 pada Stasiun Dramaga) httprepositoryipbacidhandle12345678960623 (Diakses 25 Februari 2017)
User 2015 httpstaklimnegaranet[Online] Available at httpwwwstaklimnegaranetindexphpbuletin-hujanpengertian-istilah (Diakses 25 Februari 2017)
Wang Nai-Yi Chen Shyi-Ming 2009 Temperature prediction and TAIFEX forecasting based on automatic clustering techniques and two-factors high-order fuzzy time series Elsevier Expert Systems with Applications 36 2143ndash2154
94
Wardhani Dessy Ratnawati Dian Setiawan Budi 2015 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Saham Repositori Jurnal Mahasiswa PTIIK UB Doro Jurnal Vol 6 No 6
Wiyanti T and Pulungan R 2012 Peramalan Deret Waktu Menggunakan Model Fungsi Basis Radial (RBF) dan Auto Regressive Integrated Moving Average (ARIMA) Jurnal MIPA 35(2) pp 175-182
Yunanto Utomo 2014 ldquoBMKG Akui Prakiraan Cuacanya Masih Kurang Akuratrdquo Kompas Sains Januari 30 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
ix
435 Halaman perhitungan error 64
44 Perancangan pengujian 64
441 Perancangan pengaruh order terhadap nilai MSE 64
442 Perancangan pengaruh threshold terhadap nilai MSE 65
443 Perancangan pengaruh jumlah data training terhadap nilai MSE 65
444 Perancangan validasi sistem 65
BAB 5 IMPLEMENTASI 67
51 Spesifikasi Sistem 67
511 Spesifikasi Perangkat Keras 67
512 Spesifikasi Perangkat Lunak 67
52 Implementasi Algoritma 67
521 Implementasi Proses Universe of Discourse 68
5211 Implementasi proses mean 68
5212 Implementasi proses standar deviasi 68
5213 Implementasi proses Dmin dan Dmax 69
522 Implementasi Proses Jumlah Cluster 69
523 Implementasi Proses Pusat Cluster 70
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set 72
525 Implementasi proses fuzzifikasi 74
526 Implementasi Pembentukan Fuzzy Logical Relationship 75
527 Implementasi Proses Defuzzifikasi 77
53 Implementasi Antarmuka 79
531 Implementasi antarmuka halaman input 79
532 Implementasi antarmuka halaman tampil data 80
533 Implementasi antarmuka halaman proses 80
534 Implementasi antarmuka halaman hasil 82
535 Implementasi antarmuka halaman perhitungan error 82
BAB 6 PENGUJIAN DAN ANALISIS 83
61 Sistematika Pengujian 83
62 Hasil dan Analisis Pembahasan 83
621 Pengujian pengaruh order terhadap nilai MSE 83
x
622 Pengujian pengaruh threshold terhadap nilai MSE 85
623 Pengujian pengaruh jumlah data training terhadap nilai MSE 86
624 Pengujian validasi sistem 88
BAB 7 PENUTUP 90
71 Kesimpulan 90
72 Saran 91
DAFTAR PUSTAKA 92
LAMPIRAN 95
Lampiran 1 Data Sampel 95
xi
DAFTAR TABEL
Tabel 21 Kajian Pustaka 5
Tabel 22 Fuzzy Logic Relationship 19
Tabel 23 Peramalan fuzzy set 20
Tabel 41 Data Sampel Perhitungan Manual 46
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean 47
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi 47
Tabel 44 Hasil Universe of Discourse 48
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya 48
Tabel 46 Hasil jumlah cluster data 49
Tabel 47 Matriks partisi awal pada cluster data A 50
Tabel 48 Derajat keanggotaan matriks partisi data A 51
Tabel 49 Perhitungan pusat cluster data A 52
Tabel 410 Fungsi objektif data A 53
Tabel 411 Perbaikan matriks partisi 54
Tabel 412 Hasil perbaikan matriks partisi 54
Tabel 413 Hasil pusat cluster 55
Tabel 414 Batas subinterval masing ndash masing atribut data 55
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A 57
Tabel 416 Hasil fuzzifikasi semua data attribut 57
Tabel 417 Hasil pembentukan FLR data training 58
Tabel 418 Hasil pembentukan FLR data testing 58
Tabel 419 Frekuensi FLR yang cocok dengan data testing 59
Tabel 420 Perbandingan data aktual dan hasil peramalan 60
Tabel 421 Rancangan pengujian order terhadap nilai MSE 64
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE 65
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE 65
Tabel 424 Rancangan pengujian validasi sistem 66
Tabel 51 Spesifikasi Perangkat Keras 67
Tabel 52 Spesifikasi Perangkat Lunak 67
Tabel 61 Hasil pengujian order terhadap nilai MSE 83
xii
Tabel 62 Hasil pengujian threshold terhadap nilai MSE 85
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE 87
Tabel 64 Hasil pengujian validasi sistem 88
xiii
DAFTAR GAMBAR
Gambar 21 Representasi linear naik 11
Gambar 22 Representasi linear turun 12
Gambar 23 Representasi kurva segitiga 12
Gambar 31 Diagram blok metodologi penelitian 22
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1) 25
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2) 26
Gambar 43 Diagram alir proses perhitungan Universe of Discourse 27
Gambar 44 Diagram alir proses perhitungan mean 28
Gambar 45 Diagram alir proses perhitungan standar deviasi 29
Gambar 46 Diagram alir perhitungan nilai Min dan Max 30
Gambar 47 Diagram alir proses perhitungan jumlah cluster 31
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1) 32
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2) 33
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3) 34
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4) 35
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5) 36
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1) 37
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2) 38
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1) 39
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2) 40
Gambar 417 Diagram alir proses Pembentukan FLR (bagian 1) 41
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2) 42
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3) 43
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1) 44
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2) 45
Gambar 422 Grafik fuzzy set data A 56
Gambar 423 Rancangan antarmuka halaman input 61
Gambar 424 Rancangan antarmuka halaman tampil data 61
Gambar 425 Rancangan antarmuka halaman proses clustering 62
Gambar 426 Rancangan antarmuka proses fuzzifikasi 62
xiv
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship 63
Gambar 428 Rancangan antarmuka halaman hasil peramalan 63
Gambar 429 Rancangan antarmuka halaman perhitungan error 64
Gambar 51 Implementasi antarmuka halaman input 79
Gambar 52 Implementasi antarmuka halaman tampil data 80
Gambar 53 Implementasi antarmuka halaman proses clustering 80
Gambar 54 Implementasi antarmuka halaman proses fuzzification 81
Gambar 55 Implementasi halaman antarmuka proses FLR 81
Gambar 56 Implementasi halaman antarmuka hasil 82
Gambar 57 Implementasi halaman antarmuka perhitungan error 82
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE 84
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE 86
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE 87
Gambar 64 Grafik hasil pengujian validasi sistem 88
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan 89
xv
DAFTAR KODE PROGRAM
Kode Program 51 Implementasi proses Universe of Discourse 68
Kode Program 52 Implementasi proses mean 68
Kode Program 53 Implementasi proses standar deviasi 69
Kode Program 54 Implementasi proses Dmin dan Dmax 69
Kode Program 55 Implementasi proses jumlah cluster 70
Kode Program 56 Implementasi proses pusat cluster 72
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set 74
Kode Program 58 Implementasi proses fuzzifikasi 75
Kode Program 59 Implementasi pembentukan FLR 77
Kode Program 510 Implementasi proses defuzzifikasi 79
xvi
DAFTAR LAMPIRAN
Lampiran 1 Tabel Data Sampel 95
1
BAB 1 PENDAHULUAN
11 Latar belakang
Kabupaten Malang merupakan salah satu kabupaten di Jawa Timur yang terkenal akan potensi alam yang dimiliki (BPS Kabupaten Malang 2016) Dalam hal ini terkenal akan potensi alamnya karena kabupaten Malang memiliki tingkat produksi di sektor pertanian yang cukup tinggi dimana hampir seluruh kecamatan di kabupaten Malang memiliki lahan pertaniaaan (BPS Jatim 2015) Permasalahan yang terjadi pada sektor pertanian yaitu terjadinya gagal panen apabila memasuki musim penghujan dengan curah hujan yang tinggi yaitu diatas 200 mm per bulan serta apabila memasuki musim kemarau dengan curah hujan yang rendah yaitu dibawah 100 mm per bulan (BMKG Staklim Karangploso Malang 2015) Dalam mengatasi hal tersebut upaya yang dilakukan petani selama ini hanya melakukan tindakan seperti melakukan panen secara dini Upaya ini dianggap petani cukup efektif dalam mengurangi besarnya kerugian gagal panen akan tetapi sebaiknya yang dilakukan adalah melakukan suatu tindakan agar kerugian yang dialami petani tidak terjadi lagi (Ardiyanto 2016)
Salah satu contoh tindakan yang dapat dilakukan adalah membuat Kalender Tanam (KATAM) KATAM dapat digunakan petani sebagai alat bantu atau pedoman dalam menentukan awal musim tanam terbaik seperti yang telah dilakukan oleh Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian Dalam pembuatan KATAM Balitbang menggunakan data peramalan curah hujan dari Badan Meteorologi Klimatologi dan Geofisika (BMKG) Akan tetapi BMKG mengakui bahwa prakiraan cuacanya saat ini memang masih kurang akurat dan masih kalah dengan prakiraan cuaca di Amerika Serikat (Yunanto 2014) Pentingnya akan prakiraan cuaca terbukti adanya beberapa penelitian sebelumnya yaitu penelitian prakiraan cuaca dengan input faktor yang mempengaruhi cuaca yang berupa data time series menggunakan metode Adaptive Neuro Fuzzy Inference System (ANFIS) (Dewi 2014) dan penelitian mengenai prediksi cuaca menggunakan metode Backpropagation Neural Network yang terbukti memiliki nilai akurasi yang baik dalam prediksi cuaca (Dewi 2013)
Teknik atau metode peramalan curah hujan yang sering digunakan BMKG adalah metode Autoregressive Integrated Moving Average (ARIMA) ANFIS dan Wavelet (Kurniawan 2007) Namun dalam penerapannya gabungan dari ketiga metode tersebut masih kurang memuaskan yaitu tingkat akurasinya hanya mencapai 60 - 70 Menurut BMKG kurangnya tingkat akurasinya ini disebabkan oleh keadaan pola atmosfer di Indonesia yang selalu berubah ndash ubah dan kurang menentu
Selain metode yang digunakan oleh BMKG adapun penelitian sebelumnya yang meramalkan curah hujan yaitu penelitian menggunakan metode Fuzzy Time Series Chen dengan studi kasus curah hujan di Samarinda dalam penelitian ini menggunakan data time series curah hujan bulanan dengan kesimpulan pengunaan data yang sedikit memiliki tingkat akurasi lebih tinggi dibandingkan
2
menggunakan data yang banyak yaitu menghasilkan nilai RMSE terkecil 7368 dan MAE terkecil 539 (Fauziah et al 2016)
Selain peramalan yang hanya menggunakan data time series dari data yang akan diramalkan juga terdapat penelitian sebelumnya yang menggunakan faktor - faktor yang mempengaruhi dari data yang akan diramalkan Salah satunya yaitu penelitian dengan menggunakan metode Clusterwise Linear Regression (CLR) Penelitian ini menggunakan data bulanan pada delapan stasiun cuaca di kota Victoria Australia Peramalan curah hujan pada penelitian ini menggunakan faktor yang mempengaruhi yaitu suhu maksimum suhu minimum penguapan tekanan uap dan radiasi matahari Hasil penelitian ini terbukti dapat melakukan peramalan curah hujan dengan hasil yang cukup baik yaitu dengan nilai RMSE terkecil 197 dan MAE terkecil 129 (Bagirov et al 2017)
Berdasarkan paparan yang telah dijelaskan penulis memiliki ide untuk melakukan penelitian dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Pada metode ini dilakukan klasterisasi data untuk membangun subinterval dengan menggunakan metode fuzzy C-means (LinYang 2009) Dari proses hasil klasterisasi akan digunakan untuk membagi data semesta yang selanjutnya menghasilkan fuzzy set atau himpunan fuzzy yang menggambarkan fitur data (LinYang 2009) Keunggulan dari metode fuzzy time series dengan multi faktor yaitu dengan berdasarkan pada penelitian ndash penelitian sebelumnya yang menggunakan metode tersebut yaitu penelitian prediksi harga emas dengan beberapa faktor yang mempengaruhi menggunakan metode Multi-factors High order Fuzzy Time Series Model dari hasil penelitian ini dengan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 (Wardhani et al 2015) dan penelitian peramalan Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen menggunakan metode Fuzzy Time Series Model dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 (Lin Yang 2009) terbukti menghasilkan hasil peramalan dengan tingkat akurasi yang cukup tinggi Penggunaan metode ini juga sesuai dengan curah hujan yang dipengaruhi oleh beberapa faktor yaitu kelembaban udara kecepatan angin dan suhu (Pradipta 2013) Penelitian ini diharapkan dapat memberikan hasil peramalan curah hujan yang lebih akurat dan memiliki nilai kesalahan yang lebih sedikit
12 Rumusan masalah
Berdasarkan latar belakang yang telah dipaparkan dibuatlah beberapa rumusan masalah sebagai berikut
1 Bagaimana mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Berapa tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
3
13 Tujuan
Adapun maksud dan tujuan dari penelitian ini adalah sebagai berikut
1 Mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Mengetahui tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
14 Manfaat
Adapun manfaat dari penelitian ini adalah sebagai berikut
1 Bagi Badan Meteorologi dan Geofisika (BMKG) untuk dapat memberikan peramalan curah hujan yang lebih akurat dari sebelumnya
2 Bagi Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian untuk dapat membuat Kalender tanam (KATAM) dengan menggunakan data ramalan curah hujan yang lebih akurat
3 Bagi penduduk kabupaten Malang khususnya yang bekerja pada sektor pertanian agar dapat mengoptimalkan hasil produksi dengan menyesuaikan penanaman sesuai dengan Kalender Tanam (KATAM) yang telah dibuat Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian
15 Batasan masalah
Penelitian ini dibatasi oleh hal ndash hal sebagai berikut
1 Data curah hujan kelembaban udara kecepatan angin dan suhu udara yang digunakan pada penelitian ini merupakan data berdasarkan dasarian dan hanya mencakup wilayah kabupaten Malang dan data diperoleh dari BMKG Karangkates Kabupaten Malang dengan data time series yang digunakan pada penelitian ini yaitu dari tahun 2011 - 2016
2 Model peramalan yang diterapkan adalah semua nilai yang membentuk pola dataset training dan testing diketahui nilainya
3 Perhitungan nilai tingkat kesalahan permalan menggunakan metode Mean Square Error (MSE)
16 Sistematika pembahasan
Sistematika pembahasan penelitian ditunjukkan untuk memberikan gambaran dan uraian dari penyusunan proposal yang meliputi beberapa bab sebagai berikut
BAB 1 PENDAHULUAN
Pada bab ini berisi latar belakang rumusan masalah tujuan penelitian manfaat penelitian batasan masalah sistematika pembahasan dan rencana kerja atau jadwal penelitian
4
BAB 2 LANDASAN KEPUSTAKAAN
Pada bab ini berisi tentang kajian pustaka dan dasar teori yang menjadi dasar dalam melakukan implementasi peramalan curah hujan dengan Metode High Order Fuzzy Time Series Multi Factors
BAB 3 METODOLOGI
Pada bab ini diuraikan tentang tahapan atau langkah ndash langkah yang dilakukan dalam proses penelitian tentang peramalan curah hujan dengan metode High Order Fuzzy Time Series Multi Factors Langkah ndash langkah tersebut terdiri dari tahapan penelitian teknik pengumpulan data algoritma yang digunakan lingkungan pengujian dan pengujian algoritma yang digunakan serta pengambilan kesimpulan
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan proses algoritma perhitungan manual metode High Order Fuzzy Time Series Multi Factors perancangan antar muka dan perancangan pengujian
BAB 5 IMPLEMENTASI
Pada bab ini berisi tentang penjelasan peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors bagaimana user interface dan source code dalam pengimplementasian metode ini
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini berisi tentang penjelasan proses dan hasil pengujian dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam peramalan curah hujan serta analisis dari pengujian tersebut
BAB 7 PENUTUP
Pada bab ini berisi kesimpulan yang diperoleh dari hasil pengujian dan saran ndash saran untuk pengembangan penelitian selan
5
BAB 2 LANDASAN KEPUSTAKAAN
Bab ini berisi mengenai kajian pustaka dan dasar ndash dasar teori yang akan dibahas serta digunakan untuk menunjang topik ndash topik pembahasan Pada kajian akan dibahas perbedaan antara penelitian yang telah ada dengan penelitian yang diusulkan oleh penulis Sedangkan pada dasar teori akan dibahas mengenai teori ndash teori yang digunakan pada penelitian yang diusulkan
21 Kajian Pustaka
Pada kajian pustaka disini berisi mengenai perbandingan antara penelitian yang diusulkan oleh penulis dengan penelitian sebelumnya yang relevan Perbandingan tersebut dapat dilihat padat Tabel 21
Tabel 21 Kajian Pustaka
No Judul Objek dan Input Penelitian Metode
1 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan (Irsyad Metarice 2013)
Objek Curah hujan
Input Penelitian
Data aktual curah hujan
Metode High Order Fuzzy Time Series dan Automatic Clustering
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
2 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) (Fauziah et al 2016)
Objek Curah Hujan
Input Penelitian
Data aktual curah hujan
Metode Fuzzy Time Series Chen
Nilai evaluasi
Mean Absolute Error (MAE) Root Mean of Square Error (RMSE)
3 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emas (Wardhani et al 2015)
Objek Harga Emas
Input Penelitian
Kurs Dollar hari sebelumnya
Kurs Euro hari sebelumnya
Harga Emas London hari sebelumnya
Harga Emas hari sebelumnya
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
4 Stock Markets Forecasting Based on Fuzzy Time Series Model (Lin Yang 2009)
Objek Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
6
Input Penelitian
Historical return
Historical turnover volume
Rata ndash rata selisih pergerakan harga selama lima hari
Selisih antara kekuatan bull dan bear
Indeks komposit bursa efek harian Shanghai sebelumnya
Indeks komposit bursa efek harian Shenzhen
Nilai evalusi
Average Relative Error (ARError)
5 Peramalan Curah Hujan Menggunakan Metode High Order Fuzzy Time Series Multi Factors
Objek Curah hujan
Input Penelitian
Suhu
Kelembaban
Kecepatan angin
Curah hujan
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Square Error (MSE)
Sumber (Irsyad Metarice 2013) (Fauziah et al 2016) (Wardhani et al 2015) dan (Lin Yang 2009)
Pada penelitian yang pertama yaitu penelitian yang dilakukan oleh Muhammad Irsyad dan Sonya Metarice pada tahun 2013 dengan objek penelitian yang diramalkan adalah curah hujan Inputan yang digunakan pada penelitian ini merupakan data aktual curah hujan bulanan Metode yang digunakan penelitian ini adalah Automatic Clustering dan High Order Fuzzy Time Series Pada penelitian ini metode Automatic Clustering digunakan untuk membangun interval dan High Order Fuzzy Time Series untuk melakukan peramalan curah hujan Kesimpulan yang diperoleh dari penelitian ini yaitu metode ini dapat diterapkan untuk permalan curah hujan dan hasil evaluasi menggunakan metode Mean Absolute Percentage Error(MAPE) dari beberapa bercobaan dapat diperoleh nilai kesalahan sebesar 437 Berdasarkan dari hasil nilai kesalahan tersebut maka tingkat kesalahan data pada permalan ini termasuk rendah
Pada tahun 2016 Normalita Fauziah Sri Wahyuningsih dan Yuki Novia Nasution melakukan penelitian dengan objek penelitian curah hujan di kota Samarinda Inputan yang digunakan pada penelitian berupa data aktual bulanan curah hujan di kota Samarinda Metode yang digunakan pada penelitian ini adalah Fuzzy Time Series Chen dengan dalam pembentukkan panjang interval berbasis rata ndash rata atau average based Pada penelitian ini permalan curah hujan terbaik yaitu dengan menggunkan data sebanyak 29 data dengan menghasilkan tingkat nilai kesalahan terkecil yaitu dengan metode Root Mean of Squared Error (RMSE) sebesar 7368 dan metode Mean Absolute Error (MAE) sebesar 539 Pada
(Lanjutan) Tabel 21 Kajian Pustaka
7
penelitian ini disimpulkan bahwa data sebanyak 29 data memiliki tingkat kesalahan lebih kecil dibandingkan dengan menggunakan data dengan jumlah sampel yang lebih banyak
Pada penelitian selanjutnya adalah penelitian yang dilakukan oleh Dessy Kusuma Wardhani Dian Eka Ratnawati dan Budi Darma Setiawan pada tahun 2015 dengan objek penelitian yang diramalkan adalah harga emas harian Inputan yang digunakan pada penelitian ini data aktual harian harga emas indonesia harga emas london kurs dollar ke rupiah dan kurs euro ke rupiah Metode yang digunakan pada penelitian pada pembentukkan sub interval menggunakan metode fuzzy C-means dan untuk peramalan menggunakan metode High Order Fuzzy Time Series Model Hasil pada penelitian ini berdasarkan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 karena nilai error lebih kecil dari 10 menunjukkan bahwa metode ini sangat baik digunakan untuk peramalan harga emas
Pada tahun 2009 Yupei Lin dan Yiwei Yang melakukan penelitian dengan objek yang diramalkan adalah indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen Data input penelitian ini meliputi historical return historical turnover volume dan rata ndash rata selisih pergerakan harga selama lima hari serta selisih antara kekuatan bull dan bear Dalam penelitian ini pembentukan subinterval yang berfungsi dalam pendefinisian himpunan fuzzy dilakukan dengan menggunakan klasterisasi fuzzy C-means Hasil dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 Dalam hal ini membuktikan bahwa penelitian dapat menghasilkan peramalan yang cukup baik karena memiliki nilai ARError kurang dari 5
Pada penelitian ini membahas tentang peramalan curah hujan dasarian menggunakan metode High Order Fuzzy Time Series Multi Factors Terdapat empat inputan yang juga dijadikan sebagai variabel dalam penelitian ini yaitu kelembaban udara kecepatan angin suhu udara dan curah hujan Pembentukan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan klasterisasi fuzzy C-means Penelitian ini menggunakan high order fuzzy logic relationship yaitu membentuk fuzzy logic relationship berdasarkan data dalam kurun waktu beberapa dasarian sebelum dasarian yang akan diramal Pada penelitian ini dalam melakukan perhitungan nilai error untuk mendapatkan hasil evaluasi menggunakan metode Mean Square Error (MSE)
22 Dasar Teori
Pada dasar teori disini dijelaskan tentang metode ndash metode yang digunakan pada penelitian ini yang meliputi peramalan curah hujan data time series logika fuzzy fuzzy C-means metode peramalan dengan Fuzzy Time Series High Order Fuzzy Time Series Multi Factors dan metode perhitungan keakuratan metode peramalan
8
221 Peramalan
Terdapat beberapa definisi tentang peramalan menurut Kamus Besar Bahasa Indonesia (KBBI) yaitu
a Peramalan merupakan prediksi rencana atau estimasi kejadian masa depan yang tidak pasti (KBBI)
b Peramalan adalah sebagai penggunaan teknik ndash teknik statistik dalam bentuk gambaran masa depan berdasarkan pengolahan angka ndash angka yang terjadi pada masa lalu (Buffa et al1996)
c Peramalan adalah bagian internal dari pengambilan keputusan manajemen (Makridakis et al1999)
Berdasarkan beberapa definisi diatas dapat disimpulkan bahwa peramalan merupakan tindakan apa yang akan terjadi di masa mendatang peramalan diperlukan untuk mengambil sebuah keputusan Dalam pengambilan keputusan harus diambil dari pertimbangan ndash pertimbangan yang ada Oleh karena itu peramalan sangat penting hubungannya dengan pengambilan keputusan sehingga kejadian di masa yang akan datang dapat dipersiapkan tindakan apa yang perlu dilakukan
222 Curah hujan
Curah hujan merupakan salah satu faktor penting yang mempengaruhi perubahan iklim suatu wilayah (Mirawati et al 2013) Salah satu contoh kasus nyata yaitu terjadinya perubahan iklim secara tiba ndash tiba atau bisa disebut dengan cuaca ekstrim Curah hujan dapat dijelaskan dengan air hujan yang terkumpul pada suatu wadah datar dimana air hujan tersebut tidak meresap tidak menguap dan tidak mengalir sehingga dapat diukur ketinggiannya Sebagai contoh curah hujan 1 (satu) milimeter dapat dijelaskan dalam suatu wadah datar dengan luas satu meter persegi tertampung air dengan ketinggian sekitar satu milimeter atau tertampung air sebanyak satu liter Metode dalam mendapatkan data curah hujan adalah dengan menggunakan penakar hujan yang kemudian diukur dengan satuan milimeter (mm) (User2015) Intensitas curah hujan dapat dikategorikan ringan jika dibawah 20mm dalam 24 jam dikategorikan lebat jika di atas 50mm dan dikategorikan sedang jika selang 20mm hingga 50mm (User 2015)
Curah hujan mempengaruhi beberapa sektor diantarannya sektor komunikasi dimana penggunaan frekuensi diatas 10 GHz dapat terkena redaman hujan (Mauludiyanto et al 2009) Akan tetapi curah hujan paling berpengaruh terhadap sektor pertanian Hal ini terbukti bahwa sebagian besar terjadinya penurunan produktifitas dan gagal panen di sektor pertanian adalah terjadinya curah hujan yang tinggi
Tinggi dan rendahnya curah hujan dipengaruhi oleh beberapa faktor yaitu kelembaban udara temperatur dan kecepatan angin Pada tahun 2013 Nur Suri Pradipta Pasukat Sembiring dan Pengarapen Bangun melakukan penelitian mengenai pengaruh curah hujan di kota Medan (Pradipta et al 2013)
9
Berdasarkan penelitian tersebut faktor yang mempengaruhi dan digunakan dalam peramalan curah hujan yaitu
1 Kelembaban udara
Kelembaban udara adalah banyaknya kandungan uap air di atmosfer Udara atmosfer adalah campuran dari udara kering dan uap air selain itu kelembaban udara merupakan komponen cuaca yang mempunyai peranan sangat penting bagi stabilitas kehidupan organisme di bumi maupun unsur-unsur cuaca yang lain (Forest 2015) Kelembaban udara berpengaruh terhadap curah hujan Hal ini didukung penelitian oleh (Sipayung et al 2013) yang menyatakan Kelembaban udara berpengaruh positif terhadap curah hujan
2 Kecepatan angin
Kecepatan angin merupakan kecepatan udara yang bergerak secara horizontal pada ketinggian 2 meter diatas tanah Dalam hal ini faktor yang menentukan kecepatan angin adalah perbedaan tekanan udara antara asal dan tujuan angin Kecepatan angin berpengaruh positif terhadap curah hujan artinya jika kecepatan angin tinggi maka curah hujan akan tinggi (Pradipta et al2013)
3 Suhu udara
Suhu udara merupakan ukuran energi kinetik rata ndash rata dari pergerakan molekul ndash molekul Suhu udara berpengaruh negatif terhadap curah hujan artinya jika suhu udara tinggi maka curah hujan akan berkurang (Pradipta et al2013)
223 Data time series
Data time series adalah data statistik yang telah dihimpun dari masa lampau hingga sekarang dan dapat digunakan sebagai acuan dalam melakukan peramalan terhadap data yang akan datang (Wiyanti amp Pulungan 2012) Data time series juga dapat didefinisikan sebagai sebuah kegiatan mengamati data statistik dimana terdapat korelasi (dependensi) antar datanya sehingga data yang sekarang sedang diamati memiliki ketergantungan dengan satu atau lebih data pengamatan sebelumnya (Mirawati et al 2013)
Terdapat dua teknik prediksi yang menggunakan basis data time series yaitu teknik model matematika statistik dan berdasarkan kecerdasan buatan (Wiyanti amp Pulungan 2012) Analisa time series sendiri memiliki beberapa peruntukan salah satunya digunakan dalam melakukan peramalan untuk masa yang akan datang Dalam penggunaan data time series merupakan salah satu proses peramalan kuantitatif dimana berdasar data kuantitatif masa lampau yang direpresentasikan dalam bentuk angka atau nilai (Mirawati et al 2013)
10
224 Logika Fuzzy
Pada tahun 1965 Prof Lotfi A Zadeh memperkenalkan teori logika fuzzy Logika fuzzy merupakan suatu komponen soft computing dan juga suatu cara yang tepat untuk memetakan suatu ruang input ke dalam ruang output Antara ruang input dan ruang output terdapat black box yang berfungsi memetakan input ke ruang output yang sesuai Dasar logika fuzzy adalah teori fuzzy set Pada teori fuzzy set peranan derajat keanggotaan sebagai penentu keberadaan elemen dalam suatu himpunan sangatlah penting Oleh karena itu derajat keanggotaan menjadi ciri utama dalam penalaran dengan logika fuzzy Logika fuzzy bekerja dengan menggunakan derajat keanggotan dari sebuah nilai yang kemudian digunakan untuk menentukan hasil yang ingin dihasilkan berdasarkan atas kriteria yang telah ditentukan (Kusumadewi 2003)
Berikut adalah beberapa alasan digunakannya logika fuzzy (Kusumadewi 2002)
1 Logika fuzzy sangat fleksibel
2 Konsep logika fuzzy mudah dimengerti dan dipahami
3 Logika fuzzy memiliki toleransi terhadap data ndash data yang homogen dan data ndash data yang kurang tepat
4 Logika fuzzy didasari pada bahasa alami atau bahasa sehari - hari sehingga mudah dimengerti
5 Logika fuzzy dapat bekerjasama dengan teknik ndash teknik kendali secara konvensional
6 Logika fuzzy mampu membangun dan mengaplikasikan pengalaman ndash pengalaman para pakar secara langsung tanpa harus melalui tahap atau proses pelatihan
A Himpunan Fuzzy
Himpunan fuzzy atau fuzzy set merupakan perluasan himpunan tegas atau himpunan crisp jadi fungsi karakteristik mencakup bilangan real pada interval [01] Dalam definisi lain himpunan fuzzy adalah suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dalam suatu variabel fuzzy Keanggotaan fuzzy berbeda dengan probabilitas jika keanggotaan fuzzy pada setiap fungsi karakteristik memberikan suatu pendapat atau keputusan sedangkan probabilitas menunjukan seberapa besar nilai kebenaran dalam fungsi karakteristik tersebut Contohnya yaitu nilai keanggotaan suatu himpunan fuzzy umur muda 09 berarti nilai dalam himpunan tersebut memiliki kemungkinan 90 anggotanya berumur muda dan 10 diharapkan tidak muda Dalam himpunan fuzzy suatu bilangan bisa memiliki dua keanggotaan sekaligus Himpunan fuzzy memiliki dua attribut (Kusumadewi2003)
11
1 Linguistik merupakan penamaan suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami misalnya muda parobaya tua
2 Numeris merupakan suatu nilai (angka) yang menunjukkan ukuran dari suatu
variabel seperti 402550 dan sebagainya
B Fungsi Keanggotaan
Fungsi keanggotaan adalah suatu kurva yang menunjukkan pemetaan titik ndash titik input data ke dalam derajat keanggotaannya yang memiliki subinterval antara 0 sampai 1 (Kusumadewi Purnomo 2004) Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi Ada beberapa fungsi keanggotaa yang dapat digunakan
1 Fungsi representasi linear
Pada fungsi representasi linear pemetaan input ke derajat keanggotaannya digambarkan sebagai suatu garis lurus Bentuk ini paling sederhana dan menjadi pilihan yang baik untuk mendekati suatu konsep yang kurang jelas Keadaan linear himpunan fuzzy terdiri dari dua keadaan yaitu keadaan linear naik dan keadaan linear turun Pada keadaan linear naik kenaikan himpunan dimulai pada nilai domain yang memiliki nilai derajat keanggotaan nol bergerak ke kanan menuju ke nilai domain yang memiliki derajat keanggotaan yang lebih tinggi seperti yang ditunjukkan Gambar 21 Persamaan fungsi keanggotaan pada representasi linear naik ditunjukkan oleh Persamaan 21
Fungsi Keanggotaan
120583(119909) = 0
(119909 minus 119886)(119887 minus 119886)1
119909 le 119886 119886 le 119909 le 119887119909 ge 119887
(21)
b a 0
1
Gambar 21 Representasi linear naik
Sumber Kusumadewi (2002)
120583(119909)
12
Pada keadaan linear turun berbanding terbalik dengan keadaan linear naik Garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi pada sisi kiri kemudian bergerak menurun ke nilai domain yang memiliki derajat keanggotaan lebih rendah yang ditunjukkan Gambar 22 Persamaan fungsi keanggotaan pada representasi linear turun ditunjukkan oleh Persamaan 22
Fungsi Keanggotaan
120583(119909) = (119887 minus 119909)(119887 minus 119886)0
119886 le 119909 le 119887
119909 ge 119887 (22)
2 Fungsi representasi kurva segitiga
Representasi kurva segitiga pada dasarnya merupakan gabungan antara 2 garis linear yaitu linear naik dan linear turun Fungsi representasi kurva segitiga ditandai oleh adanya tiga parameter abc yang akan menentukan koordinat x dari tiga sudut seperti ditunjukkan pada Gambar 23 Persamaan fungsi keanggotaan pada representasi kurva segitiga ditunjukkan oleh Persamaan 23
b a 0
1
Sumber Kusumadewi (2002)
Gambar 22 Representasi linear turun
120583(119909)
c a 0
1
b
Sumber Kusumadewi (2002)
Gambar 23 Representasi kurva segitiga
120583(119909)
13
Fungsi Keanggotaan
120583(119909) =
0 (119909 minus 119886)(119887 minus 119886) (119887 minus 119909)(119888 minus 119887)
119909 le 119886 119886119905119886119906 119909 ge 119888
119886 le 119909 le 119887 119887 le 119909 le 119888
(23)
225 Metode Fuzzy C-means
Fuzzy C-means (FCM) pertama kali diperkenalkan oleh Dunn dan dikembangkan oleh Bezdek yang banyak digunakan dalam pengenalan pola Metode ini merupakan pengembangan dari metode non-hierarkhi K-Means Cluster selanjutnya dilakukan iterasi sampai mendapatkan keanggotaan kelompok tersebut (Klawon 2001)
FCM merupakan salah satu algoritma fuzzy clustering dan juga teknik klasterisasi dimana tiap data ditentukan oleh derajat keanggotaanya Tujuan penggunaan algoritma FCM yaitu untuk menemukan pusat cluster atau centroid dengan meminimumkan fungsi objektif (Bazdek 1984) Ouput dari FCM bukan merupakan fuzzy inference system melainkan deretan pusat cluster dan beberapa derajat keanggotaan untuk setiap titik data Hasil output ini dapat digunakan untuk membangun suatu fuzzy inference system Berikut adalah langkah ndash langkah dari FCM (Kusumadewi 2004)
1 Langkah pertama menentukan jumlah cluster (c ge 2) pembobot (infin gt 119908 gt1) (Bazdek 1984) maksimum iterasi (maxIter) error minimum yang diharapkan yaitu nilai positif yang sangat kecil (120585) fungsi objektif awal (P0 = 0) iterasi awal dideklarasikan 1
2 Langkah kedua memasukkan data X yang akan diklasterisasi berupa matriks berukuran m x n (m = jumlah sampel data n = attribut setiap data) Contoh Xij = data sampel ke-i (i = 1234m) attribu ke-j (j=1234n)
3 Langkah ketiga yaitu dengan membuat bilangan random microik i = 1234n dan k = 123c (n = jumlah sampel pada data c = jumlah cluster yang akan dibentuk) sebagai elemen ndash elemen matriks partisi awal Untuk bilangan penyusun matriks partisi awal dihitung dihitung jumlahnya setiap kolom yang ditunjukkan pada pada Persamaan 24 (Kusumadewi 2004)
119876119896 = sum 120583119894119896119888119896=1 (24)
Dimana
119876119896 = jumlah bilangan pada kolom k
120583119894119896 = bilangan random pada baris i kolom k
119888 = jumlah kolom
14
Selanjutnya untuk menghitung derajat keanggotaan awal dengan melakukan normalisasi pada matiks partisi pada normalisasi dilakukan menggunakan Persamaan 25 (Kusumadewi 2004)
120583119894119896 = 120583119894119896119876119896 (25)
4 Langkah keempat melakukan perhitungan cluster ke-k Vkj dengan k = 1234c dan j = 1234m Perhitungan pusat cluster ditunjukkan pada Persamaan 26 (Kusumadewi 2004)
119881119896119895 = sum ((120583119894119896)119908 times 119883119894119895)119899
119894=1
sum (120583119894119896)119908119899119894=1
(26)
Dimana
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
120583119894119896 = derajat keanggotaan pada data ke-i cluster ke-k
119883119894119895 = data sampel pada data ke-i attribut ke-j
119908 = pembobot
5 Langkah kelima melakukan perhitungan fungsi objektif pada iterasi ke-t P1 Perhitungan fungsi objektif ditunjukkan pada Persamaan 27 (Kusumadewi 2004)
119875119905 = sum sum ([sum (119883119894119895 minus 119881119896119895)119898119895=1
2](120583119894119896)119908)119888
119896=1119899119894=1 (27)
Dimana
119875119905 = fungsi objektif
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
6 Langkah keenam melakukan perhitungan perbaikan matriks partisi yang telah ditunjukkan Persamaan 28 (Kusumadewi 2004)
120583119894119896 = [sum (119883119894119895minus119881119896119895)119898
119895=12
]
minus1119908minus1
sum [sum (119883119894119895minus119881119896119895)119898119895=1
2]
minus1119908minus1119888
119896minus1
(28)
Dimana
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
119908 = pembobot
7 Langkah ketujuh yaitu melakukan pemerikasaan kondisi berhenti dengan kondisi sebagai berikut
a Jika (|119875119905 minus 119875119905minus1| lt 120585) atau ( t gt MaxIter) maka berhenti
b Jika tidak memenuhi t = t +1 ulangi mulai dari langkah ke-4
15
226 Metode Peramalan dengan Fuzzy Time Series
Pada tahun 1996 Chen memperkenalkan metode peramalan dengan menggunakan metode Fuzzy Time Series Metode Fuzzy Time Series memiliki perbedaan dengan metode peramalan time series biasa atau konvensional yaitu terdapat pada data yang digunakan untuk peramalan Fuzzy Time Series data yang digunakan adalah berupa fuzzy set atau himpunan fuzzy dari bilangan ndash bilangan real atas himpunan semesta yang ditentukan Jadi Fuzzy Time Series merupakan metode dengan menggunakan data berupa fuzzy set yang berasal dari bilangan real atas Universe of Discorse pada data aktual Universe of Discourse adalah himpunan semesta dari data penelitian
Berikut adalah langkah ndash langkah metode Fuzzy Time Series yang telah diperkenalkan oleh Chen terdapat enam langkah yaitu
1 Langkah pertama yaitu membagi Universe of Discourse dari bilangan aktual ke dalam subinterval dengan jumlah interval yang sama Perhitungan Universe of Discourse ditunjukkan pada Persamaan 29 (Chen 1996)
119880 = [119863119898119894119899 minus 1198631 119863119898119886119909 + 1198632] (29)
Dimana
119880 = Universe of Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
1198631 dan 1198632 = bilangan positif yang ditentukan oleh user untuk menentukan Universe of Discourse dari himpunan data sampel
2 Langkah kedua adalah mendefinisikan fuzzy set dari Universe of Discourse (U) menjadikan A1 A2 A3 An ke dalam fuzzy set dengan nilai linguistik sesuai dengan keadaan U Selanjutnya mendefinisikan fuzzy set tersebut ditunjukkan pada Persamaan 210 (Chen 1996)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (210)
1198602 =11989121
1199061+
11989122
1199062+
11989123
1199063+ ⋯ +
1198912119896
119906119896
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
Dimana 119891119894119895120598 [01] 1 le 119894 le 119896 dan 1 le 119895 le 119898 Variabel 119891119894119895 menunjukkan
derajat keanggotaan dari subinterval 119906119895 dari fuzzy set 1198601 Pada konsep ini
Chen menggunakan nilai linguistik 1198601 = (not many) 1198602 = (not too many) 1198603= (many) 1198604 = (many many) 1198605 = (very many) 1198606 = (too many) 1198607= (too many many) Kemudian nilai linguistik tersebut dimasukkan ke tiap fuzzy set Dari U tersebut dapat dibangun fuzzy set sebagai berikut
16
1198601 = 1
1199061+
05
1199062+
0
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198602 = 05
1199061+
1
1199062+
05
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198603 = 0
1199061+
05
1199062+
1
1199063+
05
1199064+
0
1199065+
0
1199066+
0
1199067
1198604 = 0
1199061+
0
1199062+
05
1199063+
1
1199064+
05
1199065+
0
1199066+
0
1199067
1198605 = 0
1199061+
0
1199062+
0
1199063+
05
1199064+
1
1199065+
05
1199066+
0
1199067
1198606 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
05
1199065+
1
1199066+
05
1199067
1198607 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
0
1199065+
05
1199066+
1
1199067
3 Langkah ketiga yaitu melakukan fuzzifikasi data historis proses fuzzifikasi merupakan proses merubah data aktual yang merupakan bilangan crisp ke dalam bentuk bilangan fuzzy Bilangan fuzzy yang dimaksudkan adalah dalam bentuk derajat keanggotaan Dari beberapa derajat keanggotaan yang terbentuk kemudian dipilih satu fuzzy set yang memiliki derajat keanggotaan teringgi Fuzzifikasi dinotasikan sebagai berikut jika F(t-1) berada pada fuzzy set Ak maka F(t-1) difuzzifikasikan sebagai Ak
4 Langkah keempat adalah mengidentifikasi Fuzzy Logic Relationship (FLR) FLR diidentifikasikan sebagai Ai dan F(t) difuzzifikasikan sebagai Ai rarr Aj Ai sebagai sisi kiri relationship disebut sebagai current state dan Aj sebagai sisi kanan relationship disebut next state Jika terjadi perulangan relationship maka tetap dihitung satu kali
5 Langkah kelima yaitu mengelompokkan menjadi Fuzzy Logical Relationship Group (FLRG) FLRG dibangun berdasarkan sisi kiri (current state) yang sama
6 Langkah terakhir yaitu langkah keenam adalah melakukan defuzzifikasi nilai keluaran peramalan Defuzzifikasi adalah mengubah nilai keluaran fuzzy menjadi bilangan crisp kembali sehingga diperoleh hasil akhir peramalan Defuzzifikasi didasarkan pada tiga (3) rule aturan yaitu (Chen 1996)
I Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai hanya memiliki satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj dimana nilai maksimum fungsi keanggotaanya berada pada 119906119895 maka nilai peramalan untuk n+1 adalah
nilai tengah dari 119906119895 atau didefinisikan dengan 119898119895
II Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai memiliki lebih dari satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj1 Aj2 Ajp Dimana nilai tengah untuk masing ndash masing Aj1 Aj2 Aj3 Ajp adalah mj1 mj2 mj3 mjp
maka nilai peramalan untuk n+1 adalah (mj1 mj2 mj3 mjp) p
III Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai tidak memiliki FLR pada FLRG dimana nilai maksimum fungsi keanggotaannya berada pada 119906119895
17
maka nilai peramalan untuk n+1 adalah nilai tengah dari 119906119895 atau
didefinisikan dengan 119898119895
227 Metode High Order Fuzzy Time Series Multi Factors
Metode High Order Fuzzy Time Series Multi Factors adalah metode Fuzzy Time Series (FTS) yang melibatkan beberapa faktor yang mempengaruhi peramalan dengan berdasarkan beberapa periode waktu sebelum periode yang akan diramalkan dalam proses pembentukkan Fuzzy Logical Relationship (FLR) Hasil peramalan dengan banyak faktor yang mempengaruhi dinilai lebih baik dari pada dengan hanya satu faktor yang mempengaruhi (LinYang 2009) Pada metode ini pembentukkan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan teknik klasterisasi fuzzy C-means Berikut adalah langkah ndash langkah Metode High Order Fuzzy Time Series Multi Factors (LinYang 2009)
1 Langkah pertama adalah melakukan perhitungan Universe of Discourse (U) Sebelum menghitung nilai U terlebih dulu menghitung nilai mean (rata ndash rata) sampel lalu menghitung nilai standar deviasi (120590) Mean merupakan perhitungan jumlah dari semua nilai dalam kumpulan data kemudian dibagi dengan jumlah total data untuk menghitung nilai mean ditunjukkan pada Persamaan 211 (Weisstein 2015) Standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel untuk menghitung nilai standar deviasi (120590) ditunjukkan pada Persamaan 212 (Weisstein 2015) Perhitungan U ditunjukkan pada Persamaan 213 (LinYang 2009)
119909 =sum 119909119894
119899119894=1
119899 (211)
Dimana
= mean (rata ndash rata)
119909119894 = nilai data ke-i
119899 = banyak data
120590 = radicsum (119909119894minus ) 2119899
119894=1
119899minus1 (212)
Dimana
120590 = Standar deviasi data
119880 = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590] (213)
Dimana
119880 = Universal 0f Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
18
2 Langkah kedua yaitu menentukan jumlah cluster data Proses klasterisasi bertujuan untuk membagi U kedalam beberapa subinterval Hasil perhitungan banyaknya cluster apabila bernilai pecahan maka harus dibulatkan menjadi bilangan bulat Perhitungan banyaknya cluster ditunjukkan pada Persamaan 214 (LinYang 2009)
119896 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905)minus119883(119905minus1)|119899
119905=1
119899minus1| (214)
Dimana
119896 = banyaknya jumlah cluster
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
119899 = banyaknya data sampel
119883(119905) = data pada waktu ke-t
3 Langkah ketiga yaitu melakukan pembentukan pusat cluster Pada metode ini proses klasterisasi data menggunakan fuzzy C-means (FCM) untuk mendapatkan pusat cluster sebanyak k Tahapannya U dibagi kedalam k subinterval (119863119898119894119899 1198891) (1198891 1198892) (1198892 1198893) hellip (119889119896minus1 119863119898119886119909) dimana di (i = 123k-1) merupakan titik tengah antara dua pusat cluster k subinterval didefinisikan sebagai 1199061 1199062 1199063 hellip 119906119896 Sehingga dalam hal ini subinterval
dengan panjang berbeda dapat menggambarkan struktur data kompleks dengan baik dan dapat meningkatkan peramalan dibandingkan menggunakan subinterval dengan panjang yang sama (LinYang 2009)
4 Langkah keempat yaitu melakukan pembentukan himpunan fuzzy atau fuzzy set Pada langkah ini fuzzy set direpresentasikan dengan kurva bahu Pembentukkan fuzy set ditunjukkan pada Persamaan 215 (LinYang 2009)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (215)
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
5 Langkah kelima yaitu proses fuzzifikasi Proses fuzzifikasi bertujuan untuk mengubah data sampel yang masih berupa bilangan crisp sehingga menjadi bilangan fuzzy Masing ndash masing data dihitung derajat keanggotaannya terhadap fuzzy set yang sudah terbentuk selajutnya derajat kanggotaan dihitung berdasarkan kurva bahu dan derajat keanggotaan tertinggi menunjukkan hasil fuzzifikasi data tersebut Contohnya A(t) B(t) C(t) dan D(t) dimana t= 123n merupakan time series dari faktor yang mempengaruhi serta n merupakan banyaknya data Berdasarkan pembagian subinterval masing ndash masing time series ini difuzzifikasikan Misalkan hasil dari Persamaan 215 yaitu menghitung banyak cluster dari k1 k2 k3 k4 Jadi time series difuzzifikasikan menjadi empat fuzzy time series yaitu
19
A(ti) dimana i = 1234k1
B(tj) dimana j = 1234k2
C(tp) dimana p = 1234k3
D(tq) dimana q = 1234k4 t = 123n
6 Langkah keenam yaitu melakukan pembentukkan Fuzzy Logical relationship (FLR) Data sampel sebanyak n periode dipilih sebagai data training untuk membentuk fuzzy time series model Misalkan t merupakan periode waktu yang akan diramal dengan menggunakan order ndash 3 maka tiga periode sebelum periode t adalah t-3 t-2 dan t-1 dimana t = 456n Maka FLR yang dihasilkan ditunjukkan pada Persamaan 216 dan berdasarkan persamaan tersebut maka akan membentuk sebuah kumpulan FLR dari data training (LinYang 2009)
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023)) (216)
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
Tabel 22 Fuzzy Logic Relationship
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023))
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
(119860(119905minus21198943) 119861(119905minus21198953) 119862(119905minus21199013) 119863(119905minus21199023))
(119860(119905minus11198942) 119861(119905minus11198952) 119862(119905minus11199012) 119863(119905minus21199022))
(119860(1199051198941) 119861(1199051198951) 119862(1199051199011) 119863(1199051199021)) rarr 119860(119905+11198944)
(119860(119905+119899minus71198943) 119861(119905+119899minus71198953) 119862(119905+119899minus71199013) 119863(119905+119899minus71199023))
(119860(119905+119899minus61198942) 119861(119905+119899minus61198952) 119862(119905+119899minus61199012) 119863(119905+119899minus61199022))
(119860(119905+119899minus51198941) 119861(119905+119899minus51198951) 119862(119905+119899minus51199011) 119863(119905+119899minus51199021)) rarr 119860(119905+119899minus41198944)
Sumber (LinYang 2009)
7 Langkah terakhir adalah proses Defuzzifikasi Berdasarkan langkah sebelumnya maka dapat diambil hasil fuzzy ke- H yaitu yang digunakan sebagai data testing atau data uji seperti yang ditunjukkan pada Persamaan 217 (LinYang 2009)
(119860(119867minus31198943) 119861(119867minus31198953) 119862(119867minus31199013) 119863(119867minus31199023)) (217)
(119860(119867minus21198942) 119861(119867minus21198952) 119862(119867minus21199012) 119863(119867minus21199022))
(119860(119867minus11198941) 119861(119867minus11198951) 119862(119867minus11199011) 119863(119867minus11199021)) rarr 119860(1198671198944)
20
Faktor ndash faktor di ruas kiri pada Persaman 217 dibandingkan satu per satu dengan FLR data training yang sudah dicatat sebelumnya pada Tabel 22 membandingkannya yaitu dengan cara menghitung nilai absolut dari selisih antara pangkat bawah kedua faktor pada posisi yang sama di FLR Terdapat 12 fuzzy set di ruas kiri pada masing ndash masing FLR sehingga dari hasil perbandingan diperoleh 12 nilai absolut yang kemudian dijumlahkan untuk mendapat total selisihnya Jadi jika total selisih lebih kecil dari threshold yang ditentukan maka FLR tersebut dinyatakan cocok (LinYang 2009)
Selanjutnya jika FLR menemukan N pasangan yang cocok pada Tabel 22 maka N faktor di ruas kanan dari N FLR ini mendasari peramalan fuzzy set A() yang mana jumlah dari setiap fuzzy set pada umumnya berbeda Untuk peramalan dengan fuzzy set ditunjukkan pada Tabel 23 (LinYang 2009)
Tabel 23 Peramalan fuzzy set
Ruas Kanan A(1) A(2) A(3) A(k1)
Pusat cluster c1 c2 c3 ck1
Frekuensi f1 f2 f3 fk1
Sumber (Lin Yang 2009)
Berdasarkan Tabel 23 dengan menggunakan metode centroid untuk melakukan proses defuzzifikasi Proses defuzzifikasi dapat ditunjukkan pada Persamaan 218 (LinYang 2009)
119903119867 =sum 119888119894times 119891119894
1198961119894=1
sum 119891119894119896119894119894=1
(218)
Dimana
119903119867 = hasil (result) peramalan data ke-H
119888119894 = pusat cluster i dimana A(i) adalah ruas kanan dari FLR hasil proses pencocokan
119891119894 = frekuensi banyaknya muncul A(i) pada saat proses pencocokan
228 Perhitungan keakuratan metode peramalan
Dalam perencanaan peramalan tentu menginginkan hasil ramalan yang tepat atau paling tidak hampir mendekati sehingga rencana yang dibuat menjadi rencana yang realistis Keakuratan atau ketepatan merupakan yang menjadi kriteria performance suatu metode peramalan Keakuratan tersebut dapat dinyatakan sebagai kesalahan peramalan (forecast error) Semaikin kecil nilai kesalahan peramalan maka semaikin tinggi keakuratan metode peramalan yang digunakan dan sebaliknya semakin tinggi nilai kesalahan maka semakin rendah keakuratan metode peramalan yang digunakan
Mean Square Error (MSE) adalah salah satu metode yang digunakan untuk menghitung nilai akurasi atau keakuratan dari metode yang digunakan sebagai peramalan atau prediksi MSE merupakan perhitungan pangkat dua dari selisih
21
antara nilai data hasil peramalan dengan nilai data aktual dan kemudian dibagi dengan banyaknya data yang telah diramalkan Pada penentuan nilai evaluasi memilih menggunakan metode MSE karena metode ini dapat menunjukan hasil skala kemiripan antara hasil data peramalan dengan data aktual Berikut merupakan metode Mean Square Error (MSE) yang ditunjukan pada Persamaan 219 (Wang Chen 2009)
119872119878119864 = sum (119865119905minus119860119905)2119899
119894=1
119899 (219)
Dimana 119872119878119864 = nilai Mean Square Error Rate 119860119905 = nilai aktual pada data ke-t 119865119905 = nilai hasil peramalan untuk data ke-t n = banyaknya data
22
BAB 3 METODOLOGI
Pada bab ini akan dibahas mengenai metode yang digunakan beserta tahap ndash tahap pengerjaan penelitian skripsi dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Penilitian ini digolongkan sebagai penelitian implementatif dengan pendekatan perancangan (design)
Metode penelitian ini meliputi studi literatur pengumpulan data perancangan implementasi pengujian dan analisis pengambilan kesimpulan Berikut adalah alur dari metode penelitian dapat ditunjukkan pada Gambar 31
31 Studi Literatur
Pada tahap studi literatur penelitian ini bertujuan untuk mempelajari literatur dan konsep dari beberapa informasi dan pustaka yang berkaitan dengan penelitian ini Literatur dan sumber ilmu dari penelitian ini diperoleh dari internet buku dan bimbingan oleh dosen pembimbing Adapun literatur yang dipelajari yaitu tentang curah hujan serta faktor ndash faktor yang mempengaruhinya dan metode High Order Fuzzy Time Series Multi Factors
Studi Literatur
Pengumpulan Data
Perancangan
Implementasi
Pengujian dan Analisis
Kesimpulan dan Saran
Gambar 31 Diagram blok metodologi penelitian
23
32 Pengumpulan Data
Pada tahap pengumpulan penelitian ini sumber data yang diperoleh yaitu dari Badan Meteorologi Klimatologi dan Geofisikia (BMKG) Stasiun Klimatologi Kelas III Karangkates Kabupaten Malang Data yang diperoleh untuk peramalan curah hujan yaitu data aktual time series (2011 - 2016) Data yang digunakan dalam bentuk dasarian yaitu dalam rentang waktu sepuluh hari sehingga dalam satu bulan dibagi menjadi tiga dasarian
Dasarian pertama yaitu pada tanggal 1 sampai dengan 10
Dasarian kedua yaitu pada tanggal 11 sampai dengan 20
Dasarian ketiga yaitu pada tanggal 21 sampai dengan akhir bulan
Pada penelitian ini data curah hujan dalam satuan milimeter (mm) kelembaban dalam persen () suhu udara dalam satuan celsius (˚C) kecepatan angin dalam satuan kilometer per jam (kmjam)
33 Perancangan
Pada tahap perancangan penelitian ini bertujuan untuk mengetahui rancangan ndash rancangan yang merupakan langkah yang dilakukan saat melakukan tahap implementasi Pada tahap ini terdapat beberapa perancangan yaitu perancangan proses yang berisi tahapan ndash tahapan proses metode High Order Fuzzy Time Series Multi Factors perhitungan manual yang merupakan manualisasi dari metode yang digunakan pada penelitian ini perancangan antar muka atau user interface yang berisi gambaran kasar dari tampilan antar muka prototype aplikasi yang nantinya diterapkan pada tahap implementasi selanjutnya adalah perancangan pengujian yang berisi rancangan ndash rancangan pengujian metode yang digunakan untuk mengetahui berapa tingkat kesalahan atau error yang dimiliki metode pada penelitian ini dalam melakukan peramalan curah hujan
34 Implementasi
Pada tahap implementasi peneltian ini dilakukan sesuai dengan perancangan yang telah dibuat pada tahapan perancangan sebelumnya Implementasi dari metode High Order Fuzzy Time Series Multi Factors dilakukan menggunakan bahasa pemrograman java serta Integrated Development Environment (IDE) yang digunakan adalah Netbeans Sehingga nantinya hasil dari tahap ini berupa prototype aplikasi dari implementasi metode High Order Fuzzy Time Series Multi Factors untuk peramalan curah hujan
35 Pengujian dan Analisis
Pada tahapan penelitian pengujian ini diperlukan perangkat lunak dan perangkat keras agar pengujian dari hasil implementasi dapat berjalan dengan baik maka pengujian perangkat lunak dijalankan pada laptop ataupun PC (Personal Computer) dengan spesifikasi sebagai berikut
24
1 Prosesor Intel Core i3
2 Memory RAM 8 Gigabytes
3 Sistem Operasi menggunakan Windows 7 64bit
4 Hardisk dengan kapasitas 500 GB
5 Netbeans 81 JDK 7
Pengujian hasil peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors yaitu menggunakan metode Mean Square Error (MSE) Dimana rumus pengujian sesuai dengan Persamaan 219 Dalam pengujian menggunakan metode ini semakin kecil nilai MSE maka semakin tinggi tingkat akurasi hasil peramalan tersebut Pada penelitian ini untuk keperluan pengujian dari proses implementasi dilakukan empat pengujian yaitu pengujian terhadap perbedaan nilai order pengujian terhadap perbedaan nilai threshold pengujian terhadap data training untuk mengetahui pengaruhnya terhadap nilai MSE dan pengujian validasi sistem untuk mengetahui bahwa hasil implementasi metode High Order Fuzzy Time Series Multi Factors dapat melakukan peramalan
36 Kesimpulan dan Saran
Pada pengambilan kesimpulan akan dilakukan apabila semua tahapan ndash tahapan penelitian sudah dilakukan yaitu yang meliputi perancangan implementasi dan pengujian dan analisis telah selesai dilakukan Kesimpulan merupakan tahapan dimana semua rumusan masalah yang sudah ditetapkan sebelumnya dapat terjawab semua Selanjutnya pada saran merupakan berkenaan dengan hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
25
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan yang nantinya digunakan sebagai dasar dalam tahap implementasi Hal yang dibahas meliputi perancangan proses perhitungan manual perancangan pengujian dan perancangan antar muka
41 Perancangan Proses
Pada perancangan proses ini berisi mengenai tahapan ndash tahapan dari metode yang digunakan yaitu metode High Order Fuzzy Time Series Multi Factors Pada penelitian ini melibatkan faktor ndash faktor yang mempengaruhi curah hujan yaitu suhu udara kelembaban udara dan kecepatan angin Data time series dari curah hujan merupakan faktor utama dalam proses peramalan pada penelitian ini Inputan pada peneltian ini yaitu data time series curah hujan serta faktor ndash faktor yang mempengaruhinya Order yang digunakan pada metode ini merupakan order lebih dari satu oleh karena itu disebut dengan High Order Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Berikut merupakan diagram alir dari proses peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors yang ditunjukkan pada Gambar 41 dan Gambar 42
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1)
Mulai
Data curah hujan suhu kelembaban kecepatan angin jmlh_Banyakdata jmlh_Faktor
Universe_of_Discourse
A
Jumlah_Cluster
26
411 Proses perhitungan Universe of Discourse
Pada perhitungan Universe of Discourse harus sudah dilakukan inputan data agar dapat memulai tahapan perhitungan Tahapan dari proses perhitungannya yaitu pada langkah pertama dilakukan perhitungan nilai mean (rata ndash rata) sesuai dengan Persamaan 211 Setelah mendapatkan nilai mean dapat dilakukan perhitungan untuk mencari nilai standar deviasi sesuai dengan Persamaan 212 Selanjutnya dicari nilai terkecil (119863119898119894119899) dan nilai terbesar (119863119898119886119909) Setelah menyelesaikan tahap ndash tahap tersebut dapat dilakukan perhitungan untuk
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2)
A
Perhitungan Pusat Cluster
Fuzzifikasi
Pembentukan Fuzzy Logical Relationship
Defuzzifikasi
Nilai hasil peramalan
Berhenti
Pembentukan Subinterval dan Fuzzy set
27
mencari Universe of Discourse sesuai dengan Persamaan 213 Berikut merupakan diagram alir dari proses perhitungan Universe of Discourse yang ditunjukkan pada Gambar 43
Perhitungan Universe of Discourse
Mulai
Min_dan_Max
mean
standar_deviasi
for i = 0 to jmlh_Faktor-1
i
hsl_uMin ke i = hsl_min ke i ndash hsl_stdev ke i
hsl_uMax ke i = hsl_max ke i + hsl_stdev ke i
hsl_uMin hsl_uMax
Berhenti
Gambar 43 Diagram alir proses perhitungan Universe of Discourse
28
4111 Proses perhitungan Mean
Pada proses perhitungan mean merupakan nilai rata ndash rata dari setiap faktor dimana nilai mean ini nantinya dibutuhkan untuk melakukan proses perhitungan standar deviasi Berikut merupakan diagram alir dari proses perhitungan mean yang ditunjukkan pada Gambar 44
mean
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
tmp_jmlh = 0
tmp_jmlh = tmp_jmlh + data ke ij
j
hsl_mean ke i = tmp_jmlhjmlh_DataTraining
i
hsl_mean
Berhenti
Gambar 44 Diagram alir proses perhitungan mean
29
4112 Proses perhitungan standar deviasi
Pada proses perhitungan standar deviasi dapat dilakukan setelah mendapatkan nilai mean dari setiap data sesuai proses sebelumnya Berikut merupakan diagram alir dari proses perhitungan standar deviasi yang ditunjukkan pada Gambar 45
standar_deviasi
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
result = 0
result = result + (data ke ij ndash mean ke i)2
j
hsl_stdev ke i = radicresult
jmlh_DataTrainingminus1
i
hsl_stdev
Berhenti
Gambar 45 Diagram alir proses perhitungan standar deviasi
30
4113 Proses perhitungan nilai Dmin dan Dmax
Pada proses perhitungan ini merupakan proses perhitungan untuk mencari nilai terkecil dan terbesar dari setiap faktor data Setelah mendapat nilai terkecil dan terbesar maka data dilakukan proses perhitungan Universe of Discourse Berikut merupakan diagran alir dari proses perhitungan nilai Dmin dan Dmax yang ditunjukkan pada Gambar 46
Gambar 46 Diagram alir perhitungan nilai Min dan Max
ya
ya
tidak
tidak
Min_dan_Max
Mulai
for i = 0 to jmlh_Faktor-1
besar = data ke i0
kecil = data ke i0
for j=0 to jmlh_DataTraining
data ke ij gt besar
besar = data ke ij
data ke ij lt kecil
kecil = data ke ij
j
hsl_max ke i = besar
hsl_min ke i = kecil
i
hsl_max hsl_min
Berhenti 1
1
2
2
3
4
4
5
5
3
31
412 Proses perhitungan jumlah cluster
Pada proses perhitungan jumlah cluster memiliki masukkan proses Dmin dan Dmax
dari proses perhitungan sebelumnya Pada proses ini terdapat perhitungan nilai dari selisih setiap data Pada perhitungan jumlah cluster sesuai dengan Persamaan 214 Berikut merupakan langkah ndash langkah perhitungan jumlah cluster yang ditunjukkan pada Gambar 47
jumlah_Cluster
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to (jmlh_DataTraining-1)
Berhenti
hsl_max hsl_min
selisih = 0
selisih = selisih + |data ke ij ndash data ke i (j+1)|
j
jmlh_Cluster ke i = |ℎ119904119897_119898119894119899 119896119890 119894minusℎ119904119897_119898119886119909 119896119890 119894|
119904119890119897119894119904119894ℎ
119895119898119897ℎ_119863119886119905119886119879119903119886119894119899119894119899119892minus1
i
jmlh_Cluster
Gambar 47 Diagram alir proses perhitungan jumlah cluster
32
413 Proses perhitungan pusat cluster
Pada proses perhitungan pusat cluster ini diperlukan beberapa variabel yang harus dideklarasikan terlebih dahulu yaitu nilai bobot fungsi objektif nilai iterasi awal nilai iterasi maksimum dan error terkecil Perhitungan subinterval ini menggunakan metode fuzzy C-means yang diawali dengan pencarian pusat cluster terlebih dahulu Berikut merupakan langkah ndash langkah perhitungan subinterval yang ditunjukkan pada Gambar 48 Gambar 49 Gambar 410 Gambar 411 Gambar 412
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1)
Perhitungan pusat cluster
Mulai
jmlh_Cluster
for i = 0 to jmlh_Faktor-1
Deklarasi bobot selisih_f_objektif
iter_maksimum error_min
Pembentukan Matriks partisi faktor A jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor A
for iter = iter to iter_maksimum
A
i == 0
Perhitungan pusat_cluster1 faktor A
B C D
tidak
ya
33
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2)
ya
tidak
tidak
ya
Perhitungan f_objektif faktor A
A B C D
Perhitungan selisih_f_objektif faktor A
Perbaikan matriks partisi faktor A
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster1 faktor A
Iter = iter_maksimum
iter
i == 1
Pembentukan Matriks partisi faktor B jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor B
for iter = iter to iter_maksimum
F A G E
34
tidak
tidak
ya
A E F G
Perhitungan pusat_cluster2 faktor B
Perhitungan f_objektif faktor B
Perhitungan selisih_f_objektif faktor B
Perbaikan matriks partisi faktor B
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster2 faktor B
Iter = iter_maksimum
iter
i == 2
Pembentukan Matriks partisi faktor C jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor C
I A H
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3)
ya
35
tidak
tidak
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4)
ya
A H I
for iter = iter to iter_maksimum
Perhitungan pusat_cluster3 faktor C
Perhitungan f_objektif faktor C
Perhitungan selisih_f_objektif faktor C
Perbaikan matriks partisi faktor C
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster3 faktor C
Iter = iter_maksimum
iter
i == 3
Pembentukan Matriks partisi faktor D jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor D
J A K
ya
36
tidak
ya
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5)
A K J
for iter = iter to iter_maksimum
Perhitungan pusat_cluster4 faktor D
Perhitungan f_objektif faktor D
Perhitungan selisih_f_objektif faktor D
Perbaikan matriks partisi faktor D
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster4 faktor D
Iter = iter_maksimum
iter
i
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
Berhenti
37
tidak
ya
tidak
ya
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1)
414 Proses pembentukan subinterval dan Fuzzy set
Pada proses pembentukan fuzzy set atau himpunan fuzzy pada penelitian ini dapat dilakukan setelah perhitungan subinterval selesai dilakukan Nilai subniterval merupakan masukan utama pada pembentukkan fuzzy set Pembentukan fuzzy sesuai dengan Persamaan 215 Berikut merupakan langkah ndash langkah proses pembentukan fuzzy set yang ditunjukkan pada Gambar 413 dan Gambar 414
Pembentukan subinteval dan Fuzzy set
Mulai
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
for i = 0 to jmlh_Faktor-1
Menentukan batas_subintervalMinA dan
batas_subintervalMaxA
Menentukan batas_fuzzysetMinA dan batas_fuzzysetMaxA
i == 0
i == 1
Menentukan batas_subintervalMinB dan
batas_subintervalMaxB
Menentukan batas_fuzzysetMinB dan batas_fuzzysetMaxB
A C B
38
tidak
tidak
ya
ya
415 Proses Fuzzifikasi
Pada proses fuzzifikasi ini pembentukanya sesuai derajat keanggotaan pada setiap data Pada proses ini derajat keanggotaan dihitung berdassarkan fungsi keanggotaan kurva bahu Hasil dari proses ini merupakan data yang sudah difuzzifikasikan menjadi data fuzzy Berikut langkah ndash langkah dari proses fuzzifikasi ditunjukkan pada Gambar 415 dan Gambar 416
i == 2
A B C
Menentukan batas_subintervalMinC dan batas_subintervalMaxC
Menentukan batas_fuzzysetMinC dan batas_fuzzysetMaxC
i == 3
Menentukan batas_subintervalMinD dan batas_subintervalMaxD
Menentukan batas_fuzzysetMinD dan batas_fuzzysetMaxD
i
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
Berhenti
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2)
39
tidak
ya
ya
tidak
Fuzzifikasi
Mulai
for i = 0 to jmlh_Faktor-1
Menentukan hasil_fuzzifikasiA dari faktor A
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinA batas_fuzzysetMaxA
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1)
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
DD
i == 0
i == 1
Menentukan hasil_fuzzifikasiB
dari faktor B
Menghitung derajat keanggotaan
berdasarkan batas_fuzzysetMinB
batas_fuzzysetMaxB
C A B
40
tidak
ya
ya
tidak
ya
i == 2
A B C
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinC batas_fuzzysetMaxC
Menentukan hasil_fuzzifikasiC dari faktor C
i == 3
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinD
batas_fuzzysetMaxD
Menentukan hasil_fuzzifikasiD dari faktor D
i
hasil_fuzzifikasiA hasil_fuzzifikasiB hasil_fuzzifikasiC hasil_fuzzifikasiD
Berhenti
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2)
41
tidak
ya
416 Proses pembentukan Fuzzy Logical Relationship
Setelah data melalui proses fuzzifikasi dan sudah menjadi data fuzzy maka dapat dilakukan pembentukan Fuzzy Logical Relationship (FLR) Pembentukan FLR dilakukan sesuai dengan Persamaan 216Berikut adalah langkah ndash langkah proses pembentukan Fuzzy Logical Relationship (FLR) yang ditunjukkan pada Gambar 417 Gambar 418 dan Gambar 419
Gambar 417 Diagram alir proses Pembentukan FLR
(bagian 1)
Pembentukan Fuzzy Logical Relationship
Mulai
hasil_fuzzifikasiAhasil_fuzzifikasiB hasil_fuzzifikasiChasil_fuzzifikasiD order
for i = 0 to jmlh_dataTraining
max_inc = order jmlh_dataTraining = dataTraining - order
for j = i to max_inc
for k = 0 to jmlh_Faktor-1
j == 0
FLR_kiri_training ke ijk = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D)
ke j
E A B C D
42
ya
tidak
ya
tidak
A B C E D
FLR_kiri_training ke i(j-i)k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
j = 0
k
j
FLR_kanan_training ke i = hasil_fuzzifikasiA ke (i+order)
Max_inc lt (jmlh_DataTraining-1)
i
tmp_JmlhDatatraining = tmp_JmlhDatatraining +1
max_inc = max_inc + 1 tmp_JmlhDatatraining = i
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2)
for j = 0 to tmp_JmlhDatatraining
for j = tmp_JmlhDatatraining to max_inc
for k = 0 to jmlh_Faktor-1
I H G F
43
tidak
ya
417 Proses Defuzzifikasi
Proses defuzzifikasi merupakan proses akhir dimana keluaran dari proses ini merupakan nilai hasil peramalan Data yang diperlukan pada proses defuzzifikasi adalah hasil dari proses pembentukan Fuzzy Logical Relationship (FLR) nilai threshold yang harus dideklarasikan sebelumnya jumlah data training dan jumlah data testing Dalam proses ini dilakukan perhitungan selisih pada FLR antara data testing dan data training FLR yang dihitung nilai selisihnya adalah FLR pangkat bawah yang terdapat pada ruas kiri Setelah dilakukan perhitungan selisih dan total jumlah selisih lebih kecil dari nilai threshold maka pada setiap FLR yang
I H G F
FLR_kiri_testing ke i(j-tmp_jmlhDatatraining) k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
k
j
FLR_kanan_testing ke i = hasil_fuzzifikasiA ke (i+order)
i
Max_inc lt (jmlh_DataTraining-1)
max_inc = max_inc + 1 tmp_JmlhDatatraining++
FLR_kiri_training FLR_kanan_training FLR_kiri_testing FLR_kanan_testing
Mulai
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3)
44
ya
tidak
sesuai dengan kondisi tersebut dapat dikatakan cocok atau dapat dilakukan ke tahap perhitungan selanjutnya Setelah mendapatkan FLR yang cocok maka dilakukan pengelompokkan berdasarkan FLR ruas kanan Pengelompokkan ini dihitung jumlah frekuensi yang sama sesuai dengan fuzzy set di ruas kanan Selanjutnya untuk memperoleh hasil peramalan dilakukan proses perhitungan sesuai dengan Persamaan 218 Berikut adalah langkah ndash langkah proses defuzzifikasi yang ditunjukkan pada Gambar 420 dan Gambar 421
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1)
Defuzzifikasi
Mulai
FLR_kiri FLR_kanan order dataTraining dataTesting konstanta
threshold = (jmlh_Faktor x order)+konstanta
for i = 0 to dataTesting
for j = 0 to (dataTraining-i)
Perhitungan hitung_selisih antara FLR_kiri data training dan data testing
hitung_selisih lt threshold
match ke ij = hitung_selisih
j
i
A
45
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2)
A
Menghitung jumlah total FLR_kiri yang cocok untuk setiap data testing
Mencocokan FLR_kiri yang cocok dengan FLR_kanan untuk setiap data testing
for i = 0 to dataTesting
Menghitung frekuensi setiap FLR_kanan yang cocok untuk setap data testing
for j = 0 to jumlah total FLR kiri yang cocok
peramalan = peramalan + Frekuensi setiap FLR_kanan yang cocok x pusat_cluster1
sesuai dengan value FLR_kanannya
j
hasil_peramlan ke i = peramalan jumlah total FLR kiri yang cocok
i
Hasil_permalan
Berhenti
46
42 Perhitungan Manual
Dalam perhitungan manual ini data sampel yang digunakan merupakan data time series dasarian ke-2 pada periode April 2014 sampai dengan dasarian ke-2 Juli 2014 data sampel ditunjukkan pada Tabel 41
Tabel 41 Data Sampel Perhitungan Manual
No Dasarian Curah Hujan
(A)
Suhu (B) Kelembaban (C)
Kecepatan Angin(D)
1 Dasarian 2 (April 2014) 95 2615 8248 629
2 Dasarian 3 (April 2014) 90 2612 8247 628
3 Dasarian 1 (Mei 2014) 94 2607 8247 627
4 Dasarian 2 (Mei 2014) 83 2625 8232 623
5 Dasarian 3 (Mei 2014) 85 2628 8235 623
6 Dasarian 1 (Juni 2014) 92 2609 8241 626
7 Dasarian 2 (Juni 2014) 86 2627 8235 624
8 Dasarian 3 (Juni 2014) 89 2621 8238 624
9 Dasarian 1 (Juli 2014) 93 2607 8242 626
10 Dasarian 2 (Juli 2014) 86 2626 8237 623
Sumber BMKG Kelas III Karangkates Malang
421 Perhitungan Universe of Discourse (U)
Sebelum melakukan perhitungan U maka harus dicari terlebih dahulu nilai 119863119898119894119899 119863119898119886119909 dan standar deviasi 119863119898119894119899 adalah nilai minimum atau nilai terkecil dari data sampel yang ada sedangkan 119863119898119886119909 adalah nilai maksimum atau nilai paling besar dari data sampel yang ada Untuk mencari nilai standar deviasi harus menghitung nilai mean (rata ndash rata) terlebih dahulu sesuai dengan Persamaan 211 Mean dari data curah hujan (A) dihitung dengan cara sebagai berikut
Mean = (data ke-1 + data ke-2 + data ke-3 + + data ke-10) 10
= (95 + 90 + 94 + 83 + 85 + 92 + 86 + 89 + 93 + 86) 10
= 893 10
= 893
Selanjutnya setelah diperoleh nilai mean dilanjutkan melakukan perhitungan standar deviasi sesuai dengan Persamaan 212 Standar deviasi adalah akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Untuk menghitung standar deviasi agar lebih mudah kita terlebih dahulu melakukan perhitungan nilai kuadrat dari selisih data ke-i dan mean yang ditunjukkan pada Tabel 42
47
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean
i Data ke-i Data ke-i mean (Data ke-i - mean)sup2
1 95 57 32490
2 90 07 0490
3 94 47 22090
4 83 -63 39690
5 85 -43 18490
6 92 27 7290
7 86 -33 10890
8 89 -03 0090
9 93 37 13690
10 86 -33 10890
Jumlah 1561
Setelah mendapatkan hasil nilai kuadrat dari selisih data ke-i dan mean sesuai dengan Tabel 42 maka dapat dilanjutkan melakukan perhitungan standar deviasi dengan cara sebagai berikut
Standar_deviasi = radic1
10minus1sum (119889119886119905119886 119896119890 minus 119894 minus 119898119890119886119899)10
119894=1
2
= radic1
9 times 1561
= 4165
Untuk perhitungan standar deviasi juga dilakukan pada faktor lainnya yaitu suhu (B) kelembaban (C) dan kecepatan angin (D) Hasil perhitungan 119863119898119894119899 119863119898119886119909 dan standar deviasi ditunjukkan pada Tabel 43
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi
Data D min D max Standar Deviasi
A 83 95 4165
B 2607 2628 0086
C 8232 8248 0057
D 623 629 0022
Berdasarkan hasil yang ditunjukkan Tabel 43 selanjutnya dapat dilakukan perhitungan nilai U sesuai dengan Persamaan 213 Berikut adalah perhitungan U pada data A
U = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590]
= [(83 ndash 4165) (95 ndash 4165)]
= [78835 99165]
48
Untuk perhitungan U juga dilakukan pada semua faktor yaitu data B C dan D Sehingga diperoleh nilai U yang ditunjukkan pada Tabel 44
Tabel 44 Hasil Universe of Discourse
Data U
Batas Bawah Batas Atas
A 78835 99165
B 25984 26366
C 82263 82537
D 6208 6312
422 Perhitungan jumlah cluster (k)
Pada perhitungan jumlah cluster langkah pertamanya adalah mencari nilai absolut dari selisih data hari ke-t dengan hari sebelumnya Perhitungan selisih dilakukan hingga data ke-10 Perhitungan nilai selisih dilakukan pada semua data A B C dan D Selanjutnya masing ndash masing nilai selisih dijumlah sehingga hasilnya seperti ditunjukkan pada Tabel 45
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya
No Tanggal A B C D
1 Dasarian 3 (April 2014) 5 003 001 001
2 Dasarian 1 (Mei 2014) 4 005 0 001
3 Dasarian 2 (Mei 2014) 11 018 015 004
4 Dasarian 3 (Mei 2014) 2 003 003 0
5 Dasarian 1 (Juni 2014) 7 019 006 003
6 Dasarian 2 (Juni 2014) 6 018 006 002
7 Dasarian 3 (Juni 2014) 3 006 003 0
8 Dasarian 1 (Juli 2014) 4 014 004 002
9 Dasarian 2 (Juli 2014) 7 019 005 003
Jumlah 49 105 043 016
Setelah mendapatkan nilai absolut selisih data hari ke-t dengan hari sebelumnya dapat dilanjutkan dengan menghitung jumlah cluster sesuai dengan Persamaan 214 Perhitungan jumlah cluster pada data A (k1) berdasarkan pada Tabel 43 diketahui nilai 119863119898119894119899 adalah 171 nilai 119863119898119886119909 adalah 2048 maka jumlah cluster data A dapat ditunjukkan sebagai berikut
49
1198961 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905) minus 119883(119905 minus 1)|119899
119905=1
119899 minus 1|
= |83 minus 9549
10minus1| = 2204
Apabila hasil perhitungan jumlah cluster merupakan bilangan pecahan maka hasilnya harus dibulatkan Sehingga jumlah cluster pada data A adalah 2 Perhitungan jumlah cluster juga dilakukan pada data B (k2) C (k3) dan D (k4) Berikut merupakan hasil semua perhitungan jumlah cluster yang ditunjukkan pada Tabel 46
Tabel 46 Hasil jumlah cluster data
No Cluster Jumlah Cluster
1 k1 2
2 k2 2
3 k3 3
4 k4 3
423 Perhitungan pusat cluster dan subinterval
Pada pembentukan subinterval berdasarkan pada Tabel 46 yang menunjukkan jumlah subinterval yang selanjutnya digunakan untuk menentukan pusat cluster menggunakan algoritma fuzzy C-means (FCM)
4231 Penentuan pusat cluster
a Penentuan nilai variabel
Pada penentuan subinterval diawali dengan klasterisasi menggunakan algoritma FCM pada awal proses ditentukkan beberapa variabel sebagai berikut
Banyak cluster = k1 = 2
Bobot (w) = 2
Fungsi objektif awal = 0
Iterasi awal = 1
Iterasi maksimum = 100
Error terkecil = 001 b Pembentukan matriks partisi awal (micro)
Data pada pembentukan matriks partisi awal merupakan nilai random diantara nilai 0 sampai 1 Dimensi pada matriks partisi awal dibentuk dengan dimensi jumlah data (i) x jumlah cluster (k) Dalam hal ini telah diketahui jumlah data adalah 10 dan k1 adalah 2 maka partisi dimensi matriks awal adalah 10 x 2 Hasil pembentukan matriks partisi awal ditunjukkan pada Tabel 47 dimana Cluster disimbolkan dengan C
50
Tabel 47 Matriks partisi awal pada cluster data A
c Normalisasi matriks partisi awal
Langkah pertama normalisasi matriks partisi awal adalah dengan menghitung jumlah bilangan penyusun matriks pada setiap kolom yang dapat dilihat pada Tabel 47 dijumlah berdasarkan dengan Persamaan 24 Diketahui jumlah kolom matriks sebanyak 2 sehingga diperoleh Q1 untuk penjumlahan kolom c1 Q2 untuk penjumlahan kolom c2
Q1 = 0355 + 0174 + 02 + 0387 + 0598 + 0819 + 0702 + 0719 + 0349 +
0852
= 5154
Q2 = 0170 + 0815 + 0190 + 0456 + 0526 + 0170 + 0232 + 0572 + 0102 +
0322
= 3554
Langkah selanjutnya dilakukan proses normalisasi menggunakan Persamaan 25 Dimana setiap bilangan penyusun matriks awal dibagi dengan nilai Q sesuai dengan kolomnya masing ndash masing Bilangan penyusun matriks disimbolkan dengan microik dimana i menunjukkan baris dan k menunjukkan kolom posisi bilangan tersebut pada matriks
i micro
c1 c2
1 0355 0170
2 0174 0815
3 0200 0190
4 0387 0456
5 0598 0526
6 0819 0170
7 0702 0232
8 0719 0572
9 0349 0102
10 0852 0322
51
μ11 = bilangan matriks partisi pada baris 1 kolom 1
Q1
= 0355
5154
= 0069
μ12 = bilangan matriks partisi pada baris 1 kolom 2
Q2
= 0170
3554
= 0048
Setelah melakukan perhitungan seperti diatas untuk semua bilangan matriks sehingga matriks partisi sudah ternormalisasi seperti yang ditunjukkan pada Tabel 48
Tabel 48 Derajat keanggotaan matriks partisi data A
i micro
C1 C2
1 0069 0048
2 0034 0229
3 0039 0054
4 0075 0128
5 0116 0148
6 0159 0048
7 0136 0065
8 0140 0161
9 0068 0029
10 0165 0090
d Perhitungan pusat cluster (V)
Pada perhitungan pusat cluster (V) berdasarkan Persamaan 26 Dimana setiap bilangan penyusun matriks partisi (micro) dipangkatkan dengan w dimana variabel w yang sudah dideklarisakan terlebih dahulu dengan nilai sama dengan 2 dan dikalikan dengan bilangan penyusun matriks X yang merupakan matriks berisi data yang ada pada Tabel 41 Selanjutnya hasil perkalian tersebut dijumlah dan dibagi dengan jumlah hasil kuadrat dari bilangan penyusun matriks partisi Hasil perhitungan ditunjukkan pada Tabel 49
52
Tabel 49 Perhitungan pusat cluster data A
Berdasarkan jumlah cluster dari data A yaitu 2 maka terdapat 2 pusat cluster (V) yaitu V1 V2 Perhitungan nilai V adalah sebagai berikut
V1 = sum ((μic1)2 times Xi)10
i=1
sum (μic1)210i=1
= 10730216
0121620
= 8822718207
V2 = sum ((μic2)2 times Xi)10
i=1
sum (μic2)210i=1
= 12111287
0137572
= 8803592572
Jadi berdasarkan perhitungan diatas pusat cluster untuk data A pada iterasi ke-1 adalah 8822718207 8803592572
e Perhitungan fungsi objektif (P)
Pada perhitungan P menggunakan Persamaan 27 dimana setiap baris pada data matriks X dikurangi pusat cluster (V) selanjutnya dikuadratkan Hasilnya
i X microsup2 microsup2 x X
C1 C2 C1 C2
1 95 0004731 0002292 0449450 0217718
2 90 0001137 0052633 0102304 4736927
3 94 0001512 0002864 0142117 0269234
4 83 0005630 0016427 0467258 1363472
5 85 0013448 0021907 1143107 1862112
6 92 0025233 0002291 2321422 0210787
7 86 0018542 0004243 1594602 0364916
8 89 0019487 0025916 1734356 2306543
9 93 0004590 0000816 0426841 0075870
10 86 0027311 0008183 2348759 0703706
Jumlah 0121620 0137572 10730216 12111287
53
kemudian dikalikan dengan micro yang sudah dipangkatkan dengan bobot (w) seperti yang telah ditunjukkan pada Tabel 49 Selanjutnya hasil tersebut dijumlah per kolom seperti yang ditunjukkan pada Tabel 410
Tabel 410 Fungsi objektif data A
i X (X-V)sup2 (X-V)sup2 x microsup2
C1 C2 C1 C2
1 95 458711 484983 02170 01111
2 90 31429 38576 00036 02030
3 94 333254 355702 00504 01019
4 83 273234 253605 01538 04166
5 85 104147 92168 01401 02019
6 92 142342 157139 03592 00360
7 86 49603 41450 00920 00176
8 89 05972 09294 00116 00241
9 93 227798 246420 01046 00201
10 86 49603 41450 01355 00339
Jumlah 1267661573 1166282827
Fungsi Objektif (P) 24339444
Perhitungan nilai fungsi objektif dilakukan seperti Persamaan 27 Nilai fungsi objektif diperoleh dengan cara sebagai berikut P = sum sum ([(Xi minus Vc)2](μik)2)3
c=110i=1
P = 1267661573 + 1166282827
= 24339444
f Perbaikan matriks partisi
Pada langkah ini perbaikan matriks partisi dilakukan berdasarkan Persamaan 28 Data matriks X untuk setiap barisnya dikurangi pusat cluster lalu dikuadratkan seperti yang ditunjukkan pada Tabel 410 Selanjutnya hasilnya dipangkatkan dengan -11 karena w-1 = 1 Hasil pangkat -1 terhadap (X-V)2 ditunjukkan pada Tabel 411
54
Tabel 411 Perbaikan matriks partisi
i ((X-V)sup2)^-1
Jumlah C1 C2
1 0022 0021 0042
2 0318 0259 0577
3 0030 0028 0058
4 0037 0039 0076
5 0096 0108 0205
6 0070 0064 0134
7 0202 0241 0443
8 1674 1076 2750
9 0044 0041 0084
10 0202 0241 0443
Berdasarkan tabel diatas bilangan penyusun matriks partisi yang baru atau yang telah diperbaiki diperoleh dari hasil pembagian data terhadap jumlah per barisnya
12058311 = 0022
0042= 0514
12058312 = 0021
0042= 0486
Pada perhitungan nilai matriks yang sudah diperbaiki dilakukan pada semua elemen matriks sehingga hasil perbaikan matriks seperti yang ditunjukkan pada Tabel 412
Tabel 412 Hasil perbaikan matriks partisi
Setelah mendapatkan hasil perbaikan matriks partisi kita lakukan pengecekan selama iterasi kurang dari iterasi maksimum (maxIter) atau selisih antara fungsi objektif iterasi saat ini dengan iterasi sebelumnya bernilai lebih dari nilai error terkecil yaitu 001 maka proses berlanjut dengan kembali melakukan perhitungan pusat cluster hingga perbaikan matriks partisi Hasil
i micro
C1 C2
1 0514 0486
2 0551 0449
3 0516 0484
4 0481 0519
5 0469 0531
6 0525 0475
7 0455 0545
8 0609 0391
9 0520 0480
10 0455 0545
55
perhitungan pusat cluster dari data A B C dan D setelah dilakukan proses tiga kali iterasi dan diurutkan mulai dari yang terkecil sampai yang terbesar ditunjukkan pada Tabel 413
Tabel 413 Hasil pusat cluster
4232 Perhitungan batas subinterval
Perhitungan batas subinterval dilakukan dengan mencari nilai tengah (Median) dari setiap pusat cluster Berikut merupakan contoh perhitungan batas subinterval pada data A
a Interval 1 Batas bawah = 78835 (Batas bawah Universe of Discourse pada data A) Batas atas = 89347 (Median 88303 dan 90390)
b Interval 2 Batas bawah = 89347 (Median 88303 dan 90390) Batas atas = 99165 (Batas atas Universe of Discourse pada data A)
Seperti perhitungan diatas juga dilakukan pada data suhu (B) kelembaban (C) dan kecepatan angin (D) Dalam hal ini jumlah subinterval setiap atribut berbeda ndash beda sesuai dengan jumlah cluster yang sebelumnya ditunjukkan pada Tabel 46 Berikut merupakan batas subinterval masing ndash masing atribut yang ditunjukkan pada Tabel 414
Tabel 414 Batas subinterval masing ndash masing atribut data
Interval (micro)
A B C D
1
78835 25984 751708 6208
sd sd sd sd
89347 26181 823863 6249
2
89347 26181 823863 6249
sd sd sd sd
99165 26366 82411 6256
3
82411 6256
- - sd sd
82537 6312
Cluster A B C D
1 88303 26165 82391 62497
2 90390 26197 82408 62499
3 - - 82415 62613
56
424 Pembentukan Fuzzy Set
Pembentukan fuzzy set berdasarkan pada derajat keanggotaan dari subinterval (micro) fuzzy set dari data A ditentukan dengan derajat keanggotaan sebagai berikut
A1 = 1micro1 + 05micro2
A2 = 05micro1 + 1micro2
Pada derajat keanggotaan data A diatas simbol ldquo+rdquo menunjukkan operator himpunan gabungan Berdasarkan subinterval pada Tabel 414 nilai batas fuzzy set dari data atribut A dapat ditentukan dengan cara sebagai berikut
A1 = 78835 sd 94256 (Batas bawah interval 1 sd titik tengah interval 2)
A2 = 84091 sd 99165 (Titik tengah interval 1 sd batas atas interval 2)
Setelah diketahui batas masing ndash masing fuzzy set grafik fungsi keanggotaan fuzzy set data A yang direpresentasikan dalam kurva bahu yang ditunjukkan pada Gambar 422 Dengan cara yang sama juga ditentukan pula fuzzy set dari data attribut B C dan D
425 Fuzzifikasi
Pada langkah fuzzifikasi dilakukan dengan mencari derajat keanggotaan yang memiliki nilai paling besar (maksimum) dari masing ndash masing data terhadap fuzzy set yang sudah terbentuk Derajat keanggotaan dicari berdasarkan fungsi keanggotaan kurva bentuk bahu Berikut ini adalah perhitungan derajat keanggotaan dari data attribut A
Data aktual curah hujan (A) pada April 2014 dasarian ke-3 = 90
1198601 = 942558 ndash 90
942558minus840911= 041868427
Gambar 422 Grafik fuzzy set data A
57
1198602 = 90minus840911
942558minus840911= 058131636
Derajat keanggotaan paling besar berada pada A2 sehingga data attribut A pada April 2014 dasarian ke-3 difuzzifikasikan ke fuzzy set A2 Perhitungan yang sama dilakukan pada seluruh data attribut A sehingga didapat derajat keanggotaan dan hasil fuzzifikasi dari data A ditunjukkan pada Tabel 415
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A
i Data A1 A2 Fuzzyfikasi
1 95 0 1 A2
2 90 041868363 058131636 A2
3 94 002516357 097483642 A2
4 83 1 0 A1
5 85 09105837 008941629 A1
6 92 02219236 077807639 A2
7 86 08122036 018779631 A1
8 89 05170636 048293635 A1
9 93 01235436 087645641 A2
10 86 08122037 018779631 A1
Perhitungan yang sama juga dilakukan pada semua attribut yaitu attribut B C dan D Sehingga dapat diperoleh hasil fuzzifikasi sesuai derajat keanggotaan dengan nilai paling besar Berikut adalah hasil fuzzifikasi untuk semua attribut yang dapat dilihat pada Tabel 416
Tabel 416 Hasil fuzzifikasi semua data attribut
No Tanggal A B C D
1 Dasarian 2 (April 2014) A2 B1 C3 D3
2 Dasarian 3 (April 2014) A2 B1 C3 D3
3 Dasarian 1 (Mei 2014) A2 B1 C3 D3
4 Dasarian 2 (Mei 2014) A1 B2 C1 D1
5 Dasarian 3 (Mei 2014) A1 B2 C1 D1
6 Dasarian 1 (Juni 2014) A2 B1 C2 D2
7 Dasarian 2 (Juni 2014) A1 B2 C1 D1
8 Dasarian 3 (Juni 2014) A1 B2 C2 D1
9 Dasarian 1 (Juli 2014) A2 B1 C2 D2
10 Dasarian 2 (Juli 2014) A1 B2 C2 D1
58
426 Pembentukan Fuzzy Logical Relationship (FLR)
Pada tahap pembentukan FLR dengan berdasarkan nilai order yang sudah ditentukan Pada manualisasi ini berdasarkan dari Tabel 416 di misalkan nilai order kita deklarasikan dengan nilai 3 sehingga dapat menghasilkan 7 FLR Hasil pembentukan FLR Data training dapat ditunjukkan pada Tabel 417 Hasil pembentukan FLR Data testing dapat ditunjukkan pada Tabel 418
Tabel 417 Hasil pembentukan FLR data training
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(32)B(31)C(33)D(33)) rarr A1
2 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(31)B(32)C(31)D(31)) rarr A1
3 (A(12)B(11)C(13)D(13)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(31)D(31)) rarr A2
4 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(21)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
5 (A(11)B(12)C(11)D(11)) (A(22)B(21)C(22)D(22)) (A(31)B(32)C(31)D(31)) rarr A1
Tabel 418 Hasil pembentukan FLR data testing
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(12)D(12)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(32)D(31)) rarr A2
2 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(22)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
427 Defuzzifikasi
Pada tahap ini misalkan jumlah data yang digunakan untuk data uji atau data testing adalah dua yaitu yang pertama data periode ke-9 dan yang kedua data periode ke-10 Sehingga yang digunakan data latih atau data training adalah data pada periode ke-1 sampai data periode ke-8 Pada data testing yang pertama melibatkan FLR ke-1 sampai FLR ke-5 untuk disesuaikan dengan FLR ke-6 yang berdasarkan pada Tabel 417 Pada data testing yang kedua melibatkan FLR ke-1 sampai FLR ke-6 untuk disesuaikan dengan FLR ke-7 yang berdasarkan pada Tabel 417 Selanjutnya setiap ruas kiri FLR data testing dibandingkan dengan FLR data training yaitu pada bilang pangkat bawah fuzzy set dibandingkan sesuai dengan posisinya dan dihitung selisihnya Hasil dari perhitungan selisih tersebut dijumlahkan dan apabila jumlah selisihnya kurang dari threshold maka FLR tersebut dikatakan cocok Threshold merupakan dari hasil mengalikan jumlah order dengan jumlah faktor kemudian dijumlahkan dengan dengan sebuah konstanta Contoh perhitungan selisih nilai ruas kiri FLR pada data testing pertama adalah sebagai berikut
59
Data testing = (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(32) B(31) C(33) D(33)) rarr A1
Data training =
1 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
2 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
3 (A(12) B(11) C(13) D(13)) (A(21) B(22) C(21) D(21)) (A(31) B(32) C(31) D(31)) rarr A2
4 (A(11) B(12) C(11) D(11)) (A(21) B(22) C(21) D(21)) (A(32) B(31) C(32) D(32)) rarr A1
5 (A(11) B(12) C(11) D(11)) (A(22) B(21) C(22) D(22)) (A(31) B(32) C(31) D(31)) rarr A1
Selisih data ke- 1 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|2-1|+|1-2|+|3-2|+|3-1| = 13
Selisih data ke- 2 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Selisih data ke- 3 = |2-2|+|1-1|+|3-2|+|3-2|+|1-1|+|2-2|+|1-1|+|1-1|+|1-1|+|2-2|+|1-2|+|1-1| = 3
Selisih data ke- 4 = |1-2|+|2-1|+|1-2|+|1-2|+|1-1|+|2-2|+|1-1|+|1-1|+|2-1|+|1-2|+|2-2|+|2-1| = 7
Selisih data ke- 5 = |1-2|+|2-1|+|1-2|+|1-2|+|2-1|+|1-2|+|2-1|+|2-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Pada perhitungan selisih nilai ruas kiri FLR pada data testing juga dilakukan pada semua data testing yang sudah dideklarasikan sebelumnya Dalam hal ini agar dapat menemukan FLR yang cocok dengan data testing Tahap selanjutnya adalah proses defuzzifikasi menggunakan threshold yang dimisalkan 18 sehingga FLR yang memiliki kecocokan dengan data testing pertama adalah semua FLR dari ke-1 sampai ke-5 karena memiliki hasil selisih kurang dari 18 Semua FLR yang cocok ditampung dikelompokkan berdasarkan FLR pada ruas kanan yang sama kemudian dhitung frekuensinya Berikut adalah frekuensi dan pusat cluster dari ruas kanan FLR yang cocok dengan data testing pertama dan kedua ditunjukkan pada Tabel 419
Tabel 419 Frekuensi FLR yang cocok dengan data testing
Data testing 1 Data testing 2
Ruas kanan A1 A2 A1 A2
Pusat Cluster 88303 90390 88303 90390
Frekuensi 4 1 4 2
Berdasarkan pada Tabel 419 dilakukan defuzzifikasi sesuai dengan Persamaan 218 sebagai berikut
119863119886119905119886 119905119890119904119905119894119899119892 1 = (88303times4)+(90390times1)
5= 887204
60
119863119886119905119886 119905119890119904119905119894119899119892 2 = (88303times4)+(90390times2)
6= 889987
Jadi berdasarkan perhitungan diatas diperoleh hasil peramalan curah hujan pada pada April 2014 dasarian ke-3 adalah 1384601636 sedangkan pada tanggal 10012016 adalah 2769203272 Perbandingan data curah hujan aktual dan hasil peramalan dengan metode High Order Fuzzy Time Series Multi Factors dapat dilihat pada Tabel 420
Tabel 420 Perbandingan data aktual dan hasil peramalan
No Data Aktual Hasil Peramalan
1 93 887204
2 86 889987
Dari hasil peramalan yang ditunjukkan pada Tabel 420 dapat dilakukan perhitungan kesalahan peramalan menggunakan metode Mean Square Error (MSE) seperti Persamaan 219
119872119878119864 = ((93minus887206)2+(86minus889989)2)
2
= 136536
43 Perancangan antarmuka
Perancangan antarmuka merupakan perancangan dari tampilan antarmuka atau interface yang nantinya akan diterapkan pada tahapan implementasi Pada perancangan antarmuka ini terdapat lima halaman utama dan juga terdapat dalam menu berupa button yaitu halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
431 Halaman input
Pada halaman input terdapat inputan data dengan nama button Browse Data pada inputan data ini pengguna diharuskan memasukkan inputan file data dalam bentuk ekstensi xls serta direktori lokasi file yang di inputkan akan ditampilkan pada textfield dan juga terdapat label yang menampilkan jumlah banyaknya data yang terdapat pada file yang telah di inputkan Selanjutnya juga terdata inputan textfield data training data testing order dan nilai konstanta Pada halaman input ini juga terdapat button fuzzification yang berfungsi untuk melakukan proses clustering fuzzifikasi dan FLR Selanjutnya pada button forecasting berfungsi untuk melakukan peramalan atau defuzzifikasi dari hasil proses fuzzifikasi serta menghitung nilai error dari hasil peramalan Berikut
61
merupakan rancangan tampilan antarmuka dari halaman input yang ditunjukkan pada Gambar 423
432 Halaman tampil data
Pada halaman tampil data terdapat tabel yang menampilkan isi data dari xls yang sudah dimasukkan terlebih dahulu pada halaman input Tabel tampil data akan menampilkan tanggal curah hujan kelembaban suhu dan kecepatan angin Berikut merupakan tampilan rancangan halaman tampil data yang ditunjukkan pada Gambar 424
Gambar 423 Rancangan antarmuka halaman input
Gambar 424 Rancangan antarmuka halaman tampil data
62
433 Halaman proses
Pada halaman proses akan menampilkan hasil clustering fuzzifikasi dan fuzzy logical relationship Pada tampilan halaman clustering akan menampilkan Universe of Discourse curah hujan suhu kelembaban dan kecepatan angin Selanjutnya tampilan dibawahnya akan menampilkan jumlah cluster dari setiap faktor yaitu jumlah cluster curah hujan suhu kelembaban dan kecepatan angin Berikut merupakan tampilan perancangan halaman proses clustering yang ditunjukkan Gambar 425
Selanjutnya pada tampilan proses fuzzifikasi akan menampilkan tabel hasil fuzzifikasi dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzifikasi yang ditunjukkan pada Gambar 426
Gambar 425 Rancangan antarmuka halaman proses clustering
Gambar 426 Rancangan antarmuka proses fuzzifikasi
63
Pada tampilan proses fuzzy logical relationship (FLR) akan menampilkan textarea berisi hasil proses FLR dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzy logical relationship yang ditunjukkan pada Gambar 427
434 Halaman hasil
Pada halaman hasil peramalan akan menampilkan tabel yang berisi hasil peramalan curah hujan dan data curah hujan yang sebenarnya Serta terdapat text link yang akan menampilkan grafik perbandingan data hasil peramalan dan data yang sebenarnya Berikut adalah tampilan rancangan halaman hasil yang ditunjukkan pada Gambar 428
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship
Gambar 428 Rancangan antarmuka halaman hasil peramalan
64
435 Halaman perhitungan error
Pada halaman perhitungan error akan menampilkan nilai dari hasil perhitungan Mean Square Error (MSE) pada textfield Berikut adalah tampilan rancangan halaman perhitungan error yang ditunjukkan pada Gambar 429
44 Perancangan pengujian
Pada penelitian ini akan dilakukan empat pengujian yaitu pengujian terhadap nilai order nilai threshold pengujian terhadap jumlah data training untuk mengetahui pengaruhnya terhadap nilai Mean Square Error (MSE) dan pengujian validasi sistem untuk mengetahui kestabilan hasil implementasi
441 Perancangan pengaruh order terhadap nilai MSE
Order merupakan jumlah urutan data yang digunakan dalam pembentukkan Fuzzy Logical Relationship (FLR) Pada pengujian ini dilakukan percobaan dengan order yang berbeda ndash beda Pengujian ini bertujuan untuk mengetahui pengaruh order terhadap hasil peramalan Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Pada setiap pengujian yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan order yang berbeda Berikut adalah perancangan pengujian order terhadap nilai MSE ditunjukkan pada Tabel 421
Tabel 421 Rancangan pengujian order terhadap nilai MSE
No Order Threshold MSE
1
Gambar 429 Rancangan antarmuka halaman perhitungan error
65
442 Perancangan pengaruh threshold terhadap nilai MSE
Nilai threshold bergantung jumlah order karena untuk nilai threshold merupakan dari hasil mengalikan jumlah faktor yang mempengaruhi dengan order selanjutnya dijumlah dengan sebuah konstanta Pada pengujian ini dilakukan percobaan dengan konstanta yang berbeda ndash beda sehingga menghasilkan threshold yang berbeda pula Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan konstanta dan threshold yang berbeda Berikut merupakan rancangan pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 422
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1
443 Perancangan pengaruh jumlah data training terhadap nilai MSE
Data training sangat berperan penting dalam proses defuzzifikasi sehingga pada penelitian ini dilakukan pengujian pengaruh jumlah data training terhadap tingkat kesalahan dari hasil peramalan Pada pengujian ini dilakukan percobaan dengan jumlah data training yang berbeda ndash beda Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan dilakukan perhitungan nilai MSE untuk mengetahui tingkat kesalahan dari hasil peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors dengan jumlah data training yang berbeda ndash beda Sehingga dari hasil pengujian ini dapat diketahui pengaruh dari jumlah data training Berikut merupakan rancangan pengujian pengaruh jumlah data training yang ditunjukkan pada Tabel 423
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1
444 Perancangan validasi sistem
Pada pengujian validasi sistem akan melakukan pengujian dengan menggunakan order threshold terbaik seperti yang telah dilakukan pada
66
pengujian ndash pengujian sebelumnya yang menghasilkan hasil error MSE terendah Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Berikut merupakan rancangan pengujian validasi sistem yang ditunjukkan pada Tabel 424
Tabel 424 Rancangan pengujian validasi sistem
Percobaan ke- MSE
1
67
BAB 5 IMPLEMENTASI
Pada bab ini berisi pembahasan hasil implementasi metode High Order Fuzzy Time Series Multi Factors yang sesuai dengan bab sebelumnya yaitu perancangan Bab ini terdiri dari spesifikasi sistem implementasi algoritma dan implementasi antarmuka
51 Spesifikasi Sistem
Pada spesifikasi sistem ini dibagi mejadi dua yaitu spesifikasi perangkat keras dan spesifikasi perangkat lunak
511 Spesifikasi Perangkat Keras
Spesifikasi perangkat keras merupakan perangkat keras yang digunakan pada implementasi penelitian ini Perangkat keras yang digunakan adalah laptop dengan spesifikasi sesuai dengan pada Tabel 51 berikut
Tabel 51 Spesifikasi Perangkat Keras
Komponen Spesifikasi
Processor Intelcopy Core i3-3217U 180 GHz
Memori (RAM) 8 GB RAM
Harddisk 500 GB RAM
512 Spesifikasi Perangkat Lunak
Spesifikasi perangkat lunak merupakan perangkat lunak yang digunakan pada implementasi penelitian ini Perangkat lunak yang digunakan pada implementasi penelitian sesuai dengan yang ditunjukkan pada Tabel 52 berikut
Tabel 52 Spesifikasi Perangkat Lunak
Sistem Operasi Microsoft Windows 7 (64 bit)
Bahasa Pemrograman Java
Tools Pemrograman Netbeans 81
Data Microsoft Excel 2013
52 Implementasi Algoritma
Pada implementasi algoritma ini membahas mengenai hasil implementasi algoritma metode High Order Fuzzy Time Series Multi Factors yang mengacu pada bab sebelumnya yaitu perancangan Dalam penelitian ini implementasi algoritma menggunakan bahasa pemrograman java berbasis desktop Implementasi algoritma terdiri dari beberapa method sesuai dengan langkah ndash langkah pada algoritma metode High Order Fuzzy Time Series Multi Factors
68
521 Implementasi Proses Universe of Discourse
Pada implementasi Universe of Discourse seperti yang ditunjukkan Kode Program 51 dimana pada source code method Universe_of_Discourse baris 3 - 5 terdapat pemanggilan method mean standar_deviasi dan Min_dan_Max Dimana pemanggilan method tersebut dibutuhkan untuk melakukan proses perhitungan selanjutnya yaitu untuk menghitung batas bawah dan batas atas dari Univers of Discourse Baris 7-10 untuk menghitung hasil Universe of Discourse Berikut merupakan source code dari proses Universe of Discourse yang ditunjukkan pada Kode Program 51
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
private void Universe_of_Discourse()
mean()
standar_deviasi()
Min_dan_Max()
hsl_uMin = new double[jmlh_Faktor]
hsl_uMax = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
hsl_uMin[i] = hsl_min[i] - hsl_stdev[i]
hsl_uMax[i] = hsl_max[i] + hsl_stdev[i]
Kode Program 51 Implementasi proses Universe of Discourse
5211 Implementasi proses mean
Pada implementasi proses mean merupakan proses perhitungan nilai rata ndash rata dari setiap faktor yang nantinya hasilnya diperlukan untuk proses perhitungan standar deviasi Berikut merupakan source code dari proses mean yang ditunjukkan pada Kode Program 52 Perhitungan utama proses mean terdapat pada baris 3 ndash 8
Baris Kode
1 2 3 4 5 6 7 8 9
private void mean()
hsl_mean = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double tmp_jmlh = 0
for (int j = 0 j lt jmlh_DataTraining j++)
tmp_jmlh = tmp_jmlh + data[i][j]
hsl_mean[i] = (tmp_jmlh jmlh_DataTraining)
Kode Program 52 Implementasi proses mean
5212 Implementasi proses standar deviasi
Pada implementasi proses perhitungan standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Standar deviasi dapat dilakukan perhitungan setelah mendapat nilai hasil dari perhitungan mean Berikut merupakan source code dari implementasi proses standar deviasi yang ditunjukkan pada Kode Program 53 Perhitungan utama proses standar deviasi terdapat pada baris 3 ndash 9
69
Baris Kode
1 2 3 4 5 6 7 8 9 10 11
private void standar_deviasi()
hsl_stdev = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double result = 0
for (int j = 0 j lt jmlh_DataTraining j++)
result = result + (Mathpow((data[i][j] ndash
hsl_mean[i]) 2))
hsl_stdev[i]=Mathsqrt(result(jmlh_DataTraining-
1))
Kode Program 53 Implementasi proses standar deviasi
5213 Implementasi proses Dmin dan Dmax
Pada implementasi proses Dmin dan Dmax merukan untuk mencari nilai minimum dan nilai maksimum dari data sampel untuk setiap faktor Berikut merupakan source code dari implementasi dari proses Dmin dan Dmax yang ditunjukkan pada Kode Program 54 Pada baris 8 ndash 10 merupakan bagian dari proses untuk untuk menentukan nilai data terbesar Selanjutnya pada baris 11 ndash 13 untuk menentukan nilai data terkecil
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
19
private void Min_dan_Max()
hsl_max = new double[jmlh_Faktor]
hsl_min = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double besar = data[i][0]
double kecil = data[i][0]
for (int j = 0 j lt jmlh_DataTraining j++)
if (data[i][j] gt besar)
besar = data[i][j]
if (data[i][j] lt kecil)
kecil = data[i][j]
hsl_max[i] = besar
hsl_min[i] = kecil
Kode Program 54 Implementasi proses Dmin dan Dmax
522 Implementasi Proses Jumlah Cluster
Pada implementasi proses jumlah cluster merupakan proses perhitungan jumlah cluster dari setiap faktor Implementasi ini dapat dilakukan apabila sudah mendapatkan hasil output dari method Min_dan_Max() sudah didapatkan Berikut merupakan source code dari implementasi proses jumlah cluster yang ditunjukkan pada Kode Program 55 Pada baris 3 ndash 7 untuk digunakan untuk menghitung selisih data sampel setiap baris dari semua faktor pada data sampel ke t dengan t+1 Selanjutnya pada baris 9 ndash 10 untuk menghitung jumlah cluster dari setiap faktor
70
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
private void jumlah_Cluster()
jmlh_Cluster = new int[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double selisih = 0
for (int j = 0 j lt (jmlh_DataTraining - 1) j++)
selisih = selisih + (Mathabs((data[i][j]
- data[i][(j + 1)])))
jmlh_Cluster[i] = (int) Mathround((Mathabs(
hsl_min[i]-hsl_max[i]))(selisih(jmlh_DataTraining
-1)))
Kode Program 55 Implementasi proses jumlah cluster
523 Implementasi Proses Pusat Cluster
Implementasi proses perhitungan pusat cluster ini menggunakan metode fuzzy C-means untuk mendapatkan pusat cluster yang nantinya digunkan sebagai subinterval Implementasi ini memerlukan hasil dari proses method jumlah_Cluster() agar dapat melakukan perhitungan subinterval Berikut merupakan source code dari implementasi proses subinterval yang ditunjukkan pada Kode Program 56 Pada Kode Program 56 hanya menampilkan source code pembentukan subinterval pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 2 ndash 3 merupakan deklarasi variabel bobot iterasi maksimum selisih fungsi objektif awal dan error minimum Pada baris 8 ndash 20 merupakan proses pembentukan matriks partisi dengan nilai random 0 sampai 1 Pada baris 22 ndash 26 merupakan proses normalisasi matriks partisi yang telah terbentuk Pada baris 28 ndash 63 merupakan proses untuk menentukan pusat cluster Pada baris 65 ndash 86 merupakan proses perhitungan fungsi objektif dari iterasi Pada baris 88 ndash 90 merupakan proses perhitungan selisih fungsi objektif Pada baris 92 ndash 108 adalah proses perbaikan matriks partisi Pada baris 110 ndash 115 adalah proses hasil perbaikan matriks partisi Pada baris 116 - 133 adalah proses dengan pengkondisian apakah selisih fungsi objektif lebih kecil dari error minimum serta apabila memenuhi kondisi maka dilanjutkan ke proses pengurutan pusat cluster secara ascending dari hasil iterasi terakhir dan proses pengkondisian iterasi berhenti
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void pusat_cluster()
int bobot = 2int iter_maksimum = 100
double selisih_f_objektif = 0double error_min = 001
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
Pembentukkan matriks partisi
tmp_Matriks1=new
double[jmlh_Cluster[i]][jmlh_DataTraining]
q1 = new double[jmlh_Cluster[i]]
double jmlh_q1
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_q1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
71
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
double random = ThreadLocalRandomcurrent()
nextDouble(01 1)
tmp_Matriks1[j][k] = random
jmlh_q1 = jmlh_q1 + random
q1[j] = jmlh_q1
normalisasi matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k] q1[j]
Perhitungan pusat cluster
for (int iter = 0 iter lt iter_maksimum iter++)
selisih_f_objektif = 0
jumA1 = new double[iter_maksimum][jmlh_Cluster[i]]
jumA2 = new double[iter_maksimum][jmlh_Cluster[i]]
miu_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
XV_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
pusat_cluster1 = new double[jmlh_Cluster[i]]
double hitung_jum1
double hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(tmp_Matriks1
[j][k]bobot)
miu_Matriks1[j][k] = tmp_Matriks1[j][k]
hitung_jum1 = hitung_jum1 + tmp_Matriks1
[j][k]
jumA1[iter][j] = hitung_jum1
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum2 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
data[i][k]
hitung_jum2 = hitung_jum2 +
tmp_Matriks1[j][k]
jumA2[iter][j] = hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
pusat_cluster1[j] = jumA2[iter][j]
jumA1[iter][j]
perhitungan fungsi objektif
jumA3 = new double[iter_maksimum][jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
double hitung_jum3 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow((data[i][k]
ndash pusat_cluster1[j])
bobot)
XV_Matriks1[j][k] = tmp_Matriks1[j][k]
tmp_Matriks1[j][k] = XV_Matriks1[j][k]
miu_Matriks1[j][k]
hitung_jum3 = hitung_jum3 +
tmp_Matriks1[j][k]
jumA3[iter][j] = hitung_jum3
72
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
double jmlh_f_objektif = 0
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_f_objektif = jmlh_f_objektif
+jumA3[iter][j]
if (iter lt (iter_maksimum - 1))
f_objektif1[iter + 1] = jmlh_f_objektif
perhitungan selisih fungsi objektif
selisih_f_objektif = f_objektif1[iter + 1]
-f_objektif1[iter]
perbaikan matriks partisi
int hitung = bobot - 1int pangkat = -1 hitung
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(XV_Matriks1
[j][k] pangkat)
jumA4 = new
double[iter_maksimum][jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
double hitung_jum4 = 0
for (int k = 0 k lt jmlh_Cluster[i] k++)
hitung_jum4 = hitung_jum4 +
tmp_Matriks1[k][j]
jumA4[iter][j] = hitung_jum4
hasil perbaikan matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
jumA4[iter][k]
if (selisih_f_objektif lt error_min)
pengurutan ascending pusat cluster
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 kltjmlh_Cluster[i]k++)
if (k lt (jmlh_Cluster[i] - 1))
if (pusat_cluster1[k] gt
pusat_cluster1[k + 1])
double tmp =
pusat_cluster1[k]
pusat_cluster1[k]=
pusat_cluster1[k+1]
pusat_cluster1[k+1] = tmp
iter = iter_maksimum
Kode Program 56 Implementasi proses pusat cluster
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set
Pada implementasi proses pembentukan suinterval dan fuzzy set memiliki dua proses yaitu proses menentukan batas subinterval minumum serta maksimum dan proses menentukan batas fuzzy set minimum serta maksimum
73
Proses pembentukan fuzzy dapat menjalankan prosesnya setelah method subinterval() telah diakses Berikut merupakan source code proses pembentukan fuzzy set yang ditunjukkan pada Kode Program 57 Pada Kode Program 57 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 6 ndash 29 merupakan proses pembentukan batas minimum dan batas maksimum subinterval Pada baris 31 ndash 54 merupakan pembentukan batas minimum dan batas maksimum fuzzy set
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
private void subinterval_dan_fuzzy_set()
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
batas subinterval
batas_subintervalMinA = new double[jmlh_Cluster[i]]
batas_subintervalMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_subintervalMinA[j] = hsl_uMin[i]
batas_subintervalMaxA[j]=(pusat_cluster1[j]
+pusat_cluster1[j+
1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1] +pusat_cluster1
[j])2
batas_subintervalMaxA[j]=
hsl_uMax[i]
else if ((0 lt j) ampamp (j lt (jmlh_Cluster[i] -
1)))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1]+
pusat_cluster1[j])2
batas_subintervalMaxA[j]=
(pusat_cluster1[j]+
pusat_cluster1[j+1)2
batas fuzzy set
batas_fuzzysetMinA = new double[jmlh_Cluster[i]]
batas_fuzzysetMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_fuzzysetMinA[j]=
batas_subintervalMinA[j]
batas_fuzzysetMaxA[j]=
(batas_subintervalMinA[j+1]
+batas_subintervalMaxA[j + 1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]
+batas_subintervalMaxA[j - 1])2
batas_fuzzysetMaxA[j] =
batas_subintervalMaxA[j]
else if ((0 lt j) ampamp (jlt(jmlh_Cluster[i]-1)))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]+
batas_subintervalMaxA[j-1])2
batas_fuzzysetMaxA[j]=
74
51
52
53
54
55
56
(batas_subintervalMinA[j+1]+
batas_subintervalMaxA[j + 1])2
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set
525 Implementasi proses fuzzifikasi
Pada Implementasi proses fuzzifikasi memiliki dua proses utama yaitu menentukan derajat keanggotaan dan proses fuzzifikasi Dalam proses ini method fuzzy_set() harus dieksekusi terlebih dahulu karena implementasi proses ini memerlukan output dari method tersebut Berikut merupakan source code fuzzifikasi ditunjukkan pada Kode Program 58 Pada Kode Program 58 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 3 ndash 81 merupakan proses perhitungan derajat keanggotaan Pada baris 83 ndash 94 adalah proses penentuan fuzzifikasi
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
private void fuzzifikasi()
if (i == 0)
hitung_fuzzifikasiA = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
if(j == 0)
if((data[i][k]gtbatas_fuzzysetMinA[j])ampamp
(data[i][k]lt batas_fuzzysetMinA[j + 1]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA[j + 1])
ampamp (data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j] - data[i][k])
(batas_fuzzysetMaxA[j] ndash
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j]) ampamp
(data[i][k] lt batas_fuzzysetMinA[j + 1])
ampamp(data[i][k] gt batas_fuzzysetMinA[j+1])
ampamp(data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
else if (j == (jmlh_Cluster[i] - 1))
if((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
(batas_fuzzysetMaxA[(jmlh_Cluster[i]ndash
2)]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
if((data[i][k] gt batas_fuzzysetMaxA
75
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
[(jmlh_Cluster[i]- 2)]) ampamp (data[i][k]
lt batas_fuzzysetMaxA[(jmlh_Cluster[i]
- 1)]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] gt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 1)]))
hitung_fuzzifikasiA[j][k] = 0
else if ((0 lt j)ampamp(j lt (jmlh_Cluster[i] - 1)))
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA[j
+1]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA[j])
(batas_fuzzysetMinA[j + 1]-
batas_fuzzysetMinA[j])
if ((data[i][k] gt batas_fuzzysetMinA
[j+1])ampamp (data[i][k] lt
batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j]-data[i][k])
(batas_fuzzysetMaxA[j]-
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA
[j + 1]) ampamp (data[i][k] gt
batas_fuzzysetMinA[j + 1]) ampamp
(data[i][k]ltbatas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
hasil_fuzzifikasiA = new int[jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
int cluster = 0
double besar=hitung_fuzzifikasiA[0][j]
for (int k = 0 k lt jmlh_Cluster[i] k++)
if (besar lt hitung_fuzzifikasiA[k][j])
besar = hitung_fuzzifikasiA[k][j]
cluster = k
hasil_fuzzifikasiA[j] = cluster + 1
Kode Program 58 Implementasi proses fuzzifikasi
526 Implementasi Pembentukan Fuzzy Logical Relationship
Pada implementasi pembentukan Fuzzy Logical Relationship (FLR) memiliki dua output yaitu FLR_kiri dan FLR_kanan Dimana FLR_kiri berisi group dari kelima faktor dan pada FLR_kanan merupakan dari faktor yang akan diramalkan yaitu
76
faktor curah hujan (A) Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code pembentukan Fuzzy Logical Relationship (FLR) dapat ditunjukkan pada Kode Program 59 berikut Pada baris 3 ndash 14 merupakan deklarasi variabel Pada baris 15 ndash 55 adalah proses pembentukan fuzzy logical relationship data training Pada baris 56 ndash 58 merupakan deklarasi variabel Pada baris 59 ndash 86 adalah proses pembentukan fuzzy logical relationship data testing
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Fuzzy Logical Relationship
private void fuzzy_logical_relationship()
String input_order = fieldOrdergetText()
order = IntegerparseInt(input_order)
int max_inc = order
String input_dataTraining = fieldDatatraininggetText()
int dataTraining = IntegervalueOf(input_dataTraining)
int tmp_jmlhDatatraining = 0
int tmp_order = 0
int jmlh_dataTraining = dataTraining - order
String input_dataTesting = fieldDatatestinggetText()
int jmlh_dataTesting = IntegervalueOf(input_dataTesting)
FLR_kiri_training = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_training = new int[jmlh_DataTraining]
for (int i = 0 i lt jmlh_dataTraining i++)
for (int j = i j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (j == 0)
if (k == 0)
FLR_kiri_training[i][j][k]=
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiD[j]
else if (j = 0)
if (k == 0)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiD[j]
tmp_order = j
FLR_kanan_training[i] = hasil_fuzzifikasiA[(i + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
77
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
tmp_jmlhDatatraining = i
FLR_kiri_testing = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_testing = new int[(jmlh_DataTraining)]
tmp_jmlhDatatraining = tmp_jmlhDatatraining + 1
for (int i = 0 i lt jmlh_dataTesting i++)
for (int j = tmp_jmlhDatatraining j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (k == 0)
FLR_kiri_testing[i][j - tmp_jmlhDatatraining][k]
= hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiD[j]
FLR_kanan_testing[i] =
hasil_fuzzifikasiA[(tmp_jmlhDatatraining + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
tmp_jmlhDatatraining++
Kode Program 59 Implementasi pembentukan FLR
527 Implementasi Proses Defuzzifikasi
Pada implementasi proses defuzzifikasi merupakan proses dimana menentukan hasil peramalan dari data testing berdasarkan dari bilangan fuzzy yang terbentuk Implementasi ini memiliki beberapa inputan penting yaitu data training data testing order dan konstanta Inputan tersebut sangat berperan penting dalam proses implementasi defuzzifikasi Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code defuzzifikasi dapat ditunjukkan pada Kode Program 510 berikut Pada baris 2 ndash 11 merupakan deklarasi variabel Pada baris 13 ndash 37 merupakan proses perhitungan selisih antara data training dengan data testing Pada baris 40 ndash 47 menghitung jumlah FLR yang cocok Pada baris 49 ndash 65 merupakan proses mencocokan FLR kiri yang cocok dengan FLR kanan Pada baris 67 ndash 81 merupakan proses menghitung jumlah frekuensi FLR kanan yang cocok Pada baris 83 ndash 91 adalah proses perhitungan hasil peramalan
Baris Kode 1
2
3
4
private void defuzifikasi()
String input_dataTraining = fieldDatatraininggetText()
String input_dataTesting = fieldDatatestinggetText()
String input_konstanta = fieldKonstantagetText()
78
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
int dataTraining = IntegervalueOf(input_dataTraining)
int dataTesting = IntegervalueOf(input_dataTesting)
int konstanta = IntegervalueOf(input_konstanta)
int match[][]
match = new int[dataTesting][2000]
int threshold = (jmlh_Faktor order) + konstanta
int hitung_selisih = 0
perhitungan selisih
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
hitung_selisih = 0
for (int k = 0 k lt order k++)
for (int l = 0 l lt jmlh_Faktor l++)
if (i == 0)
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
else if (i gt 0)
FLR_kiri_training[(dataTraining-
1)+i][k][l] = FLR_kiri_testing[i-
1][k][l]
FLR_kanan_training[(dataTraining-1)+i]
= FLR_kanan_testing[i-1]
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
if (hitung_selisih lt threshold)
match[i][j] = hitung_selisih
menghitung jumlah total FLR yang cocok untuk setiap data
testing
int countGroup[] = new int[dataTesting]
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
countGroup[i]++
mencocokan FLR_kiri yang cocok dengan FLR_kanan
group = new int[dataTesting][2000]
for (int i = 0 i lt dataTesting i++)
int tmp_count = 0
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
if (tmp_count lt countGroup[i])
group[i][tmp_count] = j
tmp_count++
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt countGroup[i] j++)
group[i][j] = FLR_kanan[group[i][j]]
mengelompokkan yang sama
MapltInteger Integergt map = new HashMapltInteger Integergt()
hasil_peramalan = new double[dataTesting]
for (int i = 0 i lt dataTesting i++)
79
70
71
72
73
74
75 76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
double peramalan = 0
mapclear()
for (int j = 0 j lt countGroup[i] j++)
int key = group[i][j]
if (mapcontainsKey(key))
int occurrence = mapget(key)
occurrence++
mapput(key occurrence)
else
mapput(key 1)
menghitung hasil peramlaan
Iterator iterator = mapkeySet()iterator()
while (iteratorhasNext())
int key = (Integer) iteratornext()
int occurrence = mapget(key)
peramalan = (peramalan + (pusat_cluster1[(key - 1)]
occurrence))
hasil_peramalan[i] = (peramalan countGroup[i])
Kode Program 510 Implementasi proses defuzzifikasi
53 Implementasi Antarmuka
Pada implementasi antarmuka dijelaskan beberapa halaman antarmuka untuk penggunaan dari program hasil implementasi Implementasi antarmuka berdasarkan perancangan yang telah dijelasakan pada bab sebelumnya yaitu bab perancangan Halaman antarmuka yang dibuat adalah halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
531 Implementasi antarmuka halaman input
Halaman input merupakan halaman yang pertama muncul setelah program dijalankan Pada halaman input ini terdapat beberapa inputan yang harus di masukkan yaitu data input data training data testing order dan konstanta Selain itu pada halaman input juga terdapat tiga button yaitu button browse data button fuzzification dan button forecasting Berikut tampilan antarmuka halaman input yang ditunjukkan pada Gambar 51
Gambar 51 Implementasi antarmuka halaman input
80
532 Implementasi antarmuka halaman tampil data
Halaman tampil data merupakan halaman yang tampil setelah melakukan input data Halaman ini berisi tabel yang menampilkan data curah hujan suhu kecepatan angin dan kelembaban Berikut tampilan antarmuka halaman tampil data yang ditunjukkan pada Gambar 52
533 Implementasi antarmuka halaman proses
Halaman proses merupakan halaman yang muncul setelah button fuzzification telah dieksekusi Halaman proses ini terdiri dari tiga bagian atau tab yaitu clustering fuzzification dan Fuzzy logical relationship Pada halaman antarmuka clustering menampilkan Universe of Discourse dan jumlah cluster pada masing ndash masing faktor Berikut merupakan tampilan antarmuka halaman proses bagian clustering yang ditunjukkan pada Gambar 53
Gambar 52 Implementasi antarmuka halaman tampil data
Gambar 53 Implementasi antarmuka halaman proses clustering
81
Pada tab selanjutnya yaitu pada tab fuzzification tab ini menampilkan hasil proses fuzzifikasi Pada halaman ini menampilkan tabel yang berisi hasil fuzzifikasi dari setiap faktor Berikut merupakan tampilan antarmuka halaman proses bagian fuzzification yang ditunjukkan pada Gambar 54
Pada tab Fuzzy Logical Relationship menampilakn hasil dari proses pembentukan Fuzzy Logical Relationship Tampilan pada halaman ini menampilkan berupa textarea yang berisi dari output proses tersebut Berikut merupakan tampilan antarmuka halaman proses bagian Fuzzy Logical Relationship yang ditunjukkan pada Gambar 55
Gambar 54 Implementasi antarmuka halaman proses fuzzification
Gambar 55 Implementasi halaman antarmuka proses FLR
82
534 Implementasi antarmuka halaman hasil
Pada implementasi antarmuka halaman hasil ini merupakan halaman yang menampilkan hasil dari proses defuzzifikasi Halaman hasil ini menampilkan tabel yang berisi data aktual dan data dari hasil peramlan Berikut merupakan tampilan antarmuka halaman hasil yang ditunjukkan pada Gambar 56
535 Implementasi antarmuka halaman perhitungan error
Pada implementasi antarmuka halaman perhitungan error merupakan halaman yang menampilkan hasil dari proses perhitungan Mean Square Error (MSE) Pada halaman antarmuka ini menampilkan hasil error MSE pada textfield Berikut merupakan tampilan antarmuka halaman perhitungan error yang ditunjukkan pada Gambar 57
Gambar 56 Implementasi halaman antarmuka hasil
Gambar 57 Implementasi halaman antarmuka perhitungan error
83
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini membahas hasil pengujian dan analisis hasil pengujian dari hasil implementasi metode High Order Fuzzy Time Series Multi factors untuk peramalan curah hujan dasarian Pada pengujian ini disesuaikan dengan perancangan pengujian pada bab 4
61 Sistematika Pengujian
Pada bab sebelumnya yaitu bab 4 mengenai perancangan telah dibahas perancangan pengujian dikatakan bahwa pengujian akan dilakukan sebanyak empat pengujian Pengujian order pengujian threshold pengujian jumlah data training dan pengujian validasi sistem Dari semua pengujian tersebut akan di uji dan di analisis bagaimana pengaruhnya terhadap hasil perhitungan Mean Square Error (MSE)
62 Hasil dan Analisis Pembahasan
Berikut hasil pengujian dan analisis yang disesuaikan dengan perancangan pengujian pada bab sebelumnya
621 Pengujian pengaruh order terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh order terhadap nilai MSE Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Jadi jika nilai order adalah 3 maka peramalan akan melibatkan 3 data sebelumnya pada proses pembentukan Fuzzy Logical Relationship (FLR) Pada pengujian ini hanya nilai order yang diubah ndash ubah sedangkan variabel lain akan dibuat tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 konstanta adalah 10 Nilai threshold diperoleh dari perhitungan jumlah faktor dikali order dan dijumlah nilai konstanta Berikut adalah hasil pengujian pengaruh order terhadap nilai MSE yang ditunjukkan pada Tabel 61
Tabel 61 Hasil pengujian order terhadap nilai MSE
No Order Threshold MSE
1 3 22 808585
2 6 34 965547
3 9 46 912631
4 12 58 875884
5 15 70 719284
6 18 82 6801207
7 21 94 5637184
8 24 106 5444184
9 27 118 5433631
10 30 130 5418393
84
Dari hasil pengujian order seperti yang telah ditunjukkan pada Tabel 61 maka pada percobaan pertama dengan order = 3 dan threshold 22 dapat diperoleh MSE sebesar 808585 Selanjutnya pada percobaan kedua dengan order = 6 dan threshold = 34 diperoleh MSE sebesar 965547 Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 61
Berdasarkan Gambar 61 order yang berbeda - beda mempengaruhi besar nilai MSE Dalam penelitian ini menentukan order memiliki ketentuan yaitu nilai order harus lebih dari 0 dan batas maksimal order adalah setengah dari nilai data training (LinYang 2009) Nilai MSE terbesar yang ditunjukkan pada pengujian ini adalah 965547 pada pengujian order 6 dan nilai MSE terkecil adalah 5418393 pada pengujian order 30 Pada Gambar 61 menunjukkan bahwa pada order 3 ke order 6 mengalami peningkatan nilai MSE selanjutnya pada order 6 hingga order 30 mengalami penurunan Pada order 3 memiliki nilai MSE lebih kecil dari order 6 order 9 dan order 12 karena memiliki lebih banyak hasil selisih tingkat kecocokan data time series yang tidak terlalu besar dan kurang dari threshold Selain itu karena data time series dari data sampel yang diperoleh memiliki pola data musiman dimana perubahan pola data dasarian tidak terlalu banyak berubah dari tahun ke tahun Selanjutnya pada order 6 hingga order 30 menunjukkan penurunan nilai MSE dan order terbesar memiliki nilai MSE terkecil sehingga dapat disumpulkan bahwa semakin besar order maka semakin kecil pula nilai MSE Dalam hal ini dengan semakin besarnya order maka data sebelumnya yang digunakan untuk pertimbangan dalam menentukan peramalan semakin banyak Sehingga semakin besar nilai order maka dapat membuat peramalan semakin akurat Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin besar nilai order maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE
85
622 Pengujian pengaruh threshold terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh threshold terhadap nilai MSE Threshold merupakan hasil dari mengalikan jumlah order dengan jumlah faktor pada data kemudian dijumlahkan dengan dengan nilai konstanta Pada proses defuzzifikasi terdapat proses menghitung selisih antara pangkat bawah Fuzzy Logical Relationship (FLR) data training dan pangkat bawah FLR data testing Selanjutnya setelah mendapatkan nilai selisih maka nilai selisih tersebut dibandingkan dengan nilai threshold untuk mencari FLR yang cocok Pada pengujian ini nilai konstanta saja yang diubah ndash ubah sementara variabel lainnya tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 dan Nilai order adalah 30 Pada penentuan input konstanta nilai minimal harus lebih besar dari 0 dan nilai maksimal menyesuaikan data sampel yang digunakan (LinYang 2009) Berikut adalah hasil pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 62
Tabel 62 Hasil pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1 10 130 558485
2 20 140 577498
3 30 150 597364
4 40 160 604660
5 50 170 646951
6 60 180 680257
7 70 190 703013
8 80 200 741484
9 90 210 756749
10 100 220 780600
Dari hasil pengujian threshold seperti yang telah ditunjukkan pada Tabel 62 maka dapat dilihat bahwa konstanta yang dilakukan pengujian dimulai dengan nilai 10 sampai 100 Hasil yang didapat pada percobaan pertama dengan konstanta = 10 dan threshold 130 diperoleh MSE sebesar 558485 Selanjutnya pada percobaan kedua dengan konstanta = 20 dan threshold = 140 diperoleh MSE sebesar 577498 Selanjutnya dapat kita lihat pada percobaan yang telah dilakukan dari percobaan pertama hingga percobaan kesepuluh nilai MSE yang diperoleh mengalami perubahan pada setiap percobaan Dapat dilihat bahwa peningkatan MSE lebih dominan menunjukkan peningkatan sehingga dalam hal ini semakin besar nilai konstanta dan threshold maka semakin besar pula nilai MSE yang diperoleh Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 62
86
Berdasarkan grafik dari Gambar 62 nilai input konstanta yang berbeda - beda mempengaruhi besar nilai MSE semakin besar nilai konstanta maka nilai threshold juga semakin besar karena threshold diperoleh dari perhitungan order dikali jumlah faktor dan selanjutnya dijumlah dengan nilai konstanta Dalam hal ini dengan semakin besar nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR juga semakin luas batasannya dan jika semakin kecil nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR menjadi semakin sempit dan mempermudah proses peramalan karena hanya adanya sedikit data yang cocok dengan data yang akan diramalkan dan mempermudah proses defuzzifikasi Oleh karena itu semakin kecil threshold maka dapat membuat peramalan semakin akurat Akan tetapi nilai threshold tidak boleh terlalu kecil karena dapat menyebabkan kegagalan peramalan Kegagalan peramalan itu terjadi karena tidak adanya data training yang cocok dengan data testing karena pada metode yang digunakan pada penelitian ini sangat bergantung pada data ndash data sebelumnya Dari hasil percobaan diatas hasil MSE terbesar adalah 7806 yaitu pada konstanta 100 serta threshold 220 dan hasil MSE terkecil adalah 558485 yaitu pada konstanta 10 dan threshold 130 Dalam pengujian ini memiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin kecil nilai konstanta maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
623 Pengujian pengaruh jumlah data training terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh jumlah data training terhadap nilai MSE Pada pengujian ini jumlah data training adalah data dasarian yaitu 1 tahun 2 tahun 3 tahun 4 tahun dan 5 tahun dimana dari setiap 1 tahun memiliki 36 data dasarian Pengujian ini akan dilakukan sebanyak lima kali Pada pengujian ini jumlah data testing adalah 36 nilai order adalah setengah dari
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE
87
nilai data training nilai konstanta adalah 20 Berikut adalah hasil pengujian pengaruh jumlah data training terhadap nilai MSE yang ditunjukkan pada Tabel 63
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1 36 786586
2 72 634527
3 108 627190
4 144 614184
5 180 539698
Dari hasil pengujian jumlah data training seperti yang telah ditunjukkan pada Tabel 63 maka pada percobaan pertama dengan data training = 36 dapat diperoleh MSE sebesar 786586 Selanjutnya pada percobaan kedua dengan data training = 72 diperoleh MSE sebesar 634527 Dalam hal ini dari percobaan satu dan dua nilai MSE mengalami penurunan Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 63
Berdasarkan dari Gambar 63 pengujian pertama sampai pengujian kelima mengalami penerunan nilai MSE Sehingga dapat disimpulkan bahwa semakin besar data training maka semakin kecil nilai MSE yang diperoleh Nilai MSE semakin kecil apabila menggunakan data training dalam jumlah besar karena data yang digunakan memiliki rentang jauh dari periode data testing atau data yang akan diramalkan Sedangkan data training yang sedikit memiliki nilai MSE yang besar karena data training yang memiliki kecocokan dengan data testing berada pada periode yang jauh dengan data testing sehingga nilai MSE menjadi tinggi Dalam hal ini terbukti bahwa metode yang digunakan pada penelitian ini memerlukan jumlah data training yang banyak sehingga dapat menurunkan nilai kesalahannya Dari hasil percobaan diatas hasil MSE terbesar adalah 786586 dan
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE
88
hasil MSE terkecil adalah 539698 Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoPeramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Seriesrdquo yang menyatakan bahwa semakin besar jumlah data training maka semakin kecil nilai kesalahannya (Elfajar et al 2017)
624 Pengujian validasi sistem
Pada pengujian ini dilakukan untuk mengetahui kestabilan dari sistem dengan menggunakan order threshold terbaik dari pengujian sebelumnya Pada pengujian ini akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai data training menggunakan 36 data yang berbeda agar dapat menunjukkan gambaran variasi dari nilai kesalahan MSE pada peramalan nilai order adalah 18 dan konstanta adalah 10 sehingga nilai threshold adalah 92 Berikut adalah hasil pengujian validasi sistem yang ditunjukkan pada Tabel 64
Tabel 64 Hasil pengujian validasi sistem
Percobaan ke- MSE
1 714290
2 703856
3 732564
4 732815
5 6973958
6 7532825
7 741726
8 760457
9 709961
10 6256204
Dari hasil pengujian validasi sistem seperti yang telah ditunjukkan pada Tabel 64 maka dapat digambarkan dengan grafik yang ditunjukkan oleh Gambar 64
Gambar 64 Grafik hasil pengujian validasi sistem
89
Berdasarkan dari gambar grafik Gambar 64 bahwa pengujian dari validasi sistem memiliki hasil MSE yang tidak terlalu jauh berbeda dari penggunaan data yang berbeda - beda Oleh karena itu dapat disimpulkan bahwa implementasi dari metode High Order Fuzzy Time Series Multi Factors yang telah digunakan sudah cukup baik untuk digunakan peramalan
Berdasarkan dari pengujian yang dilakukan diatas dapat diketahui bahwa nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun 2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016 Nilai order adalah 90 dan konstanta adalah 10 Berikut adalah perbandingan data aktual dengan hasil peramalan yang ditunjukkan pada grafik Gambar 65
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan
90
BAB 7 PENUTUP
Pada bab ini terdiri dari dua sub bab yaitu kesimpulan dan saran Kesimpulan adalah tahapan yang berisi hasil penelitian yang dilakukan dan jawaban semua rumusan masalah yang sudah ditetapkan sebelumnya dan saran adalah tahapan yang berisi hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
71 Kesimpulan
Pada kesimpulan ini mengacu pada penelitian yang telah dilakukan yang meliputi perancangan implementasi serta pengujian dan analisis terhadap hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diambil kesimpulan sebagai berikut
1 Berdasarkan dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam melakukan peramalan curah hujan dasarian dilakukan dengan beberapa langkah yaitu langkah pertama perhitungan Universe of Discourse yang terdiri perhitungan mean standar deviasi dan perhitungan Dmin serta Dmax langkah kedua yaitu perhitungan jumlah cluster langkah ketiga yaitu perhitungan pusat cluster langkah keempat yaitu pembentukan subinterval dan fuzzy set langkah kelima yaitu proses fuzzifikasi langkah keenam yaitu pembentukan Fuzzy Logical Relationship(FLR) langkah ketujuh adalah defuzzifikasi yang hasil outputnya merupakan hasil peramalan curah hujan
2 Berdasarkan dari pengujian peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diketahui bahwa
a Order berpengaruh terhadap nilai error semakin besar nilai order maka hasil peramalan semakin baik
b Threshold berpengaruh terhadap nilai error semakin rendah nilai threshold maka hasil peramalan semakin baik Akan tetapi nilai threshold tidak boleh terlalu rendah karena dapat menyebabkan kegagalan peramalan
c Data training berpengaruh terhadap nilai error semakin besar jumlah data training maka hasil peramalan semakin baik Sehingga peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors memerlukan banyak data training
d Hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors cukup baik digunakan untuk peramalan Hal ini terbukti hasil pengujian validasi sistem menunjukkan grafik yang cukup stabil
Dari pengujian yang telah dilakukan nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun
91
2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016
72 Saran
Pada penelitian ini dilakukan peramalan curah hujan dasarian dengan faktor yang mempengaruhi adalah suhu kelembaban dan kecapatan angin Saran penulis diharapkan untuk penelitian selanjutnya melakukan penambahan faktor yang mempengaruhi curah hujan atau melakukan peramalan objek lain dengan mempertimbangkan faktor ndash faktor yang mempengaruhinya Serta diharapkan pada penelitian selanjutnya untuk menambahkan data yang lebih banyak serta bervariatif sehingga nilai hasil perhitungan akurasi peramalan yang dihasilkan dalam penelitian dapat meningkat Penggunaan data training yang banyak dan bervariatif dapat membuat pola data semakin terlihat sehingga hasil peramalan yang dihasilkan memiliki akurasi yang lebih baik
92
DAFTAR PUSTAKA
Ardiyanto 2016 ldquoTerendam Air Petani Lamongan Terpaksa Panen Dinirdquo Times Indonesia November 18 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
Badan Penelitian dan Pengembangan Pertanian Kementrian Pertanian 2015 ldquoKalender Tanam Terpadu Versi 25 Kota Malang Prov Jawa Timurrdquo httpkatamlitbangpertaniangoidkatam_terpadu2016mh33535733573_tinggipdf (Diakses 25 Februari 2017)
Bagirov M Adil Mahmood Arshad and Barton Andrew 2017 Prediction of monthly rainfall in Victoria Australia Clusterwise linear regression approach Elsevier Atmos Research 188 20-29
BMKG Staklim Karangploso Malang 2015 ldquoAnalisis Dinamika Atmosfer Dan Laut Dasarian III Maret 2015 Update 2 April 2015rdquo httpkarangplosojatimbmkgogoidindexphpanalisis-kondisi-dinamika-atmosfer-laut-dasarian-tahun-2015399-analisis-dinamika-atmosfer-dan-laut-dasarian-iii-maret-2015-update-2-april-2015axzz3X8h9y4fgampgsctab=0 (Diakses 25 Februari 2017)
BPS Kabupaten Malang 2016 ldquoKabupaten Malang Dalam Angka 2016rdquo httpsmalangkabbpsgoidwebsitepdf_publikasiKabupaten-Malang-Dalam-Angka-2016pdf (Diakses 25 Februari 2017)
BPS Jawa Timur 2015 ldquoJawa Timur Dalam Angka 2015rdquo httpsjatimbpsgoid4dmnpdf_publikasiJawa-Timur-Dalam-Angka-2015pdf (Diakses 25 Februari 2017)
Buffa S Elwood Rakesh and Sarin K 1996 Modern Production and Operation Management Eight Edition John Willey and Sons Inc London
Chen M 1996 Forecasting Enrollments based on Fuzzy Time Series Fuzzy Sets and Systems 311-319
Dewi Candra Kartikasari Dani Mursityo Yusi 2014 Prediksi Cuaca Pada Data Time Series Menggunakan Adaptive Neuro Fuzzy Inference System (ANFIS) Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK) Vol 1 No 1 hlm 18-24
Dewi Candra Muslikh M 2013 Perbandingan Akurasi Backpropagation Neural Network dan ANFIS Untuk Memprediksi Cuaca NATURAL-A Journal of Scientific Modeling amp Computation Volume 1 No1
Elfajar Aria Setiawan Budi Dewi Candra 2017 Peramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Series Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer Vol 1 No 2 Hlmn 85-94
93
Fauziah Normalita Wahyuningsih Sri dan Nasution Yuki 2016 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) Vol4 Statistika
Forest Mahyu 2015 ldquoDefenisi amp Pengertian Kelembabanrdquo httpilmupengetahuaalamblogspotcoid201506defenisi-pengertian-kelembabanhtml (Diakses 25 Februari 2017)
Irsyad Muhammad Metarice Sonya 2013 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan Jurnal Sains dan Teknologi Industri Vol 10 No 02
Klawon F 2001 What is About Fuzzy Clustering Understanding and Improving the Concept of the Fuzzier Science Journal httppublic-rzfh-wolfebuetteldeklawon
Kurniawan Carlos 2007 Analisis dan Perancangan Program Aplikasi Peramalan Curah Hujan dengan Metode Wavelet (Studi Kasus BMKG)
Kusumadewi S 2003 ldquoArtificial Intelegence (Teknik amp Aplikasinya)rdquo Graha Ilmu Yogyakarta
Kusumadewi S Purnomo H 2004 ldquoAplikasi Logika Fuzzy untuk Pendukung Keputusanrdquo Graha Ilmu Yogyakarta
Kusumadewi Sri 2002 Analisis amp Desain Sistem Fuzzy Tollbox MATLAB Graha Ilmu Yogyakarta
Lin Yupei Yang Y 2009 Stock Markets Forecasting Based on Fuzzy Time Series Model IEEE Conference Publications 782-886
Makridakis S Steven C Wheelwright Victor E and Gee MC 1999 Metode dan Aplikasi Peramalan Jilid I Edisi Kedua Jakarta Binarupa Aksara
Mirawati T Yasin H and Rusgiyono A 2013 Prediksi Curah Hujan dengan Metode Kalman Filter(Studi Kasus di Kota Semarang 2012) Jurnal Gaussian 2(3) pp 239-248
Pradipta Nur Sembiring Pasukat Bangun Pengarapen 2013 Analisis Pengaruh Curah Hujan di Kota Medan Saintia Matematika Vol 1
Sipayung Putri Metha 2013 Pemodelan Hubungan Kelembapan Udara terhadap Curah Hujan (Studi Kasus Curah Hujan Periode 2001-2009 pada Stasiun Dramaga) httprepositoryipbacidhandle12345678960623 (Diakses 25 Februari 2017)
User 2015 httpstaklimnegaranet[Online] Available at httpwwwstaklimnegaranetindexphpbuletin-hujanpengertian-istilah (Diakses 25 Februari 2017)
Wang Nai-Yi Chen Shyi-Ming 2009 Temperature prediction and TAIFEX forecasting based on automatic clustering techniques and two-factors high-order fuzzy time series Elsevier Expert Systems with Applications 36 2143ndash2154
94
Wardhani Dessy Ratnawati Dian Setiawan Budi 2015 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Saham Repositori Jurnal Mahasiswa PTIIK UB Doro Jurnal Vol 6 No 6
Wiyanti T and Pulungan R 2012 Peramalan Deret Waktu Menggunakan Model Fungsi Basis Radial (RBF) dan Auto Regressive Integrated Moving Average (ARIMA) Jurnal MIPA 35(2) pp 175-182
Yunanto Utomo 2014 ldquoBMKG Akui Prakiraan Cuacanya Masih Kurang Akuratrdquo Kompas Sains Januari 30 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
x
622 Pengujian pengaruh threshold terhadap nilai MSE 85
623 Pengujian pengaruh jumlah data training terhadap nilai MSE 86
624 Pengujian validasi sistem 88
BAB 7 PENUTUP 90
71 Kesimpulan 90
72 Saran 91
DAFTAR PUSTAKA 92
LAMPIRAN 95
Lampiran 1 Data Sampel 95
xi
DAFTAR TABEL
Tabel 21 Kajian Pustaka 5
Tabel 22 Fuzzy Logic Relationship 19
Tabel 23 Peramalan fuzzy set 20
Tabel 41 Data Sampel Perhitungan Manual 46
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean 47
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi 47
Tabel 44 Hasil Universe of Discourse 48
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya 48
Tabel 46 Hasil jumlah cluster data 49
Tabel 47 Matriks partisi awal pada cluster data A 50
Tabel 48 Derajat keanggotaan matriks partisi data A 51
Tabel 49 Perhitungan pusat cluster data A 52
Tabel 410 Fungsi objektif data A 53
Tabel 411 Perbaikan matriks partisi 54
Tabel 412 Hasil perbaikan matriks partisi 54
Tabel 413 Hasil pusat cluster 55
Tabel 414 Batas subinterval masing ndash masing atribut data 55
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A 57
Tabel 416 Hasil fuzzifikasi semua data attribut 57
Tabel 417 Hasil pembentukan FLR data training 58
Tabel 418 Hasil pembentukan FLR data testing 58
Tabel 419 Frekuensi FLR yang cocok dengan data testing 59
Tabel 420 Perbandingan data aktual dan hasil peramalan 60
Tabel 421 Rancangan pengujian order terhadap nilai MSE 64
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE 65
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE 65
Tabel 424 Rancangan pengujian validasi sistem 66
Tabel 51 Spesifikasi Perangkat Keras 67
Tabel 52 Spesifikasi Perangkat Lunak 67
Tabel 61 Hasil pengujian order terhadap nilai MSE 83
xii
Tabel 62 Hasil pengujian threshold terhadap nilai MSE 85
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE 87
Tabel 64 Hasil pengujian validasi sistem 88
xiii
DAFTAR GAMBAR
Gambar 21 Representasi linear naik 11
Gambar 22 Representasi linear turun 12
Gambar 23 Representasi kurva segitiga 12
Gambar 31 Diagram blok metodologi penelitian 22
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1) 25
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2) 26
Gambar 43 Diagram alir proses perhitungan Universe of Discourse 27
Gambar 44 Diagram alir proses perhitungan mean 28
Gambar 45 Diagram alir proses perhitungan standar deviasi 29
Gambar 46 Diagram alir perhitungan nilai Min dan Max 30
Gambar 47 Diagram alir proses perhitungan jumlah cluster 31
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1) 32
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2) 33
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3) 34
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4) 35
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5) 36
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1) 37
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2) 38
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1) 39
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2) 40
Gambar 417 Diagram alir proses Pembentukan FLR (bagian 1) 41
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2) 42
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3) 43
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1) 44
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2) 45
Gambar 422 Grafik fuzzy set data A 56
Gambar 423 Rancangan antarmuka halaman input 61
Gambar 424 Rancangan antarmuka halaman tampil data 61
Gambar 425 Rancangan antarmuka halaman proses clustering 62
Gambar 426 Rancangan antarmuka proses fuzzifikasi 62
xiv
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship 63
Gambar 428 Rancangan antarmuka halaman hasil peramalan 63
Gambar 429 Rancangan antarmuka halaman perhitungan error 64
Gambar 51 Implementasi antarmuka halaman input 79
Gambar 52 Implementasi antarmuka halaman tampil data 80
Gambar 53 Implementasi antarmuka halaman proses clustering 80
Gambar 54 Implementasi antarmuka halaman proses fuzzification 81
Gambar 55 Implementasi halaman antarmuka proses FLR 81
Gambar 56 Implementasi halaman antarmuka hasil 82
Gambar 57 Implementasi halaman antarmuka perhitungan error 82
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE 84
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE 86
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE 87
Gambar 64 Grafik hasil pengujian validasi sistem 88
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan 89
xv
DAFTAR KODE PROGRAM
Kode Program 51 Implementasi proses Universe of Discourse 68
Kode Program 52 Implementasi proses mean 68
Kode Program 53 Implementasi proses standar deviasi 69
Kode Program 54 Implementasi proses Dmin dan Dmax 69
Kode Program 55 Implementasi proses jumlah cluster 70
Kode Program 56 Implementasi proses pusat cluster 72
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set 74
Kode Program 58 Implementasi proses fuzzifikasi 75
Kode Program 59 Implementasi pembentukan FLR 77
Kode Program 510 Implementasi proses defuzzifikasi 79
xvi
DAFTAR LAMPIRAN
Lampiran 1 Tabel Data Sampel 95
1
BAB 1 PENDAHULUAN
11 Latar belakang
Kabupaten Malang merupakan salah satu kabupaten di Jawa Timur yang terkenal akan potensi alam yang dimiliki (BPS Kabupaten Malang 2016) Dalam hal ini terkenal akan potensi alamnya karena kabupaten Malang memiliki tingkat produksi di sektor pertanian yang cukup tinggi dimana hampir seluruh kecamatan di kabupaten Malang memiliki lahan pertaniaaan (BPS Jatim 2015) Permasalahan yang terjadi pada sektor pertanian yaitu terjadinya gagal panen apabila memasuki musim penghujan dengan curah hujan yang tinggi yaitu diatas 200 mm per bulan serta apabila memasuki musim kemarau dengan curah hujan yang rendah yaitu dibawah 100 mm per bulan (BMKG Staklim Karangploso Malang 2015) Dalam mengatasi hal tersebut upaya yang dilakukan petani selama ini hanya melakukan tindakan seperti melakukan panen secara dini Upaya ini dianggap petani cukup efektif dalam mengurangi besarnya kerugian gagal panen akan tetapi sebaiknya yang dilakukan adalah melakukan suatu tindakan agar kerugian yang dialami petani tidak terjadi lagi (Ardiyanto 2016)
Salah satu contoh tindakan yang dapat dilakukan adalah membuat Kalender Tanam (KATAM) KATAM dapat digunakan petani sebagai alat bantu atau pedoman dalam menentukan awal musim tanam terbaik seperti yang telah dilakukan oleh Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian Dalam pembuatan KATAM Balitbang menggunakan data peramalan curah hujan dari Badan Meteorologi Klimatologi dan Geofisika (BMKG) Akan tetapi BMKG mengakui bahwa prakiraan cuacanya saat ini memang masih kurang akurat dan masih kalah dengan prakiraan cuaca di Amerika Serikat (Yunanto 2014) Pentingnya akan prakiraan cuaca terbukti adanya beberapa penelitian sebelumnya yaitu penelitian prakiraan cuaca dengan input faktor yang mempengaruhi cuaca yang berupa data time series menggunakan metode Adaptive Neuro Fuzzy Inference System (ANFIS) (Dewi 2014) dan penelitian mengenai prediksi cuaca menggunakan metode Backpropagation Neural Network yang terbukti memiliki nilai akurasi yang baik dalam prediksi cuaca (Dewi 2013)
Teknik atau metode peramalan curah hujan yang sering digunakan BMKG adalah metode Autoregressive Integrated Moving Average (ARIMA) ANFIS dan Wavelet (Kurniawan 2007) Namun dalam penerapannya gabungan dari ketiga metode tersebut masih kurang memuaskan yaitu tingkat akurasinya hanya mencapai 60 - 70 Menurut BMKG kurangnya tingkat akurasinya ini disebabkan oleh keadaan pola atmosfer di Indonesia yang selalu berubah ndash ubah dan kurang menentu
Selain metode yang digunakan oleh BMKG adapun penelitian sebelumnya yang meramalkan curah hujan yaitu penelitian menggunakan metode Fuzzy Time Series Chen dengan studi kasus curah hujan di Samarinda dalam penelitian ini menggunakan data time series curah hujan bulanan dengan kesimpulan pengunaan data yang sedikit memiliki tingkat akurasi lebih tinggi dibandingkan
2
menggunakan data yang banyak yaitu menghasilkan nilai RMSE terkecil 7368 dan MAE terkecil 539 (Fauziah et al 2016)
Selain peramalan yang hanya menggunakan data time series dari data yang akan diramalkan juga terdapat penelitian sebelumnya yang menggunakan faktor - faktor yang mempengaruhi dari data yang akan diramalkan Salah satunya yaitu penelitian dengan menggunakan metode Clusterwise Linear Regression (CLR) Penelitian ini menggunakan data bulanan pada delapan stasiun cuaca di kota Victoria Australia Peramalan curah hujan pada penelitian ini menggunakan faktor yang mempengaruhi yaitu suhu maksimum suhu minimum penguapan tekanan uap dan radiasi matahari Hasil penelitian ini terbukti dapat melakukan peramalan curah hujan dengan hasil yang cukup baik yaitu dengan nilai RMSE terkecil 197 dan MAE terkecil 129 (Bagirov et al 2017)
Berdasarkan paparan yang telah dijelaskan penulis memiliki ide untuk melakukan penelitian dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Pada metode ini dilakukan klasterisasi data untuk membangun subinterval dengan menggunakan metode fuzzy C-means (LinYang 2009) Dari proses hasil klasterisasi akan digunakan untuk membagi data semesta yang selanjutnya menghasilkan fuzzy set atau himpunan fuzzy yang menggambarkan fitur data (LinYang 2009) Keunggulan dari metode fuzzy time series dengan multi faktor yaitu dengan berdasarkan pada penelitian ndash penelitian sebelumnya yang menggunakan metode tersebut yaitu penelitian prediksi harga emas dengan beberapa faktor yang mempengaruhi menggunakan metode Multi-factors High order Fuzzy Time Series Model dari hasil penelitian ini dengan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 (Wardhani et al 2015) dan penelitian peramalan Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen menggunakan metode Fuzzy Time Series Model dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 (Lin Yang 2009) terbukti menghasilkan hasil peramalan dengan tingkat akurasi yang cukup tinggi Penggunaan metode ini juga sesuai dengan curah hujan yang dipengaruhi oleh beberapa faktor yaitu kelembaban udara kecepatan angin dan suhu (Pradipta 2013) Penelitian ini diharapkan dapat memberikan hasil peramalan curah hujan yang lebih akurat dan memiliki nilai kesalahan yang lebih sedikit
12 Rumusan masalah
Berdasarkan latar belakang yang telah dipaparkan dibuatlah beberapa rumusan masalah sebagai berikut
1 Bagaimana mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Berapa tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
3
13 Tujuan
Adapun maksud dan tujuan dari penelitian ini adalah sebagai berikut
1 Mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Mengetahui tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
14 Manfaat
Adapun manfaat dari penelitian ini adalah sebagai berikut
1 Bagi Badan Meteorologi dan Geofisika (BMKG) untuk dapat memberikan peramalan curah hujan yang lebih akurat dari sebelumnya
2 Bagi Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian untuk dapat membuat Kalender tanam (KATAM) dengan menggunakan data ramalan curah hujan yang lebih akurat
3 Bagi penduduk kabupaten Malang khususnya yang bekerja pada sektor pertanian agar dapat mengoptimalkan hasil produksi dengan menyesuaikan penanaman sesuai dengan Kalender Tanam (KATAM) yang telah dibuat Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian
15 Batasan masalah
Penelitian ini dibatasi oleh hal ndash hal sebagai berikut
1 Data curah hujan kelembaban udara kecepatan angin dan suhu udara yang digunakan pada penelitian ini merupakan data berdasarkan dasarian dan hanya mencakup wilayah kabupaten Malang dan data diperoleh dari BMKG Karangkates Kabupaten Malang dengan data time series yang digunakan pada penelitian ini yaitu dari tahun 2011 - 2016
2 Model peramalan yang diterapkan adalah semua nilai yang membentuk pola dataset training dan testing diketahui nilainya
3 Perhitungan nilai tingkat kesalahan permalan menggunakan metode Mean Square Error (MSE)
16 Sistematika pembahasan
Sistematika pembahasan penelitian ditunjukkan untuk memberikan gambaran dan uraian dari penyusunan proposal yang meliputi beberapa bab sebagai berikut
BAB 1 PENDAHULUAN
Pada bab ini berisi latar belakang rumusan masalah tujuan penelitian manfaat penelitian batasan masalah sistematika pembahasan dan rencana kerja atau jadwal penelitian
4
BAB 2 LANDASAN KEPUSTAKAAN
Pada bab ini berisi tentang kajian pustaka dan dasar teori yang menjadi dasar dalam melakukan implementasi peramalan curah hujan dengan Metode High Order Fuzzy Time Series Multi Factors
BAB 3 METODOLOGI
Pada bab ini diuraikan tentang tahapan atau langkah ndash langkah yang dilakukan dalam proses penelitian tentang peramalan curah hujan dengan metode High Order Fuzzy Time Series Multi Factors Langkah ndash langkah tersebut terdiri dari tahapan penelitian teknik pengumpulan data algoritma yang digunakan lingkungan pengujian dan pengujian algoritma yang digunakan serta pengambilan kesimpulan
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan proses algoritma perhitungan manual metode High Order Fuzzy Time Series Multi Factors perancangan antar muka dan perancangan pengujian
BAB 5 IMPLEMENTASI
Pada bab ini berisi tentang penjelasan peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors bagaimana user interface dan source code dalam pengimplementasian metode ini
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini berisi tentang penjelasan proses dan hasil pengujian dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam peramalan curah hujan serta analisis dari pengujian tersebut
BAB 7 PENUTUP
Pada bab ini berisi kesimpulan yang diperoleh dari hasil pengujian dan saran ndash saran untuk pengembangan penelitian selan
5
BAB 2 LANDASAN KEPUSTAKAAN
Bab ini berisi mengenai kajian pustaka dan dasar ndash dasar teori yang akan dibahas serta digunakan untuk menunjang topik ndash topik pembahasan Pada kajian akan dibahas perbedaan antara penelitian yang telah ada dengan penelitian yang diusulkan oleh penulis Sedangkan pada dasar teori akan dibahas mengenai teori ndash teori yang digunakan pada penelitian yang diusulkan
21 Kajian Pustaka
Pada kajian pustaka disini berisi mengenai perbandingan antara penelitian yang diusulkan oleh penulis dengan penelitian sebelumnya yang relevan Perbandingan tersebut dapat dilihat padat Tabel 21
Tabel 21 Kajian Pustaka
No Judul Objek dan Input Penelitian Metode
1 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan (Irsyad Metarice 2013)
Objek Curah hujan
Input Penelitian
Data aktual curah hujan
Metode High Order Fuzzy Time Series dan Automatic Clustering
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
2 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) (Fauziah et al 2016)
Objek Curah Hujan
Input Penelitian
Data aktual curah hujan
Metode Fuzzy Time Series Chen
Nilai evaluasi
Mean Absolute Error (MAE) Root Mean of Square Error (RMSE)
3 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emas (Wardhani et al 2015)
Objek Harga Emas
Input Penelitian
Kurs Dollar hari sebelumnya
Kurs Euro hari sebelumnya
Harga Emas London hari sebelumnya
Harga Emas hari sebelumnya
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
4 Stock Markets Forecasting Based on Fuzzy Time Series Model (Lin Yang 2009)
Objek Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
6
Input Penelitian
Historical return
Historical turnover volume
Rata ndash rata selisih pergerakan harga selama lima hari
Selisih antara kekuatan bull dan bear
Indeks komposit bursa efek harian Shanghai sebelumnya
Indeks komposit bursa efek harian Shenzhen
Nilai evalusi
Average Relative Error (ARError)
5 Peramalan Curah Hujan Menggunakan Metode High Order Fuzzy Time Series Multi Factors
Objek Curah hujan
Input Penelitian
Suhu
Kelembaban
Kecepatan angin
Curah hujan
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Square Error (MSE)
Sumber (Irsyad Metarice 2013) (Fauziah et al 2016) (Wardhani et al 2015) dan (Lin Yang 2009)
Pada penelitian yang pertama yaitu penelitian yang dilakukan oleh Muhammad Irsyad dan Sonya Metarice pada tahun 2013 dengan objek penelitian yang diramalkan adalah curah hujan Inputan yang digunakan pada penelitian ini merupakan data aktual curah hujan bulanan Metode yang digunakan penelitian ini adalah Automatic Clustering dan High Order Fuzzy Time Series Pada penelitian ini metode Automatic Clustering digunakan untuk membangun interval dan High Order Fuzzy Time Series untuk melakukan peramalan curah hujan Kesimpulan yang diperoleh dari penelitian ini yaitu metode ini dapat diterapkan untuk permalan curah hujan dan hasil evaluasi menggunakan metode Mean Absolute Percentage Error(MAPE) dari beberapa bercobaan dapat diperoleh nilai kesalahan sebesar 437 Berdasarkan dari hasil nilai kesalahan tersebut maka tingkat kesalahan data pada permalan ini termasuk rendah
Pada tahun 2016 Normalita Fauziah Sri Wahyuningsih dan Yuki Novia Nasution melakukan penelitian dengan objek penelitian curah hujan di kota Samarinda Inputan yang digunakan pada penelitian berupa data aktual bulanan curah hujan di kota Samarinda Metode yang digunakan pada penelitian ini adalah Fuzzy Time Series Chen dengan dalam pembentukkan panjang interval berbasis rata ndash rata atau average based Pada penelitian ini permalan curah hujan terbaik yaitu dengan menggunkan data sebanyak 29 data dengan menghasilkan tingkat nilai kesalahan terkecil yaitu dengan metode Root Mean of Squared Error (RMSE) sebesar 7368 dan metode Mean Absolute Error (MAE) sebesar 539 Pada
(Lanjutan) Tabel 21 Kajian Pustaka
7
penelitian ini disimpulkan bahwa data sebanyak 29 data memiliki tingkat kesalahan lebih kecil dibandingkan dengan menggunakan data dengan jumlah sampel yang lebih banyak
Pada penelitian selanjutnya adalah penelitian yang dilakukan oleh Dessy Kusuma Wardhani Dian Eka Ratnawati dan Budi Darma Setiawan pada tahun 2015 dengan objek penelitian yang diramalkan adalah harga emas harian Inputan yang digunakan pada penelitian ini data aktual harian harga emas indonesia harga emas london kurs dollar ke rupiah dan kurs euro ke rupiah Metode yang digunakan pada penelitian pada pembentukkan sub interval menggunakan metode fuzzy C-means dan untuk peramalan menggunakan metode High Order Fuzzy Time Series Model Hasil pada penelitian ini berdasarkan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 karena nilai error lebih kecil dari 10 menunjukkan bahwa metode ini sangat baik digunakan untuk peramalan harga emas
Pada tahun 2009 Yupei Lin dan Yiwei Yang melakukan penelitian dengan objek yang diramalkan adalah indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen Data input penelitian ini meliputi historical return historical turnover volume dan rata ndash rata selisih pergerakan harga selama lima hari serta selisih antara kekuatan bull dan bear Dalam penelitian ini pembentukan subinterval yang berfungsi dalam pendefinisian himpunan fuzzy dilakukan dengan menggunakan klasterisasi fuzzy C-means Hasil dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 Dalam hal ini membuktikan bahwa penelitian dapat menghasilkan peramalan yang cukup baik karena memiliki nilai ARError kurang dari 5
Pada penelitian ini membahas tentang peramalan curah hujan dasarian menggunakan metode High Order Fuzzy Time Series Multi Factors Terdapat empat inputan yang juga dijadikan sebagai variabel dalam penelitian ini yaitu kelembaban udara kecepatan angin suhu udara dan curah hujan Pembentukan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan klasterisasi fuzzy C-means Penelitian ini menggunakan high order fuzzy logic relationship yaitu membentuk fuzzy logic relationship berdasarkan data dalam kurun waktu beberapa dasarian sebelum dasarian yang akan diramal Pada penelitian ini dalam melakukan perhitungan nilai error untuk mendapatkan hasil evaluasi menggunakan metode Mean Square Error (MSE)
22 Dasar Teori
Pada dasar teori disini dijelaskan tentang metode ndash metode yang digunakan pada penelitian ini yang meliputi peramalan curah hujan data time series logika fuzzy fuzzy C-means metode peramalan dengan Fuzzy Time Series High Order Fuzzy Time Series Multi Factors dan metode perhitungan keakuratan metode peramalan
8
221 Peramalan
Terdapat beberapa definisi tentang peramalan menurut Kamus Besar Bahasa Indonesia (KBBI) yaitu
a Peramalan merupakan prediksi rencana atau estimasi kejadian masa depan yang tidak pasti (KBBI)
b Peramalan adalah sebagai penggunaan teknik ndash teknik statistik dalam bentuk gambaran masa depan berdasarkan pengolahan angka ndash angka yang terjadi pada masa lalu (Buffa et al1996)
c Peramalan adalah bagian internal dari pengambilan keputusan manajemen (Makridakis et al1999)
Berdasarkan beberapa definisi diatas dapat disimpulkan bahwa peramalan merupakan tindakan apa yang akan terjadi di masa mendatang peramalan diperlukan untuk mengambil sebuah keputusan Dalam pengambilan keputusan harus diambil dari pertimbangan ndash pertimbangan yang ada Oleh karena itu peramalan sangat penting hubungannya dengan pengambilan keputusan sehingga kejadian di masa yang akan datang dapat dipersiapkan tindakan apa yang perlu dilakukan
222 Curah hujan
Curah hujan merupakan salah satu faktor penting yang mempengaruhi perubahan iklim suatu wilayah (Mirawati et al 2013) Salah satu contoh kasus nyata yaitu terjadinya perubahan iklim secara tiba ndash tiba atau bisa disebut dengan cuaca ekstrim Curah hujan dapat dijelaskan dengan air hujan yang terkumpul pada suatu wadah datar dimana air hujan tersebut tidak meresap tidak menguap dan tidak mengalir sehingga dapat diukur ketinggiannya Sebagai contoh curah hujan 1 (satu) milimeter dapat dijelaskan dalam suatu wadah datar dengan luas satu meter persegi tertampung air dengan ketinggian sekitar satu milimeter atau tertampung air sebanyak satu liter Metode dalam mendapatkan data curah hujan adalah dengan menggunakan penakar hujan yang kemudian diukur dengan satuan milimeter (mm) (User2015) Intensitas curah hujan dapat dikategorikan ringan jika dibawah 20mm dalam 24 jam dikategorikan lebat jika di atas 50mm dan dikategorikan sedang jika selang 20mm hingga 50mm (User 2015)
Curah hujan mempengaruhi beberapa sektor diantarannya sektor komunikasi dimana penggunaan frekuensi diatas 10 GHz dapat terkena redaman hujan (Mauludiyanto et al 2009) Akan tetapi curah hujan paling berpengaruh terhadap sektor pertanian Hal ini terbukti bahwa sebagian besar terjadinya penurunan produktifitas dan gagal panen di sektor pertanian adalah terjadinya curah hujan yang tinggi
Tinggi dan rendahnya curah hujan dipengaruhi oleh beberapa faktor yaitu kelembaban udara temperatur dan kecepatan angin Pada tahun 2013 Nur Suri Pradipta Pasukat Sembiring dan Pengarapen Bangun melakukan penelitian mengenai pengaruh curah hujan di kota Medan (Pradipta et al 2013)
9
Berdasarkan penelitian tersebut faktor yang mempengaruhi dan digunakan dalam peramalan curah hujan yaitu
1 Kelembaban udara
Kelembaban udara adalah banyaknya kandungan uap air di atmosfer Udara atmosfer adalah campuran dari udara kering dan uap air selain itu kelembaban udara merupakan komponen cuaca yang mempunyai peranan sangat penting bagi stabilitas kehidupan organisme di bumi maupun unsur-unsur cuaca yang lain (Forest 2015) Kelembaban udara berpengaruh terhadap curah hujan Hal ini didukung penelitian oleh (Sipayung et al 2013) yang menyatakan Kelembaban udara berpengaruh positif terhadap curah hujan
2 Kecepatan angin
Kecepatan angin merupakan kecepatan udara yang bergerak secara horizontal pada ketinggian 2 meter diatas tanah Dalam hal ini faktor yang menentukan kecepatan angin adalah perbedaan tekanan udara antara asal dan tujuan angin Kecepatan angin berpengaruh positif terhadap curah hujan artinya jika kecepatan angin tinggi maka curah hujan akan tinggi (Pradipta et al2013)
3 Suhu udara
Suhu udara merupakan ukuran energi kinetik rata ndash rata dari pergerakan molekul ndash molekul Suhu udara berpengaruh negatif terhadap curah hujan artinya jika suhu udara tinggi maka curah hujan akan berkurang (Pradipta et al2013)
223 Data time series
Data time series adalah data statistik yang telah dihimpun dari masa lampau hingga sekarang dan dapat digunakan sebagai acuan dalam melakukan peramalan terhadap data yang akan datang (Wiyanti amp Pulungan 2012) Data time series juga dapat didefinisikan sebagai sebuah kegiatan mengamati data statistik dimana terdapat korelasi (dependensi) antar datanya sehingga data yang sekarang sedang diamati memiliki ketergantungan dengan satu atau lebih data pengamatan sebelumnya (Mirawati et al 2013)
Terdapat dua teknik prediksi yang menggunakan basis data time series yaitu teknik model matematika statistik dan berdasarkan kecerdasan buatan (Wiyanti amp Pulungan 2012) Analisa time series sendiri memiliki beberapa peruntukan salah satunya digunakan dalam melakukan peramalan untuk masa yang akan datang Dalam penggunaan data time series merupakan salah satu proses peramalan kuantitatif dimana berdasar data kuantitatif masa lampau yang direpresentasikan dalam bentuk angka atau nilai (Mirawati et al 2013)
10
224 Logika Fuzzy
Pada tahun 1965 Prof Lotfi A Zadeh memperkenalkan teori logika fuzzy Logika fuzzy merupakan suatu komponen soft computing dan juga suatu cara yang tepat untuk memetakan suatu ruang input ke dalam ruang output Antara ruang input dan ruang output terdapat black box yang berfungsi memetakan input ke ruang output yang sesuai Dasar logika fuzzy adalah teori fuzzy set Pada teori fuzzy set peranan derajat keanggotaan sebagai penentu keberadaan elemen dalam suatu himpunan sangatlah penting Oleh karena itu derajat keanggotaan menjadi ciri utama dalam penalaran dengan logika fuzzy Logika fuzzy bekerja dengan menggunakan derajat keanggotan dari sebuah nilai yang kemudian digunakan untuk menentukan hasil yang ingin dihasilkan berdasarkan atas kriteria yang telah ditentukan (Kusumadewi 2003)
Berikut adalah beberapa alasan digunakannya logika fuzzy (Kusumadewi 2002)
1 Logika fuzzy sangat fleksibel
2 Konsep logika fuzzy mudah dimengerti dan dipahami
3 Logika fuzzy memiliki toleransi terhadap data ndash data yang homogen dan data ndash data yang kurang tepat
4 Logika fuzzy didasari pada bahasa alami atau bahasa sehari - hari sehingga mudah dimengerti
5 Logika fuzzy dapat bekerjasama dengan teknik ndash teknik kendali secara konvensional
6 Logika fuzzy mampu membangun dan mengaplikasikan pengalaman ndash pengalaman para pakar secara langsung tanpa harus melalui tahap atau proses pelatihan
A Himpunan Fuzzy
Himpunan fuzzy atau fuzzy set merupakan perluasan himpunan tegas atau himpunan crisp jadi fungsi karakteristik mencakup bilangan real pada interval [01] Dalam definisi lain himpunan fuzzy adalah suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dalam suatu variabel fuzzy Keanggotaan fuzzy berbeda dengan probabilitas jika keanggotaan fuzzy pada setiap fungsi karakteristik memberikan suatu pendapat atau keputusan sedangkan probabilitas menunjukan seberapa besar nilai kebenaran dalam fungsi karakteristik tersebut Contohnya yaitu nilai keanggotaan suatu himpunan fuzzy umur muda 09 berarti nilai dalam himpunan tersebut memiliki kemungkinan 90 anggotanya berumur muda dan 10 diharapkan tidak muda Dalam himpunan fuzzy suatu bilangan bisa memiliki dua keanggotaan sekaligus Himpunan fuzzy memiliki dua attribut (Kusumadewi2003)
11
1 Linguistik merupakan penamaan suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami misalnya muda parobaya tua
2 Numeris merupakan suatu nilai (angka) yang menunjukkan ukuran dari suatu
variabel seperti 402550 dan sebagainya
B Fungsi Keanggotaan
Fungsi keanggotaan adalah suatu kurva yang menunjukkan pemetaan titik ndash titik input data ke dalam derajat keanggotaannya yang memiliki subinterval antara 0 sampai 1 (Kusumadewi Purnomo 2004) Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi Ada beberapa fungsi keanggotaa yang dapat digunakan
1 Fungsi representasi linear
Pada fungsi representasi linear pemetaan input ke derajat keanggotaannya digambarkan sebagai suatu garis lurus Bentuk ini paling sederhana dan menjadi pilihan yang baik untuk mendekati suatu konsep yang kurang jelas Keadaan linear himpunan fuzzy terdiri dari dua keadaan yaitu keadaan linear naik dan keadaan linear turun Pada keadaan linear naik kenaikan himpunan dimulai pada nilai domain yang memiliki nilai derajat keanggotaan nol bergerak ke kanan menuju ke nilai domain yang memiliki derajat keanggotaan yang lebih tinggi seperti yang ditunjukkan Gambar 21 Persamaan fungsi keanggotaan pada representasi linear naik ditunjukkan oleh Persamaan 21
Fungsi Keanggotaan
120583(119909) = 0
(119909 minus 119886)(119887 minus 119886)1
119909 le 119886 119886 le 119909 le 119887119909 ge 119887
(21)
b a 0
1
Gambar 21 Representasi linear naik
Sumber Kusumadewi (2002)
120583(119909)
12
Pada keadaan linear turun berbanding terbalik dengan keadaan linear naik Garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi pada sisi kiri kemudian bergerak menurun ke nilai domain yang memiliki derajat keanggotaan lebih rendah yang ditunjukkan Gambar 22 Persamaan fungsi keanggotaan pada representasi linear turun ditunjukkan oleh Persamaan 22
Fungsi Keanggotaan
120583(119909) = (119887 minus 119909)(119887 minus 119886)0
119886 le 119909 le 119887
119909 ge 119887 (22)
2 Fungsi representasi kurva segitiga
Representasi kurva segitiga pada dasarnya merupakan gabungan antara 2 garis linear yaitu linear naik dan linear turun Fungsi representasi kurva segitiga ditandai oleh adanya tiga parameter abc yang akan menentukan koordinat x dari tiga sudut seperti ditunjukkan pada Gambar 23 Persamaan fungsi keanggotaan pada representasi kurva segitiga ditunjukkan oleh Persamaan 23
b a 0
1
Sumber Kusumadewi (2002)
Gambar 22 Representasi linear turun
120583(119909)
c a 0
1
b
Sumber Kusumadewi (2002)
Gambar 23 Representasi kurva segitiga
120583(119909)
13
Fungsi Keanggotaan
120583(119909) =
0 (119909 minus 119886)(119887 minus 119886) (119887 minus 119909)(119888 minus 119887)
119909 le 119886 119886119905119886119906 119909 ge 119888
119886 le 119909 le 119887 119887 le 119909 le 119888
(23)
225 Metode Fuzzy C-means
Fuzzy C-means (FCM) pertama kali diperkenalkan oleh Dunn dan dikembangkan oleh Bezdek yang banyak digunakan dalam pengenalan pola Metode ini merupakan pengembangan dari metode non-hierarkhi K-Means Cluster selanjutnya dilakukan iterasi sampai mendapatkan keanggotaan kelompok tersebut (Klawon 2001)
FCM merupakan salah satu algoritma fuzzy clustering dan juga teknik klasterisasi dimana tiap data ditentukan oleh derajat keanggotaanya Tujuan penggunaan algoritma FCM yaitu untuk menemukan pusat cluster atau centroid dengan meminimumkan fungsi objektif (Bazdek 1984) Ouput dari FCM bukan merupakan fuzzy inference system melainkan deretan pusat cluster dan beberapa derajat keanggotaan untuk setiap titik data Hasil output ini dapat digunakan untuk membangun suatu fuzzy inference system Berikut adalah langkah ndash langkah dari FCM (Kusumadewi 2004)
1 Langkah pertama menentukan jumlah cluster (c ge 2) pembobot (infin gt 119908 gt1) (Bazdek 1984) maksimum iterasi (maxIter) error minimum yang diharapkan yaitu nilai positif yang sangat kecil (120585) fungsi objektif awal (P0 = 0) iterasi awal dideklarasikan 1
2 Langkah kedua memasukkan data X yang akan diklasterisasi berupa matriks berukuran m x n (m = jumlah sampel data n = attribut setiap data) Contoh Xij = data sampel ke-i (i = 1234m) attribu ke-j (j=1234n)
3 Langkah ketiga yaitu dengan membuat bilangan random microik i = 1234n dan k = 123c (n = jumlah sampel pada data c = jumlah cluster yang akan dibentuk) sebagai elemen ndash elemen matriks partisi awal Untuk bilangan penyusun matriks partisi awal dihitung dihitung jumlahnya setiap kolom yang ditunjukkan pada pada Persamaan 24 (Kusumadewi 2004)
119876119896 = sum 120583119894119896119888119896=1 (24)
Dimana
119876119896 = jumlah bilangan pada kolom k
120583119894119896 = bilangan random pada baris i kolom k
119888 = jumlah kolom
14
Selanjutnya untuk menghitung derajat keanggotaan awal dengan melakukan normalisasi pada matiks partisi pada normalisasi dilakukan menggunakan Persamaan 25 (Kusumadewi 2004)
120583119894119896 = 120583119894119896119876119896 (25)
4 Langkah keempat melakukan perhitungan cluster ke-k Vkj dengan k = 1234c dan j = 1234m Perhitungan pusat cluster ditunjukkan pada Persamaan 26 (Kusumadewi 2004)
119881119896119895 = sum ((120583119894119896)119908 times 119883119894119895)119899
119894=1
sum (120583119894119896)119908119899119894=1
(26)
Dimana
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
120583119894119896 = derajat keanggotaan pada data ke-i cluster ke-k
119883119894119895 = data sampel pada data ke-i attribut ke-j
119908 = pembobot
5 Langkah kelima melakukan perhitungan fungsi objektif pada iterasi ke-t P1 Perhitungan fungsi objektif ditunjukkan pada Persamaan 27 (Kusumadewi 2004)
119875119905 = sum sum ([sum (119883119894119895 minus 119881119896119895)119898119895=1
2](120583119894119896)119908)119888
119896=1119899119894=1 (27)
Dimana
119875119905 = fungsi objektif
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
6 Langkah keenam melakukan perhitungan perbaikan matriks partisi yang telah ditunjukkan Persamaan 28 (Kusumadewi 2004)
120583119894119896 = [sum (119883119894119895minus119881119896119895)119898
119895=12
]
minus1119908minus1
sum [sum (119883119894119895minus119881119896119895)119898119895=1
2]
minus1119908minus1119888
119896minus1
(28)
Dimana
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
119908 = pembobot
7 Langkah ketujuh yaitu melakukan pemerikasaan kondisi berhenti dengan kondisi sebagai berikut
a Jika (|119875119905 minus 119875119905minus1| lt 120585) atau ( t gt MaxIter) maka berhenti
b Jika tidak memenuhi t = t +1 ulangi mulai dari langkah ke-4
15
226 Metode Peramalan dengan Fuzzy Time Series
Pada tahun 1996 Chen memperkenalkan metode peramalan dengan menggunakan metode Fuzzy Time Series Metode Fuzzy Time Series memiliki perbedaan dengan metode peramalan time series biasa atau konvensional yaitu terdapat pada data yang digunakan untuk peramalan Fuzzy Time Series data yang digunakan adalah berupa fuzzy set atau himpunan fuzzy dari bilangan ndash bilangan real atas himpunan semesta yang ditentukan Jadi Fuzzy Time Series merupakan metode dengan menggunakan data berupa fuzzy set yang berasal dari bilangan real atas Universe of Discorse pada data aktual Universe of Discourse adalah himpunan semesta dari data penelitian
Berikut adalah langkah ndash langkah metode Fuzzy Time Series yang telah diperkenalkan oleh Chen terdapat enam langkah yaitu
1 Langkah pertama yaitu membagi Universe of Discourse dari bilangan aktual ke dalam subinterval dengan jumlah interval yang sama Perhitungan Universe of Discourse ditunjukkan pada Persamaan 29 (Chen 1996)
119880 = [119863119898119894119899 minus 1198631 119863119898119886119909 + 1198632] (29)
Dimana
119880 = Universe of Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
1198631 dan 1198632 = bilangan positif yang ditentukan oleh user untuk menentukan Universe of Discourse dari himpunan data sampel
2 Langkah kedua adalah mendefinisikan fuzzy set dari Universe of Discourse (U) menjadikan A1 A2 A3 An ke dalam fuzzy set dengan nilai linguistik sesuai dengan keadaan U Selanjutnya mendefinisikan fuzzy set tersebut ditunjukkan pada Persamaan 210 (Chen 1996)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (210)
1198602 =11989121
1199061+
11989122
1199062+
11989123
1199063+ ⋯ +
1198912119896
119906119896
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
Dimana 119891119894119895120598 [01] 1 le 119894 le 119896 dan 1 le 119895 le 119898 Variabel 119891119894119895 menunjukkan
derajat keanggotaan dari subinterval 119906119895 dari fuzzy set 1198601 Pada konsep ini
Chen menggunakan nilai linguistik 1198601 = (not many) 1198602 = (not too many) 1198603= (many) 1198604 = (many many) 1198605 = (very many) 1198606 = (too many) 1198607= (too many many) Kemudian nilai linguistik tersebut dimasukkan ke tiap fuzzy set Dari U tersebut dapat dibangun fuzzy set sebagai berikut
16
1198601 = 1
1199061+
05
1199062+
0
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198602 = 05
1199061+
1
1199062+
05
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198603 = 0
1199061+
05
1199062+
1
1199063+
05
1199064+
0
1199065+
0
1199066+
0
1199067
1198604 = 0
1199061+
0
1199062+
05
1199063+
1
1199064+
05
1199065+
0
1199066+
0
1199067
1198605 = 0
1199061+
0
1199062+
0
1199063+
05
1199064+
1
1199065+
05
1199066+
0
1199067
1198606 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
05
1199065+
1
1199066+
05
1199067
1198607 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
0
1199065+
05
1199066+
1
1199067
3 Langkah ketiga yaitu melakukan fuzzifikasi data historis proses fuzzifikasi merupakan proses merubah data aktual yang merupakan bilangan crisp ke dalam bentuk bilangan fuzzy Bilangan fuzzy yang dimaksudkan adalah dalam bentuk derajat keanggotaan Dari beberapa derajat keanggotaan yang terbentuk kemudian dipilih satu fuzzy set yang memiliki derajat keanggotaan teringgi Fuzzifikasi dinotasikan sebagai berikut jika F(t-1) berada pada fuzzy set Ak maka F(t-1) difuzzifikasikan sebagai Ak
4 Langkah keempat adalah mengidentifikasi Fuzzy Logic Relationship (FLR) FLR diidentifikasikan sebagai Ai dan F(t) difuzzifikasikan sebagai Ai rarr Aj Ai sebagai sisi kiri relationship disebut sebagai current state dan Aj sebagai sisi kanan relationship disebut next state Jika terjadi perulangan relationship maka tetap dihitung satu kali
5 Langkah kelima yaitu mengelompokkan menjadi Fuzzy Logical Relationship Group (FLRG) FLRG dibangun berdasarkan sisi kiri (current state) yang sama
6 Langkah terakhir yaitu langkah keenam adalah melakukan defuzzifikasi nilai keluaran peramalan Defuzzifikasi adalah mengubah nilai keluaran fuzzy menjadi bilangan crisp kembali sehingga diperoleh hasil akhir peramalan Defuzzifikasi didasarkan pada tiga (3) rule aturan yaitu (Chen 1996)
I Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai hanya memiliki satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj dimana nilai maksimum fungsi keanggotaanya berada pada 119906119895 maka nilai peramalan untuk n+1 adalah
nilai tengah dari 119906119895 atau didefinisikan dengan 119898119895
II Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai memiliki lebih dari satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj1 Aj2 Ajp Dimana nilai tengah untuk masing ndash masing Aj1 Aj2 Aj3 Ajp adalah mj1 mj2 mj3 mjp
maka nilai peramalan untuk n+1 adalah (mj1 mj2 mj3 mjp) p
III Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai tidak memiliki FLR pada FLRG dimana nilai maksimum fungsi keanggotaannya berada pada 119906119895
17
maka nilai peramalan untuk n+1 adalah nilai tengah dari 119906119895 atau
didefinisikan dengan 119898119895
227 Metode High Order Fuzzy Time Series Multi Factors
Metode High Order Fuzzy Time Series Multi Factors adalah metode Fuzzy Time Series (FTS) yang melibatkan beberapa faktor yang mempengaruhi peramalan dengan berdasarkan beberapa periode waktu sebelum periode yang akan diramalkan dalam proses pembentukkan Fuzzy Logical Relationship (FLR) Hasil peramalan dengan banyak faktor yang mempengaruhi dinilai lebih baik dari pada dengan hanya satu faktor yang mempengaruhi (LinYang 2009) Pada metode ini pembentukkan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan teknik klasterisasi fuzzy C-means Berikut adalah langkah ndash langkah Metode High Order Fuzzy Time Series Multi Factors (LinYang 2009)
1 Langkah pertama adalah melakukan perhitungan Universe of Discourse (U) Sebelum menghitung nilai U terlebih dulu menghitung nilai mean (rata ndash rata) sampel lalu menghitung nilai standar deviasi (120590) Mean merupakan perhitungan jumlah dari semua nilai dalam kumpulan data kemudian dibagi dengan jumlah total data untuk menghitung nilai mean ditunjukkan pada Persamaan 211 (Weisstein 2015) Standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel untuk menghitung nilai standar deviasi (120590) ditunjukkan pada Persamaan 212 (Weisstein 2015) Perhitungan U ditunjukkan pada Persamaan 213 (LinYang 2009)
119909 =sum 119909119894
119899119894=1
119899 (211)
Dimana
= mean (rata ndash rata)
119909119894 = nilai data ke-i
119899 = banyak data
120590 = radicsum (119909119894minus ) 2119899
119894=1
119899minus1 (212)
Dimana
120590 = Standar deviasi data
119880 = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590] (213)
Dimana
119880 = Universal 0f Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
18
2 Langkah kedua yaitu menentukan jumlah cluster data Proses klasterisasi bertujuan untuk membagi U kedalam beberapa subinterval Hasil perhitungan banyaknya cluster apabila bernilai pecahan maka harus dibulatkan menjadi bilangan bulat Perhitungan banyaknya cluster ditunjukkan pada Persamaan 214 (LinYang 2009)
119896 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905)minus119883(119905minus1)|119899
119905=1
119899minus1| (214)
Dimana
119896 = banyaknya jumlah cluster
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
119899 = banyaknya data sampel
119883(119905) = data pada waktu ke-t
3 Langkah ketiga yaitu melakukan pembentukan pusat cluster Pada metode ini proses klasterisasi data menggunakan fuzzy C-means (FCM) untuk mendapatkan pusat cluster sebanyak k Tahapannya U dibagi kedalam k subinterval (119863119898119894119899 1198891) (1198891 1198892) (1198892 1198893) hellip (119889119896minus1 119863119898119886119909) dimana di (i = 123k-1) merupakan titik tengah antara dua pusat cluster k subinterval didefinisikan sebagai 1199061 1199062 1199063 hellip 119906119896 Sehingga dalam hal ini subinterval
dengan panjang berbeda dapat menggambarkan struktur data kompleks dengan baik dan dapat meningkatkan peramalan dibandingkan menggunakan subinterval dengan panjang yang sama (LinYang 2009)
4 Langkah keempat yaitu melakukan pembentukan himpunan fuzzy atau fuzzy set Pada langkah ini fuzzy set direpresentasikan dengan kurva bahu Pembentukkan fuzy set ditunjukkan pada Persamaan 215 (LinYang 2009)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (215)
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
5 Langkah kelima yaitu proses fuzzifikasi Proses fuzzifikasi bertujuan untuk mengubah data sampel yang masih berupa bilangan crisp sehingga menjadi bilangan fuzzy Masing ndash masing data dihitung derajat keanggotaannya terhadap fuzzy set yang sudah terbentuk selajutnya derajat kanggotaan dihitung berdasarkan kurva bahu dan derajat keanggotaan tertinggi menunjukkan hasil fuzzifikasi data tersebut Contohnya A(t) B(t) C(t) dan D(t) dimana t= 123n merupakan time series dari faktor yang mempengaruhi serta n merupakan banyaknya data Berdasarkan pembagian subinterval masing ndash masing time series ini difuzzifikasikan Misalkan hasil dari Persamaan 215 yaitu menghitung banyak cluster dari k1 k2 k3 k4 Jadi time series difuzzifikasikan menjadi empat fuzzy time series yaitu
19
A(ti) dimana i = 1234k1
B(tj) dimana j = 1234k2
C(tp) dimana p = 1234k3
D(tq) dimana q = 1234k4 t = 123n
6 Langkah keenam yaitu melakukan pembentukkan Fuzzy Logical relationship (FLR) Data sampel sebanyak n periode dipilih sebagai data training untuk membentuk fuzzy time series model Misalkan t merupakan periode waktu yang akan diramal dengan menggunakan order ndash 3 maka tiga periode sebelum periode t adalah t-3 t-2 dan t-1 dimana t = 456n Maka FLR yang dihasilkan ditunjukkan pada Persamaan 216 dan berdasarkan persamaan tersebut maka akan membentuk sebuah kumpulan FLR dari data training (LinYang 2009)
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023)) (216)
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
Tabel 22 Fuzzy Logic Relationship
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023))
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
(119860(119905minus21198943) 119861(119905minus21198953) 119862(119905minus21199013) 119863(119905minus21199023))
(119860(119905minus11198942) 119861(119905minus11198952) 119862(119905minus11199012) 119863(119905minus21199022))
(119860(1199051198941) 119861(1199051198951) 119862(1199051199011) 119863(1199051199021)) rarr 119860(119905+11198944)
(119860(119905+119899minus71198943) 119861(119905+119899minus71198953) 119862(119905+119899minus71199013) 119863(119905+119899minus71199023))
(119860(119905+119899minus61198942) 119861(119905+119899minus61198952) 119862(119905+119899minus61199012) 119863(119905+119899minus61199022))
(119860(119905+119899minus51198941) 119861(119905+119899minus51198951) 119862(119905+119899minus51199011) 119863(119905+119899minus51199021)) rarr 119860(119905+119899minus41198944)
Sumber (LinYang 2009)
7 Langkah terakhir adalah proses Defuzzifikasi Berdasarkan langkah sebelumnya maka dapat diambil hasil fuzzy ke- H yaitu yang digunakan sebagai data testing atau data uji seperti yang ditunjukkan pada Persamaan 217 (LinYang 2009)
(119860(119867minus31198943) 119861(119867minus31198953) 119862(119867minus31199013) 119863(119867minus31199023)) (217)
(119860(119867minus21198942) 119861(119867minus21198952) 119862(119867minus21199012) 119863(119867minus21199022))
(119860(119867minus11198941) 119861(119867minus11198951) 119862(119867minus11199011) 119863(119867minus11199021)) rarr 119860(1198671198944)
20
Faktor ndash faktor di ruas kiri pada Persaman 217 dibandingkan satu per satu dengan FLR data training yang sudah dicatat sebelumnya pada Tabel 22 membandingkannya yaitu dengan cara menghitung nilai absolut dari selisih antara pangkat bawah kedua faktor pada posisi yang sama di FLR Terdapat 12 fuzzy set di ruas kiri pada masing ndash masing FLR sehingga dari hasil perbandingan diperoleh 12 nilai absolut yang kemudian dijumlahkan untuk mendapat total selisihnya Jadi jika total selisih lebih kecil dari threshold yang ditentukan maka FLR tersebut dinyatakan cocok (LinYang 2009)
Selanjutnya jika FLR menemukan N pasangan yang cocok pada Tabel 22 maka N faktor di ruas kanan dari N FLR ini mendasari peramalan fuzzy set A() yang mana jumlah dari setiap fuzzy set pada umumnya berbeda Untuk peramalan dengan fuzzy set ditunjukkan pada Tabel 23 (LinYang 2009)
Tabel 23 Peramalan fuzzy set
Ruas Kanan A(1) A(2) A(3) A(k1)
Pusat cluster c1 c2 c3 ck1
Frekuensi f1 f2 f3 fk1
Sumber (Lin Yang 2009)
Berdasarkan Tabel 23 dengan menggunakan metode centroid untuk melakukan proses defuzzifikasi Proses defuzzifikasi dapat ditunjukkan pada Persamaan 218 (LinYang 2009)
119903119867 =sum 119888119894times 119891119894
1198961119894=1
sum 119891119894119896119894119894=1
(218)
Dimana
119903119867 = hasil (result) peramalan data ke-H
119888119894 = pusat cluster i dimana A(i) adalah ruas kanan dari FLR hasil proses pencocokan
119891119894 = frekuensi banyaknya muncul A(i) pada saat proses pencocokan
228 Perhitungan keakuratan metode peramalan
Dalam perencanaan peramalan tentu menginginkan hasil ramalan yang tepat atau paling tidak hampir mendekati sehingga rencana yang dibuat menjadi rencana yang realistis Keakuratan atau ketepatan merupakan yang menjadi kriteria performance suatu metode peramalan Keakuratan tersebut dapat dinyatakan sebagai kesalahan peramalan (forecast error) Semaikin kecil nilai kesalahan peramalan maka semaikin tinggi keakuratan metode peramalan yang digunakan dan sebaliknya semakin tinggi nilai kesalahan maka semakin rendah keakuratan metode peramalan yang digunakan
Mean Square Error (MSE) adalah salah satu metode yang digunakan untuk menghitung nilai akurasi atau keakuratan dari metode yang digunakan sebagai peramalan atau prediksi MSE merupakan perhitungan pangkat dua dari selisih
21
antara nilai data hasil peramalan dengan nilai data aktual dan kemudian dibagi dengan banyaknya data yang telah diramalkan Pada penentuan nilai evaluasi memilih menggunakan metode MSE karena metode ini dapat menunjukan hasil skala kemiripan antara hasil data peramalan dengan data aktual Berikut merupakan metode Mean Square Error (MSE) yang ditunjukan pada Persamaan 219 (Wang Chen 2009)
119872119878119864 = sum (119865119905minus119860119905)2119899
119894=1
119899 (219)
Dimana 119872119878119864 = nilai Mean Square Error Rate 119860119905 = nilai aktual pada data ke-t 119865119905 = nilai hasil peramalan untuk data ke-t n = banyaknya data
22
BAB 3 METODOLOGI
Pada bab ini akan dibahas mengenai metode yang digunakan beserta tahap ndash tahap pengerjaan penelitian skripsi dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Penilitian ini digolongkan sebagai penelitian implementatif dengan pendekatan perancangan (design)
Metode penelitian ini meliputi studi literatur pengumpulan data perancangan implementasi pengujian dan analisis pengambilan kesimpulan Berikut adalah alur dari metode penelitian dapat ditunjukkan pada Gambar 31
31 Studi Literatur
Pada tahap studi literatur penelitian ini bertujuan untuk mempelajari literatur dan konsep dari beberapa informasi dan pustaka yang berkaitan dengan penelitian ini Literatur dan sumber ilmu dari penelitian ini diperoleh dari internet buku dan bimbingan oleh dosen pembimbing Adapun literatur yang dipelajari yaitu tentang curah hujan serta faktor ndash faktor yang mempengaruhinya dan metode High Order Fuzzy Time Series Multi Factors
Studi Literatur
Pengumpulan Data
Perancangan
Implementasi
Pengujian dan Analisis
Kesimpulan dan Saran
Gambar 31 Diagram blok metodologi penelitian
23
32 Pengumpulan Data
Pada tahap pengumpulan penelitian ini sumber data yang diperoleh yaitu dari Badan Meteorologi Klimatologi dan Geofisikia (BMKG) Stasiun Klimatologi Kelas III Karangkates Kabupaten Malang Data yang diperoleh untuk peramalan curah hujan yaitu data aktual time series (2011 - 2016) Data yang digunakan dalam bentuk dasarian yaitu dalam rentang waktu sepuluh hari sehingga dalam satu bulan dibagi menjadi tiga dasarian
Dasarian pertama yaitu pada tanggal 1 sampai dengan 10
Dasarian kedua yaitu pada tanggal 11 sampai dengan 20
Dasarian ketiga yaitu pada tanggal 21 sampai dengan akhir bulan
Pada penelitian ini data curah hujan dalam satuan milimeter (mm) kelembaban dalam persen () suhu udara dalam satuan celsius (˚C) kecepatan angin dalam satuan kilometer per jam (kmjam)
33 Perancangan
Pada tahap perancangan penelitian ini bertujuan untuk mengetahui rancangan ndash rancangan yang merupakan langkah yang dilakukan saat melakukan tahap implementasi Pada tahap ini terdapat beberapa perancangan yaitu perancangan proses yang berisi tahapan ndash tahapan proses metode High Order Fuzzy Time Series Multi Factors perhitungan manual yang merupakan manualisasi dari metode yang digunakan pada penelitian ini perancangan antar muka atau user interface yang berisi gambaran kasar dari tampilan antar muka prototype aplikasi yang nantinya diterapkan pada tahap implementasi selanjutnya adalah perancangan pengujian yang berisi rancangan ndash rancangan pengujian metode yang digunakan untuk mengetahui berapa tingkat kesalahan atau error yang dimiliki metode pada penelitian ini dalam melakukan peramalan curah hujan
34 Implementasi
Pada tahap implementasi peneltian ini dilakukan sesuai dengan perancangan yang telah dibuat pada tahapan perancangan sebelumnya Implementasi dari metode High Order Fuzzy Time Series Multi Factors dilakukan menggunakan bahasa pemrograman java serta Integrated Development Environment (IDE) yang digunakan adalah Netbeans Sehingga nantinya hasil dari tahap ini berupa prototype aplikasi dari implementasi metode High Order Fuzzy Time Series Multi Factors untuk peramalan curah hujan
35 Pengujian dan Analisis
Pada tahapan penelitian pengujian ini diperlukan perangkat lunak dan perangkat keras agar pengujian dari hasil implementasi dapat berjalan dengan baik maka pengujian perangkat lunak dijalankan pada laptop ataupun PC (Personal Computer) dengan spesifikasi sebagai berikut
24
1 Prosesor Intel Core i3
2 Memory RAM 8 Gigabytes
3 Sistem Operasi menggunakan Windows 7 64bit
4 Hardisk dengan kapasitas 500 GB
5 Netbeans 81 JDK 7
Pengujian hasil peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors yaitu menggunakan metode Mean Square Error (MSE) Dimana rumus pengujian sesuai dengan Persamaan 219 Dalam pengujian menggunakan metode ini semakin kecil nilai MSE maka semakin tinggi tingkat akurasi hasil peramalan tersebut Pada penelitian ini untuk keperluan pengujian dari proses implementasi dilakukan empat pengujian yaitu pengujian terhadap perbedaan nilai order pengujian terhadap perbedaan nilai threshold pengujian terhadap data training untuk mengetahui pengaruhnya terhadap nilai MSE dan pengujian validasi sistem untuk mengetahui bahwa hasil implementasi metode High Order Fuzzy Time Series Multi Factors dapat melakukan peramalan
36 Kesimpulan dan Saran
Pada pengambilan kesimpulan akan dilakukan apabila semua tahapan ndash tahapan penelitian sudah dilakukan yaitu yang meliputi perancangan implementasi dan pengujian dan analisis telah selesai dilakukan Kesimpulan merupakan tahapan dimana semua rumusan masalah yang sudah ditetapkan sebelumnya dapat terjawab semua Selanjutnya pada saran merupakan berkenaan dengan hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
25
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan yang nantinya digunakan sebagai dasar dalam tahap implementasi Hal yang dibahas meliputi perancangan proses perhitungan manual perancangan pengujian dan perancangan antar muka
41 Perancangan Proses
Pada perancangan proses ini berisi mengenai tahapan ndash tahapan dari metode yang digunakan yaitu metode High Order Fuzzy Time Series Multi Factors Pada penelitian ini melibatkan faktor ndash faktor yang mempengaruhi curah hujan yaitu suhu udara kelembaban udara dan kecepatan angin Data time series dari curah hujan merupakan faktor utama dalam proses peramalan pada penelitian ini Inputan pada peneltian ini yaitu data time series curah hujan serta faktor ndash faktor yang mempengaruhinya Order yang digunakan pada metode ini merupakan order lebih dari satu oleh karena itu disebut dengan High Order Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Berikut merupakan diagram alir dari proses peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors yang ditunjukkan pada Gambar 41 dan Gambar 42
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1)
Mulai
Data curah hujan suhu kelembaban kecepatan angin jmlh_Banyakdata jmlh_Faktor
Universe_of_Discourse
A
Jumlah_Cluster
26
411 Proses perhitungan Universe of Discourse
Pada perhitungan Universe of Discourse harus sudah dilakukan inputan data agar dapat memulai tahapan perhitungan Tahapan dari proses perhitungannya yaitu pada langkah pertama dilakukan perhitungan nilai mean (rata ndash rata) sesuai dengan Persamaan 211 Setelah mendapatkan nilai mean dapat dilakukan perhitungan untuk mencari nilai standar deviasi sesuai dengan Persamaan 212 Selanjutnya dicari nilai terkecil (119863119898119894119899) dan nilai terbesar (119863119898119886119909) Setelah menyelesaikan tahap ndash tahap tersebut dapat dilakukan perhitungan untuk
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2)
A
Perhitungan Pusat Cluster
Fuzzifikasi
Pembentukan Fuzzy Logical Relationship
Defuzzifikasi
Nilai hasil peramalan
Berhenti
Pembentukan Subinterval dan Fuzzy set
27
mencari Universe of Discourse sesuai dengan Persamaan 213 Berikut merupakan diagram alir dari proses perhitungan Universe of Discourse yang ditunjukkan pada Gambar 43
Perhitungan Universe of Discourse
Mulai
Min_dan_Max
mean
standar_deviasi
for i = 0 to jmlh_Faktor-1
i
hsl_uMin ke i = hsl_min ke i ndash hsl_stdev ke i
hsl_uMax ke i = hsl_max ke i + hsl_stdev ke i
hsl_uMin hsl_uMax
Berhenti
Gambar 43 Diagram alir proses perhitungan Universe of Discourse
28
4111 Proses perhitungan Mean
Pada proses perhitungan mean merupakan nilai rata ndash rata dari setiap faktor dimana nilai mean ini nantinya dibutuhkan untuk melakukan proses perhitungan standar deviasi Berikut merupakan diagram alir dari proses perhitungan mean yang ditunjukkan pada Gambar 44
mean
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
tmp_jmlh = 0
tmp_jmlh = tmp_jmlh + data ke ij
j
hsl_mean ke i = tmp_jmlhjmlh_DataTraining
i
hsl_mean
Berhenti
Gambar 44 Diagram alir proses perhitungan mean
29
4112 Proses perhitungan standar deviasi
Pada proses perhitungan standar deviasi dapat dilakukan setelah mendapatkan nilai mean dari setiap data sesuai proses sebelumnya Berikut merupakan diagram alir dari proses perhitungan standar deviasi yang ditunjukkan pada Gambar 45
standar_deviasi
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
result = 0
result = result + (data ke ij ndash mean ke i)2
j
hsl_stdev ke i = radicresult
jmlh_DataTrainingminus1
i
hsl_stdev
Berhenti
Gambar 45 Diagram alir proses perhitungan standar deviasi
30
4113 Proses perhitungan nilai Dmin dan Dmax
Pada proses perhitungan ini merupakan proses perhitungan untuk mencari nilai terkecil dan terbesar dari setiap faktor data Setelah mendapat nilai terkecil dan terbesar maka data dilakukan proses perhitungan Universe of Discourse Berikut merupakan diagran alir dari proses perhitungan nilai Dmin dan Dmax yang ditunjukkan pada Gambar 46
Gambar 46 Diagram alir perhitungan nilai Min dan Max
ya
ya
tidak
tidak
Min_dan_Max
Mulai
for i = 0 to jmlh_Faktor-1
besar = data ke i0
kecil = data ke i0
for j=0 to jmlh_DataTraining
data ke ij gt besar
besar = data ke ij
data ke ij lt kecil
kecil = data ke ij
j
hsl_max ke i = besar
hsl_min ke i = kecil
i
hsl_max hsl_min
Berhenti 1
1
2
2
3
4
4
5
5
3
31
412 Proses perhitungan jumlah cluster
Pada proses perhitungan jumlah cluster memiliki masukkan proses Dmin dan Dmax
dari proses perhitungan sebelumnya Pada proses ini terdapat perhitungan nilai dari selisih setiap data Pada perhitungan jumlah cluster sesuai dengan Persamaan 214 Berikut merupakan langkah ndash langkah perhitungan jumlah cluster yang ditunjukkan pada Gambar 47
jumlah_Cluster
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to (jmlh_DataTraining-1)
Berhenti
hsl_max hsl_min
selisih = 0
selisih = selisih + |data ke ij ndash data ke i (j+1)|
j
jmlh_Cluster ke i = |ℎ119904119897_119898119894119899 119896119890 119894minusℎ119904119897_119898119886119909 119896119890 119894|
119904119890119897119894119904119894ℎ
119895119898119897ℎ_119863119886119905119886119879119903119886119894119899119894119899119892minus1
i
jmlh_Cluster
Gambar 47 Diagram alir proses perhitungan jumlah cluster
32
413 Proses perhitungan pusat cluster
Pada proses perhitungan pusat cluster ini diperlukan beberapa variabel yang harus dideklarasikan terlebih dahulu yaitu nilai bobot fungsi objektif nilai iterasi awal nilai iterasi maksimum dan error terkecil Perhitungan subinterval ini menggunakan metode fuzzy C-means yang diawali dengan pencarian pusat cluster terlebih dahulu Berikut merupakan langkah ndash langkah perhitungan subinterval yang ditunjukkan pada Gambar 48 Gambar 49 Gambar 410 Gambar 411 Gambar 412
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1)
Perhitungan pusat cluster
Mulai
jmlh_Cluster
for i = 0 to jmlh_Faktor-1
Deklarasi bobot selisih_f_objektif
iter_maksimum error_min
Pembentukan Matriks partisi faktor A jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor A
for iter = iter to iter_maksimum
A
i == 0
Perhitungan pusat_cluster1 faktor A
B C D
tidak
ya
33
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2)
ya
tidak
tidak
ya
Perhitungan f_objektif faktor A
A B C D
Perhitungan selisih_f_objektif faktor A
Perbaikan matriks partisi faktor A
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster1 faktor A
Iter = iter_maksimum
iter
i == 1
Pembentukan Matriks partisi faktor B jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor B
for iter = iter to iter_maksimum
F A G E
34
tidak
tidak
ya
A E F G
Perhitungan pusat_cluster2 faktor B
Perhitungan f_objektif faktor B
Perhitungan selisih_f_objektif faktor B
Perbaikan matriks partisi faktor B
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster2 faktor B
Iter = iter_maksimum
iter
i == 2
Pembentukan Matriks partisi faktor C jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor C
I A H
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3)
ya
35
tidak
tidak
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4)
ya
A H I
for iter = iter to iter_maksimum
Perhitungan pusat_cluster3 faktor C
Perhitungan f_objektif faktor C
Perhitungan selisih_f_objektif faktor C
Perbaikan matriks partisi faktor C
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster3 faktor C
Iter = iter_maksimum
iter
i == 3
Pembentukan Matriks partisi faktor D jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor D
J A K
ya
36
tidak
ya
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5)
A K J
for iter = iter to iter_maksimum
Perhitungan pusat_cluster4 faktor D
Perhitungan f_objektif faktor D
Perhitungan selisih_f_objektif faktor D
Perbaikan matriks partisi faktor D
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster4 faktor D
Iter = iter_maksimum
iter
i
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
Berhenti
37
tidak
ya
tidak
ya
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1)
414 Proses pembentukan subinterval dan Fuzzy set
Pada proses pembentukan fuzzy set atau himpunan fuzzy pada penelitian ini dapat dilakukan setelah perhitungan subinterval selesai dilakukan Nilai subniterval merupakan masukan utama pada pembentukkan fuzzy set Pembentukan fuzzy sesuai dengan Persamaan 215 Berikut merupakan langkah ndash langkah proses pembentukan fuzzy set yang ditunjukkan pada Gambar 413 dan Gambar 414
Pembentukan subinteval dan Fuzzy set
Mulai
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
for i = 0 to jmlh_Faktor-1
Menentukan batas_subintervalMinA dan
batas_subintervalMaxA
Menentukan batas_fuzzysetMinA dan batas_fuzzysetMaxA
i == 0
i == 1
Menentukan batas_subintervalMinB dan
batas_subintervalMaxB
Menentukan batas_fuzzysetMinB dan batas_fuzzysetMaxB
A C B
38
tidak
tidak
ya
ya
415 Proses Fuzzifikasi
Pada proses fuzzifikasi ini pembentukanya sesuai derajat keanggotaan pada setiap data Pada proses ini derajat keanggotaan dihitung berdassarkan fungsi keanggotaan kurva bahu Hasil dari proses ini merupakan data yang sudah difuzzifikasikan menjadi data fuzzy Berikut langkah ndash langkah dari proses fuzzifikasi ditunjukkan pada Gambar 415 dan Gambar 416
i == 2
A B C
Menentukan batas_subintervalMinC dan batas_subintervalMaxC
Menentukan batas_fuzzysetMinC dan batas_fuzzysetMaxC
i == 3
Menentukan batas_subintervalMinD dan batas_subintervalMaxD
Menentukan batas_fuzzysetMinD dan batas_fuzzysetMaxD
i
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
Berhenti
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2)
39
tidak
ya
ya
tidak
Fuzzifikasi
Mulai
for i = 0 to jmlh_Faktor-1
Menentukan hasil_fuzzifikasiA dari faktor A
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinA batas_fuzzysetMaxA
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1)
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
DD
i == 0
i == 1
Menentukan hasil_fuzzifikasiB
dari faktor B
Menghitung derajat keanggotaan
berdasarkan batas_fuzzysetMinB
batas_fuzzysetMaxB
C A B
40
tidak
ya
ya
tidak
ya
i == 2
A B C
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinC batas_fuzzysetMaxC
Menentukan hasil_fuzzifikasiC dari faktor C
i == 3
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinD
batas_fuzzysetMaxD
Menentukan hasil_fuzzifikasiD dari faktor D
i
hasil_fuzzifikasiA hasil_fuzzifikasiB hasil_fuzzifikasiC hasil_fuzzifikasiD
Berhenti
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2)
41
tidak
ya
416 Proses pembentukan Fuzzy Logical Relationship
Setelah data melalui proses fuzzifikasi dan sudah menjadi data fuzzy maka dapat dilakukan pembentukan Fuzzy Logical Relationship (FLR) Pembentukan FLR dilakukan sesuai dengan Persamaan 216Berikut adalah langkah ndash langkah proses pembentukan Fuzzy Logical Relationship (FLR) yang ditunjukkan pada Gambar 417 Gambar 418 dan Gambar 419
Gambar 417 Diagram alir proses Pembentukan FLR
(bagian 1)
Pembentukan Fuzzy Logical Relationship
Mulai
hasil_fuzzifikasiAhasil_fuzzifikasiB hasil_fuzzifikasiChasil_fuzzifikasiD order
for i = 0 to jmlh_dataTraining
max_inc = order jmlh_dataTraining = dataTraining - order
for j = i to max_inc
for k = 0 to jmlh_Faktor-1
j == 0
FLR_kiri_training ke ijk = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D)
ke j
E A B C D
42
ya
tidak
ya
tidak
A B C E D
FLR_kiri_training ke i(j-i)k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
j = 0
k
j
FLR_kanan_training ke i = hasil_fuzzifikasiA ke (i+order)
Max_inc lt (jmlh_DataTraining-1)
i
tmp_JmlhDatatraining = tmp_JmlhDatatraining +1
max_inc = max_inc + 1 tmp_JmlhDatatraining = i
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2)
for j = 0 to tmp_JmlhDatatraining
for j = tmp_JmlhDatatraining to max_inc
for k = 0 to jmlh_Faktor-1
I H G F
43
tidak
ya
417 Proses Defuzzifikasi
Proses defuzzifikasi merupakan proses akhir dimana keluaran dari proses ini merupakan nilai hasil peramalan Data yang diperlukan pada proses defuzzifikasi adalah hasil dari proses pembentukan Fuzzy Logical Relationship (FLR) nilai threshold yang harus dideklarasikan sebelumnya jumlah data training dan jumlah data testing Dalam proses ini dilakukan perhitungan selisih pada FLR antara data testing dan data training FLR yang dihitung nilai selisihnya adalah FLR pangkat bawah yang terdapat pada ruas kiri Setelah dilakukan perhitungan selisih dan total jumlah selisih lebih kecil dari nilai threshold maka pada setiap FLR yang
I H G F
FLR_kiri_testing ke i(j-tmp_jmlhDatatraining) k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
k
j
FLR_kanan_testing ke i = hasil_fuzzifikasiA ke (i+order)
i
Max_inc lt (jmlh_DataTraining-1)
max_inc = max_inc + 1 tmp_JmlhDatatraining++
FLR_kiri_training FLR_kanan_training FLR_kiri_testing FLR_kanan_testing
Mulai
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3)
44
ya
tidak
sesuai dengan kondisi tersebut dapat dikatakan cocok atau dapat dilakukan ke tahap perhitungan selanjutnya Setelah mendapatkan FLR yang cocok maka dilakukan pengelompokkan berdasarkan FLR ruas kanan Pengelompokkan ini dihitung jumlah frekuensi yang sama sesuai dengan fuzzy set di ruas kanan Selanjutnya untuk memperoleh hasil peramalan dilakukan proses perhitungan sesuai dengan Persamaan 218 Berikut adalah langkah ndash langkah proses defuzzifikasi yang ditunjukkan pada Gambar 420 dan Gambar 421
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1)
Defuzzifikasi
Mulai
FLR_kiri FLR_kanan order dataTraining dataTesting konstanta
threshold = (jmlh_Faktor x order)+konstanta
for i = 0 to dataTesting
for j = 0 to (dataTraining-i)
Perhitungan hitung_selisih antara FLR_kiri data training dan data testing
hitung_selisih lt threshold
match ke ij = hitung_selisih
j
i
A
45
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2)
A
Menghitung jumlah total FLR_kiri yang cocok untuk setiap data testing
Mencocokan FLR_kiri yang cocok dengan FLR_kanan untuk setiap data testing
for i = 0 to dataTesting
Menghitung frekuensi setiap FLR_kanan yang cocok untuk setap data testing
for j = 0 to jumlah total FLR kiri yang cocok
peramalan = peramalan + Frekuensi setiap FLR_kanan yang cocok x pusat_cluster1
sesuai dengan value FLR_kanannya
j
hasil_peramlan ke i = peramalan jumlah total FLR kiri yang cocok
i
Hasil_permalan
Berhenti
46
42 Perhitungan Manual
Dalam perhitungan manual ini data sampel yang digunakan merupakan data time series dasarian ke-2 pada periode April 2014 sampai dengan dasarian ke-2 Juli 2014 data sampel ditunjukkan pada Tabel 41
Tabel 41 Data Sampel Perhitungan Manual
No Dasarian Curah Hujan
(A)
Suhu (B) Kelembaban (C)
Kecepatan Angin(D)
1 Dasarian 2 (April 2014) 95 2615 8248 629
2 Dasarian 3 (April 2014) 90 2612 8247 628
3 Dasarian 1 (Mei 2014) 94 2607 8247 627
4 Dasarian 2 (Mei 2014) 83 2625 8232 623
5 Dasarian 3 (Mei 2014) 85 2628 8235 623
6 Dasarian 1 (Juni 2014) 92 2609 8241 626
7 Dasarian 2 (Juni 2014) 86 2627 8235 624
8 Dasarian 3 (Juni 2014) 89 2621 8238 624
9 Dasarian 1 (Juli 2014) 93 2607 8242 626
10 Dasarian 2 (Juli 2014) 86 2626 8237 623
Sumber BMKG Kelas III Karangkates Malang
421 Perhitungan Universe of Discourse (U)
Sebelum melakukan perhitungan U maka harus dicari terlebih dahulu nilai 119863119898119894119899 119863119898119886119909 dan standar deviasi 119863119898119894119899 adalah nilai minimum atau nilai terkecil dari data sampel yang ada sedangkan 119863119898119886119909 adalah nilai maksimum atau nilai paling besar dari data sampel yang ada Untuk mencari nilai standar deviasi harus menghitung nilai mean (rata ndash rata) terlebih dahulu sesuai dengan Persamaan 211 Mean dari data curah hujan (A) dihitung dengan cara sebagai berikut
Mean = (data ke-1 + data ke-2 + data ke-3 + + data ke-10) 10
= (95 + 90 + 94 + 83 + 85 + 92 + 86 + 89 + 93 + 86) 10
= 893 10
= 893
Selanjutnya setelah diperoleh nilai mean dilanjutkan melakukan perhitungan standar deviasi sesuai dengan Persamaan 212 Standar deviasi adalah akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Untuk menghitung standar deviasi agar lebih mudah kita terlebih dahulu melakukan perhitungan nilai kuadrat dari selisih data ke-i dan mean yang ditunjukkan pada Tabel 42
47
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean
i Data ke-i Data ke-i mean (Data ke-i - mean)sup2
1 95 57 32490
2 90 07 0490
3 94 47 22090
4 83 -63 39690
5 85 -43 18490
6 92 27 7290
7 86 -33 10890
8 89 -03 0090
9 93 37 13690
10 86 -33 10890
Jumlah 1561
Setelah mendapatkan hasil nilai kuadrat dari selisih data ke-i dan mean sesuai dengan Tabel 42 maka dapat dilanjutkan melakukan perhitungan standar deviasi dengan cara sebagai berikut
Standar_deviasi = radic1
10minus1sum (119889119886119905119886 119896119890 minus 119894 minus 119898119890119886119899)10
119894=1
2
= radic1
9 times 1561
= 4165
Untuk perhitungan standar deviasi juga dilakukan pada faktor lainnya yaitu suhu (B) kelembaban (C) dan kecepatan angin (D) Hasil perhitungan 119863119898119894119899 119863119898119886119909 dan standar deviasi ditunjukkan pada Tabel 43
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi
Data D min D max Standar Deviasi
A 83 95 4165
B 2607 2628 0086
C 8232 8248 0057
D 623 629 0022
Berdasarkan hasil yang ditunjukkan Tabel 43 selanjutnya dapat dilakukan perhitungan nilai U sesuai dengan Persamaan 213 Berikut adalah perhitungan U pada data A
U = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590]
= [(83 ndash 4165) (95 ndash 4165)]
= [78835 99165]
48
Untuk perhitungan U juga dilakukan pada semua faktor yaitu data B C dan D Sehingga diperoleh nilai U yang ditunjukkan pada Tabel 44
Tabel 44 Hasil Universe of Discourse
Data U
Batas Bawah Batas Atas
A 78835 99165
B 25984 26366
C 82263 82537
D 6208 6312
422 Perhitungan jumlah cluster (k)
Pada perhitungan jumlah cluster langkah pertamanya adalah mencari nilai absolut dari selisih data hari ke-t dengan hari sebelumnya Perhitungan selisih dilakukan hingga data ke-10 Perhitungan nilai selisih dilakukan pada semua data A B C dan D Selanjutnya masing ndash masing nilai selisih dijumlah sehingga hasilnya seperti ditunjukkan pada Tabel 45
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya
No Tanggal A B C D
1 Dasarian 3 (April 2014) 5 003 001 001
2 Dasarian 1 (Mei 2014) 4 005 0 001
3 Dasarian 2 (Mei 2014) 11 018 015 004
4 Dasarian 3 (Mei 2014) 2 003 003 0
5 Dasarian 1 (Juni 2014) 7 019 006 003
6 Dasarian 2 (Juni 2014) 6 018 006 002
7 Dasarian 3 (Juni 2014) 3 006 003 0
8 Dasarian 1 (Juli 2014) 4 014 004 002
9 Dasarian 2 (Juli 2014) 7 019 005 003
Jumlah 49 105 043 016
Setelah mendapatkan nilai absolut selisih data hari ke-t dengan hari sebelumnya dapat dilanjutkan dengan menghitung jumlah cluster sesuai dengan Persamaan 214 Perhitungan jumlah cluster pada data A (k1) berdasarkan pada Tabel 43 diketahui nilai 119863119898119894119899 adalah 171 nilai 119863119898119886119909 adalah 2048 maka jumlah cluster data A dapat ditunjukkan sebagai berikut
49
1198961 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905) minus 119883(119905 minus 1)|119899
119905=1
119899 minus 1|
= |83 minus 9549
10minus1| = 2204
Apabila hasil perhitungan jumlah cluster merupakan bilangan pecahan maka hasilnya harus dibulatkan Sehingga jumlah cluster pada data A adalah 2 Perhitungan jumlah cluster juga dilakukan pada data B (k2) C (k3) dan D (k4) Berikut merupakan hasil semua perhitungan jumlah cluster yang ditunjukkan pada Tabel 46
Tabel 46 Hasil jumlah cluster data
No Cluster Jumlah Cluster
1 k1 2
2 k2 2
3 k3 3
4 k4 3
423 Perhitungan pusat cluster dan subinterval
Pada pembentukan subinterval berdasarkan pada Tabel 46 yang menunjukkan jumlah subinterval yang selanjutnya digunakan untuk menentukan pusat cluster menggunakan algoritma fuzzy C-means (FCM)
4231 Penentuan pusat cluster
a Penentuan nilai variabel
Pada penentuan subinterval diawali dengan klasterisasi menggunakan algoritma FCM pada awal proses ditentukkan beberapa variabel sebagai berikut
Banyak cluster = k1 = 2
Bobot (w) = 2
Fungsi objektif awal = 0
Iterasi awal = 1
Iterasi maksimum = 100
Error terkecil = 001 b Pembentukan matriks partisi awal (micro)
Data pada pembentukan matriks partisi awal merupakan nilai random diantara nilai 0 sampai 1 Dimensi pada matriks partisi awal dibentuk dengan dimensi jumlah data (i) x jumlah cluster (k) Dalam hal ini telah diketahui jumlah data adalah 10 dan k1 adalah 2 maka partisi dimensi matriks awal adalah 10 x 2 Hasil pembentukan matriks partisi awal ditunjukkan pada Tabel 47 dimana Cluster disimbolkan dengan C
50
Tabel 47 Matriks partisi awal pada cluster data A
c Normalisasi matriks partisi awal
Langkah pertama normalisasi matriks partisi awal adalah dengan menghitung jumlah bilangan penyusun matriks pada setiap kolom yang dapat dilihat pada Tabel 47 dijumlah berdasarkan dengan Persamaan 24 Diketahui jumlah kolom matriks sebanyak 2 sehingga diperoleh Q1 untuk penjumlahan kolom c1 Q2 untuk penjumlahan kolom c2
Q1 = 0355 + 0174 + 02 + 0387 + 0598 + 0819 + 0702 + 0719 + 0349 +
0852
= 5154
Q2 = 0170 + 0815 + 0190 + 0456 + 0526 + 0170 + 0232 + 0572 + 0102 +
0322
= 3554
Langkah selanjutnya dilakukan proses normalisasi menggunakan Persamaan 25 Dimana setiap bilangan penyusun matriks awal dibagi dengan nilai Q sesuai dengan kolomnya masing ndash masing Bilangan penyusun matriks disimbolkan dengan microik dimana i menunjukkan baris dan k menunjukkan kolom posisi bilangan tersebut pada matriks
i micro
c1 c2
1 0355 0170
2 0174 0815
3 0200 0190
4 0387 0456
5 0598 0526
6 0819 0170
7 0702 0232
8 0719 0572
9 0349 0102
10 0852 0322
51
μ11 = bilangan matriks partisi pada baris 1 kolom 1
Q1
= 0355
5154
= 0069
μ12 = bilangan matriks partisi pada baris 1 kolom 2
Q2
= 0170
3554
= 0048
Setelah melakukan perhitungan seperti diatas untuk semua bilangan matriks sehingga matriks partisi sudah ternormalisasi seperti yang ditunjukkan pada Tabel 48
Tabel 48 Derajat keanggotaan matriks partisi data A
i micro
C1 C2
1 0069 0048
2 0034 0229
3 0039 0054
4 0075 0128
5 0116 0148
6 0159 0048
7 0136 0065
8 0140 0161
9 0068 0029
10 0165 0090
d Perhitungan pusat cluster (V)
Pada perhitungan pusat cluster (V) berdasarkan Persamaan 26 Dimana setiap bilangan penyusun matriks partisi (micro) dipangkatkan dengan w dimana variabel w yang sudah dideklarisakan terlebih dahulu dengan nilai sama dengan 2 dan dikalikan dengan bilangan penyusun matriks X yang merupakan matriks berisi data yang ada pada Tabel 41 Selanjutnya hasil perkalian tersebut dijumlah dan dibagi dengan jumlah hasil kuadrat dari bilangan penyusun matriks partisi Hasil perhitungan ditunjukkan pada Tabel 49
52
Tabel 49 Perhitungan pusat cluster data A
Berdasarkan jumlah cluster dari data A yaitu 2 maka terdapat 2 pusat cluster (V) yaitu V1 V2 Perhitungan nilai V adalah sebagai berikut
V1 = sum ((μic1)2 times Xi)10
i=1
sum (μic1)210i=1
= 10730216
0121620
= 8822718207
V2 = sum ((μic2)2 times Xi)10
i=1
sum (μic2)210i=1
= 12111287
0137572
= 8803592572
Jadi berdasarkan perhitungan diatas pusat cluster untuk data A pada iterasi ke-1 adalah 8822718207 8803592572
e Perhitungan fungsi objektif (P)
Pada perhitungan P menggunakan Persamaan 27 dimana setiap baris pada data matriks X dikurangi pusat cluster (V) selanjutnya dikuadratkan Hasilnya
i X microsup2 microsup2 x X
C1 C2 C1 C2
1 95 0004731 0002292 0449450 0217718
2 90 0001137 0052633 0102304 4736927
3 94 0001512 0002864 0142117 0269234
4 83 0005630 0016427 0467258 1363472
5 85 0013448 0021907 1143107 1862112
6 92 0025233 0002291 2321422 0210787
7 86 0018542 0004243 1594602 0364916
8 89 0019487 0025916 1734356 2306543
9 93 0004590 0000816 0426841 0075870
10 86 0027311 0008183 2348759 0703706
Jumlah 0121620 0137572 10730216 12111287
53
kemudian dikalikan dengan micro yang sudah dipangkatkan dengan bobot (w) seperti yang telah ditunjukkan pada Tabel 49 Selanjutnya hasil tersebut dijumlah per kolom seperti yang ditunjukkan pada Tabel 410
Tabel 410 Fungsi objektif data A
i X (X-V)sup2 (X-V)sup2 x microsup2
C1 C2 C1 C2
1 95 458711 484983 02170 01111
2 90 31429 38576 00036 02030
3 94 333254 355702 00504 01019
4 83 273234 253605 01538 04166
5 85 104147 92168 01401 02019
6 92 142342 157139 03592 00360
7 86 49603 41450 00920 00176
8 89 05972 09294 00116 00241
9 93 227798 246420 01046 00201
10 86 49603 41450 01355 00339
Jumlah 1267661573 1166282827
Fungsi Objektif (P) 24339444
Perhitungan nilai fungsi objektif dilakukan seperti Persamaan 27 Nilai fungsi objektif diperoleh dengan cara sebagai berikut P = sum sum ([(Xi minus Vc)2](μik)2)3
c=110i=1
P = 1267661573 + 1166282827
= 24339444
f Perbaikan matriks partisi
Pada langkah ini perbaikan matriks partisi dilakukan berdasarkan Persamaan 28 Data matriks X untuk setiap barisnya dikurangi pusat cluster lalu dikuadratkan seperti yang ditunjukkan pada Tabel 410 Selanjutnya hasilnya dipangkatkan dengan -11 karena w-1 = 1 Hasil pangkat -1 terhadap (X-V)2 ditunjukkan pada Tabel 411
54
Tabel 411 Perbaikan matriks partisi
i ((X-V)sup2)^-1
Jumlah C1 C2
1 0022 0021 0042
2 0318 0259 0577
3 0030 0028 0058
4 0037 0039 0076
5 0096 0108 0205
6 0070 0064 0134
7 0202 0241 0443
8 1674 1076 2750
9 0044 0041 0084
10 0202 0241 0443
Berdasarkan tabel diatas bilangan penyusun matriks partisi yang baru atau yang telah diperbaiki diperoleh dari hasil pembagian data terhadap jumlah per barisnya
12058311 = 0022
0042= 0514
12058312 = 0021
0042= 0486
Pada perhitungan nilai matriks yang sudah diperbaiki dilakukan pada semua elemen matriks sehingga hasil perbaikan matriks seperti yang ditunjukkan pada Tabel 412
Tabel 412 Hasil perbaikan matriks partisi
Setelah mendapatkan hasil perbaikan matriks partisi kita lakukan pengecekan selama iterasi kurang dari iterasi maksimum (maxIter) atau selisih antara fungsi objektif iterasi saat ini dengan iterasi sebelumnya bernilai lebih dari nilai error terkecil yaitu 001 maka proses berlanjut dengan kembali melakukan perhitungan pusat cluster hingga perbaikan matriks partisi Hasil
i micro
C1 C2
1 0514 0486
2 0551 0449
3 0516 0484
4 0481 0519
5 0469 0531
6 0525 0475
7 0455 0545
8 0609 0391
9 0520 0480
10 0455 0545
55
perhitungan pusat cluster dari data A B C dan D setelah dilakukan proses tiga kali iterasi dan diurutkan mulai dari yang terkecil sampai yang terbesar ditunjukkan pada Tabel 413
Tabel 413 Hasil pusat cluster
4232 Perhitungan batas subinterval
Perhitungan batas subinterval dilakukan dengan mencari nilai tengah (Median) dari setiap pusat cluster Berikut merupakan contoh perhitungan batas subinterval pada data A
a Interval 1 Batas bawah = 78835 (Batas bawah Universe of Discourse pada data A) Batas atas = 89347 (Median 88303 dan 90390)
b Interval 2 Batas bawah = 89347 (Median 88303 dan 90390) Batas atas = 99165 (Batas atas Universe of Discourse pada data A)
Seperti perhitungan diatas juga dilakukan pada data suhu (B) kelembaban (C) dan kecepatan angin (D) Dalam hal ini jumlah subinterval setiap atribut berbeda ndash beda sesuai dengan jumlah cluster yang sebelumnya ditunjukkan pada Tabel 46 Berikut merupakan batas subinterval masing ndash masing atribut yang ditunjukkan pada Tabel 414
Tabel 414 Batas subinterval masing ndash masing atribut data
Interval (micro)
A B C D
1
78835 25984 751708 6208
sd sd sd sd
89347 26181 823863 6249
2
89347 26181 823863 6249
sd sd sd sd
99165 26366 82411 6256
3
82411 6256
- - sd sd
82537 6312
Cluster A B C D
1 88303 26165 82391 62497
2 90390 26197 82408 62499
3 - - 82415 62613
56
424 Pembentukan Fuzzy Set
Pembentukan fuzzy set berdasarkan pada derajat keanggotaan dari subinterval (micro) fuzzy set dari data A ditentukan dengan derajat keanggotaan sebagai berikut
A1 = 1micro1 + 05micro2
A2 = 05micro1 + 1micro2
Pada derajat keanggotaan data A diatas simbol ldquo+rdquo menunjukkan operator himpunan gabungan Berdasarkan subinterval pada Tabel 414 nilai batas fuzzy set dari data atribut A dapat ditentukan dengan cara sebagai berikut
A1 = 78835 sd 94256 (Batas bawah interval 1 sd titik tengah interval 2)
A2 = 84091 sd 99165 (Titik tengah interval 1 sd batas atas interval 2)
Setelah diketahui batas masing ndash masing fuzzy set grafik fungsi keanggotaan fuzzy set data A yang direpresentasikan dalam kurva bahu yang ditunjukkan pada Gambar 422 Dengan cara yang sama juga ditentukan pula fuzzy set dari data attribut B C dan D
425 Fuzzifikasi
Pada langkah fuzzifikasi dilakukan dengan mencari derajat keanggotaan yang memiliki nilai paling besar (maksimum) dari masing ndash masing data terhadap fuzzy set yang sudah terbentuk Derajat keanggotaan dicari berdasarkan fungsi keanggotaan kurva bentuk bahu Berikut ini adalah perhitungan derajat keanggotaan dari data attribut A
Data aktual curah hujan (A) pada April 2014 dasarian ke-3 = 90
1198601 = 942558 ndash 90
942558minus840911= 041868427
Gambar 422 Grafik fuzzy set data A
57
1198602 = 90minus840911
942558minus840911= 058131636
Derajat keanggotaan paling besar berada pada A2 sehingga data attribut A pada April 2014 dasarian ke-3 difuzzifikasikan ke fuzzy set A2 Perhitungan yang sama dilakukan pada seluruh data attribut A sehingga didapat derajat keanggotaan dan hasil fuzzifikasi dari data A ditunjukkan pada Tabel 415
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A
i Data A1 A2 Fuzzyfikasi
1 95 0 1 A2
2 90 041868363 058131636 A2
3 94 002516357 097483642 A2
4 83 1 0 A1
5 85 09105837 008941629 A1
6 92 02219236 077807639 A2
7 86 08122036 018779631 A1
8 89 05170636 048293635 A1
9 93 01235436 087645641 A2
10 86 08122037 018779631 A1
Perhitungan yang sama juga dilakukan pada semua attribut yaitu attribut B C dan D Sehingga dapat diperoleh hasil fuzzifikasi sesuai derajat keanggotaan dengan nilai paling besar Berikut adalah hasil fuzzifikasi untuk semua attribut yang dapat dilihat pada Tabel 416
Tabel 416 Hasil fuzzifikasi semua data attribut
No Tanggal A B C D
1 Dasarian 2 (April 2014) A2 B1 C3 D3
2 Dasarian 3 (April 2014) A2 B1 C3 D3
3 Dasarian 1 (Mei 2014) A2 B1 C3 D3
4 Dasarian 2 (Mei 2014) A1 B2 C1 D1
5 Dasarian 3 (Mei 2014) A1 B2 C1 D1
6 Dasarian 1 (Juni 2014) A2 B1 C2 D2
7 Dasarian 2 (Juni 2014) A1 B2 C1 D1
8 Dasarian 3 (Juni 2014) A1 B2 C2 D1
9 Dasarian 1 (Juli 2014) A2 B1 C2 D2
10 Dasarian 2 (Juli 2014) A1 B2 C2 D1
58
426 Pembentukan Fuzzy Logical Relationship (FLR)
Pada tahap pembentukan FLR dengan berdasarkan nilai order yang sudah ditentukan Pada manualisasi ini berdasarkan dari Tabel 416 di misalkan nilai order kita deklarasikan dengan nilai 3 sehingga dapat menghasilkan 7 FLR Hasil pembentukan FLR Data training dapat ditunjukkan pada Tabel 417 Hasil pembentukan FLR Data testing dapat ditunjukkan pada Tabel 418
Tabel 417 Hasil pembentukan FLR data training
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(32)B(31)C(33)D(33)) rarr A1
2 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(31)B(32)C(31)D(31)) rarr A1
3 (A(12)B(11)C(13)D(13)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(31)D(31)) rarr A2
4 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(21)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
5 (A(11)B(12)C(11)D(11)) (A(22)B(21)C(22)D(22)) (A(31)B(32)C(31)D(31)) rarr A1
Tabel 418 Hasil pembentukan FLR data testing
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(12)D(12)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(32)D(31)) rarr A2
2 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(22)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
427 Defuzzifikasi
Pada tahap ini misalkan jumlah data yang digunakan untuk data uji atau data testing adalah dua yaitu yang pertama data periode ke-9 dan yang kedua data periode ke-10 Sehingga yang digunakan data latih atau data training adalah data pada periode ke-1 sampai data periode ke-8 Pada data testing yang pertama melibatkan FLR ke-1 sampai FLR ke-5 untuk disesuaikan dengan FLR ke-6 yang berdasarkan pada Tabel 417 Pada data testing yang kedua melibatkan FLR ke-1 sampai FLR ke-6 untuk disesuaikan dengan FLR ke-7 yang berdasarkan pada Tabel 417 Selanjutnya setiap ruas kiri FLR data testing dibandingkan dengan FLR data training yaitu pada bilang pangkat bawah fuzzy set dibandingkan sesuai dengan posisinya dan dihitung selisihnya Hasil dari perhitungan selisih tersebut dijumlahkan dan apabila jumlah selisihnya kurang dari threshold maka FLR tersebut dikatakan cocok Threshold merupakan dari hasil mengalikan jumlah order dengan jumlah faktor kemudian dijumlahkan dengan dengan sebuah konstanta Contoh perhitungan selisih nilai ruas kiri FLR pada data testing pertama adalah sebagai berikut
59
Data testing = (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(32) B(31) C(33) D(33)) rarr A1
Data training =
1 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
2 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
3 (A(12) B(11) C(13) D(13)) (A(21) B(22) C(21) D(21)) (A(31) B(32) C(31) D(31)) rarr A2
4 (A(11) B(12) C(11) D(11)) (A(21) B(22) C(21) D(21)) (A(32) B(31) C(32) D(32)) rarr A1
5 (A(11) B(12) C(11) D(11)) (A(22) B(21) C(22) D(22)) (A(31) B(32) C(31) D(31)) rarr A1
Selisih data ke- 1 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|2-1|+|1-2|+|3-2|+|3-1| = 13
Selisih data ke- 2 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Selisih data ke- 3 = |2-2|+|1-1|+|3-2|+|3-2|+|1-1|+|2-2|+|1-1|+|1-1|+|1-1|+|2-2|+|1-2|+|1-1| = 3
Selisih data ke- 4 = |1-2|+|2-1|+|1-2|+|1-2|+|1-1|+|2-2|+|1-1|+|1-1|+|2-1|+|1-2|+|2-2|+|2-1| = 7
Selisih data ke- 5 = |1-2|+|2-1|+|1-2|+|1-2|+|2-1|+|1-2|+|2-1|+|2-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Pada perhitungan selisih nilai ruas kiri FLR pada data testing juga dilakukan pada semua data testing yang sudah dideklarasikan sebelumnya Dalam hal ini agar dapat menemukan FLR yang cocok dengan data testing Tahap selanjutnya adalah proses defuzzifikasi menggunakan threshold yang dimisalkan 18 sehingga FLR yang memiliki kecocokan dengan data testing pertama adalah semua FLR dari ke-1 sampai ke-5 karena memiliki hasil selisih kurang dari 18 Semua FLR yang cocok ditampung dikelompokkan berdasarkan FLR pada ruas kanan yang sama kemudian dhitung frekuensinya Berikut adalah frekuensi dan pusat cluster dari ruas kanan FLR yang cocok dengan data testing pertama dan kedua ditunjukkan pada Tabel 419
Tabel 419 Frekuensi FLR yang cocok dengan data testing
Data testing 1 Data testing 2
Ruas kanan A1 A2 A1 A2
Pusat Cluster 88303 90390 88303 90390
Frekuensi 4 1 4 2
Berdasarkan pada Tabel 419 dilakukan defuzzifikasi sesuai dengan Persamaan 218 sebagai berikut
119863119886119905119886 119905119890119904119905119894119899119892 1 = (88303times4)+(90390times1)
5= 887204
60
119863119886119905119886 119905119890119904119905119894119899119892 2 = (88303times4)+(90390times2)
6= 889987
Jadi berdasarkan perhitungan diatas diperoleh hasil peramalan curah hujan pada pada April 2014 dasarian ke-3 adalah 1384601636 sedangkan pada tanggal 10012016 adalah 2769203272 Perbandingan data curah hujan aktual dan hasil peramalan dengan metode High Order Fuzzy Time Series Multi Factors dapat dilihat pada Tabel 420
Tabel 420 Perbandingan data aktual dan hasil peramalan
No Data Aktual Hasil Peramalan
1 93 887204
2 86 889987
Dari hasil peramalan yang ditunjukkan pada Tabel 420 dapat dilakukan perhitungan kesalahan peramalan menggunakan metode Mean Square Error (MSE) seperti Persamaan 219
119872119878119864 = ((93minus887206)2+(86minus889989)2)
2
= 136536
43 Perancangan antarmuka
Perancangan antarmuka merupakan perancangan dari tampilan antarmuka atau interface yang nantinya akan diterapkan pada tahapan implementasi Pada perancangan antarmuka ini terdapat lima halaman utama dan juga terdapat dalam menu berupa button yaitu halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
431 Halaman input
Pada halaman input terdapat inputan data dengan nama button Browse Data pada inputan data ini pengguna diharuskan memasukkan inputan file data dalam bentuk ekstensi xls serta direktori lokasi file yang di inputkan akan ditampilkan pada textfield dan juga terdapat label yang menampilkan jumlah banyaknya data yang terdapat pada file yang telah di inputkan Selanjutnya juga terdata inputan textfield data training data testing order dan nilai konstanta Pada halaman input ini juga terdapat button fuzzification yang berfungsi untuk melakukan proses clustering fuzzifikasi dan FLR Selanjutnya pada button forecasting berfungsi untuk melakukan peramalan atau defuzzifikasi dari hasil proses fuzzifikasi serta menghitung nilai error dari hasil peramalan Berikut
61
merupakan rancangan tampilan antarmuka dari halaman input yang ditunjukkan pada Gambar 423
432 Halaman tampil data
Pada halaman tampil data terdapat tabel yang menampilkan isi data dari xls yang sudah dimasukkan terlebih dahulu pada halaman input Tabel tampil data akan menampilkan tanggal curah hujan kelembaban suhu dan kecepatan angin Berikut merupakan tampilan rancangan halaman tampil data yang ditunjukkan pada Gambar 424
Gambar 423 Rancangan antarmuka halaman input
Gambar 424 Rancangan antarmuka halaman tampil data
62
433 Halaman proses
Pada halaman proses akan menampilkan hasil clustering fuzzifikasi dan fuzzy logical relationship Pada tampilan halaman clustering akan menampilkan Universe of Discourse curah hujan suhu kelembaban dan kecepatan angin Selanjutnya tampilan dibawahnya akan menampilkan jumlah cluster dari setiap faktor yaitu jumlah cluster curah hujan suhu kelembaban dan kecepatan angin Berikut merupakan tampilan perancangan halaman proses clustering yang ditunjukkan Gambar 425
Selanjutnya pada tampilan proses fuzzifikasi akan menampilkan tabel hasil fuzzifikasi dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzifikasi yang ditunjukkan pada Gambar 426
Gambar 425 Rancangan antarmuka halaman proses clustering
Gambar 426 Rancangan antarmuka proses fuzzifikasi
63
Pada tampilan proses fuzzy logical relationship (FLR) akan menampilkan textarea berisi hasil proses FLR dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzy logical relationship yang ditunjukkan pada Gambar 427
434 Halaman hasil
Pada halaman hasil peramalan akan menampilkan tabel yang berisi hasil peramalan curah hujan dan data curah hujan yang sebenarnya Serta terdapat text link yang akan menampilkan grafik perbandingan data hasil peramalan dan data yang sebenarnya Berikut adalah tampilan rancangan halaman hasil yang ditunjukkan pada Gambar 428
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship
Gambar 428 Rancangan antarmuka halaman hasil peramalan
64
435 Halaman perhitungan error
Pada halaman perhitungan error akan menampilkan nilai dari hasil perhitungan Mean Square Error (MSE) pada textfield Berikut adalah tampilan rancangan halaman perhitungan error yang ditunjukkan pada Gambar 429
44 Perancangan pengujian
Pada penelitian ini akan dilakukan empat pengujian yaitu pengujian terhadap nilai order nilai threshold pengujian terhadap jumlah data training untuk mengetahui pengaruhnya terhadap nilai Mean Square Error (MSE) dan pengujian validasi sistem untuk mengetahui kestabilan hasil implementasi
441 Perancangan pengaruh order terhadap nilai MSE
Order merupakan jumlah urutan data yang digunakan dalam pembentukkan Fuzzy Logical Relationship (FLR) Pada pengujian ini dilakukan percobaan dengan order yang berbeda ndash beda Pengujian ini bertujuan untuk mengetahui pengaruh order terhadap hasil peramalan Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Pada setiap pengujian yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan order yang berbeda Berikut adalah perancangan pengujian order terhadap nilai MSE ditunjukkan pada Tabel 421
Tabel 421 Rancangan pengujian order terhadap nilai MSE
No Order Threshold MSE
1
Gambar 429 Rancangan antarmuka halaman perhitungan error
65
442 Perancangan pengaruh threshold terhadap nilai MSE
Nilai threshold bergantung jumlah order karena untuk nilai threshold merupakan dari hasil mengalikan jumlah faktor yang mempengaruhi dengan order selanjutnya dijumlah dengan sebuah konstanta Pada pengujian ini dilakukan percobaan dengan konstanta yang berbeda ndash beda sehingga menghasilkan threshold yang berbeda pula Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan konstanta dan threshold yang berbeda Berikut merupakan rancangan pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 422
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1
443 Perancangan pengaruh jumlah data training terhadap nilai MSE
Data training sangat berperan penting dalam proses defuzzifikasi sehingga pada penelitian ini dilakukan pengujian pengaruh jumlah data training terhadap tingkat kesalahan dari hasil peramalan Pada pengujian ini dilakukan percobaan dengan jumlah data training yang berbeda ndash beda Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan dilakukan perhitungan nilai MSE untuk mengetahui tingkat kesalahan dari hasil peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors dengan jumlah data training yang berbeda ndash beda Sehingga dari hasil pengujian ini dapat diketahui pengaruh dari jumlah data training Berikut merupakan rancangan pengujian pengaruh jumlah data training yang ditunjukkan pada Tabel 423
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1
444 Perancangan validasi sistem
Pada pengujian validasi sistem akan melakukan pengujian dengan menggunakan order threshold terbaik seperti yang telah dilakukan pada
66
pengujian ndash pengujian sebelumnya yang menghasilkan hasil error MSE terendah Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Berikut merupakan rancangan pengujian validasi sistem yang ditunjukkan pada Tabel 424
Tabel 424 Rancangan pengujian validasi sistem
Percobaan ke- MSE
1
67
BAB 5 IMPLEMENTASI
Pada bab ini berisi pembahasan hasil implementasi metode High Order Fuzzy Time Series Multi Factors yang sesuai dengan bab sebelumnya yaitu perancangan Bab ini terdiri dari spesifikasi sistem implementasi algoritma dan implementasi antarmuka
51 Spesifikasi Sistem
Pada spesifikasi sistem ini dibagi mejadi dua yaitu spesifikasi perangkat keras dan spesifikasi perangkat lunak
511 Spesifikasi Perangkat Keras
Spesifikasi perangkat keras merupakan perangkat keras yang digunakan pada implementasi penelitian ini Perangkat keras yang digunakan adalah laptop dengan spesifikasi sesuai dengan pada Tabel 51 berikut
Tabel 51 Spesifikasi Perangkat Keras
Komponen Spesifikasi
Processor Intelcopy Core i3-3217U 180 GHz
Memori (RAM) 8 GB RAM
Harddisk 500 GB RAM
512 Spesifikasi Perangkat Lunak
Spesifikasi perangkat lunak merupakan perangkat lunak yang digunakan pada implementasi penelitian ini Perangkat lunak yang digunakan pada implementasi penelitian sesuai dengan yang ditunjukkan pada Tabel 52 berikut
Tabel 52 Spesifikasi Perangkat Lunak
Sistem Operasi Microsoft Windows 7 (64 bit)
Bahasa Pemrograman Java
Tools Pemrograman Netbeans 81
Data Microsoft Excel 2013
52 Implementasi Algoritma
Pada implementasi algoritma ini membahas mengenai hasil implementasi algoritma metode High Order Fuzzy Time Series Multi Factors yang mengacu pada bab sebelumnya yaitu perancangan Dalam penelitian ini implementasi algoritma menggunakan bahasa pemrograman java berbasis desktop Implementasi algoritma terdiri dari beberapa method sesuai dengan langkah ndash langkah pada algoritma metode High Order Fuzzy Time Series Multi Factors
68
521 Implementasi Proses Universe of Discourse
Pada implementasi Universe of Discourse seperti yang ditunjukkan Kode Program 51 dimana pada source code method Universe_of_Discourse baris 3 - 5 terdapat pemanggilan method mean standar_deviasi dan Min_dan_Max Dimana pemanggilan method tersebut dibutuhkan untuk melakukan proses perhitungan selanjutnya yaitu untuk menghitung batas bawah dan batas atas dari Univers of Discourse Baris 7-10 untuk menghitung hasil Universe of Discourse Berikut merupakan source code dari proses Universe of Discourse yang ditunjukkan pada Kode Program 51
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
private void Universe_of_Discourse()
mean()
standar_deviasi()
Min_dan_Max()
hsl_uMin = new double[jmlh_Faktor]
hsl_uMax = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
hsl_uMin[i] = hsl_min[i] - hsl_stdev[i]
hsl_uMax[i] = hsl_max[i] + hsl_stdev[i]
Kode Program 51 Implementasi proses Universe of Discourse
5211 Implementasi proses mean
Pada implementasi proses mean merupakan proses perhitungan nilai rata ndash rata dari setiap faktor yang nantinya hasilnya diperlukan untuk proses perhitungan standar deviasi Berikut merupakan source code dari proses mean yang ditunjukkan pada Kode Program 52 Perhitungan utama proses mean terdapat pada baris 3 ndash 8
Baris Kode
1 2 3 4 5 6 7 8 9
private void mean()
hsl_mean = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double tmp_jmlh = 0
for (int j = 0 j lt jmlh_DataTraining j++)
tmp_jmlh = tmp_jmlh + data[i][j]
hsl_mean[i] = (tmp_jmlh jmlh_DataTraining)
Kode Program 52 Implementasi proses mean
5212 Implementasi proses standar deviasi
Pada implementasi proses perhitungan standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Standar deviasi dapat dilakukan perhitungan setelah mendapat nilai hasil dari perhitungan mean Berikut merupakan source code dari implementasi proses standar deviasi yang ditunjukkan pada Kode Program 53 Perhitungan utama proses standar deviasi terdapat pada baris 3 ndash 9
69
Baris Kode
1 2 3 4 5 6 7 8 9 10 11
private void standar_deviasi()
hsl_stdev = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double result = 0
for (int j = 0 j lt jmlh_DataTraining j++)
result = result + (Mathpow((data[i][j] ndash
hsl_mean[i]) 2))
hsl_stdev[i]=Mathsqrt(result(jmlh_DataTraining-
1))
Kode Program 53 Implementasi proses standar deviasi
5213 Implementasi proses Dmin dan Dmax
Pada implementasi proses Dmin dan Dmax merukan untuk mencari nilai minimum dan nilai maksimum dari data sampel untuk setiap faktor Berikut merupakan source code dari implementasi dari proses Dmin dan Dmax yang ditunjukkan pada Kode Program 54 Pada baris 8 ndash 10 merupakan bagian dari proses untuk untuk menentukan nilai data terbesar Selanjutnya pada baris 11 ndash 13 untuk menentukan nilai data terkecil
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
19
private void Min_dan_Max()
hsl_max = new double[jmlh_Faktor]
hsl_min = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double besar = data[i][0]
double kecil = data[i][0]
for (int j = 0 j lt jmlh_DataTraining j++)
if (data[i][j] gt besar)
besar = data[i][j]
if (data[i][j] lt kecil)
kecil = data[i][j]
hsl_max[i] = besar
hsl_min[i] = kecil
Kode Program 54 Implementasi proses Dmin dan Dmax
522 Implementasi Proses Jumlah Cluster
Pada implementasi proses jumlah cluster merupakan proses perhitungan jumlah cluster dari setiap faktor Implementasi ini dapat dilakukan apabila sudah mendapatkan hasil output dari method Min_dan_Max() sudah didapatkan Berikut merupakan source code dari implementasi proses jumlah cluster yang ditunjukkan pada Kode Program 55 Pada baris 3 ndash 7 untuk digunakan untuk menghitung selisih data sampel setiap baris dari semua faktor pada data sampel ke t dengan t+1 Selanjutnya pada baris 9 ndash 10 untuk menghitung jumlah cluster dari setiap faktor
70
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
private void jumlah_Cluster()
jmlh_Cluster = new int[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double selisih = 0
for (int j = 0 j lt (jmlh_DataTraining - 1) j++)
selisih = selisih + (Mathabs((data[i][j]
- data[i][(j + 1)])))
jmlh_Cluster[i] = (int) Mathround((Mathabs(
hsl_min[i]-hsl_max[i]))(selisih(jmlh_DataTraining
-1)))
Kode Program 55 Implementasi proses jumlah cluster
523 Implementasi Proses Pusat Cluster
Implementasi proses perhitungan pusat cluster ini menggunakan metode fuzzy C-means untuk mendapatkan pusat cluster yang nantinya digunkan sebagai subinterval Implementasi ini memerlukan hasil dari proses method jumlah_Cluster() agar dapat melakukan perhitungan subinterval Berikut merupakan source code dari implementasi proses subinterval yang ditunjukkan pada Kode Program 56 Pada Kode Program 56 hanya menampilkan source code pembentukan subinterval pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 2 ndash 3 merupakan deklarasi variabel bobot iterasi maksimum selisih fungsi objektif awal dan error minimum Pada baris 8 ndash 20 merupakan proses pembentukan matriks partisi dengan nilai random 0 sampai 1 Pada baris 22 ndash 26 merupakan proses normalisasi matriks partisi yang telah terbentuk Pada baris 28 ndash 63 merupakan proses untuk menentukan pusat cluster Pada baris 65 ndash 86 merupakan proses perhitungan fungsi objektif dari iterasi Pada baris 88 ndash 90 merupakan proses perhitungan selisih fungsi objektif Pada baris 92 ndash 108 adalah proses perbaikan matriks partisi Pada baris 110 ndash 115 adalah proses hasil perbaikan matriks partisi Pada baris 116 - 133 adalah proses dengan pengkondisian apakah selisih fungsi objektif lebih kecil dari error minimum serta apabila memenuhi kondisi maka dilanjutkan ke proses pengurutan pusat cluster secara ascending dari hasil iterasi terakhir dan proses pengkondisian iterasi berhenti
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void pusat_cluster()
int bobot = 2int iter_maksimum = 100
double selisih_f_objektif = 0double error_min = 001
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
Pembentukkan matriks partisi
tmp_Matriks1=new
double[jmlh_Cluster[i]][jmlh_DataTraining]
q1 = new double[jmlh_Cluster[i]]
double jmlh_q1
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_q1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
71
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
double random = ThreadLocalRandomcurrent()
nextDouble(01 1)
tmp_Matriks1[j][k] = random
jmlh_q1 = jmlh_q1 + random
q1[j] = jmlh_q1
normalisasi matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k] q1[j]
Perhitungan pusat cluster
for (int iter = 0 iter lt iter_maksimum iter++)
selisih_f_objektif = 0
jumA1 = new double[iter_maksimum][jmlh_Cluster[i]]
jumA2 = new double[iter_maksimum][jmlh_Cluster[i]]
miu_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
XV_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
pusat_cluster1 = new double[jmlh_Cluster[i]]
double hitung_jum1
double hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(tmp_Matriks1
[j][k]bobot)
miu_Matriks1[j][k] = tmp_Matriks1[j][k]
hitung_jum1 = hitung_jum1 + tmp_Matriks1
[j][k]
jumA1[iter][j] = hitung_jum1
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum2 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
data[i][k]
hitung_jum2 = hitung_jum2 +
tmp_Matriks1[j][k]
jumA2[iter][j] = hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
pusat_cluster1[j] = jumA2[iter][j]
jumA1[iter][j]
perhitungan fungsi objektif
jumA3 = new double[iter_maksimum][jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
double hitung_jum3 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow((data[i][k]
ndash pusat_cluster1[j])
bobot)
XV_Matriks1[j][k] = tmp_Matriks1[j][k]
tmp_Matriks1[j][k] = XV_Matriks1[j][k]
miu_Matriks1[j][k]
hitung_jum3 = hitung_jum3 +
tmp_Matriks1[j][k]
jumA3[iter][j] = hitung_jum3
72
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
double jmlh_f_objektif = 0
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_f_objektif = jmlh_f_objektif
+jumA3[iter][j]
if (iter lt (iter_maksimum - 1))
f_objektif1[iter + 1] = jmlh_f_objektif
perhitungan selisih fungsi objektif
selisih_f_objektif = f_objektif1[iter + 1]
-f_objektif1[iter]
perbaikan matriks partisi
int hitung = bobot - 1int pangkat = -1 hitung
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(XV_Matriks1
[j][k] pangkat)
jumA4 = new
double[iter_maksimum][jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
double hitung_jum4 = 0
for (int k = 0 k lt jmlh_Cluster[i] k++)
hitung_jum4 = hitung_jum4 +
tmp_Matriks1[k][j]
jumA4[iter][j] = hitung_jum4
hasil perbaikan matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
jumA4[iter][k]
if (selisih_f_objektif lt error_min)
pengurutan ascending pusat cluster
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 kltjmlh_Cluster[i]k++)
if (k lt (jmlh_Cluster[i] - 1))
if (pusat_cluster1[k] gt
pusat_cluster1[k + 1])
double tmp =
pusat_cluster1[k]
pusat_cluster1[k]=
pusat_cluster1[k+1]
pusat_cluster1[k+1] = tmp
iter = iter_maksimum
Kode Program 56 Implementasi proses pusat cluster
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set
Pada implementasi proses pembentukan suinterval dan fuzzy set memiliki dua proses yaitu proses menentukan batas subinterval minumum serta maksimum dan proses menentukan batas fuzzy set minimum serta maksimum
73
Proses pembentukan fuzzy dapat menjalankan prosesnya setelah method subinterval() telah diakses Berikut merupakan source code proses pembentukan fuzzy set yang ditunjukkan pada Kode Program 57 Pada Kode Program 57 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 6 ndash 29 merupakan proses pembentukan batas minimum dan batas maksimum subinterval Pada baris 31 ndash 54 merupakan pembentukan batas minimum dan batas maksimum fuzzy set
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
private void subinterval_dan_fuzzy_set()
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
batas subinterval
batas_subintervalMinA = new double[jmlh_Cluster[i]]
batas_subintervalMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_subintervalMinA[j] = hsl_uMin[i]
batas_subintervalMaxA[j]=(pusat_cluster1[j]
+pusat_cluster1[j+
1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1] +pusat_cluster1
[j])2
batas_subintervalMaxA[j]=
hsl_uMax[i]
else if ((0 lt j) ampamp (j lt (jmlh_Cluster[i] -
1)))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1]+
pusat_cluster1[j])2
batas_subintervalMaxA[j]=
(pusat_cluster1[j]+
pusat_cluster1[j+1)2
batas fuzzy set
batas_fuzzysetMinA = new double[jmlh_Cluster[i]]
batas_fuzzysetMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_fuzzysetMinA[j]=
batas_subintervalMinA[j]
batas_fuzzysetMaxA[j]=
(batas_subintervalMinA[j+1]
+batas_subintervalMaxA[j + 1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]
+batas_subintervalMaxA[j - 1])2
batas_fuzzysetMaxA[j] =
batas_subintervalMaxA[j]
else if ((0 lt j) ampamp (jlt(jmlh_Cluster[i]-1)))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]+
batas_subintervalMaxA[j-1])2
batas_fuzzysetMaxA[j]=
74
51
52
53
54
55
56
(batas_subintervalMinA[j+1]+
batas_subintervalMaxA[j + 1])2
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set
525 Implementasi proses fuzzifikasi
Pada Implementasi proses fuzzifikasi memiliki dua proses utama yaitu menentukan derajat keanggotaan dan proses fuzzifikasi Dalam proses ini method fuzzy_set() harus dieksekusi terlebih dahulu karena implementasi proses ini memerlukan output dari method tersebut Berikut merupakan source code fuzzifikasi ditunjukkan pada Kode Program 58 Pada Kode Program 58 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 3 ndash 81 merupakan proses perhitungan derajat keanggotaan Pada baris 83 ndash 94 adalah proses penentuan fuzzifikasi
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
private void fuzzifikasi()
if (i == 0)
hitung_fuzzifikasiA = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
if(j == 0)
if((data[i][k]gtbatas_fuzzysetMinA[j])ampamp
(data[i][k]lt batas_fuzzysetMinA[j + 1]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA[j + 1])
ampamp (data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j] - data[i][k])
(batas_fuzzysetMaxA[j] ndash
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j]) ampamp
(data[i][k] lt batas_fuzzysetMinA[j + 1])
ampamp(data[i][k] gt batas_fuzzysetMinA[j+1])
ampamp(data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
else if (j == (jmlh_Cluster[i] - 1))
if((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
(batas_fuzzysetMaxA[(jmlh_Cluster[i]ndash
2)]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
if((data[i][k] gt batas_fuzzysetMaxA
75
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
[(jmlh_Cluster[i]- 2)]) ampamp (data[i][k]
lt batas_fuzzysetMaxA[(jmlh_Cluster[i]
- 1)]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] gt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 1)]))
hitung_fuzzifikasiA[j][k] = 0
else if ((0 lt j)ampamp(j lt (jmlh_Cluster[i] - 1)))
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA[j
+1]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA[j])
(batas_fuzzysetMinA[j + 1]-
batas_fuzzysetMinA[j])
if ((data[i][k] gt batas_fuzzysetMinA
[j+1])ampamp (data[i][k] lt
batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j]-data[i][k])
(batas_fuzzysetMaxA[j]-
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA
[j + 1]) ampamp (data[i][k] gt
batas_fuzzysetMinA[j + 1]) ampamp
(data[i][k]ltbatas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
hasil_fuzzifikasiA = new int[jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
int cluster = 0
double besar=hitung_fuzzifikasiA[0][j]
for (int k = 0 k lt jmlh_Cluster[i] k++)
if (besar lt hitung_fuzzifikasiA[k][j])
besar = hitung_fuzzifikasiA[k][j]
cluster = k
hasil_fuzzifikasiA[j] = cluster + 1
Kode Program 58 Implementasi proses fuzzifikasi
526 Implementasi Pembentukan Fuzzy Logical Relationship
Pada implementasi pembentukan Fuzzy Logical Relationship (FLR) memiliki dua output yaitu FLR_kiri dan FLR_kanan Dimana FLR_kiri berisi group dari kelima faktor dan pada FLR_kanan merupakan dari faktor yang akan diramalkan yaitu
76
faktor curah hujan (A) Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code pembentukan Fuzzy Logical Relationship (FLR) dapat ditunjukkan pada Kode Program 59 berikut Pada baris 3 ndash 14 merupakan deklarasi variabel Pada baris 15 ndash 55 adalah proses pembentukan fuzzy logical relationship data training Pada baris 56 ndash 58 merupakan deklarasi variabel Pada baris 59 ndash 86 adalah proses pembentukan fuzzy logical relationship data testing
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Fuzzy Logical Relationship
private void fuzzy_logical_relationship()
String input_order = fieldOrdergetText()
order = IntegerparseInt(input_order)
int max_inc = order
String input_dataTraining = fieldDatatraininggetText()
int dataTraining = IntegervalueOf(input_dataTraining)
int tmp_jmlhDatatraining = 0
int tmp_order = 0
int jmlh_dataTraining = dataTraining - order
String input_dataTesting = fieldDatatestinggetText()
int jmlh_dataTesting = IntegervalueOf(input_dataTesting)
FLR_kiri_training = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_training = new int[jmlh_DataTraining]
for (int i = 0 i lt jmlh_dataTraining i++)
for (int j = i j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (j == 0)
if (k == 0)
FLR_kiri_training[i][j][k]=
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiD[j]
else if (j = 0)
if (k == 0)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiD[j]
tmp_order = j
FLR_kanan_training[i] = hasil_fuzzifikasiA[(i + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
77
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
tmp_jmlhDatatraining = i
FLR_kiri_testing = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_testing = new int[(jmlh_DataTraining)]
tmp_jmlhDatatraining = tmp_jmlhDatatraining + 1
for (int i = 0 i lt jmlh_dataTesting i++)
for (int j = tmp_jmlhDatatraining j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (k == 0)
FLR_kiri_testing[i][j - tmp_jmlhDatatraining][k]
= hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiD[j]
FLR_kanan_testing[i] =
hasil_fuzzifikasiA[(tmp_jmlhDatatraining + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
tmp_jmlhDatatraining++
Kode Program 59 Implementasi pembentukan FLR
527 Implementasi Proses Defuzzifikasi
Pada implementasi proses defuzzifikasi merupakan proses dimana menentukan hasil peramalan dari data testing berdasarkan dari bilangan fuzzy yang terbentuk Implementasi ini memiliki beberapa inputan penting yaitu data training data testing order dan konstanta Inputan tersebut sangat berperan penting dalam proses implementasi defuzzifikasi Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code defuzzifikasi dapat ditunjukkan pada Kode Program 510 berikut Pada baris 2 ndash 11 merupakan deklarasi variabel Pada baris 13 ndash 37 merupakan proses perhitungan selisih antara data training dengan data testing Pada baris 40 ndash 47 menghitung jumlah FLR yang cocok Pada baris 49 ndash 65 merupakan proses mencocokan FLR kiri yang cocok dengan FLR kanan Pada baris 67 ndash 81 merupakan proses menghitung jumlah frekuensi FLR kanan yang cocok Pada baris 83 ndash 91 adalah proses perhitungan hasil peramalan
Baris Kode 1
2
3
4
private void defuzifikasi()
String input_dataTraining = fieldDatatraininggetText()
String input_dataTesting = fieldDatatestinggetText()
String input_konstanta = fieldKonstantagetText()
78
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
int dataTraining = IntegervalueOf(input_dataTraining)
int dataTesting = IntegervalueOf(input_dataTesting)
int konstanta = IntegervalueOf(input_konstanta)
int match[][]
match = new int[dataTesting][2000]
int threshold = (jmlh_Faktor order) + konstanta
int hitung_selisih = 0
perhitungan selisih
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
hitung_selisih = 0
for (int k = 0 k lt order k++)
for (int l = 0 l lt jmlh_Faktor l++)
if (i == 0)
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
else if (i gt 0)
FLR_kiri_training[(dataTraining-
1)+i][k][l] = FLR_kiri_testing[i-
1][k][l]
FLR_kanan_training[(dataTraining-1)+i]
= FLR_kanan_testing[i-1]
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
if (hitung_selisih lt threshold)
match[i][j] = hitung_selisih
menghitung jumlah total FLR yang cocok untuk setiap data
testing
int countGroup[] = new int[dataTesting]
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
countGroup[i]++
mencocokan FLR_kiri yang cocok dengan FLR_kanan
group = new int[dataTesting][2000]
for (int i = 0 i lt dataTesting i++)
int tmp_count = 0
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
if (tmp_count lt countGroup[i])
group[i][tmp_count] = j
tmp_count++
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt countGroup[i] j++)
group[i][j] = FLR_kanan[group[i][j]]
mengelompokkan yang sama
MapltInteger Integergt map = new HashMapltInteger Integergt()
hasil_peramalan = new double[dataTesting]
for (int i = 0 i lt dataTesting i++)
79
70
71
72
73
74
75 76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
double peramalan = 0
mapclear()
for (int j = 0 j lt countGroup[i] j++)
int key = group[i][j]
if (mapcontainsKey(key))
int occurrence = mapget(key)
occurrence++
mapput(key occurrence)
else
mapput(key 1)
menghitung hasil peramlaan
Iterator iterator = mapkeySet()iterator()
while (iteratorhasNext())
int key = (Integer) iteratornext()
int occurrence = mapget(key)
peramalan = (peramalan + (pusat_cluster1[(key - 1)]
occurrence))
hasil_peramalan[i] = (peramalan countGroup[i])
Kode Program 510 Implementasi proses defuzzifikasi
53 Implementasi Antarmuka
Pada implementasi antarmuka dijelaskan beberapa halaman antarmuka untuk penggunaan dari program hasil implementasi Implementasi antarmuka berdasarkan perancangan yang telah dijelasakan pada bab sebelumnya yaitu bab perancangan Halaman antarmuka yang dibuat adalah halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
531 Implementasi antarmuka halaman input
Halaman input merupakan halaman yang pertama muncul setelah program dijalankan Pada halaman input ini terdapat beberapa inputan yang harus di masukkan yaitu data input data training data testing order dan konstanta Selain itu pada halaman input juga terdapat tiga button yaitu button browse data button fuzzification dan button forecasting Berikut tampilan antarmuka halaman input yang ditunjukkan pada Gambar 51
Gambar 51 Implementasi antarmuka halaman input
80
532 Implementasi antarmuka halaman tampil data
Halaman tampil data merupakan halaman yang tampil setelah melakukan input data Halaman ini berisi tabel yang menampilkan data curah hujan suhu kecepatan angin dan kelembaban Berikut tampilan antarmuka halaman tampil data yang ditunjukkan pada Gambar 52
533 Implementasi antarmuka halaman proses
Halaman proses merupakan halaman yang muncul setelah button fuzzification telah dieksekusi Halaman proses ini terdiri dari tiga bagian atau tab yaitu clustering fuzzification dan Fuzzy logical relationship Pada halaman antarmuka clustering menampilkan Universe of Discourse dan jumlah cluster pada masing ndash masing faktor Berikut merupakan tampilan antarmuka halaman proses bagian clustering yang ditunjukkan pada Gambar 53
Gambar 52 Implementasi antarmuka halaman tampil data
Gambar 53 Implementasi antarmuka halaman proses clustering
81
Pada tab selanjutnya yaitu pada tab fuzzification tab ini menampilkan hasil proses fuzzifikasi Pada halaman ini menampilkan tabel yang berisi hasil fuzzifikasi dari setiap faktor Berikut merupakan tampilan antarmuka halaman proses bagian fuzzification yang ditunjukkan pada Gambar 54
Pada tab Fuzzy Logical Relationship menampilakn hasil dari proses pembentukan Fuzzy Logical Relationship Tampilan pada halaman ini menampilkan berupa textarea yang berisi dari output proses tersebut Berikut merupakan tampilan antarmuka halaman proses bagian Fuzzy Logical Relationship yang ditunjukkan pada Gambar 55
Gambar 54 Implementasi antarmuka halaman proses fuzzification
Gambar 55 Implementasi halaman antarmuka proses FLR
82
534 Implementasi antarmuka halaman hasil
Pada implementasi antarmuka halaman hasil ini merupakan halaman yang menampilkan hasil dari proses defuzzifikasi Halaman hasil ini menampilkan tabel yang berisi data aktual dan data dari hasil peramlan Berikut merupakan tampilan antarmuka halaman hasil yang ditunjukkan pada Gambar 56
535 Implementasi antarmuka halaman perhitungan error
Pada implementasi antarmuka halaman perhitungan error merupakan halaman yang menampilkan hasil dari proses perhitungan Mean Square Error (MSE) Pada halaman antarmuka ini menampilkan hasil error MSE pada textfield Berikut merupakan tampilan antarmuka halaman perhitungan error yang ditunjukkan pada Gambar 57
Gambar 56 Implementasi halaman antarmuka hasil
Gambar 57 Implementasi halaman antarmuka perhitungan error
83
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini membahas hasil pengujian dan analisis hasil pengujian dari hasil implementasi metode High Order Fuzzy Time Series Multi factors untuk peramalan curah hujan dasarian Pada pengujian ini disesuaikan dengan perancangan pengujian pada bab 4
61 Sistematika Pengujian
Pada bab sebelumnya yaitu bab 4 mengenai perancangan telah dibahas perancangan pengujian dikatakan bahwa pengujian akan dilakukan sebanyak empat pengujian Pengujian order pengujian threshold pengujian jumlah data training dan pengujian validasi sistem Dari semua pengujian tersebut akan di uji dan di analisis bagaimana pengaruhnya terhadap hasil perhitungan Mean Square Error (MSE)
62 Hasil dan Analisis Pembahasan
Berikut hasil pengujian dan analisis yang disesuaikan dengan perancangan pengujian pada bab sebelumnya
621 Pengujian pengaruh order terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh order terhadap nilai MSE Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Jadi jika nilai order adalah 3 maka peramalan akan melibatkan 3 data sebelumnya pada proses pembentukan Fuzzy Logical Relationship (FLR) Pada pengujian ini hanya nilai order yang diubah ndash ubah sedangkan variabel lain akan dibuat tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 konstanta adalah 10 Nilai threshold diperoleh dari perhitungan jumlah faktor dikali order dan dijumlah nilai konstanta Berikut adalah hasil pengujian pengaruh order terhadap nilai MSE yang ditunjukkan pada Tabel 61
Tabel 61 Hasil pengujian order terhadap nilai MSE
No Order Threshold MSE
1 3 22 808585
2 6 34 965547
3 9 46 912631
4 12 58 875884
5 15 70 719284
6 18 82 6801207
7 21 94 5637184
8 24 106 5444184
9 27 118 5433631
10 30 130 5418393
84
Dari hasil pengujian order seperti yang telah ditunjukkan pada Tabel 61 maka pada percobaan pertama dengan order = 3 dan threshold 22 dapat diperoleh MSE sebesar 808585 Selanjutnya pada percobaan kedua dengan order = 6 dan threshold = 34 diperoleh MSE sebesar 965547 Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 61
Berdasarkan Gambar 61 order yang berbeda - beda mempengaruhi besar nilai MSE Dalam penelitian ini menentukan order memiliki ketentuan yaitu nilai order harus lebih dari 0 dan batas maksimal order adalah setengah dari nilai data training (LinYang 2009) Nilai MSE terbesar yang ditunjukkan pada pengujian ini adalah 965547 pada pengujian order 6 dan nilai MSE terkecil adalah 5418393 pada pengujian order 30 Pada Gambar 61 menunjukkan bahwa pada order 3 ke order 6 mengalami peningkatan nilai MSE selanjutnya pada order 6 hingga order 30 mengalami penurunan Pada order 3 memiliki nilai MSE lebih kecil dari order 6 order 9 dan order 12 karena memiliki lebih banyak hasil selisih tingkat kecocokan data time series yang tidak terlalu besar dan kurang dari threshold Selain itu karena data time series dari data sampel yang diperoleh memiliki pola data musiman dimana perubahan pola data dasarian tidak terlalu banyak berubah dari tahun ke tahun Selanjutnya pada order 6 hingga order 30 menunjukkan penurunan nilai MSE dan order terbesar memiliki nilai MSE terkecil sehingga dapat disumpulkan bahwa semakin besar order maka semakin kecil pula nilai MSE Dalam hal ini dengan semakin besarnya order maka data sebelumnya yang digunakan untuk pertimbangan dalam menentukan peramalan semakin banyak Sehingga semakin besar nilai order maka dapat membuat peramalan semakin akurat Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin besar nilai order maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE
85
622 Pengujian pengaruh threshold terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh threshold terhadap nilai MSE Threshold merupakan hasil dari mengalikan jumlah order dengan jumlah faktor pada data kemudian dijumlahkan dengan dengan nilai konstanta Pada proses defuzzifikasi terdapat proses menghitung selisih antara pangkat bawah Fuzzy Logical Relationship (FLR) data training dan pangkat bawah FLR data testing Selanjutnya setelah mendapatkan nilai selisih maka nilai selisih tersebut dibandingkan dengan nilai threshold untuk mencari FLR yang cocok Pada pengujian ini nilai konstanta saja yang diubah ndash ubah sementara variabel lainnya tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 dan Nilai order adalah 30 Pada penentuan input konstanta nilai minimal harus lebih besar dari 0 dan nilai maksimal menyesuaikan data sampel yang digunakan (LinYang 2009) Berikut adalah hasil pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 62
Tabel 62 Hasil pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1 10 130 558485
2 20 140 577498
3 30 150 597364
4 40 160 604660
5 50 170 646951
6 60 180 680257
7 70 190 703013
8 80 200 741484
9 90 210 756749
10 100 220 780600
Dari hasil pengujian threshold seperti yang telah ditunjukkan pada Tabel 62 maka dapat dilihat bahwa konstanta yang dilakukan pengujian dimulai dengan nilai 10 sampai 100 Hasil yang didapat pada percobaan pertama dengan konstanta = 10 dan threshold 130 diperoleh MSE sebesar 558485 Selanjutnya pada percobaan kedua dengan konstanta = 20 dan threshold = 140 diperoleh MSE sebesar 577498 Selanjutnya dapat kita lihat pada percobaan yang telah dilakukan dari percobaan pertama hingga percobaan kesepuluh nilai MSE yang diperoleh mengalami perubahan pada setiap percobaan Dapat dilihat bahwa peningkatan MSE lebih dominan menunjukkan peningkatan sehingga dalam hal ini semakin besar nilai konstanta dan threshold maka semakin besar pula nilai MSE yang diperoleh Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 62
86
Berdasarkan grafik dari Gambar 62 nilai input konstanta yang berbeda - beda mempengaruhi besar nilai MSE semakin besar nilai konstanta maka nilai threshold juga semakin besar karena threshold diperoleh dari perhitungan order dikali jumlah faktor dan selanjutnya dijumlah dengan nilai konstanta Dalam hal ini dengan semakin besar nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR juga semakin luas batasannya dan jika semakin kecil nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR menjadi semakin sempit dan mempermudah proses peramalan karena hanya adanya sedikit data yang cocok dengan data yang akan diramalkan dan mempermudah proses defuzzifikasi Oleh karena itu semakin kecil threshold maka dapat membuat peramalan semakin akurat Akan tetapi nilai threshold tidak boleh terlalu kecil karena dapat menyebabkan kegagalan peramalan Kegagalan peramalan itu terjadi karena tidak adanya data training yang cocok dengan data testing karena pada metode yang digunakan pada penelitian ini sangat bergantung pada data ndash data sebelumnya Dari hasil percobaan diatas hasil MSE terbesar adalah 7806 yaitu pada konstanta 100 serta threshold 220 dan hasil MSE terkecil adalah 558485 yaitu pada konstanta 10 dan threshold 130 Dalam pengujian ini memiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin kecil nilai konstanta maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
623 Pengujian pengaruh jumlah data training terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh jumlah data training terhadap nilai MSE Pada pengujian ini jumlah data training adalah data dasarian yaitu 1 tahun 2 tahun 3 tahun 4 tahun dan 5 tahun dimana dari setiap 1 tahun memiliki 36 data dasarian Pengujian ini akan dilakukan sebanyak lima kali Pada pengujian ini jumlah data testing adalah 36 nilai order adalah setengah dari
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE
87
nilai data training nilai konstanta adalah 20 Berikut adalah hasil pengujian pengaruh jumlah data training terhadap nilai MSE yang ditunjukkan pada Tabel 63
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1 36 786586
2 72 634527
3 108 627190
4 144 614184
5 180 539698
Dari hasil pengujian jumlah data training seperti yang telah ditunjukkan pada Tabel 63 maka pada percobaan pertama dengan data training = 36 dapat diperoleh MSE sebesar 786586 Selanjutnya pada percobaan kedua dengan data training = 72 diperoleh MSE sebesar 634527 Dalam hal ini dari percobaan satu dan dua nilai MSE mengalami penurunan Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 63
Berdasarkan dari Gambar 63 pengujian pertama sampai pengujian kelima mengalami penerunan nilai MSE Sehingga dapat disimpulkan bahwa semakin besar data training maka semakin kecil nilai MSE yang diperoleh Nilai MSE semakin kecil apabila menggunakan data training dalam jumlah besar karena data yang digunakan memiliki rentang jauh dari periode data testing atau data yang akan diramalkan Sedangkan data training yang sedikit memiliki nilai MSE yang besar karena data training yang memiliki kecocokan dengan data testing berada pada periode yang jauh dengan data testing sehingga nilai MSE menjadi tinggi Dalam hal ini terbukti bahwa metode yang digunakan pada penelitian ini memerlukan jumlah data training yang banyak sehingga dapat menurunkan nilai kesalahannya Dari hasil percobaan diatas hasil MSE terbesar adalah 786586 dan
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE
88
hasil MSE terkecil adalah 539698 Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoPeramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Seriesrdquo yang menyatakan bahwa semakin besar jumlah data training maka semakin kecil nilai kesalahannya (Elfajar et al 2017)
624 Pengujian validasi sistem
Pada pengujian ini dilakukan untuk mengetahui kestabilan dari sistem dengan menggunakan order threshold terbaik dari pengujian sebelumnya Pada pengujian ini akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai data training menggunakan 36 data yang berbeda agar dapat menunjukkan gambaran variasi dari nilai kesalahan MSE pada peramalan nilai order adalah 18 dan konstanta adalah 10 sehingga nilai threshold adalah 92 Berikut adalah hasil pengujian validasi sistem yang ditunjukkan pada Tabel 64
Tabel 64 Hasil pengujian validasi sistem
Percobaan ke- MSE
1 714290
2 703856
3 732564
4 732815
5 6973958
6 7532825
7 741726
8 760457
9 709961
10 6256204
Dari hasil pengujian validasi sistem seperti yang telah ditunjukkan pada Tabel 64 maka dapat digambarkan dengan grafik yang ditunjukkan oleh Gambar 64
Gambar 64 Grafik hasil pengujian validasi sistem
89
Berdasarkan dari gambar grafik Gambar 64 bahwa pengujian dari validasi sistem memiliki hasil MSE yang tidak terlalu jauh berbeda dari penggunaan data yang berbeda - beda Oleh karena itu dapat disimpulkan bahwa implementasi dari metode High Order Fuzzy Time Series Multi Factors yang telah digunakan sudah cukup baik untuk digunakan peramalan
Berdasarkan dari pengujian yang dilakukan diatas dapat diketahui bahwa nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun 2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016 Nilai order adalah 90 dan konstanta adalah 10 Berikut adalah perbandingan data aktual dengan hasil peramalan yang ditunjukkan pada grafik Gambar 65
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan
90
BAB 7 PENUTUP
Pada bab ini terdiri dari dua sub bab yaitu kesimpulan dan saran Kesimpulan adalah tahapan yang berisi hasil penelitian yang dilakukan dan jawaban semua rumusan masalah yang sudah ditetapkan sebelumnya dan saran adalah tahapan yang berisi hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
71 Kesimpulan
Pada kesimpulan ini mengacu pada penelitian yang telah dilakukan yang meliputi perancangan implementasi serta pengujian dan analisis terhadap hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diambil kesimpulan sebagai berikut
1 Berdasarkan dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam melakukan peramalan curah hujan dasarian dilakukan dengan beberapa langkah yaitu langkah pertama perhitungan Universe of Discourse yang terdiri perhitungan mean standar deviasi dan perhitungan Dmin serta Dmax langkah kedua yaitu perhitungan jumlah cluster langkah ketiga yaitu perhitungan pusat cluster langkah keempat yaitu pembentukan subinterval dan fuzzy set langkah kelima yaitu proses fuzzifikasi langkah keenam yaitu pembentukan Fuzzy Logical Relationship(FLR) langkah ketujuh adalah defuzzifikasi yang hasil outputnya merupakan hasil peramalan curah hujan
2 Berdasarkan dari pengujian peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diketahui bahwa
a Order berpengaruh terhadap nilai error semakin besar nilai order maka hasil peramalan semakin baik
b Threshold berpengaruh terhadap nilai error semakin rendah nilai threshold maka hasil peramalan semakin baik Akan tetapi nilai threshold tidak boleh terlalu rendah karena dapat menyebabkan kegagalan peramalan
c Data training berpengaruh terhadap nilai error semakin besar jumlah data training maka hasil peramalan semakin baik Sehingga peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors memerlukan banyak data training
d Hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors cukup baik digunakan untuk peramalan Hal ini terbukti hasil pengujian validasi sistem menunjukkan grafik yang cukup stabil
Dari pengujian yang telah dilakukan nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun
91
2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016
72 Saran
Pada penelitian ini dilakukan peramalan curah hujan dasarian dengan faktor yang mempengaruhi adalah suhu kelembaban dan kecapatan angin Saran penulis diharapkan untuk penelitian selanjutnya melakukan penambahan faktor yang mempengaruhi curah hujan atau melakukan peramalan objek lain dengan mempertimbangkan faktor ndash faktor yang mempengaruhinya Serta diharapkan pada penelitian selanjutnya untuk menambahkan data yang lebih banyak serta bervariatif sehingga nilai hasil perhitungan akurasi peramalan yang dihasilkan dalam penelitian dapat meningkat Penggunaan data training yang banyak dan bervariatif dapat membuat pola data semakin terlihat sehingga hasil peramalan yang dihasilkan memiliki akurasi yang lebih baik
92
DAFTAR PUSTAKA
Ardiyanto 2016 ldquoTerendam Air Petani Lamongan Terpaksa Panen Dinirdquo Times Indonesia November 18 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
Badan Penelitian dan Pengembangan Pertanian Kementrian Pertanian 2015 ldquoKalender Tanam Terpadu Versi 25 Kota Malang Prov Jawa Timurrdquo httpkatamlitbangpertaniangoidkatam_terpadu2016mh33535733573_tinggipdf (Diakses 25 Februari 2017)
Bagirov M Adil Mahmood Arshad and Barton Andrew 2017 Prediction of monthly rainfall in Victoria Australia Clusterwise linear regression approach Elsevier Atmos Research 188 20-29
BMKG Staklim Karangploso Malang 2015 ldquoAnalisis Dinamika Atmosfer Dan Laut Dasarian III Maret 2015 Update 2 April 2015rdquo httpkarangplosojatimbmkgogoidindexphpanalisis-kondisi-dinamika-atmosfer-laut-dasarian-tahun-2015399-analisis-dinamika-atmosfer-dan-laut-dasarian-iii-maret-2015-update-2-april-2015axzz3X8h9y4fgampgsctab=0 (Diakses 25 Februari 2017)
BPS Kabupaten Malang 2016 ldquoKabupaten Malang Dalam Angka 2016rdquo httpsmalangkabbpsgoidwebsitepdf_publikasiKabupaten-Malang-Dalam-Angka-2016pdf (Diakses 25 Februari 2017)
BPS Jawa Timur 2015 ldquoJawa Timur Dalam Angka 2015rdquo httpsjatimbpsgoid4dmnpdf_publikasiJawa-Timur-Dalam-Angka-2015pdf (Diakses 25 Februari 2017)
Buffa S Elwood Rakesh and Sarin K 1996 Modern Production and Operation Management Eight Edition John Willey and Sons Inc London
Chen M 1996 Forecasting Enrollments based on Fuzzy Time Series Fuzzy Sets and Systems 311-319
Dewi Candra Kartikasari Dani Mursityo Yusi 2014 Prediksi Cuaca Pada Data Time Series Menggunakan Adaptive Neuro Fuzzy Inference System (ANFIS) Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK) Vol 1 No 1 hlm 18-24
Dewi Candra Muslikh M 2013 Perbandingan Akurasi Backpropagation Neural Network dan ANFIS Untuk Memprediksi Cuaca NATURAL-A Journal of Scientific Modeling amp Computation Volume 1 No1
Elfajar Aria Setiawan Budi Dewi Candra 2017 Peramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Series Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer Vol 1 No 2 Hlmn 85-94
93
Fauziah Normalita Wahyuningsih Sri dan Nasution Yuki 2016 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) Vol4 Statistika
Forest Mahyu 2015 ldquoDefenisi amp Pengertian Kelembabanrdquo httpilmupengetahuaalamblogspotcoid201506defenisi-pengertian-kelembabanhtml (Diakses 25 Februari 2017)
Irsyad Muhammad Metarice Sonya 2013 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan Jurnal Sains dan Teknologi Industri Vol 10 No 02
Klawon F 2001 What is About Fuzzy Clustering Understanding and Improving the Concept of the Fuzzier Science Journal httppublic-rzfh-wolfebuetteldeklawon
Kurniawan Carlos 2007 Analisis dan Perancangan Program Aplikasi Peramalan Curah Hujan dengan Metode Wavelet (Studi Kasus BMKG)
Kusumadewi S 2003 ldquoArtificial Intelegence (Teknik amp Aplikasinya)rdquo Graha Ilmu Yogyakarta
Kusumadewi S Purnomo H 2004 ldquoAplikasi Logika Fuzzy untuk Pendukung Keputusanrdquo Graha Ilmu Yogyakarta
Kusumadewi Sri 2002 Analisis amp Desain Sistem Fuzzy Tollbox MATLAB Graha Ilmu Yogyakarta
Lin Yupei Yang Y 2009 Stock Markets Forecasting Based on Fuzzy Time Series Model IEEE Conference Publications 782-886
Makridakis S Steven C Wheelwright Victor E and Gee MC 1999 Metode dan Aplikasi Peramalan Jilid I Edisi Kedua Jakarta Binarupa Aksara
Mirawati T Yasin H and Rusgiyono A 2013 Prediksi Curah Hujan dengan Metode Kalman Filter(Studi Kasus di Kota Semarang 2012) Jurnal Gaussian 2(3) pp 239-248
Pradipta Nur Sembiring Pasukat Bangun Pengarapen 2013 Analisis Pengaruh Curah Hujan di Kota Medan Saintia Matematika Vol 1
Sipayung Putri Metha 2013 Pemodelan Hubungan Kelembapan Udara terhadap Curah Hujan (Studi Kasus Curah Hujan Periode 2001-2009 pada Stasiun Dramaga) httprepositoryipbacidhandle12345678960623 (Diakses 25 Februari 2017)
User 2015 httpstaklimnegaranet[Online] Available at httpwwwstaklimnegaranetindexphpbuletin-hujanpengertian-istilah (Diakses 25 Februari 2017)
Wang Nai-Yi Chen Shyi-Ming 2009 Temperature prediction and TAIFEX forecasting based on automatic clustering techniques and two-factors high-order fuzzy time series Elsevier Expert Systems with Applications 36 2143ndash2154
94
Wardhani Dessy Ratnawati Dian Setiawan Budi 2015 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Saham Repositori Jurnal Mahasiswa PTIIK UB Doro Jurnal Vol 6 No 6
Wiyanti T and Pulungan R 2012 Peramalan Deret Waktu Menggunakan Model Fungsi Basis Radial (RBF) dan Auto Regressive Integrated Moving Average (ARIMA) Jurnal MIPA 35(2) pp 175-182
Yunanto Utomo 2014 ldquoBMKG Akui Prakiraan Cuacanya Masih Kurang Akuratrdquo Kompas Sains Januari 30 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
xi
DAFTAR TABEL
Tabel 21 Kajian Pustaka 5
Tabel 22 Fuzzy Logic Relationship 19
Tabel 23 Peramalan fuzzy set 20
Tabel 41 Data Sampel Perhitungan Manual 46
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean 47
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi 47
Tabel 44 Hasil Universe of Discourse 48
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya 48
Tabel 46 Hasil jumlah cluster data 49
Tabel 47 Matriks partisi awal pada cluster data A 50
Tabel 48 Derajat keanggotaan matriks partisi data A 51
Tabel 49 Perhitungan pusat cluster data A 52
Tabel 410 Fungsi objektif data A 53
Tabel 411 Perbaikan matriks partisi 54
Tabel 412 Hasil perbaikan matriks partisi 54
Tabel 413 Hasil pusat cluster 55
Tabel 414 Batas subinterval masing ndash masing atribut data 55
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A 57
Tabel 416 Hasil fuzzifikasi semua data attribut 57
Tabel 417 Hasil pembentukan FLR data training 58
Tabel 418 Hasil pembentukan FLR data testing 58
Tabel 419 Frekuensi FLR yang cocok dengan data testing 59
Tabel 420 Perbandingan data aktual dan hasil peramalan 60
Tabel 421 Rancangan pengujian order terhadap nilai MSE 64
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE 65
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE 65
Tabel 424 Rancangan pengujian validasi sistem 66
Tabel 51 Spesifikasi Perangkat Keras 67
Tabel 52 Spesifikasi Perangkat Lunak 67
Tabel 61 Hasil pengujian order terhadap nilai MSE 83
xii
Tabel 62 Hasil pengujian threshold terhadap nilai MSE 85
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE 87
Tabel 64 Hasil pengujian validasi sistem 88
xiii
DAFTAR GAMBAR
Gambar 21 Representasi linear naik 11
Gambar 22 Representasi linear turun 12
Gambar 23 Representasi kurva segitiga 12
Gambar 31 Diagram blok metodologi penelitian 22
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1) 25
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2) 26
Gambar 43 Diagram alir proses perhitungan Universe of Discourse 27
Gambar 44 Diagram alir proses perhitungan mean 28
Gambar 45 Diagram alir proses perhitungan standar deviasi 29
Gambar 46 Diagram alir perhitungan nilai Min dan Max 30
Gambar 47 Diagram alir proses perhitungan jumlah cluster 31
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1) 32
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2) 33
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3) 34
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4) 35
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5) 36
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1) 37
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2) 38
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1) 39
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2) 40
Gambar 417 Diagram alir proses Pembentukan FLR (bagian 1) 41
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2) 42
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3) 43
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1) 44
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2) 45
Gambar 422 Grafik fuzzy set data A 56
Gambar 423 Rancangan antarmuka halaman input 61
Gambar 424 Rancangan antarmuka halaman tampil data 61
Gambar 425 Rancangan antarmuka halaman proses clustering 62
Gambar 426 Rancangan antarmuka proses fuzzifikasi 62
xiv
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship 63
Gambar 428 Rancangan antarmuka halaman hasil peramalan 63
Gambar 429 Rancangan antarmuka halaman perhitungan error 64
Gambar 51 Implementasi antarmuka halaman input 79
Gambar 52 Implementasi antarmuka halaman tampil data 80
Gambar 53 Implementasi antarmuka halaman proses clustering 80
Gambar 54 Implementasi antarmuka halaman proses fuzzification 81
Gambar 55 Implementasi halaman antarmuka proses FLR 81
Gambar 56 Implementasi halaman antarmuka hasil 82
Gambar 57 Implementasi halaman antarmuka perhitungan error 82
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE 84
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE 86
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE 87
Gambar 64 Grafik hasil pengujian validasi sistem 88
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan 89
xv
DAFTAR KODE PROGRAM
Kode Program 51 Implementasi proses Universe of Discourse 68
Kode Program 52 Implementasi proses mean 68
Kode Program 53 Implementasi proses standar deviasi 69
Kode Program 54 Implementasi proses Dmin dan Dmax 69
Kode Program 55 Implementasi proses jumlah cluster 70
Kode Program 56 Implementasi proses pusat cluster 72
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set 74
Kode Program 58 Implementasi proses fuzzifikasi 75
Kode Program 59 Implementasi pembentukan FLR 77
Kode Program 510 Implementasi proses defuzzifikasi 79
xvi
DAFTAR LAMPIRAN
Lampiran 1 Tabel Data Sampel 95
1
BAB 1 PENDAHULUAN
11 Latar belakang
Kabupaten Malang merupakan salah satu kabupaten di Jawa Timur yang terkenal akan potensi alam yang dimiliki (BPS Kabupaten Malang 2016) Dalam hal ini terkenal akan potensi alamnya karena kabupaten Malang memiliki tingkat produksi di sektor pertanian yang cukup tinggi dimana hampir seluruh kecamatan di kabupaten Malang memiliki lahan pertaniaaan (BPS Jatim 2015) Permasalahan yang terjadi pada sektor pertanian yaitu terjadinya gagal panen apabila memasuki musim penghujan dengan curah hujan yang tinggi yaitu diatas 200 mm per bulan serta apabila memasuki musim kemarau dengan curah hujan yang rendah yaitu dibawah 100 mm per bulan (BMKG Staklim Karangploso Malang 2015) Dalam mengatasi hal tersebut upaya yang dilakukan petani selama ini hanya melakukan tindakan seperti melakukan panen secara dini Upaya ini dianggap petani cukup efektif dalam mengurangi besarnya kerugian gagal panen akan tetapi sebaiknya yang dilakukan adalah melakukan suatu tindakan agar kerugian yang dialami petani tidak terjadi lagi (Ardiyanto 2016)
Salah satu contoh tindakan yang dapat dilakukan adalah membuat Kalender Tanam (KATAM) KATAM dapat digunakan petani sebagai alat bantu atau pedoman dalam menentukan awal musim tanam terbaik seperti yang telah dilakukan oleh Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian Dalam pembuatan KATAM Balitbang menggunakan data peramalan curah hujan dari Badan Meteorologi Klimatologi dan Geofisika (BMKG) Akan tetapi BMKG mengakui bahwa prakiraan cuacanya saat ini memang masih kurang akurat dan masih kalah dengan prakiraan cuaca di Amerika Serikat (Yunanto 2014) Pentingnya akan prakiraan cuaca terbukti adanya beberapa penelitian sebelumnya yaitu penelitian prakiraan cuaca dengan input faktor yang mempengaruhi cuaca yang berupa data time series menggunakan metode Adaptive Neuro Fuzzy Inference System (ANFIS) (Dewi 2014) dan penelitian mengenai prediksi cuaca menggunakan metode Backpropagation Neural Network yang terbukti memiliki nilai akurasi yang baik dalam prediksi cuaca (Dewi 2013)
Teknik atau metode peramalan curah hujan yang sering digunakan BMKG adalah metode Autoregressive Integrated Moving Average (ARIMA) ANFIS dan Wavelet (Kurniawan 2007) Namun dalam penerapannya gabungan dari ketiga metode tersebut masih kurang memuaskan yaitu tingkat akurasinya hanya mencapai 60 - 70 Menurut BMKG kurangnya tingkat akurasinya ini disebabkan oleh keadaan pola atmosfer di Indonesia yang selalu berubah ndash ubah dan kurang menentu
Selain metode yang digunakan oleh BMKG adapun penelitian sebelumnya yang meramalkan curah hujan yaitu penelitian menggunakan metode Fuzzy Time Series Chen dengan studi kasus curah hujan di Samarinda dalam penelitian ini menggunakan data time series curah hujan bulanan dengan kesimpulan pengunaan data yang sedikit memiliki tingkat akurasi lebih tinggi dibandingkan
2
menggunakan data yang banyak yaitu menghasilkan nilai RMSE terkecil 7368 dan MAE terkecil 539 (Fauziah et al 2016)
Selain peramalan yang hanya menggunakan data time series dari data yang akan diramalkan juga terdapat penelitian sebelumnya yang menggunakan faktor - faktor yang mempengaruhi dari data yang akan diramalkan Salah satunya yaitu penelitian dengan menggunakan metode Clusterwise Linear Regression (CLR) Penelitian ini menggunakan data bulanan pada delapan stasiun cuaca di kota Victoria Australia Peramalan curah hujan pada penelitian ini menggunakan faktor yang mempengaruhi yaitu suhu maksimum suhu minimum penguapan tekanan uap dan radiasi matahari Hasil penelitian ini terbukti dapat melakukan peramalan curah hujan dengan hasil yang cukup baik yaitu dengan nilai RMSE terkecil 197 dan MAE terkecil 129 (Bagirov et al 2017)
Berdasarkan paparan yang telah dijelaskan penulis memiliki ide untuk melakukan penelitian dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Pada metode ini dilakukan klasterisasi data untuk membangun subinterval dengan menggunakan metode fuzzy C-means (LinYang 2009) Dari proses hasil klasterisasi akan digunakan untuk membagi data semesta yang selanjutnya menghasilkan fuzzy set atau himpunan fuzzy yang menggambarkan fitur data (LinYang 2009) Keunggulan dari metode fuzzy time series dengan multi faktor yaitu dengan berdasarkan pada penelitian ndash penelitian sebelumnya yang menggunakan metode tersebut yaitu penelitian prediksi harga emas dengan beberapa faktor yang mempengaruhi menggunakan metode Multi-factors High order Fuzzy Time Series Model dari hasil penelitian ini dengan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 (Wardhani et al 2015) dan penelitian peramalan Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen menggunakan metode Fuzzy Time Series Model dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 (Lin Yang 2009) terbukti menghasilkan hasil peramalan dengan tingkat akurasi yang cukup tinggi Penggunaan metode ini juga sesuai dengan curah hujan yang dipengaruhi oleh beberapa faktor yaitu kelembaban udara kecepatan angin dan suhu (Pradipta 2013) Penelitian ini diharapkan dapat memberikan hasil peramalan curah hujan yang lebih akurat dan memiliki nilai kesalahan yang lebih sedikit
12 Rumusan masalah
Berdasarkan latar belakang yang telah dipaparkan dibuatlah beberapa rumusan masalah sebagai berikut
1 Bagaimana mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Berapa tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
3
13 Tujuan
Adapun maksud dan tujuan dari penelitian ini adalah sebagai berikut
1 Mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Mengetahui tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
14 Manfaat
Adapun manfaat dari penelitian ini adalah sebagai berikut
1 Bagi Badan Meteorologi dan Geofisika (BMKG) untuk dapat memberikan peramalan curah hujan yang lebih akurat dari sebelumnya
2 Bagi Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian untuk dapat membuat Kalender tanam (KATAM) dengan menggunakan data ramalan curah hujan yang lebih akurat
3 Bagi penduduk kabupaten Malang khususnya yang bekerja pada sektor pertanian agar dapat mengoptimalkan hasil produksi dengan menyesuaikan penanaman sesuai dengan Kalender Tanam (KATAM) yang telah dibuat Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian
15 Batasan masalah
Penelitian ini dibatasi oleh hal ndash hal sebagai berikut
1 Data curah hujan kelembaban udara kecepatan angin dan suhu udara yang digunakan pada penelitian ini merupakan data berdasarkan dasarian dan hanya mencakup wilayah kabupaten Malang dan data diperoleh dari BMKG Karangkates Kabupaten Malang dengan data time series yang digunakan pada penelitian ini yaitu dari tahun 2011 - 2016
2 Model peramalan yang diterapkan adalah semua nilai yang membentuk pola dataset training dan testing diketahui nilainya
3 Perhitungan nilai tingkat kesalahan permalan menggunakan metode Mean Square Error (MSE)
16 Sistematika pembahasan
Sistematika pembahasan penelitian ditunjukkan untuk memberikan gambaran dan uraian dari penyusunan proposal yang meliputi beberapa bab sebagai berikut
BAB 1 PENDAHULUAN
Pada bab ini berisi latar belakang rumusan masalah tujuan penelitian manfaat penelitian batasan masalah sistematika pembahasan dan rencana kerja atau jadwal penelitian
4
BAB 2 LANDASAN KEPUSTAKAAN
Pada bab ini berisi tentang kajian pustaka dan dasar teori yang menjadi dasar dalam melakukan implementasi peramalan curah hujan dengan Metode High Order Fuzzy Time Series Multi Factors
BAB 3 METODOLOGI
Pada bab ini diuraikan tentang tahapan atau langkah ndash langkah yang dilakukan dalam proses penelitian tentang peramalan curah hujan dengan metode High Order Fuzzy Time Series Multi Factors Langkah ndash langkah tersebut terdiri dari tahapan penelitian teknik pengumpulan data algoritma yang digunakan lingkungan pengujian dan pengujian algoritma yang digunakan serta pengambilan kesimpulan
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan proses algoritma perhitungan manual metode High Order Fuzzy Time Series Multi Factors perancangan antar muka dan perancangan pengujian
BAB 5 IMPLEMENTASI
Pada bab ini berisi tentang penjelasan peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors bagaimana user interface dan source code dalam pengimplementasian metode ini
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini berisi tentang penjelasan proses dan hasil pengujian dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam peramalan curah hujan serta analisis dari pengujian tersebut
BAB 7 PENUTUP
Pada bab ini berisi kesimpulan yang diperoleh dari hasil pengujian dan saran ndash saran untuk pengembangan penelitian selan
5
BAB 2 LANDASAN KEPUSTAKAAN
Bab ini berisi mengenai kajian pustaka dan dasar ndash dasar teori yang akan dibahas serta digunakan untuk menunjang topik ndash topik pembahasan Pada kajian akan dibahas perbedaan antara penelitian yang telah ada dengan penelitian yang diusulkan oleh penulis Sedangkan pada dasar teori akan dibahas mengenai teori ndash teori yang digunakan pada penelitian yang diusulkan
21 Kajian Pustaka
Pada kajian pustaka disini berisi mengenai perbandingan antara penelitian yang diusulkan oleh penulis dengan penelitian sebelumnya yang relevan Perbandingan tersebut dapat dilihat padat Tabel 21
Tabel 21 Kajian Pustaka
No Judul Objek dan Input Penelitian Metode
1 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan (Irsyad Metarice 2013)
Objek Curah hujan
Input Penelitian
Data aktual curah hujan
Metode High Order Fuzzy Time Series dan Automatic Clustering
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
2 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) (Fauziah et al 2016)
Objek Curah Hujan
Input Penelitian
Data aktual curah hujan
Metode Fuzzy Time Series Chen
Nilai evaluasi
Mean Absolute Error (MAE) Root Mean of Square Error (RMSE)
3 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emas (Wardhani et al 2015)
Objek Harga Emas
Input Penelitian
Kurs Dollar hari sebelumnya
Kurs Euro hari sebelumnya
Harga Emas London hari sebelumnya
Harga Emas hari sebelumnya
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
4 Stock Markets Forecasting Based on Fuzzy Time Series Model (Lin Yang 2009)
Objek Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
6
Input Penelitian
Historical return
Historical turnover volume
Rata ndash rata selisih pergerakan harga selama lima hari
Selisih antara kekuatan bull dan bear
Indeks komposit bursa efek harian Shanghai sebelumnya
Indeks komposit bursa efek harian Shenzhen
Nilai evalusi
Average Relative Error (ARError)
5 Peramalan Curah Hujan Menggunakan Metode High Order Fuzzy Time Series Multi Factors
Objek Curah hujan
Input Penelitian
Suhu
Kelembaban
Kecepatan angin
Curah hujan
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Square Error (MSE)
Sumber (Irsyad Metarice 2013) (Fauziah et al 2016) (Wardhani et al 2015) dan (Lin Yang 2009)
Pada penelitian yang pertama yaitu penelitian yang dilakukan oleh Muhammad Irsyad dan Sonya Metarice pada tahun 2013 dengan objek penelitian yang diramalkan adalah curah hujan Inputan yang digunakan pada penelitian ini merupakan data aktual curah hujan bulanan Metode yang digunakan penelitian ini adalah Automatic Clustering dan High Order Fuzzy Time Series Pada penelitian ini metode Automatic Clustering digunakan untuk membangun interval dan High Order Fuzzy Time Series untuk melakukan peramalan curah hujan Kesimpulan yang diperoleh dari penelitian ini yaitu metode ini dapat diterapkan untuk permalan curah hujan dan hasil evaluasi menggunakan metode Mean Absolute Percentage Error(MAPE) dari beberapa bercobaan dapat diperoleh nilai kesalahan sebesar 437 Berdasarkan dari hasil nilai kesalahan tersebut maka tingkat kesalahan data pada permalan ini termasuk rendah
Pada tahun 2016 Normalita Fauziah Sri Wahyuningsih dan Yuki Novia Nasution melakukan penelitian dengan objek penelitian curah hujan di kota Samarinda Inputan yang digunakan pada penelitian berupa data aktual bulanan curah hujan di kota Samarinda Metode yang digunakan pada penelitian ini adalah Fuzzy Time Series Chen dengan dalam pembentukkan panjang interval berbasis rata ndash rata atau average based Pada penelitian ini permalan curah hujan terbaik yaitu dengan menggunkan data sebanyak 29 data dengan menghasilkan tingkat nilai kesalahan terkecil yaitu dengan metode Root Mean of Squared Error (RMSE) sebesar 7368 dan metode Mean Absolute Error (MAE) sebesar 539 Pada
(Lanjutan) Tabel 21 Kajian Pustaka
7
penelitian ini disimpulkan bahwa data sebanyak 29 data memiliki tingkat kesalahan lebih kecil dibandingkan dengan menggunakan data dengan jumlah sampel yang lebih banyak
Pada penelitian selanjutnya adalah penelitian yang dilakukan oleh Dessy Kusuma Wardhani Dian Eka Ratnawati dan Budi Darma Setiawan pada tahun 2015 dengan objek penelitian yang diramalkan adalah harga emas harian Inputan yang digunakan pada penelitian ini data aktual harian harga emas indonesia harga emas london kurs dollar ke rupiah dan kurs euro ke rupiah Metode yang digunakan pada penelitian pada pembentukkan sub interval menggunakan metode fuzzy C-means dan untuk peramalan menggunakan metode High Order Fuzzy Time Series Model Hasil pada penelitian ini berdasarkan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 karena nilai error lebih kecil dari 10 menunjukkan bahwa metode ini sangat baik digunakan untuk peramalan harga emas
Pada tahun 2009 Yupei Lin dan Yiwei Yang melakukan penelitian dengan objek yang diramalkan adalah indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen Data input penelitian ini meliputi historical return historical turnover volume dan rata ndash rata selisih pergerakan harga selama lima hari serta selisih antara kekuatan bull dan bear Dalam penelitian ini pembentukan subinterval yang berfungsi dalam pendefinisian himpunan fuzzy dilakukan dengan menggunakan klasterisasi fuzzy C-means Hasil dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 Dalam hal ini membuktikan bahwa penelitian dapat menghasilkan peramalan yang cukup baik karena memiliki nilai ARError kurang dari 5
Pada penelitian ini membahas tentang peramalan curah hujan dasarian menggunakan metode High Order Fuzzy Time Series Multi Factors Terdapat empat inputan yang juga dijadikan sebagai variabel dalam penelitian ini yaitu kelembaban udara kecepatan angin suhu udara dan curah hujan Pembentukan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan klasterisasi fuzzy C-means Penelitian ini menggunakan high order fuzzy logic relationship yaitu membentuk fuzzy logic relationship berdasarkan data dalam kurun waktu beberapa dasarian sebelum dasarian yang akan diramal Pada penelitian ini dalam melakukan perhitungan nilai error untuk mendapatkan hasil evaluasi menggunakan metode Mean Square Error (MSE)
22 Dasar Teori
Pada dasar teori disini dijelaskan tentang metode ndash metode yang digunakan pada penelitian ini yang meliputi peramalan curah hujan data time series logika fuzzy fuzzy C-means metode peramalan dengan Fuzzy Time Series High Order Fuzzy Time Series Multi Factors dan metode perhitungan keakuratan metode peramalan
8
221 Peramalan
Terdapat beberapa definisi tentang peramalan menurut Kamus Besar Bahasa Indonesia (KBBI) yaitu
a Peramalan merupakan prediksi rencana atau estimasi kejadian masa depan yang tidak pasti (KBBI)
b Peramalan adalah sebagai penggunaan teknik ndash teknik statistik dalam bentuk gambaran masa depan berdasarkan pengolahan angka ndash angka yang terjadi pada masa lalu (Buffa et al1996)
c Peramalan adalah bagian internal dari pengambilan keputusan manajemen (Makridakis et al1999)
Berdasarkan beberapa definisi diatas dapat disimpulkan bahwa peramalan merupakan tindakan apa yang akan terjadi di masa mendatang peramalan diperlukan untuk mengambil sebuah keputusan Dalam pengambilan keputusan harus diambil dari pertimbangan ndash pertimbangan yang ada Oleh karena itu peramalan sangat penting hubungannya dengan pengambilan keputusan sehingga kejadian di masa yang akan datang dapat dipersiapkan tindakan apa yang perlu dilakukan
222 Curah hujan
Curah hujan merupakan salah satu faktor penting yang mempengaruhi perubahan iklim suatu wilayah (Mirawati et al 2013) Salah satu contoh kasus nyata yaitu terjadinya perubahan iklim secara tiba ndash tiba atau bisa disebut dengan cuaca ekstrim Curah hujan dapat dijelaskan dengan air hujan yang terkumpul pada suatu wadah datar dimana air hujan tersebut tidak meresap tidak menguap dan tidak mengalir sehingga dapat diukur ketinggiannya Sebagai contoh curah hujan 1 (satu) milimeter dapat dijelaskan dalam suatu wadah datar dengan luas satu meter persegi tertampung air dengan ketinggian sekitar satu milimeter atau tertampung air sebanyak satu liter Metode dalam mendapatkan data curah hujan adalah dengan menggunakan penakar hujan yang kemudian diukur dengan satuan milimeter (mm) (User2015) Intensitas curah hujan dapat dikategorikan ringan jika dibawah 20mm dalam 24 jam dikategorikan lebat jika di atas 50mm dan dikategorikan sedang jika selang 20mm hingga 50mm (User 2015)
Curah hujan mempengaruhi beberapa sektor diantarannya sektor komunikasi dimana penggunaan frekuensi diatas 10 GHz dapat terkena redaman hujan (Mauludiyanto et al 2009) Akan tetapi curah hujan paling berpengaruh terhadap sektor pertanian Hal ini terbukti bahwa sebagian besar terjadinya penurunan produktifitas dan gagal panen di sektor pertanian adalah terjadinya curah hujan yang tinggi
Tinggi dan rendahnya curah hujan dipengaruhi oleh beberapa faktor yaitu kelembaban udara temperatur dan kecepatan angin Pada tahun 2013 Nur Suri Pradipta Pasukat Sembiring dan Pengarapen Bangun melakukan penelitian mengenai pengaruh curah hujan di kota Medan (Pradipta et al 2013)
9
Berdasarkan penelitian tersebut faktor yang mempengaruhi dan digunakan dalam peramalan curah hujan yaitu
1 Kelembaban udara
Kelembaban udara adalah banyaknya kandungan uap air di atmosfer Udara atmosfer adalah campuran dari udara kering dan uap air selain itu kelembaban udara merupakan komponen cuaca yang mempunyai peranan sangat penting bagi stabilitas kehidupan organisme di bumi maupun unsur-unsur cuaca yang lain (Forest 2015) Kelembaban udara berpengaruh terhadap curah hujan Hal ini didukung penelitian oleh (Sipayung et al 2013) yang menyatakan Kelembaban udara berpengaruh positif terhadap curah hujan
2 Kecepatan angin
Kecepatan angin merupakan kecepatan udara yang bergerak secara horizontal pada ketinggian 2 meter diatas tanah Dalam hal ini faktor yang menentukan kecepatan angin adalah perbedaan tekanan udara antara asal dan tujuan angin Kecepatan angin berpengaruh positif terhadap curah hujan artinya jika kecepatan angin tinggi maka curah hujan akan tinggi (Pradipta et al2013)
3 Suhu udara
Suhu udara merupakan ukuran energi kinetik rata ndash rata dari pergerakan molekul ndash molekul Suhu udara berpengaruh negatif terhadap curah hujan artinya jika suhu udara tinggi maka curah hujan akan berkurang (Pradipta et al2013)
223 Data time series
Data time series adalah data statistik yang telah dihimpun dari masa lampau hingga sekarang dan dapat digunakan sebagai acuan dalam melakukan peramalan terhadap data yang akan datang (Wiyanti amp Pulungan 2012) Data time series juga dapat didefinisikan sebagai sebuah kegiatan mengamati data statistik dimana terdapat korelasi (dependensi) antar datanya sehingga data yang sekarang sedang diamati memiliki ketergantungan dengan satu atau lebih data pengamatan sebelumnya (Mirawati et al 2013)
Terdapat dua teknik prediksi yang menggunakan basis data time series yaitu teknik model matematika statistik dan berdasarkan kecerdasan buatan (Wiyanti amp Pulungan 2012) Analisa time series sendiri memiliki beberapa peruntukan salah satunya digunakan dalam melakukan peramalan untuk masa yang akan datang Dalam penggunaan data time series merupakan salah satu proses peramalan kuantitatif dimana berdasar data kuantitatif masa lampau yang direpresentasikan dalam bentuk angka atau nilai (Mirawati et al 2013)
10
224 Logika Fuzzy
Pada tahun 1965 Prof Lotfi A Zadeh memperkenalkan teori logika fuzzy Logika fuzzy merupakan suatu komponen soft computing dan juga suatu cara yang tepat untuk memetakan suatu ruang input ke dalam ruang output Antara ruang input dan ruang output terdapat black box yang berfungsi memetakan input ke ruang output yang sesuai Dasar logika fuzzy adalah teori fuzzy set Pada teori fuzzy set peranan derajat keanggotaan sebagai penentu keberadaan elemen dalam suatu himpunan sangatlah penting Oleh karena itu derajat keanggotaan menjadi ciri utama dalam penalaran dengan logika fuzzy Logika fuzzy bekerja dengan menggunakan derajat keanggotan dari sebuah nilai yang kemudian digunakan untuk menentukan hasil yang ingin dihasilkan berdasarkan atas kriteria yang telah ditentukan (Kusumadewi 2003)
Berikut adalah beberapa alasan digunakannya logika fuzzy (Kusumadewi 2002)
1 Logika fuzzy sangat fleksibel
2 Konsep logika fuzzy mudah dimengerti dan dipahami
3 Logika fuzzy memiliki toleransi terhadap data ndash data yang homogen dan data ndash data yang kurang tepat
4 Logika fuzzy didasari pada bahasa alami atau bahasa sehari - hari sehingga mudah dimengerti
5 Logika fuzzy dapat bekerjasama dengan teknik ndash teknik kendali secara konvensional
6 Logika fuzzy mampu membangun dan mengaplikasikan pengalaman ndash pengalaman para pakar secara langsung tanpa harus melalui tahap atau proses pelatihan
A Himpunan Fuzzy
Himpunan fuzzy atau fuzzy set merupakan perluasan himpunan tegas atau himpunan crisp jadi fungsi karakteristik mencakup bilangan real pada interval [01] Dalam definisi lain himpunan fuzzy adalah suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dalam suatu variabel fuzzy Keanggotaan fuzzy berbeda dengan probabilitas jika keanggotaan fuzzy pada setiap fungsi karakteristik memberikan suatu pendapat atau keputusan sedangkan probabilitas menunjukan seberapa besar nilai kebenaran dalam fungsi karakteristik tersebut Contohnya yaitu nilai keanggotaan suatu himpunan fuzzy umur muda 09 berarti nilai dalam himpunan tersebut memiliki kemungkinan 90 anggotanya berumur muda dan 10 diharapkan tidak muda Dalam himpunan fuzzy suatu bilangan bisa memiliki dua keanggotaan sekaligus Himpunan fuzzy memiliki dua attribut (Kusumadewi2003)
11
1 Linguistik merupakan penamaan suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami misalnya muda parobaya tua
2 Numeris merupakan suatu nilai (angka) yang menunjukkan ukuran dari suatu
variabel seperti 402550 dan sebagainya
B Fungsi Keanggotaan
Fungsi keanggotaan adalah suatu kurva yang menunjukkan pemetaan titik ndash titik input data ke dalam derajat keanggotaannya yang memiliki subinterval antara 0 sampai 1 (Kusumadewi Purnomo 2004) Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi Ada beberapa fungsi keanggotaa yang dapat digunakan
1 Fungsi representasi linear
Pada fungsi representasi linear pemetaan input ke derajat keanggotaannya digambarkan sebagai suatu garis lurus Bentuk ini paling sederhana dan menjadi pilihan yang baik untuk mendekati suatu konsep yang kurang jelas Keadaan linear himpunan fuzzy terdiri dari dua keadaan yaitu keadaan linear naik dan keadaan linear turun Pada keadaan linear naik kenaikan himpunan dimulai pada nilai domain yang memiliki nilai derajat keanggotaan nol bergerak ke kanan menuju ke nilai domain yang memiliki derajat keanggotaan yang lebih tinggi seperti yang ditunjukkan Gambar 21 Persamaan fungsi keanggotaan pada representasi linear naik ditunjukkan oleh Persamaan 21
Fungsi Keanggotaan
120583(119909) = 0
(119909 minus 119886)(119887 minus 119886)1
119909 le 119886 119886 le 119909 le 119887119909 ge 119887
(21)
b a 0
1
Gambar 21 Representasi linear naik
Sumber Kusumadewi (2002)
120583(119909)
12
Pada keadaan linear turun berbanding terbalik dengan keadaan linear naik Garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi pada sisi kiri kemudian bergerak menurun ke nilai domain yang memiliki derajat keanggotaan lebih rendah yang ditunjukkan Gambar 22 Persamaan fungsi keanggotaan pada representasi linear turun ditunjukkan oleh Persamaan 22
Fungsi Keanggotaan
120583(119909) = (119887 minus 119909)(119887 minus 119886)0
119886 le 119909 le 119887
119909 ge 119887 (22)
2 Fungsi representasi kurva segitiga
Representasi kurva segitiga pada dasarnya merupakan gabungan antara 2 garis linear yaitu linear naik dan linear turun Fungsi representasi kurva segitiga ditandai oleh adanya tiga parameter abc yang akan menentukan koordinat x dari tiga sudut seperti ditunjukkan pada Gambar 23 Persamaan fungsi keanggotaan pada representasi kurva segitiga ditunjukkan oleh Persamaan 23
b a 0
1
Sumber Kusumadewi (2002)
Gambar 22 Representasi linear turun
120583(119909)
c a 0
1
b
Sumber Kusumadewi (2002)
Gambar 23 Representasi kurva segitiga
120583(119909)
13
Fungsi Keanggotaan
120583(119909) =
0 (119909 minus 119886)(119887 minus 119886) (119887 minus 119909)(119888 minus 119887)
119909 le 119886 119886119905119886119906 119909 ge 119888
119886 le 119909 le 119887 119887 le 119909 le 119888
(23)
225 Metode Fuzzy C-means
Fuzzy C-means (FCM) pertama kali diperkenalkan oleh Dunn dan dikembangkan oleh Bezdek yang banyak digunakan dalam pengenalan pola Metode ini merupakan pengembangan dari metode non-hierarkhi K-Means Cluster selanjutnya dilakukan iterasi sampai mendapatkan keanggotaan kelompok tersebut (Klawon 2001)
FCM merupakan salah satu algoritma fuzzy clustering dan juga teknik klasterisasi dimana tiap data ditentukan oleh derajat keanggotaanya Tujuan penggunaan algoritma FCM yaitu untuk menemukan pusat cluster atau centroid dengan meminimumkan fungsi objektif (Bazdek 1984) Ouput dari FCM bukan merupakan fuzzy inference system melainkan deretan pusat cluster dan beberapa derajat keanggotaan untuk setiap titik data Hasil output ini dapat digunakan untuk membangun suatu fuzzy inference system Berikut adalah langkah ndash langkah dari FCM (Kusumadewi 2004)
1 Langkah pertama menentukan jumlah cluster (c ge 2) pembobot (infin gt 119908 gt1) (Bazdek 1984) maksimum iterasi (maxIter) error minimum yang diharapkan yaitu nilai positif yang sangat kecil (120585) fungsi objektif awal (P0 = 0) iterasi awal dideklarasikan 1
2 Langkah kedua memasukkan data X yang akan diklasterisasi berupa matriks berukuran m x n (m = jumlah sampel data n = attribut setiap data) Contoh Xij = data sampel ke-i (i = 1234m) attribu ke-j (j=1234n)
3 Langkah ketiga yaitu dengan membuat bilangan random microik i = 1234n dan k = 123c (n = jumlah sampel pada data c = jumlah cluster yang akan dibentuk) sebagai elemen ndash elemen matriks partisi awal Untuk bilangan penyusun matriks partisi awal dihitung dihitung jumlahnya setiap kolom yang ditunjukkan pada pada Persamaan 24 (Kusumadewi 2004)
119876119896 = sum 120583119894119896119888119896=1 (24)
Dimana
119876119896 = jumlah bilangan pada kolom k
120583119894119896 = bilangan random pada baris i kolom k
119888 = jumlah kolom
14
Selanjutnya untuk menghitung derajat keanggotaan awal dengan melakukan normalisasi pada matiks partisi pada normalisasi dilakukan menggunakan Persamaan 25 (Kusumadewi 2004)
120583119894119896 = 120583119894119896119876119896 (25)
4 Langkah keempat melakukan perhitungan cluster ke-k Vkj dengan k = 1234c dan j = 1234m Perhitungan pusat cluster ditunjukkan pada Persamaan 26 (Kusumadewi 2004)
119881119896119895 = sum ((120583119894119896)119908 times 119883119894119895)119899
119894=1
sum (120583119894119896)119908119899119894=1
(26)
Dimana
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
120583119894119896 = derajat keanggotaan pada data ke-i cluster ke-k
119883119894119895 = data sampel pada data ke-i attribut ke-j
119908 = pembobot
5 Langkah kelima melakukan perhitungan fungsi objektif pada iterasi ke-t P1 Perhitungan fungsi objektif ditunjukkan pada Persamaan 27 (Kusumadewi 2004)
119875119905 = sum sum ([sum (119883119894119895 minus 119881119896119895)119898119895=1
2](120583119894119896)119908)119888
119896=1119899119894=1 (27)
Dimana
119875119905 = fungsi objektif
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
6 Langkah keenam melakukan perhitungan perbaikan matriks partisi yang telah ditunjukkan Persamaan 28 (Kusumadewi 2004)
120583119894119896 = [sum (119883119894119895minus119881119896119895)119898
119895=12
]
minus1119908minus1
sum [sum (119883119894119895minus119881119896119895)119898119895=1
2]
minus1119908minus1119888
119896minus1
(28)
Dimana
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
119908 = pembobot
7 Langkah ketujuh yaitu melakukan pemerikasaan kondisi berhenti dengan kondisi sebagai berikut
a Jika (|119875119905 minus 119875119905minus1| lt 120585) atau ( t gt MaxIter) maka berhenti
b Jika tidak memenuhi t = t +1 ulangi mulai dari langkah ke-4
15
226 Metode Peramalan dengan Fuzzy Time Series
Pada tahun 1996 Chen memperkenalkan metode peramalan dengan menggunakan metode Fuzzy Time Series Metode Fuzzy Time Series memiliki perbedaan dengan metode peramalan time series biasa atau konvensional yaitu terdapat pada data yang digunakan untuk peramalan Fuzzy Time Series data yang digunakan adalah berupa fuzzy set atau himpunan fuzzy dari bilangan ndash bilangan real atas himpunan semesta yang ditentukan Jadi Fuzzy Time Series merupakan metode dengan menggunakan data berupa fuzzy set yang berasal dari bilangan real atas Universe of Discorse pada data aktual Universe of Discourse adalah himpunan semesta dari data penelitian
Berikut adalah langkah ndash langkah metode Fuzzy Time Series yang telah diperkenalkan oleh Chen terdapat enam langkah yaitu
1 Langkah pertama yaitu membagi Universe of Discourse dari bilangan aktual ke dalam subinterval dengan jumlah interval yang sama Perhitungan Universe of Discourse ditunjukkan pada Persamaan 29 (Chen 1996)
119880 = [119863119898119894119899 minus 1198631 119863119898119886119909 + 1198632] (29)
Dimana
119880 = Universe of Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
1198631 dan 1198632 = bilangan positif yang ditentukan oleh user untuk menentukan Universe of Discourse dari himpunan data sampel
2 Langkah kedua adalah mendefinisikan fuzzy set dari Universe of Discourse (U) menjadikan A1 A2 A3 An ke dalam fuzzy set dengan nilai linguistik sesuai dengan keadaan U Selanjutnya mendefinisikan fuzzy set tersebut ditunjukkan pada Persamaan 210 (Chen 1996)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (210)
1198602 =11989121
1199061+
11989122
1199062+
11989123
1199063+ ⋯ +
1198912119896
119906119896
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
Dimana 119891119894119895120598 [01] 1 le 119894 le 119896 dan 1 le 119895 le 119898 Variabel 119891119894119895 menunjukkan
derajat keanggotaan dari subinterval 119906119895 dari fuzzy set 1198601 Pada konsep ini
Chen menggunakan nilai linguistik 1198601 = (not many) 1198602 = (not too many) 1198603= (many) 1198604 = (many many) 1198605 = (very many) 1198606 = (too many) 1198607= (too many many) Kemudian nilai linguistik tersebut dimasukkan ke tiap fuzzy set Dari U tersebut dapat dibangun fuzzy set sebagai berikut
16
1198601 = 1
1199061+
05
1199062+
0
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198602 = 05
1199061+
1
1199062+
05
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198603 = 0
1199061+
05
1199062+
1
1199063+
05
1199064+
0
1199065+
0
1199066+
0
1199067
1198604 = 0
1199061+
0
1199062+
05
1199063+
1
1199064+
05
1199065+
0
1199066+
0
1199067
1198605 = 0
1199061+
0
1199062+
0
1199063+
05
1199064+
1
1199065+
05
1199066+
0
1199067
1198606 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
05
1199065+
1
1199066+
05
1199067
1198607 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
0
1199065+
05
1199066+
1
1199067
3 Langkah ketiga yaitu melakukan fuzzifikasi data historis proses fuzzifikasi merupakan proses merubah data aktual yang merupakan bilangan crisp ke dalam bentuk bilangan fuzzy Bilangan fuzzy yang dimaksudkan adalah dalam bentuk derajat keanggotaan Dari beberapa derajat keanggotaan yang terbentuk kemudian dipilih satu fuzzy set yang memiliki derajat keanggotaan teringgi Fuzzifikasi dinotasikan sebagai berikut jika F(t-1) berada pada fuzzy set Ak maka F(t-1) difuzzifikasikan sebagai Ak
4 Langkah keempat adalah mengidentifikasi Fuzzy Logic Relationship (FLR) FLR diidentifikasikan sebagai Ai dan F(t) difuzzifikasikan sebagai Ai rarr Aj Ai sebagai sisi kiri relationship disebut sebagai current state dan Aj sebagai sisi kanan relationship disebut next state Jika terjadi perulangan relationship maka tetap dihitung satu kali
5 Langkah kelima yaitu mengelompokkan menjadi Fuzzy Logical Relationship Group (FLRG) FLRG dibangun berdasarkan sisi kiri (current state) yang sama
6 Langkah terakhir yaitu langkah keenam adalah melakukan defuzzifikasi nilai keluaran peramalan Defuzzifikasi adalah mengubah nilai keluaran fuzzy menjadi bilangan crisp kembali sehingga diperoleh hasil akhir peramalan Defuzzifikasi didasarkan pada tiga (3) rule aturan yaitu (Chen 1996)
I Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai hanya memiliki satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj dimana nilai maksimum fungsi keanggotaanya berada pada 119906119895 maka nilai peramalan untuk n+1 adalah
nilai tengah dari 119906119895 atau didefinisikan dengan 119898119895
II Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai memiliki lebih dari satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj1 Aj2 Ajp Dimana nilai tengah untuk masing ndash masing Aj1 Aj2 Aj3 Ajp adalah mj1 mj2 mj3 mjp
maka nilai peramalan untuk n+1 adalah (mj1 mj2 mj3 mjp) p
III Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai tidak memiliki FLR pada FLRG dimana nilai maksimum fungsi keanggotaannya berada pada 119906119895
17
maka nilai peramalan untuk n+1 adalah nilai tengah dari 119906119895 atau
didefinisikan dengan 119898119895
227 Metode High Order Fuzzy Time Series Multi Factors
Metode High Order Fuzzy Time Series Multi Factors adalah metode Fuzzy Time Series (FTS) yang melibatkan beberapa faktor yang mempengaruhi peramalan dengan berdasarkan beberapa periode waktu sebelum periode yang akan diramalkan dalam proses pembentukkan Fuzzy Logical Relationship (FLR) Hasil peramalan dengan banyak faktor yang mempengaruhi dinilai lebih baik dari pada dengan hanya satu faktor yang mempengaruhi (LinYang 2009) Pada metode ini pembentukkan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan teknik klasterisasi fuzzy C-means Berikut adalah langkah ndash langkah Metode High Order Fuzzy Time Series Multi Factors (LinYang 2009)
1 Langkah pertama adalah melakukan perhitungan Universe of Discourse (U) Sebelum menghitung nilai U terlebih dulu menghitung nilai mean (rata ndash rata) sampel lalu menghitung nilai standar deviasi (120590) Mean merupakan perhitungan jumlah dari semua nilai dalam kumpulan data kemudian dibagi dengan jumlah total data untuk menghitung nilai mean ditunjukkan pada Persamaan 211 (Weisstein 2015) Standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel untuk menghitung nilai standar deviasi (120590) ditunjukkan pada Persamaan 212 (Weisstein 2015) Perhitungan U ditunjukkan pada Persamaan 213 (LinYang 2009)
119909 =sum 119909119894
119899119894=1
119899 (211)
Dimana
= mean (rata ndash rata)
119909119894 = nilai data ke-i
119899 = banyak data
120590 = radicsum (119909119894minus ) 2119899
119894=1
119899minus1 (212)
Dimana
120590 = Standar deviasi data
119880 = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590] (213)
Dimana
119880 = Universal 0f Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
18
2 Langkah kedua yaitu menentukan jumlah cluster data Proses klasterisasi bertujuan untuk membagi U kedalam beberapa subinterval Hasil perhitungan banyaknya cluster apabila bernilai pecahan maka harus dibulatkan menjadi bilangan bulat Perhitungan banyaknya cluster ditunjukkan pada Persamaan 214 (LinYang 2009)
119896 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905)minus119883(119905minus1)|119899
119905=1
119899minus1| (214)
Dimana
119896 = banyaknya jumlah cluster
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
119899 = banyaknya data sampel
119883(119905) = data pada waktu ke-t
3 Langkah ketiga yaitu melakukan pembentukan pusat cluster Pada metode ini proses klasterisasi data menggunakan fuzzy C-means (FCM) untuk mendapatkan pusat cluster sebanyak k Tahapannya U dibagi kedalam k subinterval (119863119898119894119899 1198891) (1198891 1198892) (1198892 1198893) hellip (119889119896minus1 119863119898119886119909) dimana di (i = 123k-1) merupakan titik tengah antara dua pusat cluster k subinterval didefinisikan sebagai 1199061 1199062 1199063 hellip 119906119896 Sehingga dalam hal ini subinterval
dengan panjang berbeda dapat menggambarkan struktur data kompleks dengan baik dan dapat meningkatkan peramalan dibandingkan menggunakan subinterval dengan panjang yang sama (LinYang 2009)
4 Langkah keempat yaitu melakukan pembentukan himpunan fuzzy atau fuzzy set Pada langkah ini fuzzy set direpresentasikan dengan kurva bahu Pembentukkan fuzy set ditunjukkan pada Persamaan 215 (LinYang 2009)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (215)
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
5 Langkah kelima yaitu proses fuzzifikasi Proses fuzzifikasi bertujuan untuk mengubah data sampel yang masih berupa bilangan crisp sehingga menjadi bilangan fuzzy Masing ndash masing data dihitung derajat keanggotaannya terhadap fuzzy set yang sudah terbentuk selajutnya derajat kanggotaan dihitung berdasarkan kurva bahu dan derajat keanggotaan tertinggi menunjukkan hasil fuzzifikasi data tersebut Contohnya A(t) B(t) C(t) dan D(t) dimana t= 123n merupakan time series dari faktor yang mempengaruhi serta n merupakan banyaknya data Berdasarkan pembagian subinterval masing ndash masing time series ini difuzzifikasikan Misalkan hasil dari Persamaan 215 yaitu menghitung banyak cluster dari k1 k2 k3 k4 Jadi time series difuzzifikasikan menjadi empat fuzzy time series yaitu
19
A(ti) dimana i = 1234k1
B(tj) dimana j = 1234k2
C(tp) dimana p = 1234k3
D(tq) dimana q = 1234k4 t = 123n
6 Langkah keenam yaitu melakukan pembentukkan Fuzzy Logical relationship (FLR) Data sampel sebanyak n periode dipilih sebagai data training untuk membentuk fuzzy time series model Misalkan t merupakan periode waktu yang akan diramal dengan menggunakan order ndash 3 maka tiga periode sebelum periode t adalah t-3 t-2 dan t-1 dimana t = 456n Maka FLR yang dihasilkan ditunjukkan pada Persamaan 216 dan berdasarkan persamaan tersebut maka akan membentuk sebuah kumpulan FLR dari data training (LinYang 2009)
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023)) (216)
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
Tabel 22 Fuzzy Logic Relationship
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023))
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
(119860(119905minus21198943) 119861(119905minus21198953) 119862(119905minus21199013) 119863(119905minus21199023))
(119860(119905minus11198942) 119861(119905minus11198952) 119862(119905minus11199012) 119863(119905minus21199022))
(119860(1199051198941) 119861(1199051198951) 119862(1199051199011) 119863(1199051199021)) rarr 119860(119905+11198944)
(119860(119905+119899minus71198943) 119861(119905+119899minus71198953) 119862(119905+119899minus71199013) 119863(119905+119899minus71199023))
(119860(119905+119899minus61198942) 119861(119905+119899minus61198952) 119862(119905+119899minus61199012) 119863(119905+119899minus61199022))
(119860(119905+119899minus51198941) 119861(119905+119899minus51198951) 119862(119905+119899minus51199011) 119863(119905+119899minus51199021)) rarr 119860(119905+119899minus41198944)
Sumber (LinYang 2009)
7 Langkah terakhir adalah proses Defuzzifikasi Berdasarkan langkah sebelumnya maka dapat diambil hasil fuzzy ke- H yaitu yang digunakan sebagai data testing atau data uji seperti yang ditunjukkan pada Persamaan 217 (LinYang 2009)
(119860(119867minus31198943) 119861(119867minus31198953) 119862(119867minus31199013) 119863(119867minus31199023)) (217)
(119860(119867minus21198942) 119861(119867minus21198952) 119862(119867minus21199012) 119863(119867minus21199022))
(119860(119867minus11198941) 119861(119867minus11198951) 119862(119867minus11199011) 119863(119867minus11199021)) rarr 119860(1198671198944)
20
Faktor ndash faktor di ruas kiri pada Persaman 217 dibandingkan satu per satu dengan FLR data training yang sudah dicatat sebelumnya pada Tabel 22 membandingkannya yaitu dengan cara menghitung nilai absolut dari selisih antara pangkat bawah kedua faktor pada posisi yang sama di FLR Terdapat 12 fuzzy set di ruas kiri pada masing ndash masing FLR sehingga dari hasil perbandingan diperoleh 12 nilai absolut yang kemudian dijumlahkan untuk mendapat total selisihnya Jadi jika total selisih lebih kecil dari threshold yang ditentukan maka FLR tersebut dinyatakan cocok (LinYang 2009)
Selanjutnya jika FLR menemukan N pasangan yang cocok pada Tabel 22 maka N faktor di ruas kanan dari N FLR ini mendasari peramalan fuzzy set A() yang mana jumlah dari setiap fuzzy set pada umumnya berbeda Untuk peramalan dengan fuzzy set ditunjukkan pada Tabel 23 (LinYang 2009)
Tabel 23 Peramalan fuzzy set
Ruas Kanan A(1) A(2) A(3) A(k1)
Pusat cluster c1 c2 c3 ck1
Frekuensi f1 f2 f3 fk1
Sumber (Lin Yang 2009)
Berdasarkan Tabel 23 dengan menggunakan metode centroid untuk melakukan proses defuzzifikasi Proses defuzzifikasi dapat ditunjukkan pada Persamaan 218 (LinYang 2009)
119903119867 =sum 119888119894times 119891119894
1198961119894=1
sum 119891119894119896119894119894=1
(218)
Dimana
119903119867 = hasil (result) peramalan data ke-H
119888119894 = pusat cluster i dimana A(i) adalah ruas kanan dari FLR hasil proses pencocokan
119891119894 = frekuensi banyaknya muncul A(i) pada saat proses pencocokan
228 Perhitungan keakuratan metode peramalan
Dalam perencanaan peramalan tentu menginginkan hasil ramalan yang tepat atau paling tidak hampir mendekati sehingga rencana yang dibuat menjadi rencana yang realistis Keakuratan atau ketepatan merupakan yang menjadi kriteria performance suatu metode peramalan Keakuratan tersebut dapat dinyatakan sebagai kesalahan peramalan (forecast error) Semaikin kecil nilai kesalahan peramalan maka semaikin tinggi keakuratan metode peramalan yang digunakan dan sebaliknya semakin tinggi nilai kesalahan maka semakin rendah keakuratan metode peramalan yang digunakan
Mean Square Error (MSE) adalah salah satu metode yang digunakan untuk menghitung nilai akurasi atau keakuratan dari metode yang digunakan sebagai peramalan atau prediksi MSE merupakan perhitungan pangkat dua dari selisih
21
antara nilai data hasil peramalan dengan nilai data aktual dan kemudian dibagi dengan banyaknya data yang telah diramalkan Pada penentuan nilai evaluasi memilih menggunakan metode MSE karena metode ini dapat menunjukan hasil skala kemiripan antara hasil data peramalan dengan data aktual Berikut merupakan metode Mean Square Error (MSE) yang ditunjukan pada Persamaan 219 (Wang Chen 2009)
119872119878119864 = sum (119865119905minus119860119905)2119899
119894=1
119899 (219)
Dimana 119872119878119864 = nilai Mean Square Error Rate 119860119905 = nilai aktual pada data ke-t 119865119905 = nilai hasil peramalan untuk data ke-t n = banyaknya data
22
BAB 3 METODOLOGI
Pada bab ini akan dibahas mengenai metode yang digunakan beserta tahap ndash tahap pengerjaan penelitian skripsi dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Penilitian ini digolongkan sebagai penelitian implementatif dengan pendekatan perancangan (design)
Metode penelitian ini meliputi studi literatur pengumpulan data perancangan implementasi pengujian dan analisis pengambilan kesimpulan Berikut adalah alur dari metode penelitian dapat ditunjukkan pada Gambar 31
31 Studi Literatur
Pada tahap studi literatur penelitian ini bertujuan untuk mempelajari literatur dan konsep dari beberapa informasi dan pustaka yang berkaitan dengan penelitian ini Literatur dan sumber ilmu dari penelitian ini diperoleh dari internet buku dan bimbingan oleh dosen pembimbing Adapun literatur yang dipelajari yaitu tentang curah hujan serta faktor ndash faktor yang mempengaruhinya dan metode High Order Fuzzy Time Series Multi Factors
Studi Literatur
Pengumpulan Data
Perancangan
Implementasi
Pengujian dan Analisis
Kesimpulan dan Saran
Gambar 31 Diagram blok metodologi penelitian
23
32 Pengumpulan Data
Pada tahap pengumpulan penelitian ini sumber data yang diperoleh yaitu dari Badan Meteorologi Klimatologi dan Geofisikia (BMKG) Stasiun Klimatologi Kelas III Karangkates Kabupaten Malang Data yang diperoleh untuk peramalan curah hujan yaitu data aktual time series (2011 - 2016) Data yang digunakan dalam bentuk dasarian yaitu dalam rentang waktu sepuluh hari sehingga dalam satu bulan dibagi menjadi tiga dasarian
Dasarian pertama yaitu pada tanggal 1 sampai dengan 10
Dasarian kedua yaitu pada tanggal 11 sampai dengan 20
Dasarian ketiga yaitu pada tanggal 21 sampai dengan akhir bulan
Pada penelitian ini data curah hujan dalam satuan milimeter (mm) kelembaban dalam persen () suhu udara dalam satuan celsius (˚C) kecepatan angin dalam satuan kilometer per jam (kmjam)
33 Perancangan
Pada tahap perancangan penelitian ini bertujuan untuk mengetahui rancangan ndash rancangan yang merupakan langkah yang dilakukan saat melakukan tahap implementasi Pada tahap ini terdapat beberapa perancangan yaitu perancangan proses yang berisi tahapan ndash tahapan proses metode High Order Fuzzy Time Series Multi Factors perhitungan manual yang merupakan manualisasi dari metode yang digunakan pada penelitian ini perancangan antar muka atau user interface yang berisi gambaran kasar dari tampilan antar muka prototype aplikasi yang nantinya diterapkan pada tahap implementasi selanjutnya adalah perancangan pengujian yang berisi rancangan ndash rancangan pengujian metode yang digunakan untuk mengetahui berapa tingkat kesalahan atau error yang dimiliki metode pada penelitian ini dalam melakukan peramalan curah hujan
34 Implementasi
Pada tahap implementasi peneltian ini dilakukan sesuai dengan perancangan yang telah dibuat pada tahapan perancangan sebelumnya Implementasi dari metode High Order Fuzzy Time Series Multi Factors dilakukan menggunakan bahasa pemrograman java serta Integrated Development Environment (IDE) yang digunakan adalah Netbeans Sehingga nantinya hasil dari tahap ini berupa prototype aplikasi dari implementasi metode High Order Fuzzy Time Series Multi Factors untuk peramalan curah hujan
35 Pengujian dan Analisis
Pada tahapan penelitian pengujian ini diperlukan perangkat lunak dan perangkat keras agar pengujian dari hasil implementasi dapat berjalan dengan baik maka pengujian perangkat lunak dijalankan pada laptop ataupun PC (Personal Computer) dengan spesifikasi sebagai berikut
24
1 Prosesor Intel Core i3
2 Memory RAM 8 Gigabytes
3 Sistem Operasi menggunakan Windows 7 64bit
4 Hardisk dengan kapasitas 500 GB
5 Netbeans 81 JDK 7
Pengujian hasil peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors yaitu menggunakan metode Mean Square Error (MSE) Dimana rumus pengujian sesuai dengan Persamaan 219 Dalam pengujian menggunakan metode ini semakin kecil nilai MSE maka semakin tinggi tingkat akurasi hasil peramalan tersebut Pada penelitian ini untuk keperluan pengujian dari proses implementasi dilakukan empat pengujian yaitu pengujian terhadap perbedaan nilai order pengujian terhadap perbedaan nilai threshold pengujian terhadap data training untuk mengetahui pengaruhnya terhadap nilai MSE dan pengujian validasi sistem untuk mengetahui bahwa hasil implementasi metode High Order Fuzzy Time Series Multi Factors dapat melakukan peramalan
36 Kesimpulan dan Saran
Pada pengambilan kesimpulan akan dilakukan apabila semua tahapan ndash tahapan penelitian sudah dilakukan yaitu yang meliputi perancangan implementasi dan pengujian dan analisis telah selesai dilakukan Kesimpulan merupakan tahapan dimana semua rumusan masalah yang sudah ditetapkan sebelumnya dapat terjawab semua Selanjutnya pada saran merupakan berkenaan dengan hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
25
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan yang nantinya digunakan sebagai dasar dalam tahap implementasi Hal yang dibahas meliputi perancangan proses perhitungan manual perancangan pengujian dan perancangan antar muka
41 Perancangan Proses
Pada perancangan proses ini berisi mengenai tahapan ndash tahapan dari metode yang digunakan yaitu metode High Order Fuzzy Time Series Multi Factors Pada penelitian ini melibatkan faktor ndash faktor yang mempengaruhi curah hujan yaitu suhu udara kelembaban udara dan kecepatan angin Data time series dari curah hujan merupakan faktor utama dalam proses peramalan pada penelitian ini Inputan pada peneltian ini yaitu data time series curah hujan serta faktor ndash faktor yang mempengaruhinya Order yang digunakan pada metode ini merupakan order lebih dari satu oleh karena itu disebut dengan High Order Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Berikut merupakan diagram alir dari proses peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors yang ditunjukkan pada Gambar 41 dan Gambar 42
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1)
Mulai
Data curah hujan suhu kelembaban kecepatan angin jmlh_Banyakdata jmlh_Faktor
Universe_of_Discourse
A
Jumlah_Cluster
26
411 Proses perhitungan Universe of Discourse
Pada perhitungan Universe of Discourse harus sudah dilakukan inputan data agar dapat memulai tahapan perhitungan Tahapan dari proses perhitungannya yaitu pada langkah pertama dilakukan perhitungan nilai mean (rata ndash rata) sesuai dengan Persamaan 211 Setelah mendapatkan nilai mean dapat dilakukan perhitungan untuk mencari nilai standar deviasi sesuai dengan Persamaan 212 Selanjutnya dicari nilai terkecil (119863119898119894119899) dan nilai terbesar (119863119898119886119909) Setelah menyelesaikan tahap ndash tahap tersebut dapat dilakukan perhitungan untuk
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2)
A
Perhitungan Pusat Cluster
Fuzzifikasi
Pembentukan Fuzzy Logical Relationship
Defuzzifikasi
Nilai hasil peramalan
Berhenti
Pembentukan Subinterval dan Fuzzy set
27
mencari Universe of Discourse sesuai dengan Persamaan 213 Berikut merupakan diagram alir dari proses perhitungan Universe of Discourse yang ditunjukkan pada Gambar 43
Perhitungan Universe of Discourse
Mulai
Min_dan_Max
mean
standar_deviasi
for i = 0 to jmlh_Faktor-1
i
hsl_uMin ke i = hsl_min ke i ndash hsl_stdev ke i
hsl_uMax ke i = hsl_max ke i + hsl_stdev ke i
hsl_uMin hsl_uMax
Berhenti
Gambar 43 Diagram alir proses perhitungan Universe of Discourse
28
4111 Proses perhitungan Mean
Pada proses perhitungan mean merupakan nilai rata ndash rata dari setiap faktor dimana nilai mean ini nantinya dibutuhkan untuk melakukan proses perhitungan standar deviasi Berikut merupakan diagram alir dari proses perhitungan mean yang ditunjukkan pada Gambar 44
mean
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
tmp_jmlh = 0
tmp_jmlh = tmp_jmlh + data ke ij
j
hsl_mean ke i = tmp_jmlhjmlh_DataTraining
i
hsl_mean
Berhenti
Gambar 44 Diagram alir proses perhitungan mean
29
4112 Proses perhitungan standar deviasi
Pada proses perhitungan standar deviasi dapat dilakukan setelah mendapatkan nilai mean dari setiap data sesuai proses sebelumnya Berikut merupakan diagram alir dari proses perhitungan standar deviasi yang ditunjukkan pada Gambar 45
standar_deviasi
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
result = 0
result = result + (data ke ij ndash mean ke i)2
j
hsl_stdev ke i = radicresult
jmlh_DataTrainingminus1
i
hsl_stdev
Berhenti
Gambar 45 Diagram alir proses perhitungan standar deviasi
30
4113 Proses perhitungan nilai Dmin dan Dmax
Pada proses perhitungan ini merupakan proses perhitungan untuk mencari nilai terkecil dan terbesar dari setiap faktor data Setelah mendapat nilai terkecil dan terbesar maka data dilakukan proses perhitungan Universe of Discourse Berikut merupakan diagran alir dari proses perhitungan nilai Dmin dan Dmax yang ditunjukkan pada Gambar 46
Gambar 46 Diagram alir perhitungan nilai Min dan Max
ya
ya
tidak
tidak
Min_dan_Max
Mulai
for i = 0 to jmlh_Faktor-1
besar = data ke i0
kecil = data ke i0
for j=0 to jmlh_DataTraining
data ke ij gt besar
besar = data ke ij
data ke ij lt kecil
kecil = data ke ij
j
hsl_max ke i = besar
hsl_min ke i = kecil
i
hsl_max hsl_min
Berhenti 1
1
2
2
3
4
4
5
5
3
31
412 Proses perhitungan jumlah cluster
Pada proses perhitungan jumlah cluster memiliki masukkan proses Dmin dan Dmax
dari proses perhitungan sebelumnya Pada proses ini terdapat perhitungan nilai dari selisih setiap data Pada perhitungan jumlah cluster sesuai dengan Persamaan 214 Berikut merupakan langkah ndash langkah perhitungan jumlah cluster yang ditunjukkan pada Gambar 47
jumlah_Cluster
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to (jmlh_DataTraining-1)
Berhenti
hsl_max hsl_min
selisih = 0
selisih = selisih + |data ke ij ndash data ke i (j+1)|
j
jmlh_Cluster ke i = |ℎ119904119897_119898119894119899 119896119890 119894minusℎ119904119897_119898119886119909 119896119890 119894|
119904119890119897119894119904119894ℎ
119895119898119897ℎ_119863119886119905119886119879119903119886119894119899119894119899119892minus1
i
jmlh_Cluster
Gambar 47 Diagram alir proses perhitungan jumlah cluster
32
413 Proses perhitungan pusat cluster
Pada proses perhitungan pusat cluster ini diperlukan beberapa variabel yang harus dideklarasikan terlebih dahulu yaitu nilai bobot fungsi objektif nilai iterasi awal nilai iterasi maksimum dan error terkecil Perhitungan subinterval ini menggunakan metode fuzzy C-means yang diawali dengan pencarian pusat cluster terlebih dahulu Berikut merupakan langkah ndash langkah perhitungan subinterval yang ditunjukkan pada Gambar 48 Gambar 49 Gambar 410 Gambar 411 Gambar 412
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1)
Perhitungan pusat cluster
Mulai
jmlh_Cluster
for i = 0 to jmlh_Faktor-1
Deklarasi bobot selisih_f_objektif
iter_maksimum error_min
Pembentukan Matriks partisi faktor A jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor A
for iter = iter to iter_maksimum
A
i == 0
Perhitungan pusat_cluster1 faktor A
B C D
tidak
ya
33
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2)
ya
tidak
tidak
ya
Perhitungan f_objektif faktor A
A B C D
Perhitungan selisih_f_objektif faktor A
Perbaikan matriks partisi faktor A
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster1 faktor A
Iter = iter_maksimum
iter
i == 1
Pembentukan Matriks partisi faktor B jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor B
for iter = iter to iter_maksimum
F A G E
34
tidak
tidak
ya
A E F G
Perhitungan pusat_cluster2 faktor B
Perhitungan f_objektif faktor B
Perhitungan selisih_f_objektif faktor B
Perbaikan matriks partisi faktor B
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster2 faktor B
Iter = iter_maksimum
iter
i == 2
Pembentukan Matriks partisi faktor C jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor C
I A H
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3)
ya
35
tidak
tidak
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4)
ya
A H I
for iter = iter to iter_maksimum
Perhitungan pusat_cluster3 faktor C
Perhitungan f_objektif faktor C
Perhitungan selisih_f_objektif faktor C
Perbaikan matriks partisi faktor C
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster3 faktor C
Iter = iter_maksimum
iter
i == 3
Pembentukan Matriks partisi faktor D jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor D
J A K
ya
36
tidak
ya
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5)
A K J
for iter = iter to iter_maksimum
Perhitungan pusat_cluster4 faktor D
Perhitungan f_objektif faktor D
Perhitungan selisih_f_objektif faktor D
Perbaikan matriks partisi faktor D
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster4 faktor D
Iter = iter_maksimum
iter
i
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
Berhenti
37
tidak
ya
tidak
ya
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1)
414 Proses pembentukan subinterval dan Fuzzy set
Pada proses pembentukan fuzzy set atau himpunan fuzzy pada penelitian ini dapat dilakukan setelah perhitungan subinterval selesai dilakukan Nilai subniterval merupakan masukan utama pada pembentukkan fuzzy set Pembentukan fuzzy sesuai dengan Persamaan 215 Berikut merupakan langkah ndash langkah proses pembentukan fuzzy set yang ditunjukkan pada Gambar 413 dan Gambar 414
Pembentukan subinteval dan Fuzzy set
Mulai
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
for i = 0 to jmlh_Faktor-1
Menentukan batas_subintervalMinA dan
batas_subintervalMaxA
Menentukan batas_fuzzysetMinA dan batas_fuzzysetMaxA
i == 0
i == 1
Menentukan batas_subintervalMinB dan
batas_subintervalMaxB
Menentukan batas_fuzzysetMinB dan batas_fuzzysetMaxB
A C B
38
tidak
tidak
ya
ya
415 Proses Fuzzifikasi
Pada proses fuzzifikasi ini pembentukanya sesuai derajat keanggotaan pada setiap data Pada proses ini derajat keanggotaan dihitung berdassarkan fungsi keanggotaan kurva bahu Hasil dari proses ini merupakan data yang sudah difuzzifikasikan menjadi data fuzzy Berikut langkah ndash langkah dari proses fuzzifikasi ditunjukkan pada Gambar 415 dan Gambar 416
i == 2
A B C
Menentukan batas_subintervalMinC dan batas_subintervalMaxC
Menentukan batas_fuzzysetMinC dan batas_fuzzysetMaxC
i == 3
Menentukan batas_subintervalMinD dan batas_subintervalMaxD
Menentukan batas_fuzzysetMinD dan batas_fuzzysetMaxD
i
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
Berhenti
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2)
39
tidak
ya
ya
tidak
Fuzzifikasi
Mulai
for i = 0 to jmlh_Faktor-1
Menentukan hasil_fuzzifikasiA dari faktor A
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinA batas_fuzzysetMaxA
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1)
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
DD
i == 0
i == 1
Menentukan hasil_fuzzifikasiB
dari faktor B
Menghitung derajat keanggotaan
berdasarkan batas_fuzzysetMinB
batas_fuzzysetMaxB
C A B
40
tidak
ya
ya
tidak
ya
i == 2
A B C
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinC batas_fuzzysetMaxC
Menentukan hasil_fuzzifikasiC dari faktor C
i == 3
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinD
batas_fuzzysetMaxD
Menentukan hasil_fuzzifikasiD dari faktor D
i
hasil_fuzzifikasiA hasil_fuzzifikasiB hasil_fuzzifikasiC hasil_fuzzifikasiD
Berhenti
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2)
41
tidak
ya
416 Proses pembentukan Fuzzy Logical Relationship
Setelah data melalui proses fuzzifikasi dan sudah menjadi data fuzzy maka dapat dilakukan pembentukan Fuzzy Logical Relationship (FLR) Pembentukan FLR dilakukan sesuai dengan Persamaan 216Berikut adalah langkah ndash langkah proses pembentukan Fuzzy Logical Relationship (FLR) yang ditunjukkan pada Gambar 417 Gambar 418 dan Gambar 419
Gambar 417 Diagram alir proses Pembentukan FLR
(bagian 1)
Pembentukan Fuzzy Logical Relationship
Mulai
hasil_fuzzifikasiAhasil_fuzzifikasiB hasil_fuzzifikasiChasil_fuzzifikasiD order
for i = 0 to jmlh_dataTraining
max_inc = order jmlh_dataTraining = dataTraining - order
for j = i to max_inc
for k = 0 to jmlh_Faktor-1
j == 0
FLR_kiri_training ke ijk = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D)
ke j
E A B C D
42
ya
tidak
ya
tidak
A B C E D
FLR_kiri_training ke i(j-i)k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
j = 0
k
j
FLR_kanan_training ke i = hasil_fuzzifikasiA ke (i+order)
Max_inc lt (jmlh_DataTraining-1)
i
tmp_JmlhDatatraining = tmp_JmlhDatatraining +1
max_inc = max_inc + 1 tmp_JmlhDatatraining = i
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2)
for j = 0 to tmp_JmlhDatatraining
for j = tmp_JmlhDatatraining to max_inc
for k = 0 to jmlh_Faktor-1
I H G F
43
tidak
ya
417 Proses Defuzzifikasi
Proses defuzzifikasi merupakan proses akhir dimana keluaran dari proses ini merupakan nilai hasil peramalan Data yang diperlukan pada proses defuzzifikasi adalah hasil dari proses pembentukan Fuzzy Logical Relationship (FLR) nilai threshold yang harus dideklarasikan sebelumnya jumlah data training dan jumlah data testing Dalam proses ini dilakukan perhitungan selisih pada FLR antara data testing dan data training FLR yang dihitung nilai selisihnya adalah FLR pangkat bawah yang terdapat pada ruas kiri Setelah dilakukan perhitungan selisih dan total jumlah selisih lebih kecil dari nilai threshold maka pada setiap FLR yang
I H G F
FLR_kiri_testing ke i(j-tmp_jmlhDatatraining) k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
k
j
FLR_kanan_testing ke i = hasil_fuzzifikasiA ke (i+order)
i
Max_inc lt (jmlh_DataTraining-1)
max_inc = max_inc + 1 tmp_JmlhDatatraining++
FLR_kiri_training FLR_kanan_training FLR_kiri_testing FLR_kanan_testing
Mulai
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3)
44
ya
tidak
sesuai dengan kondisi tersebut dapat dikatakan cocok atau dapat dilakukan ke tahap perhitungan selanjutnya Setelah mendapatkan FLR yang cocok maka dilakukan pengelompokkan berdasarkan FLR ruas kanan Pengelompokkan ini dihitung jumlah frekuensi yang sama sesuai dengan fuzzy set di ruas kanan Selanjutnya untuk memperoleh hasil peramalan dilakukan proses perhitungan sesuai dengan Persamaan 218 Berikut adalah langkah ndash langkah proses defuzzifikasi yang ditunjukkan pada Gambar 420 dan Gambar 421
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1)
Defuzzifikasi
Mulai
FLR_kiri FLR_kanan order dataTraining dataTesting konstanta
threshold = (jmlh_Faktor x order)+konstanta
for i = 0 to dataTesting
for j = 0 to (dataTraining-i)
Perhitungan hitung_selisih antara FLR_kiri data training dan data testing
hitung_selisih lt threshold
match ke ij = hitung_selisih
j
i
A
45
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2)
A
Menghitung jumlah total FLR_kiri yang cocok untuk setiap data testing
Mencocokan FLR_kiri yang cocok dengan FLR_kanan untuk setiap data testing
for i = 0 to dataTesting
Menghitung frekuensi setiap FLR_kanan yang cocok untuk setap data testing
for j = 0 to jumlah total FLR kiri yang cocok
peramalan = peramalan + Frekuensi setiap FLR_kanan yang cocok x pusat_cluster1
sesuai dengan value FLR_kanannya
j
hasil_peramlan ke i = peramalan jumlah total FLR kiri yang cocok
i
Hasil_permalan
Berhenti
46
42 Perhitungan Manual
Dalam perhitungan manual ini data sampel yang digunakan merupakan data time series dasarian ke-2 pada periode April 2014 sampai dengan dasarian ke-2 Juli 2014 data sampel ditunjukkan pada Tabel 41
Tabel 41 Data Sampel Perhitungan Manual
No Dasarian Curah Hujan
(A)
Suhu (B) Kelembaban (C)
Kecepatan Angin(D)
1 Dasarian 2 (April 2014) 95 2615 8248 629
2 Dasarian 3 (April 2014) 90 2612 8247 628
3 Dasarian 1 (Mei 2014) 94 2607 8247 627
4 Dasarian 2 (Mei 2014) 83 2625 8232 623
5 Dasarian 3 (Mei 2014) 85 2628 8235 623
6 Dasarian 1 (Juni 2014) 92 2609 8241 626
7 Dasarian 2 (Juni 2014) 86 2627 8235 624
8 Dasarian 3 (Juni 2014) 89 2621 8238 624
9 Dasarian 1 (Juli 2014) 93 2607 8242 626
10 Dasarian 2 (Juli 2014) 86 2626 8237 623
Sumber BMKG Kelas III Karangkates Malang
421 Perhitungan Universe of Discourse (U)
Sebelum melakukan perhitungan U maka harus dicari terlebih dahulu nilai 119863119898119894119899 119863119898119886119909 dan standar deviasi 119863119898119894119899 adalah nilai minimum atau nilai terkecil dari data sampel yang ada sedangkan 119863119898119886119909 adalah nilai maksimum atau nilai paling besar dari data sampel yang ada Untuk mencari nilai standar deviasi harus menghitung nilai mean (rata ndash rata) terlebih dahulu sesuai dengan Persamaan 211 Mean dari data curah hujan (A) dihitung dengan cara sebagai berikut
Mean = (data ke-1 + data ke-2 + data ke-3 + + data ke-10) 10
= (95 + 90 + 94 + 83 + 85 + 92 + 86 + 89 + 93 + 86) 10
= 893 10
= 893
Selanjutnya setelah diperoleh nilai mean dilanjutkan melakukan perhitungan standar deviasi sesuai dengan Persamaan 212 Standar deviasi adalah akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Untuk menghitung standar deviasi agar lebih mudah kita terlebih dahulu melakukan perhitungan nilai kuadrat dari selisih data ke-i dan mean yang ditunjukkan pada Tabel 42
47
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean
i Data ke-i Data ke-i mean (Data ke-i - mean)sup2
1 95 57 32490
2 90 07 0490
3 94 47 22090
4 83 -63 39690
5 85 -43 18490
6 92 27 7290
7 86 -33 10890
8 89 -03 0090
9 93 37 13690
10 86 -33 10890
Jumlah 1561
Setelah mendapatkan hasil nilai kuadrat dari selisih data ke-i dan mean sesuai dengan Tabel 42 maka dapat dilanjutkan melakukan perhitungan standar deviasi dengan cara sebagai berikut
Standar_deviasi = radic1
10minus1sum (119889119886119905119886 119896119890 minus 119894 minus 119898119890119886119899)10
119894=1
2
= radic1
9 times 1561
= 4165
Untuk perhitungan standar deviasi juga dilakukan pada faktor lainnya yaitu suhu (B) kelembaban (C) dan kecepatan angin (D) Hasil perhitungan 119863119898119894119899 119863119898119886119909 dan standar deviasi ditunjukkan pada Tabel 43
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi
Data D min D max Standar Deviasi
A 83 95 4165
B 2607 2628 0086
C 8232 8248 0057
D 623 629 0022
Berdasarkan hasil yang ditunjukkan Tabel 43 selanjutnya dapat dilakukan perhitungan nilai U sesuai dengan Persamaan 213 Berikut adalah perhitungan U pada data A
U = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590]
= [(83 ndash 4165) (95 ndash 4165)]
= [78835 99165]
48
Untuk perhitungan U juga dilakukan pada semua faktor yaitu data B C dan D Sehingga diperoleh nilai U yang ditunjukkan pada Tabel 44
Tabel 44 Hasil Universe of Discourse
Data U
Batas Bawah Batas Atas
A 78835 99165
B 25984 26366
C 82263 82537
D 6208 6312
422 Perhitungan jumlah cluster (k)
Pada perhitungan jumlah cluster langkah pertamanya adalah mencari nilai absolut dari selisih data hari ke-t dengan hari sebelumnya Perhitungan selisih dilakukan hingga data ke-10 Perhitungan nilai selisih dilakukan pada semua data A B C dan D Selanjutnya masing ndash masing nilai selisih dijumlah sehingga hasilnya seperti ditunjukkan pada Tabel 45
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya
No Tanggal A B C D
1 Dasarian 3 (April 2014) 5 003 001 001
2 Dasarian 1 (Mei 2014) 4 005 0 001
3 Dasarian 2 (Mei 2014) 11 018 015 004
4 Dasarian 3 (Mei 2014) 2 003 003 0
5 Dasarian 1 (Juni 2014) 7 019 006 003
6 Dasarian 2 (Juni 2014) 6 018 006 002
7 Dasarian 3 (Juni 2014) 3 006 003 0
8 Dasarian 1 (Juli 2014) 4 014 004 002
9 Dasarian 2 (Juli 2014) 7 019 005 003
Jumlah 49 105 043 016
Setelah mendapatkan nilai absolut selisih data hari ke-t dengan hari sebelumnya dapat dilanjutkan dengan menghitung jumlah cluster sesuai dengan Persamaan 214 Perhitungan jumlah cluster pada data A (k1) berdasarkan pada Tabel 43 diketahui nilai 119863119898119894119899 adalah 171 nilai 119863119898119886119909 adalah 2048 maka jumlah cluster data A dapat ditunjukkan sebagai berikut
49
1198961 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905) minus 119883(119905 minus 1)|119899
119905=1
119899 minus 1|
= |83 minus 9549
10minus1| = 2204
Apabila hasil perhitungan jumlah cluster merupakan bilangan pecahan maka hasilnya harus dibulatkan Sehingga jumlah cluster pada data A adalah 2 Perhitungan jumlah cluster juga dilakukan pada data B (k2) C (k3) dan D (k4) Berikut merupakan hasil semua perhitungan jumlah cluster yang ditunjukkan pada Tabel 46
Tabel 46 Hasil jumlah cluster data
No Cluster Jumlah Cluster
1 k1 2
2 k2 2
3 k3 3
4 k4 3
423 Perhitungan pusat cluster dan subinterval
Pada pembentukan subinterval berdasarkan pada Tabel 46 yang menunjukkan jumlah subinterval yang selanjutnya digunakan untuk menentukan pusat cluster menggunakan algoritma fuzzy C-means (FCM)
4231 Penentuan pusat cluster
a Penentuan nilai variabel
Pada penentuan subinterval diawali dengan klasterisasi menggunakan algoritma FCM pada awal proses ditentukkan beberapa variabel sebagai berikut
Banyak cluster = k1 = 2
Bobot (w) = 2
Fungsi objektif awal = 0
Iterasi awal = 1
Iterasi maksimum = 100
Error terkecil = 001 b Pembentukan matriks partisi awal (micro)
Data pada pembentukan matriks partisi awal merupakan nilai random diantara nilai 0 sampai 1 Dimensi pada matriks partisi awal dibentuk dengan dimensi jumlah data (i) x jumlah cluster (k) Dalam hal ini telah diketahui jumlah data adalah 10 dan k1 adalah 2 maka partisi dimensi matriks awal adalah 10 x 2 Hasil pembentukan matriks partisi awal ditunjukkan pada Tabel 47 dimana Cluster disimbolkan dengan C
50
Tabel 47 Matriks partisi awal pada cluster data A
c Normalisasi matriks partisi awal
Langkah pertama normalisasi matriks partisi awal adalah dengan menghitung jumlah bilangan penyusun matriks pada setiap kolom yang dapat dilihat pada Tabel 47 dijumlah berdasarkan dengan Persamaan 24 Diketahui jumlah kolom matriks sebanyak 2 sehingga diperoleh Q1 untuk penjumlahan kolom c1 Q2 untuk penjumlahan kolom c2
Q1 = 0355 + 0174 + 02 + 0387 + 0598 + 0819 + 0702 + 0719 + 0349 +
0852
= 5154
Q2 = 0170 + 0815 + 0190 + 0456 + 0526 + 0170 + 0232 + 0572 + 0102 +
0322
= 3554
Langkah selanjutnya dilakukan proses normalisasi menggunakan Persamaan 25 Dimana setiap bilangan penyusun matriks awal dibagi dengan nilai Q sesuai dengan kolomnya masing ndash masing Bilangan penyusun matriks disimbolkan dengan microik dimana i menunjukkan baris dan k menunjukkan kolom posisi bilangan tersebut pada matriks
i micro
c1 c2
1 0355 0170
2 0174 0815
3 0200 0190
4 0387 0456
5 0598 0526
6 0819 0170
7 0702 0232
8 0719 0572
9 0349 0102
10 0852 0322
51
μ11 = bilangan matriks partisi pada baris 1 kolom 1
Q1
= 0355
5154
= 0069
μ12 = bilangan matriks partisi pada baris 1 kolom 2
Q2
= 0170
3554
= 0048
Setelah melakukan perhitungan seperti diatas untuk semua bilangan matriks sehingga matriks partisi sudah ternormalisasi seperti yang ditunjukkan pada Tabel 48
Tabel 48 Derajat keanggotaan matriks partisi data A
i micro
C1 C2
1 0069 0048
2 0034 0229
3 0039 0054
4 0075 0128
5 0116 0148
6 0159 0048
7 0136 0065
8 0140 0161
9 0068 0029
10 0165 0090
d Perhitungan pusat cluster (V)
Pada perhitungan pusat cluster (V) berdasarkan Persamaan 26 Dimana setiap bilangan penyusun matriks partisi (micro) dipangkatkan dengan w dimana variabel w yang sudah dideklarisakan terlebih dahulu dengan nilai sama dengan 2 dan dikalikan dengan bilangan penyusun matriks X yang merupakan matriks berisi data yang ada pada Tabel 41 Selanjutnya hasil perkalian tersebut dijumlah dan dibagi dengan jumlah hasil kuadrat dari bilangan penyusun matriks partisi Hasil perhitungan ditunjukkan pada Tabel 49
52
Tabel 49 Perhitungan pusat cluster data A
Berdasarkan jumlah cluster dari data A yaitu 2 maka terdapat 2 pusat cluster (V) yaitu V1 V2 Perhitungan nilai V adalah sebagai berikut
V1 = sum ((μic1)2 times Xi)10
i=1
sum (μic1)210i=1
= 10730216
0121620
= 8822718207
V2 = sum ((μic2)2 times Xi)10
i=1
sum (μic2)210i=1
= 12111287
0137572
= 8803592572
Jadi berdasarkan perhitungan diatas pusat cluster untuk data A pada iterasi ke-1 adalah 8822718207 8803592572
e Perhitungan fungsi objektif (P)
Pada perhitungan P menggunakan Persamaan 27 dimana setiap baris pada data matriks X dikurangi pusat cluster (V) selanjutnya dikuadratkan Hasilnya
i X microsup2 microsup2 x X
C1 C2 C1 C2
1 95 0004731 0002292 0449450 0217718
2 90 0001137 0052633 0102304 4736927
3 94 0001512 0002864 0142117 0269234
4 83 0005630 0016427 0467258 1363472
5 85 0013448 0021907 1143107 1862112
6 92 0025233 0002291 2321422 0210787
7 86 0018542 0004243 1594602 0364916
8 89 0019487 0025916 1734356 2306543
9 93 0004590 0000816 0426841 0075870
10 86 0027311 0008183 2348759 0703706
Jumlah 0121620 0137572 10730216 12111287
53
kemudian dikalikan dengan micro yang sudah dipangkatkan dengan bobot (w) seperti yang telah ditunjukkan pada Tabel 49 Selanjutnya hasil tersebut dijumlah per kolom seperti yang ditunjukkan pada Tabel 410
Tabel 410 Fungsi objektif data A
i X (X-V)sup2 (X-V)sup2 x microsup2
C1 C2 C1 C2
1 95 458711 484983 02170 01111
2 90 31429 38576 00036 02030
3 94 333254 355702 00504 01019
4 83 273234 253605 01538 04166
5 85 104147 92168 01401 02019
6 92 142342 157139 03592 00360
7 86 49603 41450 00920 00176
8 89 05972 09294 00116 00241
9 93 227798 246420 01046 00201
10 86 49603 41450 01355 00339
Jumlah 1267661573 1166282827
Fungsi Objektif (P) 24339444
Perhitungan nilai fungsi objektif dilakukan seperti Persamaan 27 Nilai fungsi objektif diperoleh dengan cara sebagai berikut P = sum sum ([(Xi minus Vc)2](μik)2)3
c=110i=1
P = 1267661573 + 1166282827
= 24339444
f Perbaikan matriks partisi
Pada langkah ini perbaikan matriks partisi dilakukan berdasarkan Persamaan 28 Data matriks X untuk setiap barisnya dikurangi pusat cluster lalu dikuadratkan seperti yang ditunjukkan pada Tabel 410 Selanjutnya hasilnya dipangkatkan dengan -11 karena w-1 = 1 Hasil pangkat -1 terhadap (X-V)2 ditunjukkan pada Tabel 411
54
Tabel 411 Perbaikan matriks partisi
i ((X-V)sup2)^-1
Jumlah C1 C2
1 0022 0021 0042
2 0318 0259 0577
3 0030 0028 0058
4 0037 0039 0076
5 0096 0108 0205
6 0070 0064 0134
7 0202 0241 0443
8 1674 1076 2750
9 0044 0041 0084
10 0202 0241 0443
Berdasarkan tabel diatas bilangan penyusun matriks partisi yang baru atau yang telah diperbaiki diperoleh dari hasil pembagian data terhadap jumlah per barisnya
12058311 = 0022
0042= 0514
12058312 = 0021
0042= 0486
Pada perhitungan nilai matriks yang sudah diperbaiki dilakukan pada semua elemen matriks sehingga hasil perbaikan matriks seperti yang ditunjukkan pada Tabel 412
Tabel 412 Hasil perbaikan matriks partisi
Setelah mendapatkan hasil perbaikan matriks partisi kita lakukan pengecekan selama iterasi kurang dari iterasi maksimum (maxIter) atau selisih antara fungsi objektif iterasi saat ini dengan iterasi sebelumnya bernilai lebih dari nilai error terkecil yaitu 001 maka proses berlanjut dengan kembali melakukan perhitungan pusat cluster hingga perbaikan matriks partisi Hasil
i micro
C1 C2
1 0514 0486
2 0551 0449
3 0516 0484
4 0481 0519
5 0469 0531
6 0525 0475
7 0455 0545
8 0609 0391
9 0520 0480
10 0455 0545
55
perhitungan pusat cluster dari data A B C dan D setelah dilakukan proses tiga kali iterasi dan diurutkan mulai dari yang terkecil sampai yang terbesar ditunjukkan pada Tabel 413
Tabel 413 Hasil pusat cluster
4232 Perhitungan batas subinterval
Perhitungan batas subinterval dilakukan dengan mencari nilai tengah (Median) dari setiap pusat cluster Berikut merupakan contoh perhitungan batas subinterval pada data A
a Interval 1 Batas bawah = 78835 (Batas bawah Universe of Discourse pada data A) Batas atas = 89347 (Median 88303 dan 90390)
b Interval 2 Batas bawah = 89347 (Median 88303 dan 90390) Batas atas = 99165 (Batas atas Universe of Discourse pada data A)
Seperti perhitungan diatas juga dilakukan pada data suhu (B) kelembaban (C) dan kecepatan angin (D) Dalam hal ini jumlah subinterval setiap atribut berbeda ndash beda sesuai dengan jumlah cluster yang sebelumnya ditunjukkan pada Tabel 46 Berikut merupakan batas subinterval masing ndash masing atribut yang ditunjukkan pada Tabel 414
Tabel 414 Batas subinterval masing ndash masing atribut data
Interval (micro)
A B C D
1
78835 25984 751708 6208
sd sd sd sd
89347 26181 823863 6249
2
89347 26181 823863 6249
sd sd sd sd
99165 26366 82411 6256
3
82411 6256
- - sd sd
82537 6312
Cluster A B C D
1 88303 26165 82391 62497
2 90390 26197 82408 62499
3 - - 82415 62613
56
424 Pembentukan Fuzzy Set
Pembentukan fuzzy set berdasarkan pada derajat keanggotaan dari subinterval (micro) fuzzy set dari data A ditentukan dengan derajat keanggotaan sebagai berikut
A1 = 1micro1 + 05micro2
A2 = 05micro1 + 1micro2
Pada derajat keanggotaan data A diatas simbol ldquo+rdquo menunjukkan operator himpunan gabungan Berdasarkan subinterval pada Tabel 414 nilai batas fuzzy set dari data atribut A dapat ditentukan dengan cara sebagai berikut
A1 = 78835 sd 94256 (Batas bawah interval 1 sd titik tengah interval 2)
A2 = 84091 sd 99165 (Titik tengah interval 1 sd batas atas interval 2)
Setelah diketahui batas masing ndash masing fuzzy set grafik fungsi keanggotaan fuzzy set data A yang direpresentasikan dalam kurva bahu yang ditunjukkan pada Gambar 422 Dengan cara yang sama juga ditentukan pula fuzzy set dari data attribut B C dan D
425 Fuzzifikasi
Pada langkah fuzzifikasi dilakukan dengan mencari derajat keanggotaan yang memiliki nilai paling besar (maksimum) dari masing ndash masing data terhadap fuzzy set yang sudah terbentuk Derajat keanggotaan dicari berdasarkan fungsi keanggotaan kurva bentuk bahu Berikut ini adalah perhitungan derajat keanggotaan dari data attribut A
Data aktual curah hujan (A) pada April 2014 dasarian ke-3 = 90
1198601 = 942558 ndash 90
942558minus840911= 041868427
Gambar 422 Grafik fuzzy set data A
57
1198602 = 90minus840911
942558minus840911= 058131636
Derajat keanggotaan paling besar berada pada A2 sehingga data attribut A pada April 2014 dasarian ke-3 difuzzifikasikan ke fuzzy set A2 Perhitungan yang sama dilakukan pada seluruh data attribut A sehingga didapat derajat keanggotaan dan hasil fuzzifikasi dari data A ditunjukkan pada Tabel 415
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A
i Data A1 A2 Fuzzyfikasi
1 95 0 1 A2
2 90 041868363 058131636 A2
3 94 002516357 097483642 A2
4 83 1 0 A1
5 85 09105837 008941629 A1
6 92 02219236 077807639 A2
7 86 08122036 018779631 A1
8 89 05170636 048293635 A1
9 93 01235436 087645641 A2
10 86 08122037 018779631 A1
Perhitungan yang sama juga dilakukan pada semua attribut yaitu attribut B C dan D Sehingga dapat diperoleh hasil fuzzifikasi sesuai derajat keanggotaan dengan nilai paling besar Berikut adalah hasil fuzzifikasi untuk semua attribut yang dapat dilihat pada Tabel 416
Tabel 416 Hasil fuzzifikasi semua data attribut
No Tanggal A B C D
1 Dasarian 2 (April 2014) A2 B1 C3 D3
2 Dasarian 3 (April 2014) A2 B1 C3 D3
3 Dasarian 1 (Mei 2014) A2 B1 C3 D3
4 Dasarian 2 (Mei 2014) A1 B2 C1 D1
5 Dasarian 3 (Mei 2014) A1 B2 C1 D1
6 Dasarian 1 (Juni 2014) A2 B1 C2 D2
7 Dasarian 2 (Juni 2014) A1 B2 C1 D1
8 Dasarian 3 (Juni 2014) A1 B2 C2 D1
9 Dasarian 1 (Juli 2014) A2 B1 C2 D2
10 Dasarian 2 (Juli 2014) A1 B2 C2 D1
58
426 Pembentukan Fuzzy Logical Relationship (FLR)
Pada tahap pembentukan FLR dengan berdasarkan nilai order yang sudah ditentukan Pada manualisasi ini berdasarkan dari Tabel 416 di misalkan nilai order kita deklarasikan dengan nilai 3 sehingga dapat menghasilkan 7 FLR Hasil pembentukan FLR Data training dapat ditunjukkan pada Tabel 417 Hasil pembentukan FLR Data testing dapat ditunjukkan pada Tabel 418
Tabel 417 Hasil pembentukan FLR data training
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(32)B(31)C(33)D(33)) rarr A1
2 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(31)B(32)C(31)D(31)) rarr A1
3 (A(12)B(11)C(13)D(13)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(31)D(31)) rarr A2
4 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(21)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
5 (A(11)B(12)C(11)D(11)) (A(22)B(21)C(22)D(22)) (A(31)B(32)C(31)D(31)) rarr A1
Tabel 418 Hasil pembentukan FLR data testing
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(12)D(12)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(32)D(31)) rarr A2
2 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(22)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
427 Defuzzifikasi
Pada tahap ini misalkan jumlah data yang digunakan untuk data uji atau data testing adalah dua yaitu yang pertama data periode ke-9 dan yang kedua data periode ke-10 Sehingga yang digunakan data latih atau data training adalah data pada periode ke-1 sampai data periode ke-8 Pada data testing yang pertama melibatkan FLR ke-1 sampai FLR ke-5 untuk disesuaikan dengan FLR ke-6 yang berdasarkan pada Tabel 417 Pada data testing yang kedua melibatkan FLR ke-1 sampai FLR ke-6 untuk disesuaikan dengan FLR ke-7 yang berdasarkan pada Tabel 417 Selanjutnya setiap ruas kiri FLR data testing dibandingkan dengan FLR data training yaitu pada bilang pangkat bawah fuzzy set dibandingkan sesuai dengan posisinya dan dihitung selisihnya Hasil dari perhitungan selisih tersebut dijumlahkan dan apabila jumlah selisihnya kurang dari threshold maka FLR tersebut dikatakan cocok Threshold merupakan dari hasil mengalikan jumlah order dengan jumlah faktor kemudian dijumlahkan dengan dengan sebuah konstanta Contoh perhitungan selisih nilai ruas kiri FLR pada data testing pertama adalah sebagai berikut
59
Data testing = (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(32) B(31) C(33) D(33)) rarr A1
Data training =
1 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
2 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
3 (A(12) B(11) C(13) D(13)) (A(21) B(22) C(21) D(21)) (A(31) B(32) C(31) D(31)) rarr A2
4 (A(11) B(12) C(11) D(11)) (A(21) B(22) C(21) D(21)) (A(32) B(31) C(32) D(32)) rarr A1
5 (A(11) B(12) C(11) D(11)) (A(22) B(21) C(22) D(22)) (A(31) B(32) C(31) D(31)) rarr A1
Selisih data ke- 1 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|2-1|+|1-2|+|3-2|+|3-1| = 13
Selisih data ke- 2 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Selisih data ke- 3 = |2-2|+|1-1|+|3-2|+|3-2|+|1-1|+|2-2|+|1-1|+|1-1|+|1-1|+|2-2|+|1-2|+|1-1| = 3
Selisih data ke- 4 = |1-2|+|2-1|+|1-2|+|1-2|+|1-1|+|2-2|+|1-1|+|1-1|+|2-1|+|1-2|+|2-2|+|2-1| = 7
Selisih data ke- 5 = |1-2|+|2-1|+|1-2|+|1-2|+|2-1|+|1-2|+|2-1|+|2-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Pada perhitungan selisih nilai ruas kiri FLR pada data testing juga dilakukan pada semua data testing yang sudah dideklarasikan sebelumnya Dalam hal ini agar dapat menemukan FLR yang cocok dengan data testing Tahap selanjutnya adalah proses defuzzifikasi menggunakan threshold yang dimisalkan 18 sehingga FLR yang memiliki kecocokan dengan data testing pertama adalah semua FLR dari ke-1 sampai ke-5 karena memiliki hasil selisih kurang dari 18 Semua FLR yang cocok ditampung dikelompokkan berdasarkan FLR pada ruas kanan yang sama kemudian dhitung frekuensinya Berikut adalah frekuensi dan pusat cluster dari ruas kanan FLR yang cocok dengan data testing pertama dan kedua ditunjukkan pada Tabel 419
Tabel 419 Frekuensi FLR yang cocok dengan data testing
Data testing 1 Data testing 2
Ruas kanan A1 A2 A1 A2
Pusat Cluster 88303 90390 88303 90390
Frekuensi 4 1 4 2
Berdasarkan pada Tabel 419 dilakukan defuzzifikasi sesuai dengan Persamaan 218 sebagai berikut
119863119886119905119886 119905119890119904119905119894119899119892 1 = (88303times4)+(90390times1)
5= 887204
60
119863119886119905119886 119905119890119904119905119894119899119892 2 = (88303times4)+(90390times2)
6= 889987
Jadi berdasarkan perhitungan diatas diperoleh hasil peramalan curah hujan pada pada April 2014 dasarian ke-3 adalah 1384601636 sedangkan pada tanggal 10012016 adalah 2769203272 Perbandingan data curah hujan aktual dan hasil peramalan dengan metode High Order Fuzzy Time Series Multi Factors dapat dilihat pada Tabel 420
Tabel 420 Perbandingan data aktual dan hasil peramalan
No Data Aktual Hasil Peramalan
1 93 887204
2 86 889987
Dari hasil peramalan yang ditunjukkan pada Tabel 420 dapat dilakukan perhitungan kesalahan peramalan menggunakan metode Mean Square Error (MSE) seperti Persamaan 219
119872119878119864 = ((93minus887206)2+(86minus889989)2)
2
= 136536
43 Perancangan antarmuka
Perancangan antarmuka merupakan perancangan dari tampilan antarmuka atau interface yang nantinya akan diterapkan pada tahapan implementasi Pada perancangan antarmuka ini terdapat lima halaman utama dan juga terdapat dalam menu berupa button yaitu halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
431 Halaman input
Pada halaman input terdapat inputan data dengan nama button Browse Data pada inputan data ini pengguna diharuskan memasukkan inputan file data dalam bentuk ekstensi xls serta direktori lokasi file yang di inputkan akan ditampilkan pada textfield dan juga terdapat label yang menampilkan jumlah banyaknya data yang terdapat pada file yang telah di inputkan Selanjutnya juga terdata inputan textfield data training data testing order dan nilai konstanta Pada halaman input ini juga terdapat button fuzzification yang berfungsi untuk melakukan proses clustering fuzzifikasi dan FLR Selanjutnya pada button forecasting berfungsi untuk melakukan peramalan atau defuzzifikasi dari hasil proses fuzzifikasi serta menghitung nilai error dari hasil peramalan Berikut
61
merupakan rancangan tampilan antarmuka dari halaman input yang ditunjukkan pada Gambar 423
432 Halaman tampil data
Pada halaman tampil data terdapat tabel yang menampilkan isi data dari xls yang sudah dimasukkan terlebih dahulu pada halaman input Tabel tampil data akan menampilkan tanggal curah hujan kelembaban suhu dan kecepatan angin Berikut merupakan tampilan rancangan halaman tampil data yang ditunjukkan pada Gambar 424
Gambar 423 Rancangan antarmuka halaman input
Gambar 424 Rancangan antarmuka halaman tampil data
62
433 Halaman proses
Pada halaman proses akan menampilkan hasil clustering fuzzifikasi dan fuzzy logical relationship Pada tampilan halaman clustering akan menampilkan Universe of Discourse curah hujan suhu kelembaban dan kecepatan angin Selanjutnya tampilan dibawahnya akan menampilkan jumlah cluster dari setiap faktor yaitu jumlah cluster curah hujan suhu kelembaban dan kecepatan angin Berikut merupakan tampilan perancangan halaman proses clustering yang ditunjukkan Gambar 425
Selanjutnya pada tampilan proses fuzzifikasi akan menampilkan tabel hasil fuzzifikasi dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzifikasi yang ditunjukkan pada Gambar 426
Gambar 425 Rancangan antarmuka halaman proses clustering
Gambar 426 Rancangan antarmuka proses fuzzifikasi
63
Pada tampilan proses fuzzy logical relationship (FLR) akan menampilkan textarea berisi hasil proses FLR dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzy logical relationship yang ditunjukkan pada Gambar 427
434 Halaman hasil
Pada halaman hasil peramalan akan menampilkan tabel yang berisi hasil peramalan curah hujan dan data curah hujan yang sebenarnya Serta terdapat text link yang akan menampilkan grafik perbandingan data hasil peramalan dan data yang sebenarnya Berikut adalah tampilan rancangan halaman hasil yang ditunjukkan pada Gambar 428
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship
Gambar 428 Rancangan antarmuka halaman hasil peramalan
64
435 Halaman perhitungan error
Pada halaman perhitungan error akan menampilkan nilai dari hasil perhitungan Mean Square Error (MSE) pada textfield Berikut adalah tampilan rancangan halaman perhitungan error yang ditunjukkan pada Gambar 429
44 Perancangan pengujian
Pada penelitian ini akan dilakukan empat pengujian yaitu pengujian terhadap nilai order nilai threshold pengujian terhadap jumlah data training untuk mengetahui pengaruhnya terhadap nilai Mean Square Error (MSE) dan pengujian validasi sistem untuk mengetahui kestabilan hasil implementasi
441 Perancangan pengaruh order terhadap nilai MSE
Order merupakan jumlah urutan data yang digunakan dalam pembentukkan Fuzzy Logical Relationship (FLR) Pada pengujian ini dilakukan percobaan dengan order yang berbeda ndash beda Pengujian ini bertujuan untuk mengetahui pengaruh order terhadap hasil peramalan Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Pada setiap pengujian yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan order yang berbeda Berikut adalah perancangan pengujian order terhadap nilai MSE ditunjukkan pada Tabel 421
Tabel 421 Rancangan pengujian order terhadap nilai MSE
No Order Threshold MSE
1
Gambar 429 Rancangan antarmuka halaman perhitungan error
65
442 Perancangan pengaruh threshold terhadap nilai MSE
Nilai threshold bergantung jumlah order karena untuk nilai threshold merupakan dari hasil mengalikan jumlah faktor yang mempengaruhi dengan order selanjutnya dijumlah dengan sebuah konstanta Pada pengujian ini dilakukan percobaan dengan konstanta yang berbeda ndash beda sehingga menghasilkan threshold yang berbeda pula Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan konstanta dan threshold yang berbeda Berikut merupakan rancangan pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 422
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1
443 Perancangan pengaruh jumlah data training terhadap nilai MSE
Data training sangat berperan penting dalam proses defuzzifikasi sehingga pada penelitian ini dilakukan pengujian pengaruh jumlah data training terhadap tingkat kesalahan dari hasil peramalan Pada pengujian ini dilakukan percobaan dengan jumlah data training yang berbeda ndash beda Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan dilakukan perhitungan nilai MSE untuk mengetahui tingkat kesalahan dari hasil peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors dengan jumlah data training yang berbeda ndash beda Sehingga dari hasil pengujian ini dapat diketahui pengaruh dari jumlah data training Berikut merupakan rancangan pengujian pengaruh jumlah data training yang ditunjukkan pada Tabel 423
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1
444 Perancangan validasi sistem
Pada pengujian validasi sistem akan melakukan pengujian dengan menggunakan order threshold terbaik seperti yang telah dilakukan pada
66
pengujian ndash pengujian sebelumnya yang menghasilkan hasil error MSE terendah Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Berikut merupakan rancangan pengujian validasi sistem yang ditunjukkan pada Tabel 424
Tabel 424 Rancangan pengujian validasi sistem
Percobaan ke- MSE
1
67
BAB 5 IMPLEMENTASI
Pada bab ini berisi pembahasan hasil implementasi metode High Order Fuzzy Time Series Multi Factors yang sesuai dengan bab sebelumnya yaitu perancangan Bab ini terdiri dari spesifikasi sistem implementasi algoritma dan implementasi antarmuka
51 Spesifikasi Sistem
Pada spesifikasi sistem ini dibagi mejadi dua yaitu spesifikasi perangkat keras dan spesifikasi perangkat lunak
511 Spesifikasi Perangkat Keras
Spesifikasi perangkat keras merupakan perangkat keras yang digunakan pada implementasi penelitian ini Perangkat keras yang digunakan adalah laptop dengan spesifikasi sesuai dengan pada Tabel 51 berikut
Tabel 51 Spesifikasi Perangkat Keras
Komponen Spesifikasi
Processor Intelcopy Core i3-3217U 180 GHz
Memori (RAM) 8 GB RAM
Harddisk 500 GB RAM
512 Spesifikasi Perangkat Lunak
Spesifikasi perangkat lunak merupakan perangkat lunak yang digunakan pada implementasi penelitian ini Perangkat lunak yang digunakan pada implementasi penelitian sesuai dengan yang ditunjukkan pada Tabel 52 berikut
Tabel 52 Spesifikasi Perangkat Lunak
Sistem Operasi Microsoft Windows 7 (64 bit)
Bahasa Pemrograman Java
Tools Pemrograman Netbeans 81
Data Microsoft Excel 2013
52 Implementasi Algoritma
Pada implementasi algoritma ini membahas mengenai hasil implementasi algoritma metode High Order Fuzzy Time Series Multi Factors yang mengacu pada bab sebelumnya yaitu perancangan Dalam penelitian ini implementasi algoritma menggunakan bahasa pemrograman java berbasis desktop Implementasi algoritma terdiri dari beberapa method sesuai dengan langkah ndash langkah pada algoritma metode High Order Fuzzy Time Series Multi Factors
68
521 Implementasi Proses Universe of Discourse
Pada implementasi Universe of Discourse seperti yang ditunjukkan Kode Program 51 dimana pada source code method Universe_of_Discourse baris 3 - 5 terdapat pemanggilan method mean standar_deviasi dan Min_dan_Max Dimana pemanggilan method tersebut dibutuhkan untuk melakukan proses perhitungan selanjutnya yaitu untuk menghitung batas bawah dan batas atas dari Univers of Discourse Baris 7-10 untuk menghitung hasil Universe of Discourse Berikut merupakan source code dari proses Universe of Discourse yang ditunjukkan pada Kode Program 51
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
private void Universe_of_Discourse()
mean()
standar_deviasi()
Min_dan_Max()
hsl_uMin = new double[jmlh_Faktor]
hsl_uMax = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
hsl_uMin[i] = hsl_min[i] - hsl_stdev[i]
hsl_uMax[i] = hsl_max[i] + hsl_stdev[i]
Kode Program 51 Implementasi proses Universe of Discourse
5211 Implementasi proses mean
Pada implementasi proses mean merupakan proses perhitungan nilai rata ndash rata dari setiap faktor yang nantinya hasilnya diperlukan untuk proses perhitungan standar deviasi Berikut merupakan source code dari proses mean yang ditunjukkan pada Kode Program 52 Perhitungan utama proses mean terdapat pada baris 3 ndash 8
Baris Kode
1 2 3 4 5 6 7 8 9
private void mean()
hsl_mean = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double tmp_jmlh = 0
for (int j = 0 j lt jmlh_DataTraining j++)
tmp_jmlh = tmp_jmlh + data[i][j]
hsl_mean[i] = (tmp_jmlh jmlh_DataTraining)
Kode Program 52 Implementasi proses mean
5212 Implementasi proses standar deviasi
Pada implementasi proses perhitungan standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Standar deviasi dapat dilakukan perhitungan setelah mendapat nilai hasil dari perhitungan mean Berikut merupakan source code dari implementasi proses standar deviasi yang ditunjukkan pada Kode Program 53 Perhitungan utama proses standar deviasi terdapat pada baris 3 ndash 9
69
Baris Kode
1 2 3 4 5 6 7 8 9 10 11
private void standar_deviasi()
hsl_stdev = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double result = 0
for (int j = 0 j lt jmlh_DataTraining j++)
result = result + (Mathpow((data[i][j] ndash
hsl_mean[i]) 2))
hsl_stdev[i]=Mathsqrt(result(jmlh_DataTraining-
1))
Kode Program 53 Implementasi proses standar deviasi
5213 Implementasi proses Dmin dan Dmax
Pada implementasi proses Dmin dan Dmax merukan untuk mencari nilai minimum dan nilai maksimum dari data sampel untuk setiap faktor Berikut merupakan source code dari implementasi dari proses Dmin dan Dmax yang ditunjukkan pada Kode Program 54 Pada baris 8 ndash 10 merupakan bagian dari proses untuk untuk menentukan nilai data terbesar Selanjutnya pada baris 11 ndash 13 untuk menentukan nilai data terkecil
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
19
private void Min_dan_Max()
hsl_max = new double[jmlh_Faktor]
hsl_min = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double besar = data[i][0]
double kecil = data[i][0]
for (int j = 0 j lt jmlh_DataTraining j++)
if (data[i][j] gt besar)
besar = data[i][j]
if (data[i][j] lt kecil)
kecil = data[i][j]
hsl_max[i] = besar
hsl_min[i] = kecil
Kode Program 54 Implementasi proses Dmin dan Dmax
522 Implementasi Proses Jumlah Cluster
Pada implementasi proses jumlah cluster merupakan proses perhitungan jumlah cluster dari setiap faktor Implementasi ini dapat dilakukan apabila sudah mendapatkan hasil output dari method Min_dan_Max() sudah didapatkan Berikut merupakan source code dari implementasi proses jumlah cluster yang ditunjukkan pada Kode Program 55 Pada baris 3 ndash 7 untuk digunakan untuk menghitung selisih data sampel setiap baris dari semua faktor pada data sampel ke t dengan t+1 Selanjutnya pada baris 9 ndash 10 untuk menghitung jumlah cluster dari setiap faktor
70
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
private void jumlah_Cluster()
jmlh_Cluster = new int[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double selisih = 0
for (int j = 0 j lt (jmlh_DataTraining - 1) j++)
selisih = selisih + (Mathabs((data[i][j]
- data[i][(j + 1)])))
jmlh_Cluster[i] = (int) Mathround((Mathabs(
hsl_min[i]-hsl_max[i]))(selisih(jmlh_DataTraining
-1)))
Kode Program 55 Implementasi proses jumlah cluster
523 Implementasi Proses Pusat Cluster
Implementasi proses perhitungan pusat cluster ini menggunakan metode fuzzy C-means untuk mendapatkan pusat cluster yang nantinya digunkan sebagai subinterval Implementasi ini memerlukan hasil dari proses method jumlah_Cluster() agar dapat melakukan perhitungan subinterval Berikut merupakan source code dari implementasi proses subinterval yang ditunjukkan pada Kode Program 56 Pada Kode Program 56 hanya menampilkan source code pembentukan subinterval pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 2 ndash 3 merupakan deklarasi variabel bobot iterasi maksimum selisih fungsi objektif awal dan error minimum Pada baris 8 ndash 20 merupakan proses pembentukan matriks partisi dengan nilai random 0 sampai 1 Pada baris 22 ndash 26 merupakan proses normalisasi matriks partisi yang telah terbentuk Pada baris 28 ndash 63 merupakan proses untuk menentukan pusat cluster Pada baris 65 ndash 86 merupakan proses perhitungan fungsi objektif dari iterasi Pada baris 88 ndash 90 merupakan proses perhitungan selisih fungsi objektif Pada baris 92 ndash 108 adalah proses perbaikan matriks partisi Pada baris 110 ndash 115 adalah proses hasil perbaikan matriks partisi Pada baris 116 - 133 adalah proses dengan pengkondisian apakah selisih fungsi objektif lebih kecil dari error minimum serta apabila memenuhi kondisi maka dilanjutkan ke proses pengurutan pusat cluster secara ascending dari hasil iterasi terakhir dan proses pengkondisian iterasi berhenti
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void pusat_cluster()
int bobot = 2int iter_maksimum = 100
double selisih_f_objektif = 0double error_min = 001
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
Pembentukkan matriks partisi
tmp_Matriks1=new
double[jmlh_Cluster[i]][jmlh_DataTraining]
q1 = new double[jmlh_Cluster[i]]
double jmlh_q1
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_q1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
71
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
double random = ThreadLocalRandomcurrent()
nextDouble(01 1)
tmp_Matriks1[j][k] = random
jmlh_q1 = jmlh_q1 + random
q1[j] = jmlh_q1
normalisasi matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k] q1[j]
Perhitungan pusat cluster
for (int iter = 0 iter lt iter_maksimum iter++)
selisih_f_objektif = 0
jumA1 = new double[iter_maksimum][jmlh_Cluster[i]]
jumA2 = new double[iter_maksimum][jmlh_Cluster[i]]
miu_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
XV_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
pusat_cluster1 = new double[jmlh_Cluster[i]]
double hitung_jum1
double hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(tmp_Matriks1
[j][k]bobot)
miu_Matriks1[j][k] = tmp_Matriks1[j][k]
hitung_jum1 = hitung_jum1 + tmp_Matriks1
[j][k]
jumA1[iter][j] = hitung_jum1
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum2 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
data[i][k]
hitung_jum2 = hitung_jum2 +
tmp_Matriks1[j][k]
jumA2[iter][j] = hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
pusat_cluster1[j] = jumA2[iter][j]
jumA1[iter][j]
perhitungan fungsi objektif
jumA3 = new double[iter_maksimum][jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
double hitung_jum3 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow((data[i][k]
ndash pusat_cluster1[j])
bobot)
XV_Matriks1[j][k] = tmp_Matriks1[j][k]
tmp_Matriks1[j][k] = XV_Matriks1[j][k]
miu_Matriks1[j][k]
hitung_jum3 = hitung_jum3 +
tmp_Matriks1[j][k]
jumA3[iter][j] = hitung_jum3
72
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
double jmlh_f_objektif = 0
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_f_objektif = jmlh_f_objektif
+jumA3[iter][j]
if (iter lt (iter_maksimum - 1))
f_objektif1[iter + 1] = jmlh_f_objektif
perhitungan selisih fungsi objektif
selisih_f_objektif = f_objektif1[iter + 1]
-f_objektif1[iter]
perbaikan matriks partisi
int hitung = bobot - 1int pangkat = -1 hitung
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(XV_Matriks1
[j][k] pangkat)
jumA4 = new
double[iter_maksimum][jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
double hitung_jum4 = 0
for (int k = 0 k lt jmlh_Cluster[i] k++)
hitung_jum4 = hitung_jum4 +
tmp_Matriks1[k][j]
jumA4[iter][j] = hitung_jum4
hasil perbaikan matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
jumA4[iter][k]
if (selisih_f_objektif lt error_min)
pengurutan ascending pusat cluster
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 kltjmlh_Cluster[i]k++)
if (k lt (jmlh_Cluster[i] - 1))
if (pusat_cluster1[k] gt
pusat_cluster1[k + 1])
double tmp =
pusat_cluster1[k]
pusat_cluster1[k]=
pusat_cluster1[k+1]
pusat_cluster1[k+1] = tmp
iter = iter_maksimum
Kode Program 56 Implementasi proses pusat cluster
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set
Pada implementasi proses pembentukan suinterval dan fuzzy set memiliki dua proses yaitu proses menentukan batas subinterval minumum serta maksimum dan proses menentukan batas fuzzy set minimum serta maksimum
73
Proses pembentukan fuzzy dapat menjalankan prosesnya setelah method subinterval() telah diakses Berikut merupakan source code proses pembentukan fuzzy set yang ditunjukkan pada Kode Program 57 Pada Kode Program 57 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 6 ndash 29 merupakan proses pembentukan batas minimum dan batas maksimum subinterval Pada baris 31 ndash 54 merupakan pembentukan batas minimum dan batas maksimum fuzzy set
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
private void subinterval_dan_fuzzy_set()
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
batas subinterval
batas_subintervalMinA = new double[jmlh_Cluster[i]]
batas_subintervalMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_subintervalMinA[j] = hsl_uMin[i]
batas_subintervalMaxA[j]=(pusat_cluster1[j]
+pusat_cluster1[j+
1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1] +pusat_cluster1
[j])2
batas_subintervalMaxA[j]=
hsl_uMax[i]
else if ((0 lt j) ampamp (j lt (jmlh_Cluster[i] -
1)))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1]+
pusat_cluster1[j])2
batas_subintervalMaxA[j]=
(pusat_cluster1[j]+
pusat_cluster1[j+1)2
batas fuzzy set
batas_fuzzysetMinA = new double[jmlh_Cluster[i]]
batas_fuzzysetMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_fuzzysetMinA[j]=
batas_subintervalMinA[j]
batas_fuzzysetMaxA[j]=
(batas_subintervalMinA[j+1]
+batas_subintervalMaxA[j + 1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]
+batas_subintervalMaxA[j - 1])2
batas_fuzzysetMaxA[j] =
batas_subintervalMaxA[j]
else if ((0 lt j) ampamp (jlt(jmlh_Cluster[i]-1)))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]+
batas_subintervalMaxA[j-1])2
batas_fuzzysetMaxA[j]=
74
51
52
53
54
55
56
(batas_subintervalMinA[j+1]+
batas_subintervalMaxA[j + 1])2
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set
525 Implementasi proses fuzzifikasi
Pada Implementasi proses fuzzifikasi memiliki dua proses utama yaitu menentukan derajat keanggotaan dan proses fuzzifikasi Dalam proses ini method fuzzy_set() harus dieksekusi terlebih dahulu karena implementasi proses ini memerlukan output dari method tersebut Berikut merupakan source code fuzzifikasi ditunjukkan pada Kode Program 58 Pada Kode Program 58 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 3 ndash 81 merupakan proses perhitungan derajat keanggotaan Pada baris 83 ndash 94 adalah proses penentuan fuzzifikasi
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
private void fuzzifikasi()
if (i == 0)
hitung_fuzzifikasiA = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
if(j == 0)
if((data[i][k]gtbatas_fuzzysetMinA[j])ampamp
(data[i][k]lt batas_fuzzysetMinA[j + 1]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA[j + 1])
ampamp (data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j] - data[i][k])
(batas_fuzzysetMaxA[j] ndash
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j]) ampamp
(data[i][k] lt batas_fuzzysetMinA[j + 1])
ampamp(data[i][k] gt batas_fuzzysetMinA[j+1])
ampamp(data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
else if (j == (jmlh_Cluster[i] - 1))
if((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
(batas_fuzzysetMaxA[(jmlh_Cluster[i]ndash
2)]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
if((data[i][k] gt batas_fuzzysetMaxA
75
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
[(jmlh_Cluster[i]- 2)]) ampamp (data[i][k]
lt batas_fuzzysetMaxA[(jmlh_Cluster[i]
- 1)]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] gt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 1)]))
hitung_fuzzifikasiA[j][k] = 0
else if ((0 lt j)ampamp(j lt (jmlh_Cluster[i] - 1)))
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA[j
+1]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA[j])
(batas_fuzzysetMinA[j + 1]-
batas_fuzzysetMinA[j])
if ((data[i][k] gt batas_fuzzysetMinA
[j+1])ampamp (data[i][k] lt
batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j]-data[i][k])
(batas_fuzzysetMaxA[j]-
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA
[j + 1]) ampamp (data[i][k] gt
batas_fuzzysetMinA[j + 1]) ampamp
(data[i][k]ltbatas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
hasil_fuzzifikasiA = new int[jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
int cluster = 0
double besar=hitung_fuzzifikasiA[0][j]
for (int k = 0 k lt jmlh_Cluster[i] k++)
if (besar lt hitung_fuzzifikasiA[k][j])
besar = hitung_fuzzifikasiA[k][j]
cluster = k
hasil_fuzzifikasiA[j] = cluster + 1
Kode Program 58 Implementasi proses fuzzifikasi
526 Implementasi Pembentukan Fuzzy Logical Relationship
Pada implementasi pembentukan Fuzzy Logical Relationship (FLR) memiliki dua output yaitu FLR_kiri dan FLR_kanan Dimana FLR_kiri berisi group dari kelima faktor dan pada FLR_kanan merupakan dari faktor yang akan diramalkan yaitu
76
faktor curah hujan (A) Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code pembentukan Fuzzy Logical Relationship (FLR) dapat ditunjukkan pada Kode Program 59 berikut Pada baris 3 ndash 14 merupakan deklarasi variabel Pada baris 15 ndash 55 adalah proses pembentukan fuzzy logical relationship data training Pada baris 56 ndash 58 merupakan deklarasi variabel Pada baris 59 ndash 86 adalah proses pembentukan fuzzy logical relationship data testing
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Fuzzy Logical Relationship
private void fuzzy_logical_relationship()
String input_order = fieldOrdergetText()
order = IntegerparseInt(input_order)
int max_inc = order
String input_dataTraining = fieldDatatraininggetText()
int dataTraining = IntegervalueOf(input_dataTraining)
int tmp_jmlhDatatraining = 0
int tmp_order = 0
int jmlh_dataTraining = dataTraining - order
String input_dataTesting = fieldDatatestinggetText()
int jmlh_dataTesting = IntegervalueOf(input_dataTesting)
FLR_kiri_training = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_training = new int[jmlh_DataTraining]
for (int i = 0 i lt jmlh_dataTraining i++)
for (int j = i j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (j == 0)
if (k == 0)
FLR_kiri_training[i][j][k]=
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiD[j]
else if (j = 0)
if (k == 0)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiD[j]
tmp_order = j
FLR_kanan_training[i] = hasil_fuzzifikasiA[(i + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
77
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
tmp_jmlhDatatraining = i
FLR_kiri_testing = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_testing = new int[(jmlh_DataTraining)]
tmp_jmlhDatatraining = tmp_jmlhDatatraining + 1
for (int i = 0 i lt jmlh_dataTesting i++)
for (int j = tmp_jmlhDatatraining j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (k == 0)
FLR_kiri_testing[i][j - tmp_jmlhDatatraining][k]
= hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiD[j]
FLR_kanan_testing[i] =
hasil_fuzzifikasiA[(tmp_jmlhDatatraining + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
tmp_jmlhDatatraining++
Kode Program 59 Implementasi pembentukan FLR
527 Implementasi Proses Defuzzifikasi
Pada implementasi proses defuzzifikasi merupakan proses dimana menentukan hasil peramalan dari data testing berdasarkan dari bilangan fuzzy yang terbentuk Implementasi ini memiliki beberapa inputan penting yaitu data training data testing order dan konstanta Inputan tersebut sangat berperan penting dalam proses implementasi defuzzifikasi Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code defuzzifikasi dapat ditunjukkan pada Kode Program 510 berikut Pada baris 2 ndash 11 merupakan deklarasi variabel Pada baris 13 ndash 37 merupakan proses perhitungan selisih antara data training dengan data testing Pada baris 40 ndash 47 menghitung jumlah FLR yang cocok Pada baris 49 ndash 65 merupakan proses mencocokan FLR kiri yang cocok dengan FLR kanan Pada baris 67 ndash 81 merupakan proses menghitung jumlah frekuensi FLR kanan yang cocok Pada baris 83 ndash 91 adalah proses perhitungan hasil peramalan
Baris Kode 1
2
3
4
private void defuzifikasi()
String input_dataTraining = fieldDatatraininggetText()
String input_dataTesting = fieldDatatestinggetText()
String input_konstanta = fieldKonstantagetText()
78
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
int dataTraining = IntegervalueOf(input_dataTraining)
int dataTesting = IntegervalueOf(input_dataTesting)
int konstanta = IntegervalueOf(input_konstanta)
int match[][]
match = new int[dataTesting][2000]
int threshold = (jmlh_Faktor order) + konstanta
int hitung_selisih = 0
perhitungan selisih
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
hitung_selisih = 0
for (int k = 0 k lt order k++)
for (int l = 0 l lt jmlh_Faktor l++)
if (i == 0)
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
else if (i gt 0)
FLR_kiri_training[(dataTraining-
1)+i][k][l] = FLR_kiri_testing[i-
1][k][l]
FLR_kanan_training[(dataTraining-1)+i]
= FLR_kanan_testing[i-1]
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
if (hitung_selisih lt threshold)
match[i][j] = hitung_selisih
menghitung jumlah total FLR yang cocok untuk setiap data
testing
int countGroup[] = new int[dataTesting]
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
countGroup[i]++
mencocokan FLR_kiri yang cocok dengan FLR_kanan
group = new int[dataTesting][2000]
for (int i = 0 i lt dataTesting i++)
int tmp_count = 0
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
if (tmp_count lt countGroup[i])
group[i][tmp_count] = j
tmp_count++
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt countGroup[i] j++)
group[i][j] = FLR_kanan[group[i][j]]
mengelompokkan yang sama
MapltInteger Integergt map = new HashMapltInteger Integergt()
hasil_peramalan = new double[dataTesting]
for (int i = 0 i lt dataTesting i++)
79
70
71
72
73
74
75 76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
double peramalan = 0
mapclear()
for (int j = 0 j lt countGroup[i] j++)
int key = group[i][j]
if (mapcontainsKey(key))
int occurrence = mapget(key)
occurrence++
mapput(key occurrence)
else
mapput(key 1)
menghitung hasil peramlaan
Iterator iterator = mapkeySet()iterator()
while (iteratorhasNext())
int key = (Integer) iteratornext()
int occurrence = mapget(key)
peramalan = (peramalan + (pusat_cluster1[(key - 1)]
occurrence))
hasil_peramalan[i] = (peramalan countGroup[i])
Kode Program 510 Implementasi proses defuzzifikasi
53 Implementasi Antarmuka
Pada implementasi antarmuka dijelaskan beberapa halaman antarmuka untuk penggunaan dari program hasil implementasi Implementasi antarmuka berdasarkan perancangan yang telah dijelasakan pada bab sebelumnya yaitu bab perancangan Halaman antarmuka yang dibuat adalah halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
531 Implementasi antarmuka halaman input
Halaman input merupakan halaman yang pertama muncul setelah program dijalankan Pada halaman input ini terdapat beberapa inputan yang harus di masukkan yaitu data input data training data testing order dan konstanta Selain itu pada halaman input juga terdapat tiga button yaitu button browse data button fuzzification dan button forecasting Berikut tampilan antarmuka halaman input yang ditunjukkan pada Gambar 51
Gambar 51 Implementasi antarmuka halaman input
80
532 Implementasi antarmuka halaman tampil data
Halaman tampil data merupakan halaman yang tampil setelah melakukan input data Halaman ini berisi tabel yang menampilkan data curah hujan suhu kecepatan angin dan kelembaban Berikut tampilan antarmuka halaman tampil data yang ditunjukkan pada Gambar 52
533 Implementasi antarmuka halaman proses
Halaman proses merupakan halaman yang muncul setelah button fuzzification telah dieksekusi Halaman proses ini terdiri dari tiga bagian atau tab yaitu clustering fuzzification dan Fuzzy logical relationship Pada halaman antarmuka clustering menampilkan Universe of Discourse dan jumlah cluster pada masing ndash masing faktor Berikut merupakan tampilan antarmuka halaman proses bagian clustering yang ditunjukkan pada Gambar 53
Gambar 52 Implementasi antarmuka halaman tampil data
Gambar 53 Implementasi antarmuka halaman proses clustering
81
Pada tab selanjutnya yaitu pada tab fuzzification tab ini menampilkan hasil proses fuzzifikasi Pada halaman ini menampilkan tabel yang berisi hasil fuzzifikasi dari setiap faktor Berikut merupakan tampilan antarmuka halaman proses bagian fuzzification yang ditunjukkan pada Gambar 54
Pada tab Fuzzy Logical Relationship menampilakn hasil dari proses pembentukan Fuzzy Logical Relationship Tampilan pada halaman ini menampilkan berupa textarea yang berisi dari output proses tersebut Berikut merupakan tampilan antarmuka halaman proses bagian Fuzzy Logical Relationship yang ditunjukkan pada Gambar 55
Gambar 54 Implementasi antarmuka halaman proses fuzzification
Gambar 55 Implementasi halaman antarmuka proses FLR
82
534 Implementasi antarmuka halaman hasil
Pada implementasi antarmuka halaman hasil ini merupakan halaman yang menampilkan hasil dari proses defuzzifikasi Halaman hasil ini menampilkan tabel yang berisi data aktual dan data dari hasil peramlan Berikut merupakan tampilan antarmuka halaman hasil yang ditunjukkan pada Gambar 56
535 Implementasi antarmuka halaman perhitungan error
Pada implementasi antarmuka halaman perhitungan error merupakan halaman yang menampilkan hasil dari proses perhitungan Mean Square Error (MSE) Pada halaman antarmuka ini menampilkan hasil error MSE pada textfield Berikut merupakan tampilan antarmuka halaman perhitungan error yang ditunjukkan pada Gambar 57
Gambar 56 Implementasi halaman antarmuka hasil
Gambar 57 Implementasi halaman antarmuka perhitungan error
83
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini membahas hasil pengujian dan analisis hasil pengujian dari hasil implementasi metode High Order Fuzzy Time Series Multi factors untuk peramalan curah hujan dasarian Pada pengujian ini disesuaikan dengan perancangan pengujian pada bab 4
61 Sistematika Pengujian
Pada bab sebelumnya yaitu bab 4 mengenai perancangan telah dibahas perancangan pengujian dikatakan bahwa pengujian akan dilakukan sebanyak empat pengujian Pengujian order pengujian threshold pengujian jumlah data training dan pengujian validasi sistem Dari semua pengujian tersebut akan di uji dan di analisis bagaimana pengaruhnya terhadap hasil perhitungan Mean Square Error (MSE)
62 Hasil dan Analisis Pembahasan
Berikut hasil pengujian dan analisis yang disesuaikan dengan perancangan pengujian pada bab sebelumnya
621 Pengujian pengaruh order terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh order terhadap nilai MSE Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Jadi jika nilai order adalah 3 maka peramalan akan melibatkan 3 data sebelumnya pada proses pembentukan Fuzzy Logical Relationship (FLR) Pada pengujian ini hanya nilai order yang diubah ndash ubah sedangkan variabel lain akan dibuat tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 konstanta adalah 10 Nilai threshold diperoleh dari perhitungan jumlah faktor dikali order dan dijumlah nilai konstanta Berikut adalah hasil pengujian pengaruh order terhadap nilai MSE yang ditunjukkan pada Tabel 61
Tabel 61 Hasil pengujian order terhadap nilai MSE
No Order Threshold MSE
1 3 22 808585
2 6 34 965547
3 9 46 912631
4 12 58 875884
5 15 70 719284
6 18 82 6801207
7 21 94 5637184
8 24 106 5444184
9 27 118 5433631
10 30 130 5418393
84
Dari hasil pengujian order seperti yang telah ditunjukkan pada Tabel 61 maka pada percobaan pertama dengan order = 3 dan threshold 22 dapat diperoleh MSE sebesar 808585 Selanjutnya pada percobaan kedua dengan order = 6 dan threshold = 34 diperoleh MSE sebesar 965547 Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 61
Berdasarkan Gambar 61 order yang berbeda - beda mempengaruhi besar nilai MSE Dalam penelitian ini menentukan order memiliki ketentuan yaitu nilai order harus lebih dari 0 dan batas maksimal order adalah setengah dari nilai data training (LinYang 2009) Nilai MSE terbesar yang ditunjukkan pada pengujian ini adalah 965547 pada pengujian order 6 dan nilai MSE terkecil adalah 5418393 pada pengujian order 30 Pada Gambar 61 menunjukkan bahwa pada order 3 ke order 6 mengalami peningkatan nilai MSE selanjutnya pada order 6 hingga order 30 mengalami penurunan Pada order 3 memiliki nilai MSE lebih kecil dari order 6 order 9 dan order 12 karena memiliki lebih banyak hasil selisih tingkat kecocokan data time series yang tidak terlalu besar dan kurang dari threshold Selain itu karena data time series dari data sampel yang diperoleh memiliki pola data musiman dimana perubahan pola data dasarian tidak terlalu banyak berubah dari tahun ke tahun Selanjutnya pada order 6 hingga order 30 menunjukkan penurunan nilai MSE dan order terbesar memiliki nilai MSE terkecil sehingga dapat disumpulkan bahwa semakin besar order maka semakin kecil pula nilai MSE Dalam hal ini dengan semakin besarnya order maka data sebelumnya yang digunakan untuk pertimbangan dalam menentukan peramalan semakin banyak Sehingga semakin besar nilai order maka dapat membuat peramalan semakin akurat Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin besar nilai order maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE
85
622 Pengujian pengaruh threshold terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh threshold terhadap nilai MSE Threshold merupakan hasil dari mengalikan jumlah order dengan jumlah faktor pada data kemudian dijumlahkan dengan dengan nilai konstanta Pada proses defuzzifikasi terdapat proses menghitung selisih antara pangkat bawah Fuzzy Logical Relationship (FLR) data training dan pangkat bawah FLR data testing Selanjutnya setelah mendapatkan nilai selisih maka nilai selisih tersebut dibandingkan dengan nilai threshold untuk mencari FLR yang cocok Pada pengujian ini nilai konstanta saja yang diubah ndash ubah sementara variabel lainnya tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 dan Nilai order adalah 30 Pada penentuan input konstanta nilai minimal harus lebih besar dari 0 dan nilai maksimal menyesuaikan data sampel yang digunakan (LinYang 2009) Berikut adalah hasil pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 62
Tabel 62 Hasil pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1 10 130 558485
2 20 140 577498
3 30 150 597364
4 40 160 604660
5 50 170 646951
6 60 180 680257
7 70 190 703013
8 80 200 741484
9 90 210 756749
10 100 220 780600
Dari hasil pengujian threshold seperti yang telah ditunjukkan pada Tabel 62 maka dapat dilihat bahwa konstanta yang dilakukan pengujian dimulai dengan nilai 10 sampai 100 Hasil yang didapat pada percobaan pertama dengan konstanta = 10 dan threshold 130 diperoleh MSE sebesar 558485 Selanjutnya pada percobaan kedua dengan konstanta = 20 dan threshold = 140 diperoleh MSE sebesar 577498 Selanjutnya dapat kita lihat pada percobaan yang telah dilakukan dari percobaan pertama hingga percobaan kesepuluh nilai MSE yang diperoleh mengalami perubahan pada setiap percobaan Dapat dilihat bahwa peningkatan MSE lebih dominan menunjukkan peningkatan sehingga dalam hal ini semakin besar nilai konstanta dan threshold maka semakin besar pula nilai MSE yang diperoleh Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 62
86
Berdasarkan grafik dari Gambar 62 nilai input konstanta yang berbeda - beda mempengaruhi besar nilai MSE semakin besar nilai konstanta maka nilai threshold juga semakin besar karena threshold diperoleh dari perhitungan order dikali jumlah faktor dan selanjutnya dijumlah dengan nilai konstanta Dalam hal ini dengan semakin besar nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR juga semakin luas batasannya dan jika semakin kecil nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR menjadi semakin sempit dan mempermudah proses peramalan karena hanya adanya sedikit data yang cocok dengan data yang akan diramalkan dan mempermudah proses defuzzifikasi Oleh karena itu semakin kecil threshold maka dapat membuat peramalan semakin akurat Akan tetapi nilai threshold tidak boleh terlalu kecil karena dapat menyebabkan kegagalan peramalan Kegagalan peramalan itu terjadi karena tidak adanya data training yang cocok dengan data testing karena pada metode yang digunakan pada penelitian ini sangat bergantung pada data ndash data sebelumnya Dari hasil percobaan diatas hasil MSE terbesar adalah 7806 yaitu pada konstanta 100 serta threshold 220 dan hasil MSE terkecil adalah 558485 yaitu pada konstanta 10 dan threshold 130 Dalam pengujian ini memiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin kecil nilai konstanta maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
623 Pengujian pengaruh jumlah data training terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh jumlah data training terhadap nilai MSE Pada pengujian ini jumlah data training adalah data dasarian yaitu 1 tahun 2 tahun 3 tahun 4 tahun dan 5 tahun dimana dari setiap 1 tahun memiliki 36 data dasarian Pengujian ini akan dilakukan sebanyak lima kali Pada pengujian ini jumlah data testing adalah 36 nilai order adalah setengah dari
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE
87
nilai data training nilai konstanta adalah 20 Berikut adalah hasil pengujian pengaruh jumlah data training terhadap nilai MSE yang ditunjukkan pada Tabel 63
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1 36 786586
2 72 634527
3 108 627190
4 144 614184
5 180 539698
Dari hasil pengujian jumlah data training seperti yang telah ditunjukkan pada Tabel 63 maka pada percobaan pertama dengan data training = 36 dapat diperoleh MSE sebesar 786586 Selanjutnya pada percobaan kedua dengan data training = 72 diperoleh MSE sebesar 634527 Dalam hal ini dari percobaan satu dan dua nilai MSE mengalami penurunan Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 63
Berdasarkan dari Gambar 63 pengujian pertama sampai pengujian kelima mengalami penerunan nilai MSE Sehingga dapat disimpulkan bahwa semakin besar data training maka semakin kecil nilai MSE yang diperoleh Nilai MSE semakin kecil apabila menggunakan data training dalam jumlah besar karena data yang digunakan memiliki rentang jauh dari periode data testing atau data yang akan diramalkan Sedangkan data training yang sedikit memiliki nilai MSE yang besar karena data training yang memiliki kecocokan dengan data testing berada pada periode yang jauh dengan data testing sehingga nilai MSE menjadi tinggi Dalam hal ini terbukti bahwa metode yang digunakan pada penelitian ini memerlukan jumlah data training yang banyak sehingga dapat menurunkan nilai kesalahannya Dari hasil percobaan diatas hasil MSE terbesar adalah 786586 dan
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE
88
hasil MSE terkecil adalah 539698 Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoPeramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Seriesrdquo yang menyatakan bahwa semakin besar jumlah data training maka semakin kecil nilai kesalahannya (Elfajar et al 2017)
624 Pengujian validasi sistem
Pada pengujian ini dilakukan untuk mengetahui kestabilan dari sistem dengan menggunakan order threshold terbaik dari pengujian sebelumnya Pada pengujian ini akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai data training menggunakan 36 data yang berbeda agar dapat menunjukkan gambaran variasi dari nilai kesalahan MSE pada peramalan nilai order adalah 18 dan konstanta adalah 10 sehingga nilai threshold adalah 92 Berikut adalah hasil pengujian validasi sistem yang ditunjukkan pada Tabel 64
Tabel 64 Hasil pengujian validasi sistem
Percobaan ke- MSE
1 714290
2 703856
3 732564
4 732815
5 6973958
6 7532825
7 741726
8 760457
9 709961
10 6256204
Dari hasil pengujian validasi sistem seperti yang telah ditunjukkan pada Tabel 64 maka dapat digambarkan dengan grafik yang ditunjukkan oleh Gambar 64
Gambar 64 Grafik hasil pengujian validasi sistem
89
Berdasarkan dari gambar grafik Gambar 64 bahwa pengujian dari validasi sistem memiliki hasil MSE yang tidak terlalu jauh berbeda dari penggunaan data yang berbeda - beda Oleh karena itu dapat disimpulkan bahwa implementasi dari metode High Order Fuzzy Time Series Multi Factors yang telah digunakan sudah cukup baik untuk digunakan peramalan
Berdasarkan dari pengujian yang dilakukan diatas dapat diketahui bahwa nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun 2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016 Nilai order adalah 90 dan konstanta adalah 10 Berikut adalah perbandingan data aktual dengan hasil peramalan yang ditunjukkan pada grafik Gambar 65
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan
90
BAB 7 PENUTUP
Pada bab ini terdiri dari dua sub bab yaitu kesimpulan dan saran Kesimpulan adalah tahapan yang berisi hasil penelitian yang dilakukan dan jawaban semua rumusan masalah yang sudah ditetapkan sebelumnya dan saran adalah tahapan yang berisi hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
71 Kesimpulan
Pada kesimpulan ini mengacu pada penelitian yang telah dilakukan yang meliputi perancangan implementasi serta pengujian dan analisis terhadap hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diambil kesimpulan sebagai berikut
1 Berdasarkan dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam melakukan peramalan curah hujan dasarian dilakukan dengan beberapa langkah yaitu langkah pertama perhitungan Universe of Discourse yang terdiri perhitungan mean standar deviasi dan perhitungan Dmin serta Dmax langkah kedua yaitu perhitungan jumlah cluster langkah ketiga yaitu perhitungan pusat cluster langkah keempat yaitu pembentukan subinterval dan fuzzy set langkah kelima yaitu proses fuzzifikasi langkah keenam yaitu pembentukan Fuzzy Logical Relationship(FLR) langkah ketujuh adalah defuzzifikasi yang hasil outputnya merupakan hasil peramalan curah hujan
2 Berdasarkan dari pengujian peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diketahui bahwa
a Order berpengaruh terhadap nilai error semakin besar nilai order maka hasil peramalan semakin baik
b Threshold berpengaruh terhadap nilai error semakin rendah nilai threshold maka hasil peramalan semakin baik Akan tetapi nilai threshold tidak boleh terlalu rendah karena dapat menyebabkan kegagalan peramalan
c Data training berpengaruh terhadap nilai error semakin besar jumlah data training maka hasil peramalan semakin baik Sehingga peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors memerlukan banyak data training
d Hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors cukup baik digunakan untuk peramalan Hal ini terbukti hasil pengujian validasi sistem menunjukkan grafik yang cukup stabil
Dari pengujian yang telah dilakukan nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun
91
2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016
72 Saran
Pada penelitian ini dilakukan peramalan curah hujan dasarian dengan faktor yang mempengaruhi adalah suhu kelembaban dan kecapatan angin Saran penulis diharapkan untuk penelitian selanjutnya melakukan penambahan faktor yang mempengaruhi curah hujan atau melakukan peramalan objek lain dengan mempertimbangkan faktor ndash faktor yang mempengaruhinya Serta diharapkan pada penelitian selanjutnya untuk menambahkan data yang lebih banyak serta bervariatif sehingga nilai hasil perhitungan akurasi peramalan yang dihasilkan dalam penelitian dapat meningkat Penggunaan data training yang banyak dan bervariatif dapat membuat pola data semakin terlihat sehingga hasil peramalan yang dihasilkan memiliki akurasi yang lebih baik
92
DAFTAR PUSTAKA
Ardiyanto 2016 ldquoTerendam Air Petani Lamongan Terpaksa Panen Dinirdquo Times Indonesia November 18 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
Badan Penelitian dan Pengembangan Pertanian Kementrian Pertanian 2015 ldquoKalender Tanam Terpadu Versi 25 Kota Malang Prov Jawa Timurrdquo httpkatamlitbangpertaniangoidkatam_terpadu2016mh33535733573_tinggipdf (Diakses 25 Februari 2017)
Bagirov M Adil Mahmood Arshad and Barton Andrew 2017 Prediction of monthly rainfall in Victoria Australia Clusterwise linear regression approach Elsevier Atmos Research 188 20-29
BMKG Staklim Karangploso Malang 2015 ldquoAnalisis Dinamika Atmosfer Dan Laut Dasarian III Maret 2015 Update 2 April 2015rdquo httpkarangplosojatimbmkgogoidindexphpanalisis-kondisi-dinamika-atmosfer-laut-dasarian-tahun-2015399-analisis-dinamika-atmosfer-dan-laut-dasarian-iii-maret-2015-update-2-april-2015axzz3X8h9y4fgampgsctab=0 (Diakses 25 Februari 2017)
BPS Kabupaten Malang 2016 ldquoKabupaten Malang Dalam Angka 2016rdquo httpsmalangkabbpsgoidwebsitepdf_publikasiKabupaten-Malang-Dalam-Angka-2016pdf (Diakses 25 Februari 2017)
BPS Jawa Timur 2015 ldquoJawa Timur Dalam Angka 2015rdquo httpsjatimbpsgoid4dmnpdf_publikasiJawa-Timur-Dalam-Angka-2015pdf (Diakses 25 Februari 2017)
Buffa S Elwood Rakesh and Sarin K 1996 Modern Production and Operation Management Eight Edition John Willey and Sons Inc London
Chen M 1996 Forecasting Enrollments based on Fuzzy Time Series Fuzzy Sets and Systems 311-319
Dewi Candra Kartikasari Dani Mursityo Yusi 2014 Prediksi Cuaca Pada Data Time Series Menggunakan Adaptive Neuro Fuzzy Inference System (ANFIS) Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK) Vol 1 No 1 hlm 18-24
Dewi Candra Muslikh M 2013 Perbandingan Akurasi Backpropagation Neural Network dan ANFIS Untuk Memprediksi Cuaca NATURAL-A Journal of Scientific Modeling amp Computation Volume 1 No1
Elfajar Aria Setiawan Budi Dewi Candra 2017 Peramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Series Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer Vol 1 No 2 Hlmn 85-94
93
Fauziah Normalita Wahyuningsih Sri dan Nasution Yuki 2016 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) Vol4 Statistika
Forest Mahyu 2015 ldquoDefenisi amp Pengertian Kelembabanrdquo httpilmupengetahuaalamblogspotcoid201506defenisi-pengertian-kelembabanhtml (Diakses 25 Februari 2017)
Irsyad Muhammad Metarice Sonya 2013 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan Jurnal Sains dan Teknologi Industri Vol 10 No 02
Klawon F 2001 What is About Fuzzy Clustering Understanding and Improving the Concept of the Fuzzier Science Journal httppublic-rzfh-wolfebuetteldeklawon
Kurniawan Carlos 2007 Analisis dan Perancangan Program Aplikasi Peramalan Curah Hujan dengan Metode Wavelet (Studi Kasus BMKG)
Kusumadewi S 2003 ldquoArtificial Intelegence (Teknik amp Aplikasinya)rdquo Graha Ilmu Yogyakarta
Kusumadewi S Purnomo H 2004 ldquoAplikasi Logika Fuzzy untuk Pendukung Keputusanrdquo Graha Ilmu Yogyakarta
Kusumadewi Sri 2002 Analisis amp Desain Sistem Fuzzy Tollbox MATLAB Graha Ilmu Yogyakarta
Lin Yupei Yang Y 2009 Stock Markets Forecasting Based on Fuzzy Time Series Model IEEE Conference Publications 782-886
Makridakis S Steven C Wheelwright Victor E and Gee MC 1999 Metode dan Aplikasi Peramalan Jilid I Edisi Kedua Jakarta Binarupa Aksara
Mirawati T Yasin H and Rusgiyono A 2013 Prediksi Curah Hujan dengan Metode Kalman Filter(Studi Kasus di Kota Semarang 2012) Jurnal Gaussian 2(3) pp 239-248
Pradipta Nur Sembiring Pasukat Bangun Pengarapen 2013 Analisis Pengaruh Curah Hujan di Kota Medan Saintia Matematika Vol 1
Sipayung Putri Metha 2013 Pemodelan Hubungan Kelembapan Udara terhadap Curah Hujan (Studi Kasus Curah Hujan Periode 2001-2009 pada Stasiun Dramaga) httprepositoryipbacidhandle12345678960623 (Diakses 25 Februari 2017)
User 2015 httpstaklimnegaranet[Online] Available at httpwwwstaklimnegaranetindexphpbuletin-hujanpengertian-istilah (Diakses 25 Februari 2017)
Wang Nai-Yi Chen Shyi-Ming 2009 Temperature prediction and TAIFEX forecasting based on automatic clustering techniques and two-factors high-order fuzzy time series Elsevier Expert Systems with Applications 36 2143ndash2154
94
Wardhani Dessy Ratnawati Dian Setiawan Budi 2015 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Saham Repositori Jurnal Mahasiswa PTIIK UB Doro Jurnal Vol 6 No 6
Wiyanti T and Pulungan R 2012 Peramalan Deret Waktu Menggunakan Model Fungsi Basis Radial (RBF) dan Auto Regressive Integrated Moving Average (ARIMA) Jurnal MIPA 35(2) pp 175-182
Yunanto Utomo 2014 ldquoBMKG Akui Prakiraan Cuacanya Masih Kurang Akuratrdquo Kompas Sains Januari 30 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
xii
Tabel 62 Hasil pengujian threshold terhadap nilai MSE 85
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE 87
Tabel 64 Hasil pengujian validasi sistem 88
xiii
DAFTAR GAMBAR
Gambar 21 Representasi linear naik 11
Gambar 22 Representasi linear turun 12
Gambar 23 Representasi kurva segitiga 12
Gambar 31 Diagram blok metodologi penelitian 22
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1) 25
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2) 26
Gambar 43 Diagram alir proses perhitungan Universe of Discourse 27
Gambar 44 Diagram alir proses perhitungan mean 28
Gambar 45 Diagram alir proses perhitungan standar deviasi 29
Gambar 46 Diagram alir perhitungan nilai Min dan Max 30
Gambar 47 Diagram alir proses perhitungan jumlah cluster 31
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1) 32
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2) 33
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3) 34
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4) 35
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5) 36
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1) 37
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2) 38
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1) 39
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2) 40
Gambar 417 Diagram alir proses Pembentukan FLR (bagian 1) 41
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2) 42
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3) 43
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1) 44
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2) 45
Gambar 422 Grafik fuzzy set data A 56
Gambar 423 Rancangan antarmuka halaman input 61
Gambar 424 Rancangan antarmuka halaman tampil data 61
Gambar 425 Rancangan antarmuka halaman proses clustering 62
Gambar 426 Rancangan antarmuka proses fuzzifikasi 62
xiv
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship 63
Gambar 428 Rancangan antarmuka halaman hasil peramalan 63
Gambar 429 Rancangan antarmuka halaman perhitungan error 64
Gambar 51 Implementasi antarmuka halaman input 79
Gambar 52 Implementasi antarmuka halaman tampil data 80
Gambar 53 Implementasi antarmuka halaman proses clustering 80
Gambar 54 Implementasi antarmuka halaman proses fuzzification 81
Gambar 55 Implementasi halaman antarmuka proses FLR 81
Gambar 56 Implementasi halaman antarmuka hasil 82
Gambar 57 Implementasi halaman antarmuka perhitungan error 82
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE 84
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE 86
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE 87
Gambar 64 Grafik hasil pengujian validasi sistem 88
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan 89
xv
DAFTAR KODE PROGRAM
Kode Program 51 Implementasi proses Universe of Discourse 68
Kode Program 52 Implementasi proses mean 68
Kode Program 53 Implementasi proses standar deviasi 69
Kode Program 54 Implementasi proses Dmin dan Dmax 69
Kode Program 55 Implementasi proses jumlah cluster 70
Kode Program 56 Implementasi proses pusat cluster 72
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set 74
Kode Program 58 Implementasi proses fuzzifikasi 75
Kode Program 59 Implementasi pembentukan FLR 77
Kode Program 510 Implementasi proses defuzzifikasi 79
xvi
DAFTAR LAMPIRAN
Lampiran 1 Tabel Data Sampel 95
1
BAB 1 PENDAHULUAN
11 Latar belakang
Kabupaten Malang merupakan salah satu kabupaten di Jawa Timur yang terkenal akan potensi alam yang dimiliki (BPS Kabupaten Malang 2016) Dalam hal ini terkenal akan potensi alamnya karena kabupaten Malang memiliki tingkat produksi di sektor pertanian yang cukup tinggi dimana hampir seluruh kecamatan di kabupaten Malang memiliki lahan pertaniaaan (BPS Jatim 2015) Permasalahan yang terjadi pada sektor pertanian yaitu terjadinya gagal panen apabila memasuki musim penghujan dengan curah hujan yang tinggi yaitu diatas 200 mm per bulan serta apabila memasuki musim kemarau dengan curah hujan yang rendah yaitu dibawah 100 mm per bulan (BMKG Staklim Karangploso Malang 2015) Dalam mengatasi hal tersebut upaya yang dilakukan petani selama ini hanya melakukan tindakan seperti melakukan panen secara dini Upaya ini dianggap petani cukup efektif dalam mengurangi besarnya kerugian gagal panen akan tetapi sebaiknya yang dilakukan adalah melakukan suatu tindakan agar kerugian yang dialami petani tidak terjadi lagi (Ardiyanto 2016)
Salah satu contoh tindakan yang dapat dilakukan adalah membuat Kalender Tanam (KATAM) KATAM dapat digunakan petani sebagai alat bantu atau pedoman dalam menentukan awal musim tanam terbaik seperti yang telah dilakukan oleh Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian Dalam pembuatan KATAM Balitbang menggunakan data peramalan curah hujan dari Badan Meteorologi Klimatologi dan Geofisika (BMKG) Akan tetapi BMKG mengakui bahwa prakiraan cuacanya saat ini memang masih kurang akurat dan masih kalah dengan prakiraan cuaca di Amerika Serikat (Yunanto 2014) Pentingnya akan prakiraan cuaca terbukti adanya beberapa penelitian sebelumnya yaitu penelitian prakiraan cuaca dengan input faktor yang mempengaruhi cuaca yang berupa data time series menggunakan metode Adaptive Neuro Fuzzy Inference System (ANFIS) (Dewi 2014) dan penelitian mengenai prediksi cuaca menggunakan metode Backpropagation Neural Network yang terbukti memiliki nilai akurasi yang baik dalam prediksi cuaca (Dewi 2013)
Teknik atau metode peramalan curah hujan yang sering digunakan BMKG adalah metode Autoregressive Integrated Moving Average (ARIMA) ANFIS dan Wavelet (Kurniawan 2007) Namun dalam penerapannya gabungan dari ketiga metode tersebut masih kurang memuaskan yaitu tingkat akurasinya hanya mencapai 60 - 70 Menurut BMKG kurangnya tingkat akurasinya ini disebabkan oleh keadaan pola atmosfer di Indonesia yang selalu berubah ndash ubah dan kurang menentu
Selain metode yang digunakan oleh BMKG adapun penelitian sebelumnya yang meramalkan curah hujan yaitu penelitian menggunakan metode Fuzzy Time Series Chen dengan studi kasus curah hujan di Samarinda dalam penelitian ini menggunakan data time series curah hujan bulanan dengan kesimpulan pengunaan data yang sedikit memiliki tingkat akurasi lebih tinggi dibandingkan
2
menggunakan data yang banyak yaitu menghasilkan nilai RMSE terkecil 7368 dan MAE terkecil 539 (Fauziah et al 2016)
Selain peramalan yang hanya menggunakan data time series dari data yang akan diramalkan juga terdapat penelitian sebelumnya yang menggunakan faktor - faktor yang mempengaruhi dari data yang akan diramalkan Salah satunya yaitu penelitian dengan menggunakan metode Clusterwise Linear Regression (CLR) Penelitian ini menggunakan data bulanan pada delapan stasiun cuaca di kota Victoria Australia Peramalan curah hujan pada penelitian ini menggunakan faktor yang mempengaruhi yaitu suhu maksimum suhu minimum penguapan tekanan uap dan radiasi matahari Hasil penelitian ini terbukti dapat melakukan peramalan curah hujan dengan hasil yang cukup baik yaitu dengan nilai RMSE terkecil 197 dan MAE terkecil 129 (Bagirov et al 2017)
Berdasarkan paparan yang telah dijelaskan penulis memiliki ide untuk melakukan penelitian dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Pada metode ini dilakukan klasterisasi data untuk membangun subinterval dengan menggunakan metode fuzzy C-means (LinYang 2009) Dari proses hasil klasterisasi akan digunakan untuk membagi data semesta yang selanjutnya menghasilkan fuzzy set atau himpunan fuzzy yang menggambarkan fitur data (LinYang 2009) Keunggulan dari metode fuzzy time series dengan multi faktor yaitu dengan berdasarkan pada penelitian ndash penelitian sebelumnya yang menggunakan metode tersebut yaitu penelitian prediksi harga emas dengan beberapa faktor yang mempengaruhi menggunakan metode Multi-factors High order Fuzzy Time Series Model dari hasil penelitian ini dengan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 (Wardhani et al 2015) dan penelitian peramalan Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen menggunakan metode Fuzzy Time Series Model dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 (Lin Yang 2009) terbukti menghasilkan hasil peramalan dengan tingkat akurasi yang cukup tinggi Penggunaan metode ini juga sesuai dengan curah hujan yang dipengaruhi oleh beberapa faktor yaitu kelembaban udara kecepatan angin dan suhu (Pradipta 2013) Penelitian ini diharapkan dapat memberikan hasil peramalan curah hujan yang lebih akurat dan memiliki nilai kesalahan yang lebih sedikit
12 Rumusan masalah
Berdasarkan latar belakang yang telah dipaparkan dibuatlah beberapa rumusan masalah sebagai berikut
1 Bagaimana mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Berapa tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
3
13 Tujuan
Adapun maksud dan tujuan dari penelitian ini adalah sebagai berikut
1 Mengimplementasikan Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
2 Mengetahui tingkat kesalahan dari hasil implementasi Metode High Order Fuzzy Time Series Multi Factors untuk meramalkan curah hujan
14 Manfaat
Adapun manfaat dari penelitian ini adalah sebagai berikut
1 Bagi Badan Meteorologi dan Geofisika (BMKG) untuk dapat memberikan peramalan curah hujan yang lebih akurat dari sebelumnya
2 Bagi Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian untuk dapat membuat Kalender tanam (KATAM) dengan menggunakan data ramalan curah hujan yang lebih akurat
3 Bagi penduduk kabupaten Malang khususnya yang bekerja pada sektor pertanian agar dapat mengoptimalkan hasil produksi dengan menyesuaikan penanaman sesuai dengan Kalender Tanam (KATAM) yang telah dibuat Badan Penelitian dan Pengembangan (Balitbang) Pertanian Kementerian Pertanian
15 Batasan masalah
Penelitian ini dibatasi oleh hal ndash hal sebagai berikut
1 Data curah hujan kelembaban udara kecepatan angin dan suhu udara yang digunakan pada penelitian ini merupakan data berdasarkan dasarian dan hanya mencakup wilayah kabupaten Malang dan data diperoleh dari BMKG Karangkates Kabupaten Malang dengan data time series yang digunakan pada penelitian ini yaitu dari tahun 2011 - 2016
2 Model peramalan yang diterapkan adalah semua nilai yang membentuk pola dataset training dan testing diketahui nilainya
3 Perhitungan nilai tingkat kesalahan permalan menggunakan metode Mean Square Error (MSE)
16 Sistematika pembahasan
Sistematika pembahasan penelitian ditunjukkan untuk memberikan gambaran dan uraian dari penyusunan proposal yang meliputi beberapa bab sebagai berikut
BAB 1 PENDAHULUAN
Pada bab ini berisi latar belakang rumusan masalah tujuan penelitian manfaat penelitian batasan masalah sistematika pembahasan dan rencana kerja atau jadwal penelitian
4
BAB 2 LANDASAN KEPUSTAKAAN
Pada bab ini berisi tentang kajian pustaka dan dasar teori yang menjadi dasar dalam melakukan implementasi peramalan curah hujan dengan Metode High Order Fuzzy Time Series Multi Factors
BAB 3 METODOLOGI
Pada bab ini diuraikan tentang tahapan atau langkah ndash langkah yang dilakukan dalam proses penelitian tentang peramalan curah hujan dengan metode High Order Fuzzy Time Series Multi Factors Langkah ndash langkah tersebut terdiri dari tahapan penelitian teknik pengumpulan data algoritma yang digunakan lingkungan pengujian dan pengujian algoritma yang digunakan serta pengambilan kesimpulan
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan proses algoritma perhitungan manual metode High Order Fuzzy Time Series Multi Factors perancangan antar muka dan perancangan pengujian
BAB 5 IMPLEMENTASI
Pada bab ini berisi tentang penjelasan peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors bagaimana user interface dan source code dalam pengimplementasian metode ini
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini berisi tentang penjelasan proses dan hasil pengujian dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam peramalan curah hujan serta analisis dari pengujian tersebut
BAB 7 PENUTUP
Pada bab ini berisi kesimpulan yang diperoleh dari hasil pengujian dan saran ndash saran untuk pengembangan penelitian selan
5
BAB 2 LANDASAN KEPUSTAKAAN
Bab ini berisi mengenai kajian pustaka dan dasar ndash dasar teori yang akan dibahas serta digunakan untuk menunjang topik ndash topik pembahasan Pada kajian akan dibahas perbedaan antara penelitian yang telah ada dengan penelitian yang diusulkan oleh penulis Sedangkan pada dasar teori akan dibahas mengenai teori ndash teori yang digunakan pada penelitian yang diusulkan
21 Kajian Pustaka
Pada kajian pustaka disini berisi mengenai perbandingan antara penelitian yang diusulkan oleh penulis dengan penelitian sebelumnya yang relevan Perbandingan tersebut dapat dilihat padat Tabel 21
Tabel 21 Kajian Pustaka
No Judul Objek dan Input Penelitian Metode
1 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan (Irsyad Metarice 2013)
Objek Curah hujan
Input Penelitian
Data aktual curah hujan
Metode High Order Fuzzy Time Series dan Automatic Clustering
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
2 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) (Fauziah et al 2016)
Objek Curah Hujan
Input Penelitian
Data aktual curah hujan
Metode Fuzzy Time Series Chen
Nilai evaluasi
Mean Absolute Error (MAE) Root Mean of Square Error (RMSE)
3 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emas (Wardhani et al 2015)
Objek Harga Emas
Input Penelitian
Kurs Dollar hari sebelumnya
Kurs Euro hari sebelumnya
Harga Emas London hari sebelumnya
Harga Emas hari sebelumnya
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Absolute Percentage Error (MAPE)
4 Stock Markets Forecasting Based on Fuzzy Time Series Model (Lin Yang 2009)
Objek Indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
6
Input Penelitian
Historical return
Historical turnover volume
Rata ndash rata selisih pergerakan harga selama lima hari
Selisih antara kekuatan bull dan bear
Indeks komposit bursa efek harian Shanghai sebelumnya
Indeks komposit bursa efek harian Shenzhen
Nilai evalusi
Average Relative Error (ARError)
5 Peramalan Curah Hujan Menggunakan Metode High Order Fuzzy Time Series Multi Factors
Objek Curah hujan
Input Penelitian
Suhu
Kelembaban
Kecepatan angin
Curah hujan
Metode Fuzzy C-Means ndash Fuzzy Time Series Model
Nilai evalusi
Mean Square Error (MSE)
Sumber (Irsyad Metarice 2013) (Fauziah et al 2016) (Wardhani et al 2015) dan (Lin Yang 2009)
Pada penelitian yang pertama yaitu penelitian yang dilakukan oleh Muhammad Irsyad dan Sonya Metarice pada tahun 2013 dengan objek penelitian yang diramalkan adalah curah hujan Inputan yang digunakan pada penelitian ini merupakan data aktual curah hujan bulanan Metode yang digunakan penelitian ini adalah Automatic Clustering dan High Order Fuzzy Time Series Pada penelitian ini metode Automatic Clustering digunakan untuk membangun interval dan High Order Fuzzy Time Series untuk melakukan peramalan curah hujan Kesimpulan yang diperoleh dari penelitian ini yaitu metode ini dapat diterapkan untuk permalan curah hujan dan hasil evaluasi menggunakan metode Mean Absolute Percentage Error(MAPE) dari beberapa bercobaan dapat diperoleh nilai kesalahan sebesar 437 Berdasarkan dari hasil nilai kesalahan tersebut maka tingkat kesalahan data pada permalan ini termasuk rendah
Pada tahun 2016 Normalita Fauziah Sri Wahyuningsih dan Yuki Novia Nasution melakukan penelitian dengan objek penelitian curah hujan di kota Samarinda Inputan yang digunakan pada penelitian berupa data aktual bulanan curah hujan di kota Samarinda Metode yang digunakan pada penelitian ini adalah Fuzzy Time Series Chen dengan dalam pembentukkan panjang interval berbasis rata ndash rata atau average based Pada penelitian ini permalan curah hujan terbaik yaitu dengan menggunkan data sebanyak 29 data dengan menghasilkan tingkat nilai kesalahan terkecil yaitu dengan metode Root Mean of Squared Error (RMSE) sebesar 7368 dan metode Mean Absolute Error (MAE) sebesar 539 Pada
(Lanjutan) Tabel 21 Kajian Pustaka
7
penelitian ini disimpulkan bahwa data sebanyak 29 data memiliki tingkat kesalahan lebih kecil dibandingkan dengan menggunakan data dengan jumlah sampel yang lebih banyak
Pada penelitian selanjutnya adalah penelitian yang dilakukan oleh Dessy Kusuma Wardhani Dian Eka Ratnawati dan Budi Darma Setiawan pada tahun 2015 dengan objek penelitian yang diramalkan adalah harga emas harian Inputan yang digunakan pada penelitian ini data aktual harian harga emas indonesia harga emas london kurs dollar ke rupiah dan kurs euro ke rupiah Metode yang digunakan pada penelitian pada pembentukkan sub interval menggunakan metode fuzzy C-means dan untuk peramalan menggunakan metode High Order Fuzzy Time Series Model Hasil pada penelitian ini berdasarkan menggunakan metode evaluasi Mean Absolute Percentage Error (MAPE) dapat diperoleh nilai error terkecil sebesar 0443 karena nilai error lebih kecil dari 10 menunjukkan bahwa metode ini sangat baik digunakan untuk peramalan harga emas
Pada tahun 2009 Yupei Lin dan Yiwei Yang melakukan penelitian dengan objek yang diramalkan adalah indeks komposit bursa efek harian Shanghai dan indeks komponen bursa efek harian Shenzhen Data input penelitian ini meliputi historical return historical turnover volume dan rata ndash rata selisih pergerakan harga selama lima hari serta selisih antara kekuatan bull dan bear Dalam penelitian ini pembentukan subinterval yang berfungsi dalam pendefinisian himpunan fuzzy dilakukan dengan menggunakan klasterisasi fuzzy C-means Hasil dari penilitian ini menunjukan tingkat Average Relative Error (ARError) sebesar 176 untuk bursa efek harian Shanghai sedangkan untuk bursa efek harian Shenzhen didapatkan ARError sebesar 187 Dalam hal ini membuktikan bahwa penelitian dapat menghasilkan peramalan yang cukup baik karena memiliki nilai ARError kurang dari 5
Pada penelitian ini membahas tentang peramalan curah hujan dasarian menggunakan metode High Order Fuzzy Time Series Multi Factors Terdapat empat inputan yang juga dijadikan sebagai variabel dalam penelitian ini yaitu kelembaban udara kecepatan angin suhu udara dan curah hujan Pembentukan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan klasterisasi fuzzy C-means Penelitian ini menggunakan high order fuzzy logic relationship yaitu membentuk fuzzy logic relationship berdasarkan data dalam kurun waktu beberapa dasarian sebelum dasarian yang akan diramal Pada penelitian ini dalam melakukan perhitungan nilai error untuk mendapatkan hasil evaluasi menggunakan metode Mean Square Error (MSE)
22 Dasar Teori
Pada dasar teori disini dijelaskan tentang metode ndash metode yang digunakan pada penelitian ini yang meliputi peramalan curah hujan data time series logika fuzzy fuzzy C-means metode peramalan dengan Fuzzy Time Series High Order Fuzzy Time Series Multi Factors dan metode perhitungan keakuratan metode peramalan
8
221 Peramalan
Terdapat beberapa definisi tentang peramalan menurut Kamus Besar Bahasa Indonesia (KBBI) yaitu
a Peramalan merupakan prediksi rencana atau estimasi kejadian masa depan yang tidak pasti (KBBI)
b Peramalan adalah sebagai penggunaan teknik ndash teknik statistik dalam bentuk gambaran masa depan berdasarkan pengolahan angka ndash angka yang terjadi pada masa lalu (Buffa et al1996)
c Peramalan adalah bagian internal dari pengambilan keputusan manajemen (Makridakis et al1999)
Berdasarkan beberapa definisi diatas dapat disimpulkan bahwa peramalan merupakan tindakan apa yang akan terjadi di masa mendatang peramalan diperlukan untuk mengambil sebuah keputusan Dalam pengambilan keputusan harus diambil dari pertimbangan ndash pertimbangan yang ada Oleh karena itu peramalan sangat penting hubungannya dengan pengambilan keputusan sehingga kejadian di masa yang akan datang dapat dipersiapkan tindakan apa yang perlu dilakukan
222 Curah hujan
Curah hujan merupakan salah satu faktor penting yang mempengaruhi perubahan iklim suatu wilayah (Mirawati et al 2013) Salah satu contoh kasus nyata yaitu terjadinya perubahan iklim secara tiba ndash tiba atau bisa disebut dengan cuaca ekstrim Curah hujan dapat dijelaskan dengan air hujan yang terkumpul pada suatu wadah datar dimana air hujan tersebut tidak meresap tidak menguap dan tidak mengalir sehingga dapat diukur ketinggiannya Sebagai contoh curah hujan 1 (satu) milimeter dapat dijelaskan dalam suatu wadah datar dengan luas satu meter persegi tertampung air dengan ketinggian sekitar satu milimeter atau tertampung air sebanyak satu liter Metode dalam mendapatkan data curah hujan adalah dengan menggunakan penakar hujan yang kemudian diukur dengan satuan milimeter (mm) (User2015) Intensitas curah hujan dapat dikategorikan ringan jika dibawah 20mm dalam 24 jam dikategorikan lebat jika di atas 50mm dan dikategorikan sedang jika selang 20mm hingga 50mm (User 2015)
Curah hujan mempengaruhi beberapa sektor diantarannya sektor komunikasi dimana penggunaan frekuensi diatas 10 GHz dapat terkena redaman hujan (Mauludiyanto et al 2009) Akan tetapi curah hujan paling berpengaruh terhadap sektor pertanian Hal ini terbukti bahwa sebagian besar terjadinya penurunan produktifitas dan gagal panen di sektor pertanian adalah terjadinya curah hujan yang tinggi
Tinggi dan rendahnya curah hujan dipengaruhi oleh beberapa faktor yaitu kelembaban udara temperatur dan kecepatan angin Pada tahun 2013 Nur Suri Pradipta Pasukat Sembiring dan Pengarapen Bangun melakukan penelitian mengenai pengaruh curah hujan di kota Medan (Pradipta et al 2013)
9
Berdasarkan penelitian tersebut faktor yang mempengaruhi dan digunakan dalam peramalan curah hujan yaitu
1 Kelembaban udara
Kelembaban udara adalah banyaknya kandungan uap air di atmosfer Udara atmosfer adalah campuran dari udara kering dan uap air selain itu kelembaban udara merupakan komponen cuaca yang mempunyai peranan sangat penting bagi stabilitas kehidupan organisme di bumi maupun unsur-unsur cuaca yang lain (Forest 2015) Kelembaban udara berpengaruh terhadap curah hujan Hal ini didukung penelitian oleh (Sipayung et al 2013) yang menyatakan Kelembaban udara berpengaruh positif terhadap curah hujan
2 Kecepatan angin
Kecepatan angin merupakan kecepatan udara yang bergerak secara horizontal pada ketinggian 2 meter diatas tanah Dalam hal ini faktor yang menentukan kecepatan angin adalah perbedaan tekanan udara antara asal dan tujuan angin Kecepatan angin berpengaruh positif terhadap curah hujan artinya jika kecepatan angin tinggi maka curah hujan akan tinggi (Pradipta et al2013)
3 Suhu udara
Suhu udara merupakan ukuran energi kinetik rata ndash rata dari pergerakan molekul ndash molekul Suhu udara berpengaruh negatif terhadap curah hujan artinya jika suhu udara tinggi maka curah hujan akan berkurang (Pradipta et al2013)
223 Data time series
Data time series adalah data statistik yang telah dihimpun dari masa lampau hingga sekarang dan dapat digunakan sebagai acuan dalam melakukan peramalan terhadap data yang akan datang (Wiyanti amp Pulungan 2012) Data time series juga dapat didefinisikan sebagai sebuah kegiatan mengamati data statistik dimana terdapat korelasi (dependensi) antar datanya sehingga data yang sekarang sedang diamati memiliki ketergantungan dengan satu atau lebih data pengamatan sebelumnya (Mirawati et al 2013)
Terdapat dua teknik prediksi yang menggunakan basis data time series yaitu teknik model matematika statistik dan berdasarkan kecerdasan buatan (Wiyanti amp Pulungan 2012) Analisa time series sendiri memiliki beberapa peruntukan salah satunya digunakan dalam melakukan peramalan untuk masa yang akan datang Dalam penggunaan data time series merupakan salah satu proses peramalan kuantitatif dimana berdasar data kuantitatif masa lampau yang direpresentasikan dalam bentuk angka atau nilai (Mirawati et al 2013)
10
224 Logika Fuzzy
Pada tahun 1965 Prof Lotfi A Zadeh memperkenalkan teori logika fuzzy Logika fuzzy merupakan suatu komponen soft computing dan juga suatu cara yang tepat untuk memetakan suatu ruang input ke dalam ruang output Antara ruang input dan ruang output terdapat black box yang berfungsi memetakan input ke ruang output yang sesuai Dasar logika fuzzy adalah teori fuzzy set Pada teori fuzzy set peranan derajat keanggotaan sebagai penentu keberadaan elemen dalam suatu himpunan sangatlah penting Oleh karena itu derajat keanggotaan menjadi ciri utama dalam penalaran dengan logika fuzzy Logika fuzzy bekerja dengan menggunakan derajat keanggotan dari sebuah nilai yang kemudian digunakan untuk menentukan hasil yang ingin dihasilkan berdasarkan atas kriteria yang telah ditentukan (Kusumadewi 2003)
Berikut adalah beberapa alasan digunakannya logika fuzzy (Kusumadewi 2002)
1 Logika fuzzy sangat fleksibel
2 Konsep logika fuzzy mudah dimengerti dan dipahami
3 Logika fuzzy memiliki toleransi terhadap data ndash data yang homogen dan data ndash data yang kurang tepat
4 Logika fuzzy didasari pada bahasa alami atau bahasa sehari - hari sehingga mudah dimengerti
5 Logika fuzzy dapat bekerjasama dengan teknik ndash teknik kendali secara konvensional
6 Logika fuzzy mampu membangun dan mengaplikasikan pengalaman ndash pengalaman para pakar secara langsung tanpa harus melalui tahap atau proses pelatihan
A Himpunan Fuzzy
Himpunan fuzzy atau fuzzy set merupakan perluasan himpunan tegas atau himpunan crisp jadi fungsi karakteristik mencakup bilangan real pada interval [01] Dalam definisi lain himpunan fuzzy adalah suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dalam suatu variabel fuzzy Keanggotaan fuzzy berbeda dengan probabilitas jika keanggotaan fuzzy pada setiap fungsi karakteristik memberikan suatu pendapat atau keputusan sedangkan probabilitas menunjukan seberapa besar nilai kebenaran dalam fungsi karakteristik tersebut Contohnya yaitu nilai keanggotaan suatu himpunan fuzzy umur muda 09 berarti nilai dalam himpunan tersebut memiliki kemungkinan 90 anggotanya berumur muda dan 10 diharapkan tidak muda Dalam himpunan fuzzy suatu bilangan bisa memiliki dua keanggotaan sekaligus Himpunan fuzzy memiliki dua attribut (Kusumadewi2003)
11
1 Linguistik merupakan penamaan suatu himpunan yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami misalnya muda parobaya tua
2 Numeris merupakan suatu nilai (angka) yang menunjukkan ukuran dari suatu
variabel seperti 402550 dan sebagainya
B Fungsi Keanggotaan
Fungsi keanggotaan adalah suatu kurva yang menunjukkan pemetaan titik ndash titik input data ke dalam derajat keanggotaannya yang memiliki subinterval antara 0 sampai 1 (Kusumadewi Purnomo 2004) Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi Ada beberapa fungsi keanggotaa yang dapat digunakan
1 Fungsi representasi linear
Pada fungsi representasi linear pemetaan input ke derajat keanggotaannya digambarkan sebagai suatu garis lurus Bentuk ini paling sederhana dan menjadi pilihan yang baik untuk mendekati suatu konsep yang kurang jelas Keadaan linear himpunan fuzzy terdiri dari dua keadaan yaitu keadaan linear naik dan keadaan linear turun Pada keadaan linear naik kenaikan himpunan dimulai pada nilai domain yang memiliki nilai derajat keanggotaan nol bergerak ke kanan menuju ke nilai domain yang memiliki derajat keanggotaan yang lebih tinggi seperti yang ditunjukkan Gambar 21 Persamaan fungsi keanggotaan pada representasi linear naik ditunjukkan oleh Persamaan 21
Fungsi Keanggotaan
120583(119909) = 0
(119909 minus 119886)(119887 minus 119886)1
119909 le 119886 119886 le 119909 le 119887119909 ge 119887
(21)
b a 0
1
Gambar 21 Representasi linear naik
Sumber Kusumadewi (2002)
120583(119909)
12
Pada keadaan linear turun berbanding terbalik dengan keadaan linear naik Garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi pada sisi kiri kemudian bergerak menurun ke nilai domain yang memiliki derajat keanggotaan lebih rendah yang ditunjukkan Gambar 22 Persamaan fungsi keanggotaan pada representasi linear turun ditunjukkan oleh Persamaan 22
Fungsi Keanggotaan
120583(119909) = (119887 minus 119909)(119887 minus 119886)0
119886 le 119909 le 119887
119909 ge 119887 (22)
2 Fungsi representasi kurva segitiga
Representasi kurva segitiga pada dasarnya merupakan gabungan antara 2 garis linear yaitu linear naik dan linear turun Fungsi representasi kurva segitiga ditandai oleh adanya tiga parameter abc yang akan menentukan koordinat x dari tiga sudut seperti ditunjukkan pada Gambar 23 Persamaan fungsi keanggotaan pada representasi kurva segitiga ditunjukkan oleh Persamaan 23
b a 0
1
Sumber Kusumadewi (2002)
Gambar 22 Representasi linear turun
120583(119909)
c a 0
1
b
Sumber Kusumadewi (2002)
Gambar 23 Representasi kurva segitiga
120583(119909)
13
Fungsi Keanggotaan
120583(119909) =
0 (119909 minus 119886)(119887 minus 119886) (119887 minus 119909)(119888 minus 119887)
119909 le 119886 119886119905119886119906 119909 ge 119888
119886 le 119909 le 119887 119887 le 119909 le 119888
(23)
225 Metode Fuzzy C-means
Fuzzy C-means (FCM) pertama kali diperkenalkan oleh Dunn dan dikembangkan oleh Bezdek yang banyak digunakan dalam pengenalan pola Metode ini merupakan pengembangan dari metode non-hierarkhi K-Means Cluster selanjutnya dilakukan iterasi sampai mendapatkan keanggotaan kelompok tersebut (Klawon 2001)
FCM merupakan salah satu algoritma fuzzy clustering dan juga teknik klasterisasi dimana tiap data ditentukan oleh derajat keanggotaanya Tujuan penggunaan algoritma FCM yaitu untuk menemukan pusat cluster atau centroid dengan meminimumkan fungsi objektif (Bazdek 1984) Ouput dari FCM bukan merupakan fuzzy inference system melainkan deretan pusat cluster dan beberapa derajat keanggotaan untuk setiap titik data Hasil output ini dapat digunakan untuk membangun suatu fuzzy inference system Berikut adalah langkah ndash langkah dari FCM (Kusumadewi 2004)
1 Langkah pertama menentukan jumlah cluster (c ge 2) pembobot (infin gt 119908 gt1) (Bazdek 1984) maksimum iterasi (maxIter) error minimum yang diharapkan yaitu nilai positif yang sangat kecil (120585) fungsi objektif awal (P0 = 0) iterasi awal dideklarasikan 1
2 Langkah kedua memasukkan data X yang akan diklasterisasi berupa matriks berukuran m x n (m = jumlah sampel data n = attribut setiap data) Contoh Xij = data sampel ke-i (i = 1234m) attribu ke-j (j=1234n)
3 Langkah ketiga yaitu dengan membuat bilangan random microik i = 1234n dan k = 123c (n = jumlah sampel pada data c = jumlah cluster yang akan dibentuk) sebagai elemen ndash elemen matriks partisi awal Untuk bilangan penyusun matriks partisi awal dihitung dihitung jumlahnya setiap kolom yang ditunjukkan pada pada Persamaan 24 (Kusumadewi 2004)
119876119896 = sum 120583119894119896119888119896=1 (24)
Dimana
119876119896 = jumlah bilangan pada kolom k
120583119894119896 = bilangan random pada baris i kolom k
119888 = jumlah kolom
14
Selanjutnya untuk menghitung derajat keanggotaan awal dengan melakukan normalisasi pada matiks partisi pada normalisasi dilakukan menggunakan Persamaan 25 (Kusumadewi 2004)
120583119894119896 = 120583119894119896119876119896 (25)
4 Langkah keempat melakukan perhitungan cluster ke-k Vkj dengan k = 1234c dan j = 1234m Perhitungan pusat cluster ditunjukkan pada Persamaan 26 (Kusumadewi 2004)
119881119896119895 = sum ((120583119894119896)119908 times 119883119894119895)119899
119894=1
sum (120583119894119896)119908119899119894=1
(26)
Dimana
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
120583119894119896 = derajat keanggotaan pada data ke-i cluster ke-k
119883119894119895 = data sampel pada data ke-i attribut ke-j
119908 = pembobot
5 Langkah kelima melakukan perhitungan fungsi objektif pada iterasi ke-t P1 Perhitungan fungsi objektif ditunjukkan pada Persamaan 27 (Kusumadewi 2004)
119875119905 = sum sum ([sum (119883119894119895 minus 119881119896119895)119898119895=1
2](120583119894119896)119908)119888
119896=1119899119894=1 (27)
Dimana
119875119905 = fungsi objektif
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
6 Langkah keenam melakukan perhitungan perbaikan matriks partisi yang telah ditunjukkan Persamaan 28 (Kusumadewi 2004)
120583119894119896 = [sum (119883119894119895minus119881119896119895)119898
119895=12
]
minus1119908minus1
sum [sum (119883119894119895minus119881119896119895)119898119895=1
2]
minus1119908minus1119888
119896minus1
(28)
Dimana
119883119894119895 = data sampel ke-i atribut ke-j
119881119896119895 = pusat cluster pada cluster ke-k dan atribut ke-j
119908 = pembobot
7 Langkah ketujuh yaitu melakukan pemerikasaan kondisi berhenti dengan kondisi sebagai berikut
a Jika (|119875119905 minus 119875119905minus1| lt 120585) atau ( t gt MaxIter) maka berhenti
b Jika tidak memenuhi t = t +1 ulangi mulai dari langkah ke-4
15
226 Metode Peramalan dengan Fuzzy Time Series
Pada tahun 1996 Chen memperkenalkan metode peramalan dengan menggunakan metode Fuzzy Time Series Metode Fuzzy Time Series memiliki perbedaan dengan metode peramalan time series biasa atau konvensional yaitu terdapat pada data yang digunakan untuk peramalan Fuzzy Time Series data yang digunakan adalah berupa fuzzy set atau himpunan fuzzy dari bilangan ndash bilangan real atas himpunan semesta yang ditentukan Jadi Fuzzy Time Series merupakan metode dengan menggunakan data berupa fuzzy set yang berasal dari bilangan real atas Universe of Discorse pada data aktual Universe of Discourse adalah himpunan semesta dari data penelitian
Berikut adalah langkah ndash langkah metode Fuzzy Time Series yang telah diperkenalkan oleh Chen terdapat enam langkah yaitu
1 Langkah pertama yaitu membagi Universe of Discourse dari bilangan aktual ke dalam subinterval dengan jumlah interval yang sama Perhitungan Universe of Discourse ditunjukkan pada Persamaan 29 (Chen 1996)
119880 = [119863119898119894119899 minus 1198631 119863119898119886119909 + 1198632] (29)
Dimana
119880 = Universe of Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
1198631 dan 1198632 = bilangan positif yang ditentukan oleh user untuk menentukan Universe of Discourse dari himpunan data sampel
2 Langkah kedua adalah mendefinisikan fuzzy set dari Universe of Discourse (U) menjadikan A1 A2 A3 An ke dalam fuzzy set dengan nilai linguistik sesuai dengan keadaan U Selanjutnya mendefinisikan fuzzy set tersebut ditunjukkan pada Persamaan 210 (Chen 1996)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (210)
1198602 =11989121
1199061+
11989122
1199062+
11989123
1199063+ ⋯ +
1198912119896
119906119896
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
Dimana 119891119894119895120598 [01] 1 le 119894 le 119896 dan 1 le 119895 le 119898 Variabel 119891119894119895 menunjukkan
derajat keanggotaan dari subinterval 119906119895 dari fuzzy set 1198601 Pada konsep ini
Chen menggunakan nilai linguistik 1198601 = (not many) 1198602 = (not too many) 1198603= (many) 1198604 = (many many) 1198605 = (very many) 1198606 = (too many) 1198607= (too many many) Kemudian nilai linguistik tersebut dimasukkan ke tiap fuzzy set Dari U tersebut dapat dibangun fuzzy set sebagai berikut
16
1198601 = 1
1199061+
05
1199062+
0
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198602 = 05
1199061+
1
1199062+
05
1199063+
0
1199064+
0
1199065+
0
1199066+
0
1199067
1198603 = 0
1199061+
05
1199062+
1
1199063+
05
1199064+
0
1199065+
0
1199066+
0
1199067
1198604 = 0
1199061+
0
1199062+
05
1199063+
1
1199064+
05
1199065+
0
1199066+
0
1199067
1198605 = 0
1199061+
0
1199062+
0
1199063+
05
1199064+
1
1199065+
05
1199066+
0
1199067
1198606 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
05
1199065+
1
1199066+
05
1199067
1198607 = 0
1199061+
0
1199062+
0
1199063+
0
1199064+
0
1199065+
05
1199066+
1
1199067
3 Langkah ketiga yaitu melakukan fuzzifikasi data historis proses fuzzifikasi merupakan proses merubah data aktual yang merupakan bilangan crisp ke dalam bentuk bilangan fuzzy Bilangan fuzzy yang dimaksudkan adalah dalam bentuk derajat keanggotaan Dari beberapa derajat keanggotaan yang terbentuk kemudian dipilih satu fuzzy set yang memiliki derajat keanggotaan teringgi Fuzzifikasi dinotasikan sebagai berikut jika F(t-1) berada pada fuzzy set Ak maka F(t-1) difuzzifikasikan sebagai Ak
4 Langkah keempat adalah mengidentifikasi Fuzzy Logic Relationship (FLR) FLR diidentifikasikan sebagai Ai dan F(t) difuzzifikasikan sebagai Ai rarr Aj Ai sebagai sisi kiri relationship disebut sebagai current state dan Aj sebagai sisi kanan relationship disebut next state Jika terjadi perulangan relationship maka tetap dihitung satu kali
5 Langkah kelima yaitu mengelompokkan menjadi Fuzzy Logical Relationship Group (FLRG) FLRG dibangun berdasarkan sisi kiri (current state) yang sama
6 Langkah terakhir yaitu langkah keenam adalah melakukan defuzzifikasi nilai keluaran peramalan Defuzzifikasi adalah mengubah nilai keluaran fuzzy menjadi bilangan crisp kembali sehingga diperoleh hasil akhir peramalan Defuzzifikasi didasarkan pada tiga (3) rule aturan yaitu (Chen 1996)
I Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai hanya memiliki satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj dimana nilai maksimum fungsi keanggotaanya berada pada 119906119895 maka nilai peramalan untuk n+1 adalah
nilai tengah dari 119906119895 atau didefinisikan dengan 119898119895
II Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai memiliki lebih dari satu FLR pada FLRG yaitu dengan kondisi Ai rarr Aj1 Aj2 Ajp Dimana nilai tengah untuk masing ndash masing Aj1 Aj2 Aj3 Ajp adalah mj1 mj2 mj3 mjp
maka nilai peramalan untuk n+1 adalah (mj1 mj2 mj3 mjp) p
III Jika hasil fuzzifikasi tahun ke-n adalah Ai dan Ai tidak memiliki FLR pada FLRG dimana nilai maksimum fungsi keanggotaannya berada pada 119906119895
17
maka nilai peramalan untuk n+1 adalah nilai tengah dari 119906119895 atau
didefinisikan dengan 119898119895
227 Metode High Order Fuzzy Time Series Multi Factors
Metode High Order Fuzzy Time Series Multi Factors adalah metode Fuzzy Time Series (FTS) yang melibatkan beberapa faktor yang mempengaruhi peramalan dengan berdasarkan beberapa periode waktu sebelum periode yang akan diramalkan dalam proses pembentukkan Fuzzy Logical Relationship (FLR) Hasil peramalan dengan banyak faktor yang mempengaruhi dinilai lebih baik dari pada dengan hanya satu faktor yang mempengaruhi (LinYang 2009) Pada metode ini pembentukkan subinterval yang berfungsi dalam pendefinisian fuzzy set dilakukan dengan menggunakan teknik klasterisasi fuzzy C-means Berikut adalah langkah ndash langkah Metode High Order Fuzzy Time Series Multi Factors (LinYang 2009)
1 Langkah pertama adalah melakukan perhitungan Universe of Discourse (U) Sebelum menghitung nilai U terlebih dulu menghitung nilai mean (rata ndash rata) sampel lalu menghitung nilai standar deviasi (120590) Mean merupakan perhitungan jumlah dari semua nilai dalam kumpulan data kemudian dibagi dengan jumlah total data untuk menghitung nilai mean ditunjukkan pada Persamaan 211 (Weisstein 2015) Standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel untuk menghitung nilai standar deviasi (120590) ditunjukkan pada Persamaan 212 (Weisstein 2015) Perhitungan U ditunjukkan pada Persamaan 213 (LinYang 2009)
119909 =sum 119909119894
119899119894=1
119899 (211)
Dimana
= mean (rata ndash rata)
119909119894 = nilai data ke-i
119899 = banyak data
120590 = radicsum (119909119894minus ) 2119899
119894=1
119899minus1 (212)
Dimana
120590 = Standar deviasi data
119880 = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590] (213)
Dimana
119880 = Universal 0f Discourse
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
18
2 Langkah kedua yaitu menentukan jumlah cluster data Proses klasterisasi bertujuan untuk membagi U kedalam beberapa subinterval Hasil perhitungan banyaknya cluster apabila bernilai pecahan maka harus dibulatkan menjadi bilangan bulat Perhitungan banyaknya cluster ditunjukkan pada Persamaan 214 (LinYang 2009)
119896 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905)minus119883(119905minus1)|119899
119905=1
119899minus1| (214)
Dimana
119896 = banyaknya jumlah cluster
119863119898119894119899 = nilai minimum dari data sampel
119863119898119886119909 = nilai maksimum dari data sampel
119899 = banyaknya data sampel
119883(119905) = data pada waktu ke-t
3 Langkah ketiga yaitu melakukan pembentukan pusat cluster Pada metode ini proses klasterisasi data menggunakan fuzzy C-means (FCM) untuk mendapatkan pusat cluster sebanyak k Tahapannya U dibagi kedalam k subinterval (119863119898119894119899 1198891) (1198891 1198892) (1198892 1198893) hellip (119889119896minus1 119863119898119886119909) dimana di (i = 123k-1) merupakan titik tengah antara dua pusat cluster k subinterval didefinisikan sebagai 1199061 1199062 1199063 hellip 119906119896 Sehingga dalam hal ini subinterval
dengan panjang berbeda dapat menggambarkan struktur data kompleks dengan baik dan dapat meningkatkan peramalan dibandingkan menggunakan subinterval dengan panjang yang sama (LinYang 2009)
4 Langkah keempat yaitu melakukan pembentukan himpunan fuzzy atau fuzzy set Pada langkah ini fuzzy set direpresentasikan dengan kurva bahu Pembentukkan fuzy set ditunjukkan pada Persamaan 215 (LinYang 2009)
1198601 =11989111
1199061+
11989112
1199062+
11989113
1199063+ ⋯ +
1198911119896
119906119896 (215)
= + + + +
119860119896 =1198911198961
1199061+
1198911198962
1199062+
1198911198963
1199063+ ⋯ +
119891119896119896
119906119896
5 Langkah kelima yaitu proses fuzzifikasi Proses fuzzifikasi bertujuan untuk mengubah data sampel yang masih berupa bilangan crisp sehingga menjadi bilangan fuzzy Masing ndash masing data dihitung derajat keanggotaannya terhadap fuzzy set yang sudah terbentuk selajutnya derajat kanggotaan dihitung berdasarkan kurva bahu dan derajat keanggotaan tertinggi menunjukkan hasil fuzzifikasi data tersebut Contohnya A(t) B(t) C(t) dan D(t) dimana t= 123n merupakan time series dari faktor yang mempengaruhi serta n merupakan banyaknya data Berdasarkan pembagian subinterval masing ndash masing time series ini difuzzifikasikan Misalkan hasil dari Persamaan 215 yaitu menghitung banyak cluster dari k1 k2 k3 k4 Jadi time series difuzzifikasikan menjadi empat fuzzy time series yaitu
19
A(ti) dimana i = 1234k1
B(tj) dimana j = 1234k2
C(tp) dimana p = 1234k3
D(tq) dimana q = 1234k4 t = 123n
6 Langkah keenam yaitu melakukan pembentukkan Fuzzy Logical relationship (FLR) Data sampel sebanyak n periode dipilih sebagai data training untuk membentuk fuzzy time series model Misalkan t merupakan periode waktu yang akan diramal dengan menggunakan order ndash 3 maka tiga periode sebelum periode t adalah t-3 t-2 dan t-1 dimana t = 456n Maka FLR yang dihasilkan ditunjukkan pada Persamaan 216 dan berdasarkan persamaan tersebut maka akan membentuk sebuah kumpulan FLR dari data training (LinYang 2009)
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023)) (216)
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
Tabel 22 Fuzzy Logic Relationship
(119860(119905minus31198943) 119861(119905minus31198953) 119862(119905minus31199013) 119863(119905minus31199023))
(119860(119905minus21198942) 119861(119905minus21198952) 119862(119905minus21199012) 119863(119905minus21199022))
(119860(119905minus11198941) 119861(119905minus11198951) 119862(119905minus11199011) 119863(119905minus11199021)) rarr 119860(1199051198944)
(119860(119905minus21198943) 119861(119905minus21198953) 119862(119905minus21199013) 119863(119905minus21199023))
(119860(119905minus11198942) 119861(119905minus11198952) 119862(119905minus11199012) 119863(119905minus21199022))
(119860(1199051198941) 119861(1199051198951) 119862(1199051199011) 119863(1199051199021)) rarr 119860(119905+11198944)
(119860(119905+119899minus71198943) 119861(119905+119899minus71198953) 119862(119905+119899minus71199013) 119863(119905+119899minus71199023))
(119860(119905+119899minus61198942) 119861(119905+119899minus61198952) 119862(119905+119899minus61199012) 119863(119905+119899minus61199022))
(119860(119905+119899minus51198941) 119861(119905+119899minus51198951) 119862(119905+119899minus51199011) 119863(119905+119899minus51199021)) rarr 119860(119905+119899minus41198944)
Sumber (LinYang 2009)
7 Langkah terakhir adalah proses Defuzzifikasi Berdasarkan langkah sebelumnya maka dapat diambil hasil fuzzy ke- H yaitu yang digunakan sebagai data testing atau data uji seperti yang ditunjukkan pada Persamaan 217 (LinYang 2009)
(119860(119867minus31198943) 119861(119867minus31198953) 119862(119867minus31199013) 119863(119867minus31199023)) (217)
(119860(119867minus21198942) 119861(119867minus21198952) 119862(119867minus21199012) 119863(119867minus21199022))
(119860(119867minus11198941) 119861(119867minus11198951) 119862(119867minus11199011) 119863(119867minus11199021)) rarr 119860(1198671198944)
20
Faktor ndash faktor di ruas kiri pada Persaman 217 dibandingkan satu per satu dengan FLR data training yang sudah dicatat sebelumnya pada Tabel 22 membandingkannya yaitu dengan cara menghitung nilai absolut dari selisih antara pangkat bawah kedua faktor pada posisi yang sama di FLR Terdapat 12 fuzzy set di ruas kiri pada masing ndash masing FLR sehingga dari hasil perbandingan diperoleh 12 nilai absolut yang kemudian dijumlahkan untuk mendapat total selisihnya Jadi jika total selisih lebih kecil dari threshold yang ditentukan maka FLR tersebut dinyatakan cocok (LinYang 2009)
Selanjutnya jika FLR menemukan N pasangan yang cocok pada Tabel 22 maka N faktor di ruas kanan dari N FLR ini mendasari peramalan fuzzy set A() yang mana jumlah dari setiap fuzzy set pada umumnya berbeda Untuk peramalan dengan fuzzy set ditunjukkan pada Tabel 23 (LinYang 2009)
Tabel 23 Peramalan fuzzy set
Ruas Kanan A(1) A(2) A(3) A(k1)
Pusat cluster c1 c2 c3 ck1
Frekuensi f1 f2 f3 fk1
Sumber (Lin Yang 2009)
Berdasarkan Tabel 23 dengan menggunakan metode centroid untuk melakukan proses defuzzifikasi Proses defuzzifikasi dapat ditunjukkan pada Persamaan 218 (LinYang 2009)
119903119867 =sum 119888119894times 119891119894
1198961119894=1
sum 119891119894119896119894119894=1
(218)
Dimana
119903119867 = hasil (result) peramalan data ke-H
119888119894 = pusat cluster i dimana A(i) adalah ruas kanan dari FLR hasil proses pencocokan
119891119894 = frekuensi banyaknya muncul A(i) pada saat proses pencocokan
228 Perhitungan keakuratan metode peramalan
Dalam perencanaan peramalan tentu menginginkan hasil ramalan yang tepat atau paling tidak hampir mendekati sehingga rencana yang dibuat menjadi rencana yang realistis Keakuratan atau ketepatan merupakan yang menjadi kriteria performance suatu metode peramalan Keakuratan tersebut dapat dinyatakan sebagai kesalahan peramalan (forecast error) Semaikin kecil nilai kesalahan peramalan maka semaikin tinggi keakuratan metode peramalan yang digunakan dan sebaliknya semakin tinggi nilai kesalahan maka semakin rendah keakuratan metode peramalan yang digunakan
Mean Square Error (MSE) adalah salah satu metode yang digunakan untuk menghitung nilai akurasi atau keakuratan dari metode yang digunakan sebagai peramalan atau prediksi MSE merupakan perhitungan pangkat dua dari selisih
21
antara nilai data hasil peramalan dengan nilai data aktual dan kemudian dibagi dengan banyaknya data yang telah diramalkan Pada penentuan nilai evaluasi memilih menggunakan metode MSE karena metode ini dapat menunjukan hasil skala kemiripan antara hasil data peramalan dengan data aktual Berikut merupakan metode Mean Square Error (MSE) yang ditunjukan pada Persamaan 219 (Wang Chen 2009)
119872119878119864 = sum (119865119905minus119860119905)2119899
119894=1
119899 (219)
Dimana 119872119878119864 = nilai Mean Square Error Rate 119860119905 = nilai aktual pada data ke-t 119865119905 = nilai hasil peramalan untuk data ke-t n = banyaknya data
22
BAB 3 METODOLOGI
Pada bab ini akan dibahas mengenai metode yang digunakan beserta tahap ndash tahap pengerjaan penelitian skripsi dengan judul ldquoPeramalan Curah Hujan dengan Metode High Order Fuzzy Time Series Multi Factorsrdquo Penilitian ini digolongkan sebagai penelitian implementatif dengan pendekatan perancangan (design)
Metode penelitian ini meliputi studi literatur pengumpulan data perancangan implementasi pengujian dan analisis pengambilan kesimpulan Berikut adalah alur dari metode penelitian dapat ditunjukkan pada Gambar 31
31 Studi Literatur
Pada tahap studi literatur penelitian ini bertujuan untuk mempelajari literatur dan konsep dari beberapa informasi dan pustaka yang berkaitan dengan penelitian ini Literatur dan sumber ilmu dari penelitian ini diperoleh dari internet buku dan bimbingan oleh dosen pembimbing Adapun literatur yang dipelajari yaitu tentang curah hujan serta faktor ndash faktor yang mempengaruhinya dan metode High Order Fuzzy Time Series Multi Factors
Studi Literatur
Pengumpulan Data
Perancangan
Implementasi
Pengujian dan Analisis
Kesimpulan dan Saran
Gambar 31 Diagram blok metodologi penelitian
23
32 Pengumpulan Data
Pada tahap pengumpulan penelitian ini sumber data yang diperoleh yaitu dari Badan Meteorologi Klimatologi dan Geofisikia (BMKG) Stasiun Klimatologi Kelas III Karangkates Kabupaten Malang Data yang diperoleh untuk peramalan curah hujan yaitu data aktual time series (2011 - 2016) Data yang digunakan dalam bentuk dasarian yaitu dalam rentang waktu sepuluh hari sehingga dalam satu bulan dibagi menjadi tiga dasarian
Dasarian pertama yaitu pada tanggal 1 sampai dengan 10
Dasarian kedua yaitu pada tanggal 11 sampai dengan 20
Dasarian ketiga yaitu pada tanggal 21 sampai dengan akhir bulan
Pada penelitian ini data curah hujan dalam satuan milimeter (mm) kelembaban dalam persen () suhu udara dalam satuan celsius (˚C) kecepatan angin dalam satuan kilometer per jam (kmjam)
33 Perancangan
Pada tahap perancangan penelitian ini bertujuan untuk mengetahui rancangan ndash rancangan yang merupakan langkah yang dilakukan saat melakukan tahap implementasi Pada tahap ini terdapat beberapa perancangan yaitu perancangan proses yang berisi tahapan ndash tahapan proses metode High Order Fuzzy Time Series Multi Factors perhitungan manual yang merupakan manualisasi dari metode yang digunakan pada penelitian ini perancangan antar muka atau user interface yang berisi gambaran kasar dari tampilan antar muka prototype aplikasi yang nantinya diterapkan pada tahap implementasi selanjutnya adalah perancangan pengujian yang berisi rancangan ndash rancangan pengujian metode yang digunakan untuk mengetahui berapa tingkat kesalahan atau error yang dimiliki metode pada penelitian ini dalam melakukan peramalan curah hujan
34 Implementasi
Pada tahap implementasi peneltian ini dilakukan sesuai dengan perancangan yang telah dibuat pada tahapan perancangan sebelumnya Implementasi dari metode High Order Fuzzy Time Series Multi Factors dilakukan menggunakan bahasa pemrograman java serta Integrated Development Environment (IDE) yang digunakan adalah Netbeans Sehingga nantinya hasil dari tahap ini berupa prototype aplikasi dari implementasi metode High Order Fuzzy Time Series Multi Factors untuk peramalan curah hujan
35 Pengujian dan Analisis
Pada tahapan penelitian pengujian ini diperlukan perangkat lunak dan perangkat keras agar pengujian dari hasil implementasi dapat berjalan dengan baik maka pengujian perangkat lunak dijalankan pada laptop ataupun PC (Personal Computer) dengan spesifikasi sebagai berikut
24
1 Prosesor Intel Core i3
2 Memory RAM 8 Gigabytes
3 Sistem Operasi menggunakan Windows 7 64bit
4 Hardisk dengan kapasitas 500 GB
5 Netbeans 81 JDK 7
Pengujian hasil peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors yaitu menggunakan metode Mean Square Error (MSE) Dimana rumus pengujian sesuai dengan Persamaan 219 Dalam pengujian menggunakan metode ini semakin kecil nilai MSE maka semakin tinggi tingkat akurasi hasil peramalan tersebut Pada penelitian ini untuk keperluan pengujian dari proses implementasi dilakukan empat pengujian yaitu pengujian terhadap perbedaan nilai order pengujian terhadap perbedaan nilai threshold pengujian terhadap data training untuk mengetahui pengaruhnya terhadap nilai MSE dan pengujian validasi sistem untuk mengetahui bahwa hasil implementasi metode High Order Fuzzy Time Series Multi Factors dapat melakukan peramalan
36 Kesimpulan dan Saran
Pada pengambilan kesimpulan akan dilakukan apabila semua tahapan ndash tahapan penelitian sudah dilakukan yaitu yang meliputi perancangan implementasi dan pengujian dan analisis telah selesai dilakukan Kesimpulan merupakan tahapan dimana semua rumusan masalah yang sudah ditetapkan sebelumnya dapat terjawab semua Selanjutnya pada saran merupakan berkenaan dengan hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
25
BAB 4 PERANCANGAN
Pada bab ini berisi tentang perancangan yang nantinya digunakan sebagai dasar dalam tahap implementasi Hal yang dibahas meliputi perancangan proses perhitungan manual perancangan pengujian dan perancangan antar muka
41 Perancangan Proses
Pada perancangan proses ini berisi mengenai tahapan ndash tahapan dari metode yang digunakan yaitu metode High Order Fuzzy Time Series Multi Factors Pada penelitian ini melibatkan faktor ndash faktor yang mempengaruhi curah hujan yaitu suhu udara kelembaban udara dan kecepatan angin Data time series dari curah hujan merupakan faktor utama dalam proses peramalan pada penelitian ini Inputan pada peneltian ini yaitu data time series curah hujan serta faktor ndash faktor yang mempengaruhinya Order yang digunakan pada metode ini merupakan order lebih dari satu oleh karena itu disebut dengan High Order Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Berikut merupakan diagram alir dari proses peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors yang ditunjukkan pada Gambar 41 dan Gambar 42
Gambar 41 Diagram alir metode penelitian yang digunakan (bagian 1)
Mulai
Data curah hujan suhu kelembaban kecepatan angin jmlh_Banyakdata jmlh_Faktor
Universe_of_Discourse
A
Jumlah_Cluster
26
411 Proses perhitungan Universe of Discourse
Pada perhitungan Universe of Discourse harus sudah dilakukan inputan data agar dapat memulai tahapan perhitungan Tahapan dari proses perhitungannya yaitu pada langkah pertama dilakukan perhitungan nilai mean (rata ndash rata) sesuai dengan Persamaan 211 Setelah mendapatkan nilai mean dapat dilakukan perhitungan untuk mencari nilai standar deviasi sesuai dengan Persamaan 212 Selanjutnya dicari nilai terkecil (119863119898119894119899) dan nilai terbesar (119863119898119886119909) Setelah menyelesaikan tahap ndash tahap tersebut dapat dilakukan perhitungan untuk
Gambar 42 Diagram alir metode penelitian yang digunakan (bagian 2)
A
Perhitungan Pusat Cluster
Fuzzifikasi
Pembentukan Fuzzy Logical Relationship
Defuzzifikasi
Nilai hasil peramalan
Berhenti
Pembentukan Subinterval dan Fuzzy set
27
mencari Universe of Discourse sesuai dengan Persamaan 213 Berikut merupakan diagram alir dari proses perhitungan Universe of Discourse yang ditunjukkan pada Gambar 43
Perhitungan Universe of Discourse
Mulai
Min_dan_Max
mean
standar_deviasi
for i = 0 to jmlh_Faktor-1
i
hsl_uMin ke i = hsl_min ke i ndash hsl_stdev ke i
hsl_uMax ke i = hsl_max ke i + hsl_stdev ke i
hsl_uMin hsl_uMax
Berhenti
Gambar 43 Diagram alir proses perhitungan Universe of Discourse
28
4111 Proses perhitungan Mean
Pada proses perhitungan mean merupakan nilai rata ndash rata dari setiap faktor dimana nilai mean ini nantinya dibutuhkan untuk melakukan proses perhitungan standar deviasi Berikut merupakan diagram alir dari proses perhitungan mean yang ditunjukkan pada Gambar 44
mean
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
tmp_jmlh = 0
tmp_jmlh = tmp_jmlh + data ke ij
j
hsl_mean ke i = tmp_jmlhjmlh_DataTraining
i
hsl_mean
Berhenti
Gambar 44 Diagram alir proses perhitungan mean
29
4112 Proses perhitungan standar deviasi
Pada proses perhitungan standar deviasi dapat dilakukan setelah mendapatkan nilai mean dari setiap data sesuai proses sebelumnya Berikut merupakan diagram alir dari proses perhitungan standar deviasi yang ditunjukkan pada Gambar 45
standar_deviasi
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to jmlh_DataTraining
result = 0
result = result + (data ke ij ndash mean ke i)2
j
hsl_stdev ke i = radicresult
jmlh_DataTrainingminus1
i
hsl_stdev
Berhenti
Gambar 45 Diagram alir proses perhitungan standar deviasi
30
4113 Proses perhitungan nilai Dmin dan Dmax
Pada proses perhitungan ini merupakan proses perhitungan untuk mencari nilai terkecil dan terbesar dari setiap faktor data Setelah mendapat nilai terkecil dan terbesar maka data dilakukan proses perhitungan Universe of Discourse Berikut merupakan diagran alir dari proses perhitungan nilai Dmin dan Dmax yang ditunjukkan pada Gambar 46
Gambar 46 Diagram alir perhitungan nilai Min dan Max
ya
ya
tidak
tidak
Min_dan_Max
Mulai
for i = 0 to jmlh_Faktor-1
besar = data ke i0
kecil = data ke i0
for j=0 to jmlh_DataTraining
data ke ij gt besar
besar = data ke ij
data ke ij lt kecil
kecil = data ke ij
j
hsl_max ke i = besar
hsl_min ke i = kecil
i
hsl_max hsl_min
Berhenti 1
1
2
2
3
4
4
5
5
3
31
412 Proses perhitungan jumlah cluster
Pada proses perhitungan jumlah cluster memiliki masukkan proses Dmin dan Dmax
dari proses perhitungan sebelumnya Pada proses ini terdapat perhitungan nilai dari selisih setiap data Pada perhitungan jumlah cluster sesuai dengan Persamaan 214 Berikut merupakan langkah ndash langkah perhitungan jumlah cluster yang ditunjukkan pada Gambar 47
jumlah_Cluster
Mulai
for i = 0 to jmlh_Faktor-1
for j = 0 to (jmlh_DataTraining-1)
Berhenti
hsl_max hsl_min
selisih = 0
selisih = selisih + |data ke ij ndash data ke i (j+1)|
j
jmlh_Cluster ke i = |ℎ119904119897_119898119894119899 119896119890 119894minusℎ119904119897_119898119886119909 119896119890 119894|
119904119890119897119894119904119894ℎ
119895119898119897ℎ_119863119886119905119886119879119903119886119894119899119894119899119892minus1
i
jmlh_Cluster
Gambar 47 Diagram alir proses perhitungan jumlah cluster
32
413 Proses perhitungan pusat cluster
Pada proses perhitungan pusat cluster ini diperlukan beberapa variabel yang harus dideklarasikan terlebih dahulu yaitu nilai bobot fungsi objektif nilai iterasi awal nilai iterasi maksimum dan error terkecil Perhitungan subinterval ini menggunakan metode fuzzy C-means yang diawali dengan pencarian pusat cluster terlebih dahulu Berikut merupakan langkah ndash langkah perhitungan subinterval yang ditunjukkan pada Gambar 48 Gambar 49 Gambar 410 Gambar 411 Gambar 412
Gambar 48 Diagram alir proses perhitungan pusat cluster (bagian 1)
Perhitungan pusat cluster
Mulai
jmlh_Cluster
for i = 0 to jmlh_Faktor-1
Deklarasi bobot selisih_f_objektif
iter_maksimum error_min
Pembentukan Matriks partisi faktor A jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor A
for iter = iter to iter_maksimum
A
i == 0
Perhitungan pusat_cluster1 faktor A
B C D
tidak
ya
33
Gambar 49 Diagram alir proses perhitungan pusat cluster (bagian 2)
ya
tidak
tidak
ya
Perhitungan f_objektif faktor A
A B C D
Perhitungan selisih_f_objektif faktor A
Perbaikan matriks partisi faktor A
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster1 faktor A
Iter = iter_maksimum
iter
i == 1
Pembentukan Matriks partisi faktor B jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor B
for iter = iter to iter_maksimum
F A G E
34
tidak
tidak
ya
A E F G
Perhitungan pusat_cluster2 faktor B
Perhitungan f_objektif faktor B
Perhitungan selisih_f_objektif faktor B
Perbaikan matriks partisi faktor B
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster2 faktor B
Iter = iter_maksimum
iter
i == 2
Pembentukan Matriks partisi faktor C jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor C
I A H
Gambar 410 Diagram alir proses perhitungan pusat cluster (bagian 3)
ya
35
tidak
tidak
Gambar 411 Diagram alir proses perhitungan pusat cluster (bagian 4)
ya
A H I
for iter = iter to iter_maksimum
Perhitungan pusat_cluster3 faktor C
Perhitungan f_objektif faktor C
Perhitungan selisih_f_objektif faktor C
Perbaikan matriks partisi faktor C
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster3 faktor C
Iter = iter_maksimum
iter
i == 3
Pembentukan Matriks partisi faktor D jmlh_DataTraining x jmlh_cluster ke i
Normalisasi matriks faktor D
J A K
ya
36
tidak
ya
Gambar 412 Diagram alir proses perhitungan pusat cluster (bagian 5)
A K J
for iter = iter to iter_maksimum
Perhitungan pusat_cluster4 faktor D
Perhitungan f_objektif faktor D
Perhitungan selisih_f_objektif faktor D
Perbaikan matriks partisi faktor D
selisih_f_objektif lt error_min
Pengurutan ascending pusat_cluster4 faktor D
Iter = iter_maksimum
iter
i
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
Berhenti
37
tidak
ya
tidak
ya
Gambar 413 Diagram alir pembentukan subinterval dan fuzzy set (bagian 1)
414 Proses pembentukan subinterval dan Fuzzy set
Pada proses pembentukan fuzzy set atau himpunan fuzzy pada penelitian ini dapat dilakukan setelah perhitungan subinterval selesai dilakukan Nilai subniterval merupakan masukan utama pada pembentukkan fuzzy set Pembentukan fuzzy sesuai dengan Persamaan 215 Berikut merupakan langkah ndash langkah proses pembentukan fuzzy set yang ditunjukkan pada Gambar 413 dan Gambar 414
Pembentukan subinteval dan Fuzzy set
Mulai
pusat_cluster1pusat_cluster2 pusat_cluster3pusat_cluster4
for i = 0 to jmlh_Faktor-1
Menentukan batas_subintervalMinA dan
batas_subintervalMaxA
Menentukan batas_fuzzysetMinA dan batas_fuzzysetMaxA
i == 0
i == 1
Menentukan batas_subintervalMinB dan
batas_subintervalMaxB
Menentukan batas_fuzzysetMinB dan batas_fuzzysetMaxB
A C B
38
tidak
tidak
ya
ya
415 Proses Fuzzifikasi
Pada proses fuzzifikasi ini pembentukanya sesuai derajat keanggotaan pada setiap data Pada proses ini derajat keanggotaan dihitung berdassarkan fungsi keanggotaan kurva bahu Hasil dari proses ini merupakan data yang sudah difuzzifikasikan menjadi data fuzzy Berikut langkah ndash langkah dari proses fuzzifikasi ditunjukkan pada Gambar 415 dan Gambar 416
i == 2
A B C
Menentukan batas_subintervalMinC dan batas_subintervalMaxC
Menentukan batas_fuzzysetMinC dan batas_fuzzysetMaxC
i == 3
Menentukan batas_subintervalMinD dan batas_subintervalMaxD
Menentukan batas_fuzzysetMinD dan batas_fuzzysetMaxD
i
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
Berhenti
Gambar 414 Diagram alir pembentukan subinterval dan fuzzy set (bagian 2)
39
tidak
ya
ya
tidak
Fuzzifikasi
Mulai
for i = 0 to jmlh_Faktor-1
Menentukan hasil_fuzzifikasiA dari faktor A
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinA batas_fuzzysetMaxA
Gambar 415 Diagram alir proses fuzzifikasi (bagian 1)
batas_fuzzysetMinA batas_fuzzysetMaxA batas_fuzzysetMinB batas_fuzzysetMaxB batas_fuzzysetMinC batas_fuzzysetMaxC batas_fuzzysetMinD batas_fuzzysetMaxD
DD
i == 0
i == 1
Menentukan hasil_fuzzifikasiB
dari faktor B
Menghitung derajat keanggotaan
berdasarkan batas_fuzzysetMinB
batas_fuzzysetMaxB
C A B
40
tidak
ya
ya
tidak
ya
i == 2
A B C
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinC batas_fuzzysetMaxC
Menentukan hasil_fuzzifikasiC dari faktor C
i == 3
Menghitung derajat keanggotaan berdasarkan batas_fuzzysetMinD
batas_fuzzysetMaxD
Menentukan hasil_fuzzifikasiD dari faktor D
i
hasil_fuzzifikasiA hasil_fuzzifikasiB hasil_fuzzifikasiC hasil_fuzzifikasiD
Berhenti
Gambar 416 Diagram alir proses fuzzifikasi (bagian 2)
41
tidak
ya
416 Proses pembentukan Fuzzy Logical Relationship
Setelah data melalui proses fuzzifikasi dan sudah menjadi data fuzzy maka dapat dilakukan pembentukan Fuzzy Logical Relationship (FLR) Pembentukan FLR dilakukan sesuai dengan Persamaan 216Berikut adalah langkah ndash langkah proses pembentukan Fuzzy Logical Relationship (FLR) yang ditunjukkan pada Gambar 417 Gambar 418 dan Gambar 419
Gambar 417 Diagram alir proses Pembentukan FLR
(bagian 1)
Pembentukan Fuzzy Logical Relationship
Mulai
hasil_fuzzifikasiAhasil_fuzzifikasiB hasil_fuzzifikasiChasil_fuzzifikasiD order
for i = 0 to jmlh_dataTraining
max_inc = order jmlh_dataTraining = dataTraining - order
for j = i to max_inc
for k = 0 to jmlh_Faktor-1
j == 0
FLR_kiri_training ke ijk = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D)
ke j
E A B C D
42
ya
tidak
ya
tidak
A B C E D
FLR_kiri_training ke i(j-i)k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
j = 0
k
j
FLR_kanan_training ke i = hasil_fuzzifikasiA ke (i+order)
Max_inc lt (jmlh_DataTraining-1)
i
tmp_JmlhDatatraining = tmp_JmlhDatatraining +1
max_inc = max_inc + 1 tmp_JmlhDatatraining = i
Gambar 418 Diagram alir proses Pembentukan FLR (bagian 2)
for j = 0 to tmp_JmlhDatatraining
for j = tmp_JmlhDatatraining to max_inc
for k = 0 to jmlh_Faktor-1
I H G F
43
tidak
ya
417 Proses Defuzzifikasi
Proses defuzzifikasi merupakan proses akhir dimana keluaran dari proses ini merupakan nilai hasil peramalan Data yang diperlukan pada proses defuzzifikasi adalah hasil dari proses pembentukan Fuzzy Logical Relationship (FLR) nilai threshold yang harus dideklarasikan sebelumnya jumlah data training dan jumlah data testing Dalam proses ini dilakukan perhitungan selisih pada FLR antara data testing dan data training FLR yang dihitung nilai selisihnya adalah FLR pangkat bawah yang terdapat pada ruas kiri Setelah dilakukan perhitungan selisih dan total jumlah selisih lebih kecil dari nilai threshold maka pada setiap FLR yang
I H G F
FLR_kiri_testing ke i(j-tmp_jmlhDatatraining) k = hasil_fuzzifikasi(k=0 maka Ak=1 maka Bk=2 maka Ck=3 maka D) ke j
k
j
FLR_kanan_testing ke i = hasil_fuzzifikasiA ke (i+order)
i
Max_inc lt (jmlh_DataTraining-1)
max_inc = max_inc + 1 tmp_JmlhDatatraining++
FLR_kiri_training FLR_kanan_training FLR_kiri_testing FLR_kanan_testing
Mulai
Gambar 419 Diagram alir proses Pembentukan FLR (bagian 3)
44
ya
tidak
sesuai dengan kondisi tersebut dapat dikatakan cocok atau dapat dilakukan ke tahap perhitungan selanjutnya Setelah mendapatkan FLR yang cocok maka dilakukan pengelompokkan berdasarkan FLR ruas kanan Pengelompokkan ini dihitung jumlah frekuensi yang sama sesuai dengan fuzzy set di ruas kanan Selanjutnya untuk memperoleh hasil peramalan dilakukan proses perhitungan sesuai dengan Persamaan 218 Berikut adalah langkah ndash langkah proses defuzzifikasi yang ditunjukkan pada Gambar 420 dan Gambar 421
Gambar 420 Diagram alir proses defuzzifikasi (bagian 1)
Defuzzifikasi
Mulai
FLR_kiri FLR_kanan order dataTraining dataTesting konstanta
threshold = (jmlh_Faktor x order)+konstanta
for i = 0 to dataTesting
for j = 0 to (dataTraining-i)
Perhitungan hitung_selisih antara FLR_kiri data training dan data testing
hitung_selisih lt threshold
match ke ij = hitung_selisih
j
i
A
45
Gambar 421 Diagram alir proses defuzzifikasi (bagian 2)
A
Menghitung jumlah total FLR_kiri yang cocok untuk setiap data testing
Mencocokan FLR_kiri yang cocok dengan FLR_kanan untuk setiap data testing
for i = 0 to dataTesting
Menghitung frekuensi setiap FLR_kanan yang cocok untuk setap data testing
for j = 0 to jumlah total FLR kiri yang cocok
peramalan = peramalan + Frekuensi setiap FLR_kanan yang cocok x pusat_cluster1
sesuai dengan value FLR_kanannya
j
hasil_peramlan ke i = peramalan jumlah total FLR kiri yang cocok
i
Hasil_permalan
Berhenti
46
42 Perhitungan Manual
Dalam perhitungan manual ini data sampel yang digunakan merupakan data time series dasarian ke-2 pada periode April 2014 sampai dengan dasarian ke-2 Juli 2014 data sampel ditunjukkan pada Tabel 41
Tabel 41 Data Sampel Perhitungan Manual
No Dasarian Curah Hujan
(A)
Suhu (B) Kelembaban (C)
Kecepatan Angin(D)
1 Dasarian 2 (April 2014) 95 2615 8248 629
2 Dasarian 3 (April 2014) 90 2612 8247 628
3 Dasarian 1 (Mei 2014) 94 2607 8247 627
4 Dasarian 2 (Mei 2014) 83 2625 8232 623
5 Dasarian 3 (Mei 2014) 85 2628 8235 623
6 Dasarian 1 (Juni 2014) 92 2609 8241 626
7 Dasarian 2 (Juni 2014) 86 2627 8235 624
8 Dasarian 3 (Juni 2014) 89 2621 8238 624
9 Dasarian 1 (Juli 2014) 93 2607 8242 626
10 Dasarian 2 (Juli 2014) 86 2626 8237 623
Sumber BMKG Kelas III Karangkates Malang
421 Perhitungan Universe of Discourse (U)
Sebelum melakukan perhitungan U maka harus dicari terlebih dahulu nilai 119863119898119894119899 119863119898119886119909 dan standar deviasi 119863119898119894119899 adalah nilai minimum atau nilai terkecil dari data sampel yang ada sedangkan 119863119898119886119909 adalah nilai maksimum atau nilai paling besar dari data sampel yang ada Untuk mencari nilai standar deviasi harus menghitung nilai mean (rata ndash rata) terlebih dahulu sesuai dengan Persamaan 211 Mean dari data curah hujan (A) dihitung dengan cara sebagai berikut
Mean = (data ke-1 + data ke-2 + data ke-3 + + data ke-10) 10
= (95 + 90 + 94 + 83 + 85 + 92 + 86 + 89 + 93 + 86) 10
= 893 10
= 893
Selanjutnya setelah diperoleh nilai mean dilanjutkan melakukan perhitungan standar deviasi sesuai dengan Persamaan 212 Standar deviasi adalah akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Untuk menghitung standar deviasi agar lebih mudah kita terlebih dahulu melakukan perhitungan nilai kuadrat dari selisih data ke-i dan mean yang ditunjukkan pada Tabel 42
47
Tabel 42 Hasil kuadrat dari selisih data ke-i dan mean
i Data ke-i Data ke-i mean (Data ke-i - mean)sup2
1 95 57 32490
2 90 07 0490
3 94 47 22090
4 83 -63 39690
5 85 -43 18490
6 92 27 7290
7 86 -33 10890
8 89 -03 0090
9 93 37 13690
10 86 -33 10890
Jumlah 1561
Setelah mendapatkan hasil nilai kuadrat dari selisih data ke-i dan mean sesuai dengan Tabel 42 maka dapat dilanjutkan melakukan perhitungan standar deviasi dengan cara sebagai berikut
Standar_deviasi = radic1
10minus1sum (119889119886119905119886 119896119890 minus 119894 minus 119898119890119886119899)10
119894=1
2
= radic1
9 times 1561
= 4165
Untuk perhitungan standar deviasi juga dilakukan pada faktor lainnya yaitu suhu (B) kelembaban (C) dan kecepatan angin (D) Hasil perhitungan 119863119898119894119899 119863119898119886119909 dan standar deviasi ditunjukkan pada Tabel 43
Tabel 43 Nilai minimum nilai maksimum dan standar deviasi
Data D min D max Standar Deviasi
A 83 95 4165
B 2607 2628 0086
C 8232 8248 0057
D 623 629 0022
Berdasarkan hasil yang ditunjukkan Tabel 43 selanjutnya dapat dilakukan perhitungan nilai U sesuai dengan Persamaan 213 Berikut adalah perhitungan U pada data A
U = [119863119898119894119899 minus 120590 119863119898119886119909 + 120590]
= [(83 ndash 4165) (95 ndash 4165)]
= [78835 99165]
48
Untuk perhitungan U juga dilakukan pada semua faktor yaitu data B C dan D Sehingga diperoleh nilai U yang ditunjukkan pada Tabel 44
Tabel 44 Hasil Universe of Discourse
Data U
Batas Bawah Batas Atas
A 78835 99165
B 25984 26366
C 82263 82537
D 6208 6312
422 Perhitungan jumlah cluster (k)
Pada perhitungan jumlah cluster langkah pertamanya adalah mencari nilai absolut dari selisih data hari ke-t dengan hari sebelumnya Perhitungan selisih dilakukan hingga data ke-10 Perhitungan nilai selisih dilakukan pada semua data A B C dan D Selanjutnya masing ndash masing nilai selisih dijumlah sehingga hasilnya seperti ditunjukkan pada Tabel 45
Tabel 45 Nilai absolut selisih data hari ke-t dengan hari sebelumnya
No Tanggal A B C D
1 Dasarian 3 (April 2014) 5 003 001 001
2 Dasarian 1 (Mei 2014) 4 005 0 001
3 Dasarian 2 (Mei 2014) 11 018 015 004
4 Dasarian 3 (Mei 2014) 2 003 003 0
5 Dasarian 1 (Juni 2014) 7 019 006 003
6 Dasarian 2 (Juni 2014) 6 018 006 002
7 Dasarian 3 (Juni 2014) 3 006 003 0
8 Dasarian 1 (Juli 2014) 4 014 004 002
9 Dasarian 2 (Juli 2014) 7 019 005 003
Jumlah 49 105 043 016
Setelah mendapatkan nilai absolut selisih data hari ke-t dengan hari sebelumnya dapat dilanjutkan dengan menghitung jumlah cluster sesuai dengan Persamaan 214 Perhitungan jumlah cluster pada data A (k1) berdasarkan pada Tabel 43 diketahui nilai 119863119898119894119899 adalah 171 nilai 119863119898119886119909 adalah 2048 maka jumlah cluster data A dapat ditunjukkan sebagai berikut
49
1198961 = ||119863119898119894119899 minus 119863119898119886119909|sum |119883(119905) minus 119883(119905 minus 1)|119899
119905=1
119899 minus 1|
= |83 minus 9549
10minus1| = 2204
Apabila hasil perhitungan jumlah cluster merupakan bilangan pecahan maka hasilnya harus dibulatkan Sehingga jumlah cluster pada data A adalah 2 Perhitungan jumlah cluster juga dilakukan pada data B (k2) C (k3) dan D (k4) Berikut merupakan hasil semua perhitungan jumlah cluster yang ditunjukkan pada Tabel 46
Tabel 46 Hasil jumlah cluster data
No Cluster Jumlah Cluster
1 k1 2
2 k2 2
3 k3 3
4 k4 3
423 Perhitungan pusat cluster dan subinterval
Pada pembentukan subinterval berdasarkan pada Tabel 46 yang menunjukkan jumlah subinterval yang selanjutnya digunakan untuk menentukan pusat cluster menggunakan algoritma fuzzy C-means (FCM)
4231 Penentuan pusat cluster
a Penentuan nilai variabel
Pada penentuan subinterval diawali dengan klasterisasi menggunakan algoritma FCM pada awal proses ditentukkan beberapa variabel sebagai berikut
Banyak cluster = k1 = 2
Bobot (w) = 2
Fungsi objektif awal = 0
Iterasi awal = 1
Iterasi maksimum = 100
Error terkecil = 001 b Pembentukan matriks partisi awal (micro)
Data pada pembentukan matriks partisi awal merupakan nilai random diantara nilai 0 sampai 1 Dimensi pada matriks partisi awal dibentuk dengan dimensi jumlah data (i) x jumlah cluster (k) Dalam hal ini telah diketahui jumlah data adalah 10 dan k1 adalah 2 maka partisi dimensi matriks awal adalah 10 x 2 Hasil pembentukan matriks partisi awal ditunjukkan pada Tabel 47 dimana Cluster disimbolkan dengan C
50
Tabel 47 Matriks partisi awal pada cluster data A
c Normalisasi matriks partisi awal
Langkah pertama normalisasi matriks partisi awal adalah dengan menghitung jumlah bilangan penyusun matriks pada setiap kolom yang dapat dilihat pada Tabel 47 dijumlah berdasarkan dengan Persamaan 24 Diketahui jumlah kolom matriks sebanyak 2 sehingga diperoleh Q1 untuk penjumlahan kolom c1 Q2 untuk penjumlahan kolom c2
Q1 = 0355 + 0174 + 02 + 0387 + 0598 + 0819 + 0702 + 0719 + 0349 +
0852
= 5154
Q2 = 0170 + 0815 + 0190 + 0456 + 0526 + 0170 + 0232 + 0572 + 0102 +
0322
= 3554
Langkah selanjutnya dilakukan proses normalisasi menggunakan Persamaan 25 Dimana setiap bilangan penyusun matriks awal dibagi dengan nilai Q sesuai dengan kolomnya masing ndash masing Bilangan penyusun matriks disimbolkan dengan microik dimana i menunjukkan baris dan k menunjukkan kolom posisi bilangan tersebut pada matriks
i micro
c1 c2
1 0355 0170
2 0174 0815
3 0200 0190
4 0387 0456
5 0598 0526
6 0819 0170
7 0702 0232
8 0719 0572
9 0349 0102
10 0852 0322
51
μ11 = bilangan matriks partisi pada baris 1 kolom 1
Q1
= 0355
5154
= 0069
μ12 = bilangan matriks partisi pada baris 1 kolom 2
Q2
= 0170
3554
= 0048
Setelah melakukan perhitungan seperti diatas untuk semua bilangan matriks sehingga matriks partisi sudah ternormalisasi seperti yang ditunjukkan pada Tabel 48
Tabel 48 Derajat keanggotaan matriks partisi data A
i micro
C1 C2
1 0069 0048
2 0034 0229
3 0039 0054
4 0075 0128
5 0116 0148
6 0159 0048
7 0136 0065
8 0140 0161
9 0068 0029
10 0165 0090
d Perhitungan pusat cluster (V)
Pada perhitungan pusat cluster (V) berdasarkan Persamaan 26 Dimana setiap bilangan penyusun matriks partisi (micro) dipangkatkan dengan w dimana variabel w yang sudah dideklarisakan terlebih dahulu dengan nilai sama dengan 2 dan dikalikan dengan bilangan penyusun matriks X yang merupakan matriks berisi data yang ada pada Tabel 41 Selanjutnya hasil perkalian tersebut dijumlah dan dibagi dengan jumlah hasil kuadrat dari bilangan penyusun matriks partisi Hasil perhitungan ditunjukkan pada Tabel 49
52
Tabel 49 Perhitungan pusat cluster data A
Berdasarkan jumlah cluster dari data A yaitu 2 maka terdapat 2 pusat cluster (V) yaitu V1 V2 Perhitungan nilai V adalah sebagai berikut
V1 = sum ((μic1)2 times Xi)10
i=1
sum (μic1)210i=1
= 10730216
0121620
= 8822718207
V2 = sum ((μic2)2 times Xi)10
i=1
sum (μic2)210i=1
= 12111287
0137572
= 8803592572
Jadi berdasarkan perhitungan diatas pusat cluster untuk data A pada iterasi ke-1 adalah 8822718207 8803592572
e Perhitungan fungsi objektif (P)
Pada perhitungan P menggunakan Persamaan 27 dimana setiap baris pada data matriks X dikurangi pusat cluster (V) selanjutnya dikuadratkan Hasilnya
i X microsup2 microsup2 x X
C1 C2 C1 C2
1 95 0004731 0002292 0449450 0217718
2 90 0001137 0052633 0102304 4736927
3 94 0001512 0002864 0142117 0269234
4 83 0005630 0016427 0467258 1363472
5 85 0013448 0021907 1143107 1862112
6 92 0025233 0002291 2321422 0210787
7 86 0018542 0004243 1594602 0364916
8 89 0019487 0025916 1734356 2306543
9 93 0004590 0000816 0426841 0075870
10 86 0027311 0008183 2348759 0703706
Jumlah 0121620 0137572 10730216 12111287
53
kemudian dikalikan dengan micro yang sudah dipangkatkan dengan bobot (w) seperti yang telah ditunjukkan pada Tabel 49 Selanjutnya hasil tersebut dijumlah per kolom seperti yang ditunjukkan pada Tabel 410
Tabel 410 Fungsi objektif data A
i X (X-V)sup2 (X-V)sup2 x microsup2
C1 C2 C1 C2
1 95 458711 484983 02170 01111
2 90 31429 38576 00036 02030
3 94 333254 355702 00504 01019
4 83 273234 253605 01538 04166
5 85 104147 92168 01401 02019
6 92 142342 157139 03592 00360
7 86 49603 41450 00920 00176
8 89 05972 09294 00116 00241
9 93 227798 246420 01046 00201
10 86 49603 41450 01355 00339
Jumlah 1267661573 1166282827
Fungsi Objektif (P) 24339444
Perhitungan nilai fungsi objektif dilakukan seperti Persamaan 27 Nilai fungsi objektif diperoleh dengan cara sebagai berikut P = sum sum ([(Xi minus Vc)2](μik)2)3
c=110i=1
P = 1267661573 + 1166282827
= 24339444
f Perbaikan matriks partisi
Pada langkah ini perbaikan matriks partisi dilakukan berdasarkan Persamaan 28 Data matriks X untuk setiap barisnya dikurangi pusat cluster lalu dikuadratkan seperti yang ditunjukkan pada Tabel 410 Selanjutnya hasilnya dipangkatkan dengan -11 karena w-1 = 1 Hasil pangkat -1 terhadap (X-V)2 ditunjukkan pada Tabel 411
54
Tabel 411 Perbaikan matriks partisi
i ((X-V)sup2)^-1
Jumlah C1 C2
1 0022 0021 0042
2 0318 0259 0577
3 0030 0028 0058
4 0037 0039 0076
5 0096 0108 0205
6 0070 0064 0134
7 0202 0241 0443
8 1674 1076 2750
9 0044 0041 0084
10 0202 0241 0443
Berdasarkan tabel diatas bilangan penyusun matriks partisi yang baru atau yang telah diperbaiki diperoleh dari hasil pembagian data terhadap jumlah per barisnya
12058311 = 0022
0042= 0514
12058312 = 0021
0042= 0486
Pada perhitungan nilai matriks yang sudah diperbaiki dilakukan pada semua elemen matriks sehingga hasil perbaikan matriks seperti yang ditunjukkan pada Tabel 412
Tabel 412 Hasil perbaikan matriks partisi
Setelah mendapatkan hasil perbaikan matriks partisi kita lakukan pengecekan selama iterasi kurang dari iterasi maksimum (maxIter) atau selisih antara fungsi objektif iterasi saat ini dengan iterasi sebelumnya bernilai lebih dari nilai error terkecil yaitu 001 maka proses berlanjut dengan kembali melakukan perhitungan pusat cluster hingga perbaikan matriks partisi Hasil
i micro
C1 C2
1 0514 0486
2 0551 0449
3 0516 0484
4 0481 0519
5 0469 0531
6 0525 0475
7 0455 0545
8 0609 0391
9 0520 0480
10 0455 0545
55
perhitungan pusat cluster dari data A B C dan D setelah dilakukan proses tiga kali iterasi dan diurutkan mulai dari yang terkecil sampai yang terbesar ditunjukkan pada Tabel 413
Tabel 413 Hasil pusat cluster
4232 Perhitungan batas subinterval
Perhitungan batas subinterval dilakukan dengan mencari nilai tengah (Median) dari setiap pusat cluster Berikut merupakan contoh perhitungan batas subinterval pada data A
a Interval 1 Batas bawah = 78835 (Batas bawah Universe of Discourse pada data A) Batas atas = 89347 (Median 88303 dan 90390)
b Interval 2 Batas bawah = 89347 (Median 88303 dan 90390) Batas atas = 99165 (Batas atas Universe of Discourse pada data A)
Seperti perhitungan diatas juga dilakukan pada data suhu (B) kelembaban (C) dan kecepatan angin (D) Dalam hal ini jumlah subinterval setiap atribut berbeda ndash beda sesuai dengan jumlah cluster yang sebelumnya ditunjukkan pada Tabel 46 Berikut merupakan batas subinterval masing ndash masing atribut yang ditunjukkan pada Tabel 414
Tabel 414 Batas subinterval masing ndash masing atribut data
Interval (micro)
A B C D
1
78835 25984 751708 6208
sd sd sd sd
89347 26181 823863 6249
2
89347 26181 823863 6249
sd sd sd sd
99165 26366 82411 6256
3
82411 6256
- - sd sd
82537 6312
Cluster A B C D
1 88303 26165 82391 62497
2 90390 26197 82408 62499
3 - - 82415 62613
56
424 Pembentukan Fuzzy Set
Pembentukan fuzzy set berdasarkan pada derajat keanggotaan dari subinterval (micro) fuzzy set dari data A ditentukan dengan derajat keanggotaan sebagai berikut
A1 = 1micro1 + 05micro2
A2 = 05micro1 + 1micro2
Pada derajat keanggotaan data A diatas simbol ldquo+rdquo menunjukkan operator himpunan gabungan Berdasarkan subinterval pada Tabel 414 nilai batas fuzzy set dari data atribut A dapat ditentukan dengan cara sebagai berikut
A1 = 78835 sd 94256 (Batas bawah interval 1 sd titik tengah interval 2)
A2 = 84091 sd 99165 (Titik tengah interval 1 sd batas atas interval 2)
Setelah diketahui batas masing ndash masing fuzzy set grafik fungsi keanggotaan fuzzy set data A yang direpresentasikan dalam kurva bahu yang ditunjukkan pada Gambar 422 Dengan cara yang sama juga ditentukan pula fuzzy set dari data attribut B C dan D
425 Fuzzifikasi
Pada langkah fuzzifikasi dilakukan dengan mencari derajat keanggotaan yang memiliki nilai paling besar (maksimum) dari masing ndash masing data terhadap fuzzy set yang sudah terbentuk Derajat keanggotaan dicari berdasarkan fungsi keanggotaan kurva bentuk bahu Berikut ini adalah perhitungan derajat keanggotaan dari data attribut A
Data aktual curah hujan (A) pada April 2014 dasarian ke-3 = 90
1198601 = 942558 ndash 90
942558minus840911= 041868427
Gambar 422 Grafik fuzzy set data A
57
1198602 = 90minus840911
942558minus840911= 058131636
Derajat keanggotaan paling besar berada pada A2 sehingga data attribut A pada April 2014 dasarian ke-3 difuzzifikasikan ke fuzzy set A2 Perhitungan yang sama dilakukan pada seluruh data attribut A sehingga didapat derajat keanggotaan dan hasil fuzzifikasi dari data A ditunjukkan pada Tabel 415
Tabel 415 Hasil derajat keanggotaan dan fuzzy set data A
i Data A1 A2 Fuzzyfikasi
1 95 0 1 A2
2 90 041868363 058131636 A2
3 94 002516357 097483642 A2
4 83 1 0 A1
5 85 09105837 008941629 A1
6 92 02219236 077807639 A2
7 86 08122036 018779631 A1
8 89 05170636 048293635 A1
9 93 01235436 087645641 A2
10 86 08122037 018779631 A1
Perhitungan yang sama juga dilakukan pada semua attribut yaitu attribut B C dan D Sehingga dapat diperoleh hasil fuzzifikasi sesuai derajat keanggotaan dengan nilai paling besar Berikut adalah hasil fuzzifikasi untuk semua attribut yang dapat dilihat pada Tabel 416
Tabel 416 Hasil fuzzifikasi semua data attribut
No Tanggal A B C D
1 Dasarian 2 (April 2014) A2 B1 C3 D3
2 Dasarian 3 (April 2014) A2 B1 C3 D3
3 Dasarian 1 (Mei 2014) A2 B1 C3 D3
4 Dasarian 2 (Mei 2014) A1 B2 C1 D1
5 Dasarian 3 (Mei 2014) A1 B2 C1 D1
6 Dasarian 1 (Juni 2014) A2 B1 C2 D2
7 Dasarian 2 (Juni 2014) A1 B2 C1 D1
8 Dasarian 3 (Juni 2014) A1 B2 C2 D1
9 Dasarian 1 (Juli 2014) A2 B1 C2 D2
10 Dasarian 2 (Juli 2014) A1 B2 C2 D1
58
426 Pembentukan Fuzzy Logical Relationship (FLR)
Pada tahap pembentukan FLR dengan berdasarkan nilai order yang sudah ditentukan Pada manualisasi ini berdasarkan dari Tabel 416 di misalkan nilai order kita deklarasikan dengan nilai 3 sehingga dapat menghasilkan 7 FLR Hasil pembentukan FLR Data training dapat ditunjukkan pada Tabel 417 Hasil pembentukan FLR Data testing dapat ditunjukkan pada Tabel 418
Tabel 417 Hasil pembentukan FLR data training
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(32)B(31)C(33)D(33)) rarr A1
2 (A(12)B(11)C(13)D(13)) (A(22)B(21)C(23)D(23)) (A(31)B(32)C(31)D(31)) rarr A1
3 (A(12)B(11)C(13)D(13)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(31)D(31)) rarr A2
4 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(21)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
5 (A(11)B(12)C(11)D(11)) (A(22)B(21)C(22)D(22)) (A(31)B(32)C(31)D(31)) rarr A1
Tabel 418 Hasil pembentukan FLR data testing
No Fuzzy Logical Relationship (FLR)
1 (A(12)B(11)C(12)D(12)) (A(21)B(22)C(21)D(21)) (A(31)B(32)C(32)D(31)) rarr A2
2 (A(11)B(12)C(11)D(11)) (A(21)B(22)C(22)D(21)) (A(32)B(31)C(32)D(32)) rarr A1
427 Defuzzifikasi
Pada tahap ini misalkan jumlah data yang digunakan untuk data uji atau data testing adalah dua yaitu yang pertama data periode ke-9 dan yang kedua data periode ke-10 Sehingga yang digunakan data latih atau data training adalah data pada periode ke-1 sampai data periode ke-8 Pada data testing yang pertama melibatkan FLR ke-1 sampai FLR ke-5 untuk disesuaikan dengan FLR ke-6 yang berdasarkan pada Tabel 417 Pada data testing yang kedua melibatkan FLR ke-1 sampai FLR ke-6 untuk disesuaikan dengan FLR ke-7 yang berdasarkan pada Tabel 417 Selanjutnya setiap ruas kiri FLR data testing dibandingkan dengan FLR data training yaitu pada bilang pangkat bawah fuzzy set dibandingkan sesuai dengan posisinya dan dihitung selisihnya Hasil dari perhitungan selisih tersebut dijumlahkan dan apabila jumlah selisihnya kurang dari threshold maka FLR tersebut dikatakan cocok Threshold merupakan dari hasil mengalikan jumlah order dengan jumlah faktor kemudian dijumlahkan dengan dengan sebuah konstanta Contoh perhitungan selisih nilai ruas kiri FLR pada data testing pertama adalah sebagai berikut
59
Data testing = (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(32) B(31) C(33) D(33)) rarr A1
Data training =
1 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
2 (A(12) B(11) C(13) D(13)) (A(22) B(21) C(23) D(23)) (A(31) B(32) C(31) D(31)) rarr A1
3 (A(12) B(11) C(13) D(13)) (A(21) B(22) C(21) D(21)) (A(31) B(32) C(31) D(31)) rarr A2
4 (A(11) B(12) C(11) D(11)) (A(21) B(22) C(21) D(21)) (A(32) B(31) C(32) D(32)) rarr A1
5 (A(11) B(12) C(11) D(11)) (A(22) B(21) C(22) D(22)) (A(31) B(32) C(31) D(31)) rarr A1
Selisih data ke- 1 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|2-1|+|1-2|+|3-2|+|3-1| = 13
Selisih data ke- 2 = |2-2|+|1-1|+|3-2|+|3-2|+|2-1|+|1-2|+|3-1|+|3-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Selisih data ke- 3 = |2-2|+|1-1|+|3-2|+|3-2|+|1-1|+|2-2|+|1-1|+|1-1|+|1-1|+|2-2|+|1-2|+|1-1| = 3
Selisih data ke- 4 = |1-2|+|2-1|+|1-2|+|1-2|+|1-1|+|2-2|+|1-1|+|1-1|+|2-1|+|1-2|+|2-2|+|2-1| = 7
Selisih data ke- 5 = |1-2|+|2-1|+|1-2|+|1-2|+|2-1|+|1-2|+|2-1|+|2-1|+|1-1|+|2-2|+|1-2|+|1-1| = 9
Pada perhitungan selisih nilai ruas kiri FLR pada data testing juga dilakukan pada semua data testing yang sudah dideklarasikan sebelumnya Dalam hal ini agar dapat menemukan FLR yang cocok dengan data testing Tahap selanjutnya adalah proses defuzzifikasi menggunakan threshold yang dimisalkan 18 sehingga FLR yang memiliki kecocokan dengan data testing pertama adalah semua FLR dari ke-1 sampai ke-5 karena memiliki hasil selisih kurang dari 18 Semua FLR yang cocok ditampung dikelompokkan berdasarkan FLR pada ruas kanan yang sama kemudian dhitung frekuensinya Berikut adalah frekuensi dan pusat cluster dari ruas kanan FLR yang cocok dengan data testing pertama dan kedua ditunjukkan pada Tabel 419
Tabel 419 Frekuensi FLR yang cocok dengan data testing
Data testing 1 Data testing 2
Ruas kanan A1 A2 A1 A2
Pusat Cluster 88303 90390 88303 90390
Frekuensi 4 1 4 2
Berdasarkan pada Tabel 419 dilakukan defuzzifikasi sesuai dengan Persamaan 218 sebagai berikut
119863119886119905119886 119905119890119904119905119894119899119892 1 = (88303times4)+(90390times1)
5= 887204
60
119863119886119905119886 119905119890119904119905119894119899119892 2 = (88303times4)+(90390times2)
6= 889987
Jadi berdasarkan perhitungan diatas diperoleh hasil peramalan curah hujan pada pada April 2014 dasarian ke-3 adalah 1384601636 sedangkan pada tanggal 10012016 adalah 2769203272 Perbandingan data curah hujan aktual dan hasil peramalan dengan metode High Order Fuzzy Time Series Multi Factors dapat dilihat pada Tabel 420
Tabel 420 Perbandingan data aktual dan hasil peramalan
No Data Aktual Hasil Peramalan
1 93 887204
2 86 889987
Dari hasil peramalan yang ditunjukkan pada Tabel 420 dapat dilakukan perhitungan kesalahan peramalan menggunakan metode Mean Square Error (MSE) seperti Persamaan 219
119872119878119864 = ((93minus887206)2+(86minus889989)2)
2
= 136536
43 Perancangan antarmuka
Perancangan antarmuka merupakan perancangan dari tampilan antarmuka atau interface yang nantinya akan diterapkan pada tahapan implementasi Pada perancangan antarmuka ini terdapat lima halaman utama dan juga terdapat dalam menu berupa button yaitu halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
431 Halaman input
Pada halaman input terdapat inputan data dengan nama button Browse Data pada inputan data ini pengguna diharuskan memasukkan inputan file data dalam bentuk ekstensi xls serta direktori lokasi file yang di inputkan akan ditampilkan pada textfield dan juga terdapat label yang menampilkan jumlah banyaknya data yang terdapat pada file yang telah di inputkan Selanjutnya juga terdata inputan textfield data training data testing order dan nilai konstanta Pada halaman input ini juga terdapat button fuzzification yang berfungsi untuk melakukan proses clustering fuzzifikasi dan FLR Selanjutnya pada button forecasting berfungsi untuk melakukan peramalan atau defuzzifikasi dari hasil proses fuzzifikasi serta menghitung nilai error dari hasil peramalan Berikut
61
merupakan rancangan tampilan antarmuka dari halaman input yang ditunjukkan pada Gambar 423
432 Halaman tampil data
Pada halaman tampil data terdapat tabel yang menampilkan isi data dari xls yang sudah dimasukkan terlebih dahulu pada halaman input Tabel tampil data akan menampilkan tanggal curah hujan kelembaban suhu dan kecepatan angin Berikut merupakan tampilan rancangan halaman tampil data yang ditunjukkan pada Gambar 424
Gambar 423 Rancangan antarmuka halaman input
Gambar 424 Rancangan antarmuka halaman tampil data
62
433 Halaman proses
Pada halaman proses akan menampilkan hasil clustering fuzzifikasi dan fuzzy logical relationship Pada tampilan halaman clustering akan menampilkan Universe of Discourse curah hujan suhu kelembaban dan kecepatan angin Selanjutnya tampilan dibawahnya akan menampilkan jumlah cluster dari setiap faktor yaitu jumlah cluster curah hujan suhu kelembaban dan kecepatan angin Berikut merupakan tampilan perancangan halaman proses clustering yang ditunjukkan Gambar 425
Selanjutnya pada tampilan proses fuzzifikasi akan menampilkan tabel hasil fuzzifikasi dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzifikasi yang ditunjukkan pada Gambar 426
Gambar 425 Rancangan antarmuka halaman proses clustering
Gambar 426 Rancangan antarmuka proses fuzzifikasi
63
Pada tampilan proses fuzzy logical relationship (FLR) akan menampilkan textarea berisi hasil proses FLR dari curah hujan suhu kelembaban dan kecepatan angin Berikut adalah tampilan rancangan proses fuzzy logical relationship yang ditunjukkan pada Gambar 427
434 Halaman hasil
Pada halaman hasil peramalan akan menampilkan tabel yang berisi hasil peramalan curah hujan dan data curah hujan yang sebenarnya Serta terdapat text link yang akan menampilkan grafik perbandingan data hasil peramalan dan data yang sebenarnya Berikut adalah tampilan rancangan halaman hasil yang ditunjukkan pada Gambar 428
Gambar 427 Rancangan antarmuka proses fuzzy logical relationship
Gambar 428 Rancangan antarmuka halaman hasil peramalan
64
435 Halaman perhitungan error
Pada halaman perhitungan error akan menampilkan nilai dari hasil perhitungan Mean Square Error (MSE) pada textfield Berikut adalah tampilan rancangan halaman perhitungan error yang ditunjukkan pada Gambar 429
44 Perancangan pengujian
Pada penelitian ini akan dilakukan empat pengujian yaitu pengujian terhadap nilai order nilai threshold pengujian terhadap jumlah data training untuk mengetahui pengaruhnya terhadap nilai Mean Square Error (MSE) dan pengujian validasi sistem untuk mengetahui kestabilan hasil implementasi
441 Perancangan pengaruh order terhadap nilai MSE
Order merupakan jumlah urutan data yang digunakan dalam pembentukkan Fuzzy Logical Relationship (FLR) Pada pengujian ini dilakukan percobaan dengan order yang berbeda ndash beda Pengujian ini bertujuan untuk mengetahui pengaruh order terhadap hasil peramalan Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Pada setiap pengujian yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan order yang berbeda Berikut adalah perancangan pengujian order terhadap nilai MSE ditunjukkan pada Tabel 421
Tabel 421 Rancangan pengujian order terhadap nilai MSE
No Order Threshold MSE
1
Gambar 429 Rancangan antarmuka halaman perhitungan error
65
442 Perancangan pengaruh threshold terhadap nilai MSE
Nilai threshold bergantung jumlah order karena untuk nilai threshold merupakan dari hasil mengalikan jumlah faktor yang mempengaruhi dengan order selanjutnya dijumlah dengan sebuah konstanta Pada pengujian ini dilakukan percobaan dengan konstanta yang berbeda ndash beda sehingga menghasilkan threshold yang berbeda pula Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan yang telah dilakukan dihitung nilai MSEnya untuk mengetahui tingkat kesalahan metode ini apabila dilakukan dengan konstanta dan threshold yang berbeda Berikut merupakan rancangan pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 422
Tabel 422 Rancangan pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1
443 Perancangan pengaruh jumlah data training terhadap nilai MSE
Data training sangat berperan penting dalam proses defuzzifikasi sehingga pada penelitian ini dilakukan pengujian pengaruh jumlah data training terhadap tingkat kesalahan dari hasil peramalan Pada pengujian ini dilakukan percobaan dengan jumlah data training yang berbeda ndash beda Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Dari setiap percobaan dilakukan perhitungan nilai MSE untuk mengetahui tingkat kesalahan dari hasil peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors dengan jumlah data training yang berbeda ndash beda Sehingga dari hasil pengujian ini dapat diketahui pengaruh dari jumlah data training Berikut merupakan rancangan pengujian pengaruh jumlah data training yang ditunjukkan pada Tabel 423
Tabel 423 Rancangan pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1
444 Perancangan validasi sistem
Pada pengujian validasi sistem akan melakukan pengujian dengan menggunakan order threshold terbaik seperti yang telah dilakukan pada
66
pengujian ndash pengujian sebelumnya yang menghasilkan hasil error MSE terendah Dalam setiap pengujiannya akan dilakukan sebanyak sepuluh kali selanjutnya nilai MSE yang diperoleh dihitung rata ndash ratanya Berikut merupakan rancangan pengujian validasi sistem yang ditunjukkan pada Tabel 424
Tabel 424 Rancangan pengujian validasi sistem
Percobaan ke- MSE
1
67
BAB 5 IMPLEMENTASI
Pada bab ini berisi pembahasan hasil implementasi metode High Order Fuzzy Time Series Multi Factors yang sesuai dengan bab sebelumnya yaitu perancangan Bab ini terdiri dari spesifikasi sistem implementasi algoritma dan implementasi antarmuka
51 Spesifikasi Sistem
Pada spesifikasi sistem ini dibagi mejadi dua yaitu spesifikasi perangkat keras dan spesifikasi perangkat lunak
511 Spesifikasi Perangkat Keras
Spesifikasi perangkat keras merupakan perangkat keras yang digunakan pada implementasi penelitian ini Perangkat keras yang digunakan adalah laptop dengan spesifikasi sesuai dengan pada Tabel 51 berikut
Tabel 51 Spesifikasi Perangkat Keras
Komponen Spesifikasi
Processor Intelcopy Core i3-3217U 180 GHz
Memori (RAM) 8 GB RAM
Harddisk 500 GB RAM
512 Spesifikasi Perangkat Lunak
Spesifikasi perangkat lunak merupakan perangkat lunak yang digunakan pada implementasi penelitian ini Perangkat lunak yang digunakan pada implementasi penelitian sesuai dengan yang ditunjukkan pada Tabel 52 berikut
Tabel 52 Spesifikasi Perangkat Lunak
Sistem Operasi Microsoft Windows 7 (64 bit)
Bahasa Pemrograman Java
Tools Pemrograman Netbeans 81
Data Microsoft Excel 2013
52 Implementasi Algoritma
Pada implementasi algoritma ini membahas mengenai hasil implementasi algoritma metode High Order Fuzzy Time Series Multi Factors yang mengacu pada bab sebelumnya yaitu perancangan Dalam penelitian ini implementasi algoritma menggunakan bahasa pemrograman java berbasis desktop Implementasi algoritma terdiri dari beberapa method sesuai dengan langkah ndash langkah pada algoritma metode High Order Fuzzy Time Series Multi Factors
68
521 Implementasi Proses Universe of Discourse
Pada implementasi Universe of Discourse seperti yang ditunjukkan Kode Program 51 dimana pada source code method Universe_of_Discourse baris 3 - 5 terdapat pemanggilan method mean standar_deviasi dan Min_dan_Max Dimana pemanggilan method tersebut dibutuhkan untuk melakukan proses perhitungan selanjutnya yaitu untuk menghitung batas bawah dan batas atas dari Univers of Discourse Baris 7-10 untuk menghitung hasil Universe of Discourse Berikut merupakan source code dari proses Universe of Discourse yang ditunjukkan pada Kode Program 51
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
private void Universe_of_Discourse()
mean()
standar_deviasi()
Min_dan_Max()
hsl_uMin = new double[jmlh_Faktor]
hsl_uMax = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
hsl_uMin[i] = hsl_min[i] - hsl_stdev[i]
hsl_uMax[i] = hsl_max[i] + hsl_stdev[i]
Kode Program 51 Implementasi proses Universe of Discourse
5211 Implementasi proses mean
Pada implementasi proses mean merupakan proses perhitungan nilai rata ndash rata dari setiap faktor yang nantinya hasilnya diperlukan untuk proses perhitungan standar deviasi Berikut merupakan source code dari proses mean yang ditunjukkan pada Kode Program 52 Perhitungan utama proses mean terdapat pada baris 3 ndash 8
Baris Kode
1 2 3 4 5 6 7 8 9
private void mean()
hsl_mean = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double tmp_jmlh = 0
for (int j = 0 j lt jmlh_DataTraining j++)
tmp_jmlh = tmp_jmlh + data[i][j]
hsl_mean[i] = (tmp_jmlh jmlh_DataTraining)
Kode Program 52 Implementasi proses mean
5212 Implementasi proses standar deviasi
Pada implementasi proses perhitungan standar deviasi merupakan akar kuadrat dari varians dan juga merupakan ukuran keragaman data statistik untuk menentukan bagaimana sebaran data dalam sampel Standar deviasi dapat dilakukan perhitungan setelah mendapat nilai hasil dari perhitungan mean Berikut merupakan source code dari implementasi proses standar deviasi yang ditunjukkan pada Kode Program 53 Perhitungan utama proses standar deviasi terdapat pada baris 3 ndash 9
69
Baris Kode
1 2 3 4 5 6 7 8 9 10 11
private void standar_deviasi()
hsl_stdev = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double result = 0
for (int j = 0 j lt jmlh_DataTraining j++)
result = result + (Mathpow((data[i][j] ndash
hsl_mean[i]) 2))
hsl_stdev[i]=Mathsqrt(result(jmlh_DataTraining-
1))
Kode Program 53 Implementasi proses standar deviasi
5213 Implementasi proses Dmin dan Dmax
Pada implementasi proses Dmin dan Dmax merukan untuk mencari nilai minimum dan nilai maksimum dari data sampel untuk setiap faktor Berikut merupakan source code dari implementasi dari proses Dmin dan Dmax yang ditunjukkan pada Kode Program 54 Pada baris 8 ndash 10 merupakan bagian dari proses untuk untuk menentukan nilai data terbesar Selanjutnya pada baris 11 ndash 13 untuk menentukan nilai data terkecil
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
19
private void Min_dan_Max()
hsl_max = new double[jmlh_Faktor]
hsl_min = new double[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double besar = data[i][0]
double kecil = data[i][0]
for (int j = 0 j lt jmlh_DataTraining j++)
if (data[i][j] gt besar)
besar = data[i][j]
if (data[i][j] lt kecil)
kecil = data[i][j]
hsl_max[i] = besar
hsl_min[i] = kecil
Kode Program 54 Implementasi proses Dmin dan Dmax
522 Implementasi Proses Jumlah Cluster
Pada implementasi proses jumlah cluster merupakan proses perhitungan jumlah cluster dari setiap faktor Implementasi ini dapat dilakukan apabila sudah mendapatkan hasil output dari method Min_dan_Max() sudah didapatkan Berikut merupakan source code dari implementasi proses jumlah cluster yang ditunjukkan pada Kode Program 55 Pada baris 3 ndash 7 untuk digunakan untuk menghitung selisih data sampel setiap baris dari semua faktor pada data sampel ke t dengan t+1 Selanjutnya pada baris 9 ndash 10 untuk menghitung jumlah cluster dari setiap faktor
70
Baris Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
private void jumlah_Cluster()
jmlh_Cluster = new int[jmlh_Faktor]
for (int i = 0 i lt jmlh_Faktor i++)
double selisih = 0
for (int j = 0 j lt (jmlh_DataTraining - 1) j++)
selisih = selisih + (Mathabs((data[i][j]
- data[i][(j + 1)])))
jmlh_Cluster[i] = (int) Mathround((Mathabs(
hsl_min[i]-hsl_max[i]))(selisih(jmlh_DataTraining
-1)))
Kode Program 55 Implementasi proses jumlah cluster
523 Implementasi Proses Pusat Cluster
Implementasi proses perhitungan pusat cluster ini menggunakan metode fuzzy C-means untuk mendapatkan pusat cluster yang nantinya digunkan sebagai subinterval Implementasi ini memerlukan hasil dari proses method jumlah_Cluster() agar dapat melakukan perhitungan subinterval Berikut merupakan source code dari implementasi proses subinterval yang ditunjukkan pada Kode Program 56 Pada Kode Program 56 hanya menampilkan source code pembentukan subinterval pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 2 ndash 3 merupakan deklarasi variabel bobot iterasi maksimum selisih fungsi objektif awal dan error minimum Pada baris 8 ndash 20 merupakan proses pembentukan matriks partisi dengan nilai random 0 sampai 1 Pada baris 22 ndash 26 merupakan proses normalisasi matriks partisi yang telah terbentuk Pada baris 28 ndash 63 merupakan proses untuk menentukan pusat cluster Pada baris 65 ndash 86 merupakan proses perhitungan fungsi objektif dari iterasi Pada baris 88 ndash 90 merupakan proses perhitungan selisih fungsi objektif Pada baris 92 ndash 108 adalah proses perbaikan matriks partisi Pada baris 110 ndash 115 adalah proses hasil perbaikan matriks partisi Pada baris 116 - 133 adalah proses dengan pengkondisian apakah selisih fungsi objektif lebih kecil dari error minimum serta apabila memenuhi kondisi maka dilanjutkan ke proses pengurutan pusat cluster secara ascending dari hasil iterasi terakhir dan proses pengkondisian iterasi berhenti
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void pusat_cluster()
int bobot = 2int iter_maksimum = 100
double selisih_f_objektif = 0double error_min = 001
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
Pembentukkan matriks partisi
tmp_Matriks1=new
double[jmlh_Cluster[i]][jmlh_DataTraining]
q1 = new double[jmlh_Cluster[i]]
double jmlh_q1
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_q1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
71
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
double random = ThreadLocalRandomcurrent()
nextDouble(01 1)
tmp_Matriks1[j][k] = random
jmlh_q1 = jmlh_q1 + random
q1[j] = jmlh_q1
normalisasi matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k] q1[j]
Perhitungan pusat cluster
for (int iter = 0 iter lt iter_maksimum iter++)
selisih_f_objektif = 0
jumA1 = new double[iter_maksimum][jmlh_Cluster[i]]
jumA2 = new double[iter_maksimum][jmlh_Cluster[i]]
miu_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
XV_Matriks1 = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
pusat_cluster1 = new double[jmlh_Cluster[i]]
double hitung_jum1
double hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum1 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(tmp_Matriks1
[j][k]bobot)
miu_Matriks1[j][k] = tmp_Matriks1[j][k]
hitung_jum1 = hitung_jum1 + tmp_Matriks1
[j][k]
jumA1[iter][j] = hitung_jum1
for (int j = 0 j lt jmlh_Cluster[i] j++)
hitung_jum2 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
data[i][k]
hitung_jum2 = hitung_jum2 +
tmp_Matriks1[j][k]
jumA2[iter][j] = hitung_jum2
for (int j = 0 j lt jmlh_Cluster[i] j++)
pusat_cluster1[j] = jumA2[iter][j]
jumA1[iter][j]
perhitungan fungsi objektif
jumA3 = new double[iter_maksimum][jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
double hitung_jum3 = 0
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow((data[i][k]
ndash pusat_cluster1[j])
bobot)
XV_Matriks1[j][k] = tmp_Matriks1[j][k]
tmp_Matriks1[j][k] = XV_Matriks1[j][k]
miu_Matriks1[j][k]
hitung_jum3 = hitung_jum3 +
tmp_Matriks1[j][k]
jumA3[iter][j] = hitung_jum3
72
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
double jmlh_f_objektif = 0
for (int j = 0 j lt jmlh_Cluster[i] j++)
jmlh_f_objektif = jmlh_f_objektif
+jumA3[iter][j]
if (iter lt (iter_maksimum - 1))
f_objektif1[iter + 1] = jmlh_f_objektif
perhitungan selisih fungsi objektif
selisih_f_objektif = f_objektif1[iter + 1]
-f_objektif1[iter]
perbaikan matriks partisi
int hitung = bobot - 1int pangkat = -1 hitung
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = Mathpow(XV_Matriks1
[j][k] pangkat)
jumA4 = new
double[iter_maksimum][jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
double hitung_jum4 = 0
for (int k = 0 k lt jmlh_Cluster[i] k++)
hitung_jum4 = hitung_jum4 +
tmp_Matriks1[k][j]
jumA4[iter][j] = hitung_jum4
hasil perbaikan matriks
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
tmp_Matriks1[j][k] = tmp_Matriks1[j][k]
jumA4[iter][k]
if (selisih_f_objektif lt error_min)
pengurutan ascending pusat cluster
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 kltjmlh_Cluster[i]k++)
if (k lt (jmlh_Cluster[i] - 1))
if (pusat_cluster1[k] gt
pusat_cluster1[k + 1])
double tmp =
pusat_cluster1[k]
pusat_cluster1[k]=
pusat_cluster1[k+1]
pusat_cluster1[k+1] = tmp
iter = iter_maksimum
Kode Program 56 Implementasi proses pusat cluster
524 Implementasi Proses Pembentukan Subinterval dan Fuzzy Set
Pada implementasi proses pembentukan suinterval dan fuzzy set memiliki dua proses yaitu proses menentukan batas subinterval minumum serta maksimum dan proses menentukan batas fuzzy set minimum serta maksimum
73
Proses pembentukan fuzzy dapat menjalankan prosesnya setelah method subinterval() telah diakses Berikut merupakan source code proses pembentukan fuzzy set yang ditunjukkan pada Kode Program 57 Pada Kode Program 57 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 6 ndash 29 merupakan proses pembentukan batas minimum dan batas maksimum subinterval Pada baris 31 ndash 54 merupakan pembentukan batas minimum dan batas maksimum fuzzy set
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
private void subinterval_dan_fuzzy_set()
for (int i = 0 i lt jmlh_Faktor i++)
faktor A
if (i == 0)
batas subinterval
batas_subintervalMinA = new double[jmlh_Cluster[i]]
batas_subintervalMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_subintervalMinA[j] = hsl_uMin[i]
batas_subintervalMaxA[j]=(pusat_cluster1[j]
+pusat_cluster1[j+
1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1] +pusat_cluster1
[j])2
batas_subintervalMaxA[j]=
hsl_uMax[i]
else if ((0 lt j) ampamp (j lt (jmlh_Cluster[i] -
1)))
batas_subintervalMinA[j]=
(pusat_cluster1[j-1]+
pusat_cluster1[j])2
batas_subintervalMaxA[j]=
(pusat_cluster1[j]+
pusat_cluster1[j+1)2
batas fuzzy set
batas_fuzzysetMinA = new double[jmlh_Cluster[i]]
batas_fuzzysetMaxA = new double[jmlh_Cluster[i]]
for (int j = 0 j lt jmlh_Cluster[i] j++)
if (j == 0)
batas_fuzzysetMinA[j]=
batas_subintervalMinA[j]
batas_fuzzysetMaxA[j]=
(batas_subintervalMinA[j+1]
+batas_subintervalMaxA[j + 1])2
else if (j == (jmlh_Cluster[i] - 1))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]
+batas_subintervalMaxA[j - 1])2
batas_fuzzysetMaxA[j] =
batas_subintervalMaxA[j]
else if ((0 lt j) ampamp (jlt(jmlh_Cluster[i]-1)))
batas_fuzzysetMinA[j]=
(batas_subintervalMinA[j-1]+
batas_subintervalMaxA[j-1])2
batas_fuzzysetMaxA[j]=
74
51
52
53
54
55
56
(batas_subintervalMinA[j+1]+
batas_subintervalMaxA[j + 1])2
Kode Program 57 Implementasi pembentukan subinterval dan fuzzy set
525 Implementasi proses fuzzifikasi
Pada Implementasi proses fuzzifikasi memiliki dua proses utama yaitu menentukan derajat keanggotaan dan proses fuzzifikasi Dalam proses ini method fuzzy_set() harus dieksekusi terlebih dahulu karena implementasi proses ini memerlukan output dari method tersebut Berikut merupakan source code fuzzifikasi ditunjukkan pada Kode Program 58 Pada Kode Program 58 hanya menampilkan source code pembentukan fuzzy set pada faktor curah hujan(A) karena dari faktor suhu (B) kelembaban(C) dan kecepatan angin (D) memiliki source code yang sama dan hanya terjadi perubahan nama variabel Pada baris 3 ndash 81 merupakan proses perhitungan derajat keanggotaan Pada baris 83 ndash 94 adalah proses penentuan fuzzifikasi
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
private void fuzzifikasi()
if (i == 0)
hitung_fuzzifikasiA = new double[jmlh_Cluster[i]]
[jmlh_DataTraining]
for (int j = 0 j lt jmlh_Cluster[i] j++)
for (int k = 0 k lt jmlh_DataTraining k++)
if(j == 0)
if((data[i][k]gtbatas_fuzzysetMinA[j])ampamp
(data[i][k]lt batas_fuzzysetMinA[j + 1]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA[j + 1])
ampamp (data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j] - data[i][k])
(batas_fuzzysetMaxA[j] ndash
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j]) ampamp
(data[i][k] lt batas_fuzzysetMinA[j + 1])
ampamp(data[i][k] gt batas_fuzzysetMinA[j+1])
ampamp(data[i][k] lt batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
else if (j == (jmlh_Cluster[i] - 1))
if((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
(batas_fuzzysetMaxA[(jmlh_Cluster[i]ndash
2)]-batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)])
if((data[i][k] gt batas_fuzzysetMaxA
75
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
[(jmlh_Cluster[i]- 2)]) ampamp (data[i][k]
lt batas_fuzzysetMaxA[(jmlh_Cluster[i]
- 1)]))
hitung_fuzzifikasiA[j][k] = 1
if ((data[i][k] gt batas_fuzzysetMinA
[(jmlh_Cluster[i] - 1)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] gt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 2)]) ampamp
(data[i][k] lt batas_fuzzysetMaxA
[(jmlh_Cluster[i] - 1)]))
hitung_fuzzifikasiA[j][k] = 0
else if ((0 lt j)ampamp(j lt (jmlh_Cluster[i] - 1)))
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA[j
+1]))
hitung_fuzzifikasiA[j][k]=
(data[i][k]-batas_fuzzysetMinA[j])
(batas_fuzzysetMinA[j + 1]-
batas_fuzzysetMinA[j])
if ((data[i][k] gt batas_fuzzysetMinA
[j+1])ampamp (data[i][k] lt
batas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k]=
(batas_fuzzysetMaxA[j]-data[i][k])
(batas_fuzzysetMaxA[j]-
batas_fuzzysetMinA[j + 1])
if ((data[i][k] gt batas_fuzzysetMinA[j])
ampamp (data[i][k] lt batas_fuzzysetMinA
[j + 1]) ampamp (data[i][k] gt
batas_fuzzysetMinA[j + 1]) ampamp
(data[i][k]ltbatas_fuzzysetMaxA[j]))
hitung_fuzzifikasiA[j][k] = 0
hasil_fuzzifikasiA = new int[jmlh_DataTraining]
for (int j = 0 j lt jmlh_DataTraining j++)
int cluster = 0
double besar=hitung_fuzzifikasiA[0][j]
for (int k = 0 k lt jmlh_Cluster[i] k++)
if (besar lt hitung_fuzzifikasiA[k][j])
besar = hitung_fuzzifikasiA[k][j]
cluster = k
hasil_fuzzifikasiA[j] = cluster + 1
Kode Program 58 Implementasi proses fuzzifikasi
526 Implementasi Pembentukan Fuzzy Logical Relationship
Pada implementasi pembentukan Fuzzy Logical Relationship (FLR) memiliki dua output yaitu FLR_kiri dan FLR_kanan Dimana FLR_kiri berisi group dari kelima faktor dan pada FLR_kanan merupakan dari faktor yang akan diramalkan yaitu
76
faktor curah hujan (A) Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code pembentukan Fuzzy Logical Relationship (FLR) dapat ditunjukkan pada Kode Program 59 berikut Pada baris 3 ndash 14 merupakan deklarasi variabel Pada baris 15 ndash 55 adalah proses pembentukan fuzzy logical relationship data training Pada baris 56 ndash 58 merupakan deklarasi variabel Pada baris 59 ndash 86 adalah proses pembentukan fuzzy logical relationship data testing
Baris Kode 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Fuzzy Logical Relationship
private void fuzzy_logical_relationship()
String input_order = fieldOrdergetText()
order = IntegerparseInt(input_order)
int max_inc = order
String input_dataTraining = fieldDatatraininggetText()
int dataTraining = IntegervalueOf(input_dataTraining)
int tmp_jmlhDatatraining = 0
int tmp_order = 0
int jmlh_dataTraining = dataTraining - order
String input_dataTesting = fieldDatatestinggetText()
int jmlh_dataTesting = IntegervalueOf(input_dataTesting)
FLR_kiri_training = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_training = new int[jmlh_DataTraining]
for (int i = 0 i lt jmlh_dataTraining i++)
for (int j = i j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (j == 0)
if (k == 0)
FLR_kiri_training[i][j][k]=
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j][k] =
hasil_fuzzifikasiD[j]
else if (j = 0)
if (k == 0)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_training[i][j - i][k] =
hasil_fuzzifikasiD[j]
tmp_order = j
FLR_kanan_training[i] = hasil_fuzzifikasiA[(i + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
77
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
tmp_jmlhDatatraining = i
FLR_kiri_testing = new
int[jmlh_DataTraining][order][jmlh_Faktor]
FLR_kanan_testing = new int[(jmlh_DataTraining)]
tmp_jmlhDatatraining = tmp_jmlhDatatraining + 1
for (int i = 0 i lt jmlh_dataTesting i++)
for (int j = tmp_jmlhDatatraining j lt max_inc j++)
for (int k = 0 k lt jmlh_Faktor k++)
if (k == 0)
FLR_kiri_testing[i][j - tmp_jmlhDatatraining][k]
= hasil_fuzzifikasiA[j]
else if (k == 1)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiB[j]
else if (k == 2)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiC[j]
else if (k == 3)
FLR_kiri_testing[i][j ndash
tmp_jmlhDatatraining][k] =
hasil_fuzzifikasiD[j]
FLR_kanan_testing[i] =
hasil_fuzzifikasiA[(tmp_jmlhDatatraining + order)]
if (max_inc lt (jmlh_DataTraining - 1))
max_inc = max_inc + 1
tmp_jmlhDatatraining++
Kode Program 59 Implementasi pembentukan FLR
527 Implementasi Proses Defuzzifikasi
Pada implementasi proses defuzzifikasi merupakan proses dimana menentukan hasil peramalan dari data testing berdasarkan dari bilangan fuzzy yang terbentuk Implementasi ini memiliki beberapa inputan penting yaitu data training data testing order dan konstanta Inputan tersebut sangat berperan penting dalam proses implementasi defuzzifikasi Berdasarkan dari perancangan proses pada bab sebelumnya maka implementasi source code defuzzifikasi dapat ditunjukkan pada Kode Program 510 berikut Pada baris 2 ndash 11 merupakan deklarasi variabel Pada baris 13 ndash 37 merupakan proses perhitungan selisih antara data training dengan data testing Pada baris 40 ndash 47 menghitung jumlah FLR yang cocok Pada baris 49 ndash 65 merupakan proses mencocokan FLR kiri yang cocok dengan FLR kanan Pada baris 67 ndash 81 merupakan proses menghitung jumlah frekuensi FLR kanan yang cocok Pada baris 83 ndash 91 adalah proses perhitungan hasil peramalan
Baris Kode 1
2
3
4
private void defuzifikasi()
String input_dataTraining = fieldDatatraininggetText()
String input_dataTesting = fieldDatatestinggetText()
String input_konstanta = fieldKonstantagetText()
78
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
int dataTraining = IntegervalueOf(input_dataTraining)
int dataTesting = IntegervalueOf(input_dataTesting)
int konstanta = IntegervalueOf(input_konstanta)
int match[][]
match = new int[dataTesting][2000]
int threshold = (jmlh_Faktor order) + konstanta
int hitung_selisih = 0
perhitungan selisih
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
hitung_selisih = 0
for (int k = 0 k lt order k++)
for (int l = 0 l lt jmlh_Faktor l++)
if (i == 0)
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
else if (i gt 0)
FLR_kiri_training[(dataTraining-
1)+i][k][l] = FLR_kiri_testing[i-
1][k][l]
FLR_kanan_training[(dataTraining-1)+i]
= FLR_kanan_testing[i-1]
hitung_selisih = hitung_selisih +
(Mathabs(FLR_kiri_training[j][k][l] ndash
FLR_kiri_testing[i][k][l]))
if (hitung_selisih lt threshold)
match[i][j] = hitung_selisih
menghitung jumlah total FLR yang cocok untuk setiap data
testing
int countGroup[] = new int[dataTesting]
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
countGroup[i]++
mencocokan FLR_kiri yang cocok dengan FLR_kanan
group = new int[dataTesting][2000]
for (int i = 0 i lt dataTesting i++)
int tmp_count = 0
for (int j = 0 j lt (dataTraining + i) j++)
if (match[i][j] gt 0)
if (tmp_count lt countGroup[i])
group[i][tmp_count] = j
tmp_count++
for (int i = 0 i lt dataTesting i++)
for (int j = 0 j lt countGroup[i] j++)
group[i][j] = FLR_kanan[group[i][j]]
mengelompokkan yang sama
MapltInteger Integergt map = new HashMapltInteger Integergt()
hasil_peramalan = new double[dataTesting]
for (int i = 0 i lt dataTesting i++)
79
70
71
72
73
74
75 76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
double peramalan = 0
mapclear()
for (int j = 0 j lt countGroup[i] j++)
int key = group[i][j]
if (mapcontainsKey(key))
int occurrence = mapget(key)
occurrence++
mapput(key occurrence)
else
mapput(key 1)
menghitung hasil peramlaan
Iterator iterator = mapkeySet()iterator()
while (iteratorhasNext())
int key = (Integer) iteratornext()
int occurrence = mapget(key)
peramalan = (peramalan + (pusat_cluster1[(key - 1)]
occurrence))
hasil_peramalan[i] = (peramalan countGroup[i])
Kode Program 510 Implementasi proses defuzzifikasi
53 Implementasi Antarmuka
Pada implementasi antarmuka dijelaskan beberapa halaman antarmuka untuk penggunaan dari program hasil implementasi Implementasi antarmuka berdasarkan perancangan yang telah dijelasakan pada bab sebelumnya yaitu bab perancangan Halaman antarmuka yang dibuat adalah halaman input halaman tampil data halaman proses halaman hasil dan halaman perhitungan error
531 Implementasi antarmuka halaman input
Halaman input merupakan halaman yang pertama muncul setelah program dijalankan Pada halaman input ini terdapat beberapa inputan yang harus di masukkan yaitu data input data training data testing order dan konstanta Selain itu pada halaman input juga terdapat tiga button yaitu button browse data button fuzzification dan button forecasting Berikut tampilan antarmuka halaman input yang ditunjukkan pada Gambar 51
Gambar 51 Implementasi antarmuka halaman input
80
532 Implementasi antarmuka halaman tampil data
Halaman tampil data merupakan halaman yang tampil setelah melakukan input data Halaman ini berisi tabel yang menampilkan data curah hujan suhu kecepatan angin dan kelembaban Berikut tampilan antarmuka halaman tampil data yang ditunjukkan pada Gambar 52
533 Implementasi antarmuka halaman proses
Halaman proses merupakan halaman yang muncul setelah button fuzzification telah dieksekusi Halaman proses ini terdiri dari tiga bagian atau tab yaitu clustering fuzzification dan Fuzzy logical relationship Pada halaman antarmuka clustering menampilkan Universe of Discourse dan jumlah cluster pada masing ndash masing faktor Berikut merupakan tampilan antarmuka halaman proses bagian clustering yang ditunjukkan pada Gambar 53
Gambar 52 Implementasi antarmuka halaman tampil data
Gambar 53 Implementasi antarmuka halaman proses clustering
81
Pada tab selanjutnya yaitu pada tab fuzzification tab ini menampilkan hasil proses fuzzifikasi Pada halaman ini menampilkan tabel yang berisi hasil fuzzifikasi dari setiap faktor Berikut merupakan tampilan antarmuka halaman proses bagian fuzzification yang ditunjukkan pada Gambar 54
Pada tab Fuzzy Logical Relationship menampilakn hasil dari proses pembentukan Fuzzy Logical Relationship Tampilan pada halaman ini menampilkan berupa textarea yang berisi dari output proses tersebut Berikut merupakan tampilan antarmuka halaman proses bagian Fuzzy Logical Relationship yang ditunjukkan pada Gambar 55
Gambar 54 Implementasi antarmuka halaman proses fuzzification
Gambar 55 Implementasi halaman antarmuka proses FLR
82
534 Implementasi antarmuka halaman hasil
Pada implementasi antarmuka halaman hasil ini merupakan halaman yang menampilkan hasil dari proses defuzzifikasi Halaman hasil ini menampilkan tabel yang berisi data aktual dan data dari hasil peramlan Berikut merupakan tampilan antarmuka halaman hasil yang ditunjukkan pada Gambar 56
535 Implementasi antarmuka halaman perhitungan error
Pada implementasi antarmuka halaman perhitungan error merupakan halaman yang menampilkan hasil dari proses perhitungan Mean Square Error (MSE) Pada halaman antarmuka ini menampilkan hasil error MSE pada textfield Berikut merupakan tampilan antarmuka halaman perhitungan error yang ditunjukkan pada Gambar 57
Gambar 56 Implementasi halaman antarmuka hasil
Gambar 57 Implementasi halaman antarmuka perhitungan error
83
BAB 6 PENGUJIAN DAN ANALISIS
Pada bab ini membahas hasil pengujian dan analisis hasil pengujian dari hasil implementasi metode High Order Fuzzy Time Series Multi factors untuk peramalan curah hujan dasarian Pada pengujian ini disesuaikan dengan perancangan pengujian pada bab 4
61 Sistematika Pengujian
Pada bab sebelumnya yaitu bab 4 mengenai perancangan telah dibahas perancangan pengujian dikatakan bahwa pengujian akan dilakukan sebanyak empat pengujian Pengujian order pengujian threshold pengujian jumlah data training dan pengujian validasi sistem Dari semua pengujian tersebut akan di uji dan di analisis bagaimana pengaruhnya terhadap hasil perhitungan Mean Square Error (MSE)
62 Hasil dan Analisis Pembahasan
Berikut hasil pengujian dan analisis yang disesuaikan dengan perancangan pengujian pada bab sebelumnya
621 Pengujian pengaruh order terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh order terhadap nilai MSE Order merupakan urutan jumlah dari data time series pada periode waktu t yang mempengaruhi nilai data Jadi jika nilai order adalah 3 maka peramalan akan melibatkan 3 data sebelumnya pada proses pembentukan Fuzzy Logical Relationship (FLR) Pada pengujian ini hanya nilai order yang diubah ndash ubah sedangkan variabel lain akan dibuat tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 konstanta adalah 10 Nilai threshold diperoleh dari perhitungan jumlah faktor dikali order dan dijumlah nilai konstanta Berikut adalah hasil pengujian pengaruh order terhadap nilai MSE yang ditunjukkan pada Tabel 61
Tabel 61 Hasil pengujian order terhadap nilai MSE
No Order Threshold MSE
1 3 22 808585
2 6 34 965547
3 9 46 912631
4 12 58 875884
5 15 70 719284
6 18 82 6801207
7 21 94 5637184
8 24 106 5444184
9 27 118 5433631
10 30 130 5418393
84
Dari hasil pengujian order seperti yang telah ditunjukkan pada Tabel 61 maka pada percobaan pertama dengan order = 3 dan threshold 22 dapat diperoleh MSE sebesar 808585 Selanjutnya pada percobaan kedua dengan order = 6 dan threshold = 34 diperoleh MSE sebesar 965547 Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 61
Berdasarkan Gambar 61 order yang berbeda - beda mempengaruhi besar nilai MSE Dalam penelitian ini menentukan order memiliki ketentuan yaitu nilai order harus lebih dari 0 dan batas maksimal order adalah setengah dari nilai data training (LinYang 2009) Nilai MSE terbesar yang ditunjukkan pada pengujian ini adalah 965547 pada pengujian order 6 dan nilai MSE terkecil adalah 5418393 pada pengujian order 30 Pada Gambar 61 menunjukkan bahwa pada order 3 ke order 6 mengalami peningkatan nilai MSE selanjutnya pada order 6 hingga order 30 mengalami penurunan Pada order 3 memiliki nilai MSE lebih kecil dari order 6 order 9 dan order 12 karena memiliki lebih banyak hasil selisih tingkat kecocokan data time series yang tidak terlalu besar dan kurang dari threshold Selain itu karena data time series dari data sampel yang diperoleh memiliki pola data musiman dimana perubahan pola data dasarian tidak terlalu banyak berubah dari tahun ke tahun Selanjutnya pada order 6 hingga order 30 menunjukkan penurunan nilai MSE dan order terbesar memiliki nilai MSE terkecil sehingga dapat disumpulkan bahwa semakin besar order maka semakin kecil pula nilai MSE Dalam hal ini dengan semakin besarnya order maka data sebelumnya yang digunakan untuk pertimbangan dalam menentukan peramalan semakin banyak Sehingga semakin besar nilai order maka dapat membuat peramalan semakin akurat Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin besar nilai order maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
Gambar 61 Grafik hasil pengujian order terhadap nilai MSE
85
622 Pengujian pengaruh threshold terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh threshold terhadap nilai MSE Threshold merupakan hasil dari mengalikan jumlah order dengan jumlah faktor pada data kemudian dijumlahkan dengan dengan nilai konstanta Pada proses defuzzifikasi terdapat proses menghitung selisih antara pangkat bawah Fuzzy Logical Relationship (FLR) data training dan pangkat bawah FLR data testing Selanjutnya setelah mendapatkan nilai selisih maka nilai selisih tersebut dibandingkan dengan nilai threshold untuk mencari FLR yang cocok Pada pengujian ini nilai konstanta saja yang diubah ndash ubah sementara variabel lainnya tetap Pengujian akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai variabel jumlah data training adalah 72 yaitu dari data Januari 2014 dasarian 1 sampai Desember 2015 dasarian 3 nilai data testing adalah 36 yaitu dasarian 1 Januari 2016 sampai dasarian 3 Desember 2016 dan Nilai order adalah 30 Pada penentuan input konstanta nilai minimal harus lebih besar dari 0 dan nilai maksimal menyesuaikan data sampel yang digunakan (LinYang 2009) Berikut adalah hasil pengujian pengaruh threshold terhadap nilai MSE yang ditunjukkan pada Tabel 62
Tabel 62 Hasil pengujian threshold terhadap nilai MSE
No Konstanta Threshold MSE
1 10 130 558485
2 20 140 577498
3 30 150 597364
4 40 160 604660
5 50 170 646951
6 60 180 680257
7 70 190 703013
8 80 200 741484
9 90 210 756749
10 100 220 780600
Dari hasil pengujian threshold seperti yang telah ditunjukkan pada Tabel 62 maka dapat dilihat bahwa konstanta yang dilakukan pengujian dimulai dengan nilai 10 sampai 100 Hasil yang didapat pada percobaan pertama dengan konstanta = 10 dan threshold 130 diperoleh MSE sebesar 558485 Selanjutnya pada percobaan kedua dengan konstanta = 20 dan threshold = 140 diperoleh MSE sebesar 577498 Selanjutnya dapat kita lihat pada percobaan yang telah dilakukan dari percobaan pertama hingga percobaan kesepuluh nilai MSE yang diperoleh mengalami perubahan pada setiap percobaan Dapat dilihat bahwa peningkatan MSE lebih dominan menunjukkan peningkatan sehingga dalam hal ini semakin besar nilai konstanta dan threshold maka semakin besar pula nilai MSE yang diperoleh Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 62
86
Berdasarkan grafik dari Gambar 62 nilai input konstanta yang berbeda - beda mempengaruhi besar nilai MSE semakin besar nilai konstanta maka nilai threshold juga semakin besar karena threshold diperoleh dari perhitungan order dikali jumlah faktor dan selanjutnya dijumlah dengan nilai konstanta Dalam hal ini dengan semakin besar nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR juga semakin luas batasannya dan jika semakin kecil nilai threshold maka dalam proses seleksi untuk mencari nilai selisih FLR menjadi semakin sempit dan mempermudah proses peramalan karena hanya adanya sedikit data yang cocok dengan data yang akan diramalkan dan mempermudah proses defuzzifikasi Oleh karena itu semakin kecil threshold maka dapat membuat peramalan semakin akurat Akan tetapi nilai threshold tidak boleh terlalu kecil karena dapat menyebabkan kegagalan peramalan Kegagalan peramalan itu terjadi karena tidak adanya data training yang cocok dengan data testing karena pada metode yang digunakan pada penelitian ini sangat bergantung pada data ndash data sebelumnya Dari hasil percobaan diatas hasil MSE terbesar adalah 7806 yaitu pada konstanta 100 serta threshold 220 dan hasil MSE terkecil adalah 558485 yaitu pada konstanta 10 dan threshold 130 Dalam pengujian ini memiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoImplementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Emasrdquo yang menyatakan bahwa semakin kecil nilai konstanta maka semakin kecil nilai kesalahannya (Wardhani et al 2015)
623 Pengujian pengaruh jumlah data training terhadap nilai MSE
Pada pengujian ini akan dilakukan untuk mengetahui pengaruh jumlah data training terhadap nilai MSE Pada pengujian ini jumlah data training adalah data dasarian yaitu 1 tahun 2 tahun 3 tahun 4 tahun dan 5 tahun dimana dari setiap 1 tahun memiliki 36 data dasarian Pengujian ini akan dilakukan sebanyak lima kali Pada pengujian ini jumlah data testing adalah 36 nilai order adalah setengah dari
Gambar 62 Grafik hasil pengujian threshold terhadap nilai MSE
87
nilai data training nilai konstanta adalah 20 Berikut adalah hasil pengujian pengaruh jumlah data training terhadap nilai MSE yang ditunjukkan pada Tabel 63
Tabel 63 Hasil pengujian jumlah data training terhadap nilai MSE
No Jumlah Data Training MSE
1 36 786586
2 72 634527
3 108 627190
4 144 614184
5 180 539698
Dari hasil pengujian jumlah data training seperti yang telah ditunjukkan pada Tabel 63 maka pada percobaan pertama dengan data training = 36 dapat diperoleh MSE sebesar 786586 Selanjutnya pada percobaan kedua dengan data training = 72 diperoleh MSE sebesar 634527 Dalam hal ini dari percobaan satu dan dua nilai MSE mengalami penurunan Perubahan nilai MSE dari setiap percobaan digambarkan dalam grafik yang ditunjukkan pada Gambar 63
Berdasarkan dari Gambar 63 pengujian pertama sampai pengujian kelima mengalami penerunan nilai MSE Sehingga dapat disimpulkan bahwa semakin besar data training maka semakin kecil nilai MSE yang diperoleh Nilai MSE semakin kecil apabila menggunakan data training dalam jumlah besar karena data yang digunakan memiliki rentang jauh dari periode data testing atau data yang akan diramalkan Sedangkan data training yang sedikit memiliki nilai MSE yang besar karena data training yang memiliki kecocokan dengan data testing berada pada periode yang jauh dengan data testing sehingga nilai MSE menjadi tinggi Dalam hal ini terbukti bahwa metode yang digunakan pada penelitian ini memerlukan jumlah data training yang banyak sehingga dapat menurunkan nilai kesalahannya Dari hasil percobaan diatas hasil MSE terbesar adalah 786586 dan
Gambar 63 Grafik hasil pengujian data training terhadap nilai MSE
88
hasil MSE terkecil adalah 539698 Dalam pengujian ini memimiliki kesesuaian dengan penelitian sebelumnya yang berjudul ldquoPeramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Seriesrdquo yang menyatakan bahwa semakin besar jumlah data training maka semakin kecil nilai kesalahannya (Elfajar et al 2017)
624 Pengujian validasi sistem
Pada pengujian ini dilakukan untuk mengetahui kestabilan dari sistem dengan menggunakan order threshold terbaik dari pengujian sebelumnya Pada pengujian ini akan dilakukan sebanyak sepuluh kali Pada pengujian ini nilai data training menggunakan 36 data yang berbeda agar dapat menunjukkan gambaran variasi dari nilai kesalahan MSE pada peramalan nilai order adalah 18 dan konstanta adalah 10 sehingga nilai threshold adalah 92 Berikut adalah hasil pengujian validasi sistem yang ditunjukkan pada Tabel 64
Tabel 64 Hasil pengujian validasi sistem
Percobaan ke- MSE
1 714290
2 703856
3 732564
4 732815
5 6973958
6 7532825
7 741726
8 760457
9 709961
10 6256204
Dari hasil pengujian validasi sistem seperti yang telah ditunjukkan pada Tabel 64 maka dapat digambarkan dengan grafik yang ditunjukkan oleh Gambar 64
Gambar 64 Grafik hasil pengujian validasi sistem
89
Berdasarkan dari gambar grafik Gambar 64 bahwa pengujian dari validasi sistem memiliki hasil MSE yang tidak terlalu jauh berbeda dari penggunaan data yang berbeda - beda Oleh karena itu dapat disimpulkan bahwa implementasi dari metode High Order Fuzzy Time Series Multi Factors yang telah digunakan sudah cukup baik untuk digunakan peramalan
Berdasarkan dari pengujian yang dilakukan diatas dapat diketahui bahwa nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun 2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016 Nilai order adalah 90 dan konstanta adalah 10 Berikut adalah perbandingan data aktual dengan hasil peramalan yang ditunjukkan pada grafik Gambar 65
Gambar 65 Grafik perbandingan data aktual dengan hasil peramalan
90
BAB 7 PENUTUP
Pada bab ini terdiri dari dua sub bab yaitu kesimpulan dan saran Kesimpulan adalah tahapan yang berisi hasil penelitian yang dilakukan dan jawaban semua rumusan masalah yang sudah ditetapkan sebelumnya dan saran adalah tahapan yang berisi hasil yang telah dicapai untuk memperbaiki kekurangan - kekurangan yang terjadi pada penelitian ini serta memberikan pertimbangan pada pengembangan penelitian lebih lanjut
71 Kesimpulan
Pada kesimpulan ini mengacu pada penelitian yang telah dilakukan yang meliputi perancangan implementasi serta pengujian dan analisis terhadap hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diambil kesimpulan sebagai berikut
1 Berdasarkan dari implementasi metode High Order Fuzzy Time Series Multi Factors dalam melakukan peramalan curah hujan dasarian dilakukan dengan beberapa langkah yaitu langkah pertama perhitungan Universe of Discourse yang terdiri perhitungan mean standar deviasi dan perhitungan Dmin serta Dmax langkah kedua yaitu perhitungan jumlah cluster langkah ketiga yaitu perhitungan pusat cluster langkah keempat yaitu pembentukan subinterval dan fuzzy set langkah kelima yaitu proses fuzzifikasi langkah keenam yaitu pembentukan Fuzzy Logical Relationship(FLR) langkah ketujuh adalah defuzzifikasi yang hasil outputnya merupakan hasil peramalan curah hujan
2 Berdasarkan dari pengujian peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors maka dapat diketahui bahwa
a Order berpengaruh terhadap nilai error semakin besar nilai order maka hasil peramalan semakin baik
b Threshold berpengaruh terhadap nilai error semakin rendah nilai threshold maka hasil peramalan semakin baik Akan tetapi nilai threshold tidak boleh terlalu rendah karena dapat menyebabkan kegagalan peramalan
c Data training berpengaruh terhadap nilai error semakin besar jumlah data training maka hasil peramalan semakin baik Sehingga peramalan menggunakan metode High Order Fuzzy Time Series Multi Factors memerlukan banyak data training
d Hasil implementasi peramalan curah hujan menggunakan metode High Order Fuzzy Time Series Multi Factors cukup baik digunakan untuk peramalan Hal ini terbukti hasil pengujian validasi sistem menunjukkan grafik yang cukup stabil
Dari pengujian yang telah dilakukan nilai MSE terkecil terdapat pada pengujian jumlah data training yaitu dengan nilai MSE sebesar 539698 Nilai tersebut diperoleh dari pengujian jumlah data training dasarian dari tahun
91
2011 hingga 2015 untuk melakukan peramalan pada data dasarian tahun 2016
72 Saran
Pada penelitian ini dilakukan peramalan curah hujan dasarian dengan faktor yang mempengaruhi adalah suhu kelembaban dan kecapatan angin Saran penulis diharapkan untuk penelitian selanjutnya melakukan penambahan faktor yang mempengaruhi curah hujan atau melakukan peramalan objek lain dengan mempertimbangkan faktor ndash faktor yang mempengaruhinya Serta diharapkan pada penelitian selanjutnya untuk menambahkan data yang lebih banyak serta bervariatif sehingga nilai hasil perhitungan akurasi peramalan yang dihasilkan dalam penelitian dapat meningkat Penggunaan data training yang banyak dan bervariatif dapat membuat pola data semakin terlihat sehingga hasil peramalan yang dihasilkan memiliki akurasi yang lebih baik
92
DAFTAR PUSTAKA
Ardiyanto 2016 ldquoTerendam Air Petani Lamongan Terpaksa Panen Dinirdquo Times Indonesia November 18 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)
Badan Penelitian dan Pengembangan Pertanian Kementrian Pertanian 2015 ldquoKalender Tanam Terpadu Versi 25 Kota Malang Prov Jawa Timurrdquo httpkatamlitbangpertaniangoidkatam_terpadu2016mh33535733573_tinggipdf (Diakses 25 Februari 2017)
Bagirov M Adil Mahmood Arshad and Barton Andrew 2017 Prediction of monthly rainfall in Victoria Australia Clusterwise linear regression approach Elsevier Atmos Research 188 20-29
BMKG Staklim Karangploso Malang 2015 ldquoAnalisis Dinamika Atmosfer Dan Laut Dasarian III Maret 2015 Update 2 April 2015rdquo httpkarangplosojatimbmkgogoidindexphpanalisis-kondisi-dinamika-atmosfer-laut-dasarian-tahun-2015399-analisis-dinamika-atmosfer-dan-laut-dasarian-iii-maret-2015-update-2-april-2015axzz3X8h9y4fgampgsctab=0 (Diakses 25 Februari 2017)
BPS Kabupaten Malang 2016 ldquoKabupaten Malang Dalam Angka 2016rdquo httpsmalangkabbpsgoidwebsitepdf_publikasiKabupaten-Malang-Dalam-Angka-2016pdf (Diakses 25 Februari 2017)
BPS Jawa Timur 2015 ldquoJawa Timur Dalam Angka 2015rdquo httpsjatimbpsgoid4dmnpdf_publikasiJawa-Timur-Dalam-Angka-2015pdf (Diakses 25 Februari 2017)
Buffa S Elwood Rakesh and Sarin K 1996 Modern Production and Operation Management Eight Edition John Willey and Sons Inc London
Chen M 1996 Forecasting Enrollments based on Fuzzy Time Series Fuzzy Sets and Systems 311-319
Dewi Candra Kartikasari Dani Mursityo Yusi 2014 Prediksi Cuaca Pada Data Time Series Menggunakan Adaptive Neuro Fuzzy Inference System (ANFIS) Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK) Vol 1 No 1 hlm 18-24
Dewi Candra Muslikh M 2013 Perbandingan Akurasi Backpropagation Neural Network dan ANFIS Untuk Memprediksi Cuaca NATURAL-A Journal of Scientific Modeling amp Computation Volume 1 No1
Elfajar Aria Setiawan Budi Dewi Candra 2017 Peramalan Jumlah Kunjungan Wisatawan Kota Batu Menggunakan Metode Time Invariant Fuzzy Time Series Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer Vol 1 No 2 Hlmn 85-94
93
Fauziah Normalita Wahyuningsih Sri dan Nasution Yuki 2016 Peramalan Menggunakan Fuzzy Time Series Chen (Studi Kasus Curah Hujan Kota Samarinda) Vol4 Statistika
Forest Mahyu 2015 ldquoDefenisi amp Pengertian Kelembabanrdquo httpilmupengetahuaalamblogspotcoid201506defenisi-pengertian-kelembabanhtml (Diakses 25 Februari 2017)
Irsyad Muhammad Metarice Sonya 2013 Penerapan Metode Automatic Clustering dan High Order Fuzzy Time Series Pada Peramalan Curah Hujan Jurnal Sains dan Teknologi Industri Vol 10 No 02
Klawon F 2001 What is About Fuzzy Clustering Understanding and Improving the Concept of the Fuzzier Science Journal httppublic-rzfh-wolfebuetteldeklawon
Kurniawan Carlos 2007 Analisis dan Perancangan Program Aplikasi Peramalan Curah Hujan dengan Metode Wavelet (Studi Kasus BMKG)
Kusumadewi S 2003 ldquoArtificial Intelegence (Teknik amp Aplikasinya)rdquo Graha Ilmu Yogyakarta
Kusumadewi S Purnomo H 2004 ldquoAplikasi Logika Fuzzy untuk Pendukung Keputusanrdquo Graha Ilmu Yogyakarta
Kusumadewi Sri 2002 Analisis amp Desain Sistem Fuzzy Tollbox MATLAB Graha Ilmu Yogyakarta
Lin Yupei Yang Y 2009 Stock Markets Forecasting Based on Fuzzy Time Series Model IEEE Conference Publications 782-886
Makridakis S Steven C Wheelwright Victor E and Gee MC 1999 Metode dan Aplikasi Peramalan Jilid I Edisi Kedua Jakarta Binarupa Aksara
Mirawati T Yasin H and Rusgiyono A 2013 Prediksi Curah Hujan dengan Metode Kalman Filter(Studi Kasus di Kota Semarang 2012) Jurnal Gaussian 2(3) pp 239-248
Pradipta Nur Sembiring Pasukat Bangun Pengarapen 2013 Analisis Pengaruh Curah Hujan di Kota Medan Saintia Matematika Vol 1
Sipayung Putri Metha 2013 Pemodelan Hubungan Kelembapan Udara terhadap Curah Hujan (Studi Kasus Curah Hujan Periode 2001-2009 pada Stasiun Dramaga) httprepositoryipbacidhandle12345678960623 (Diakses 25 Februari 2017)
User 2015 httpstaklimnegaranet[Online] Available at httpwwwstaklimnegaranetindexphpbuletin-hujanpengertian-istilah (Diakses 25 Februari 2017)
Wang Nai-Yi Chen Shyi-Ming 2009 Temperature prediction and TAIFEX forecasting based on automatic clustering techniques and two-factors high-order fuzzy time series Elsevier Expert Systems with Applications 36 2143ndash2154
94
Wardhani Dessy Ratnawati Dian Setiawan Budi 2015 Implementasi Metode Multi-factors High order Fuzzy Time Series Model untuk Prediksi Harga Saham Repositori Jurnal Mahasiswa PTIIK UB Doro Jurnal Vol 6 No 6
Wiyanti T and Pulungan R 2012 Peramalan Deret Waktu Menggunakan Model Fungsi Basis Radial (RBF) dan Auto Regressive Integrated Moving Average (ARIMA) Jurnal MIPA 35(2) pp 175-182
Yunanto Utomo 2014 ldquoBMKG Akui Prakiraan Cuacanya Masih Kurang Akuratrdquo Kompas Sains Januari 30 httpwwwtimesindonesiacoidread13688520161118102415terendam-air-petani-lamongan-terpaksa-panen-dini (Diakses 25 Februari 2017)