BAB II LANDASAN TEORI Bab ini merupakan bab yang akan menjelaskan mengenai landasan teori dari topik tugas akhir. Beberapa landasan teori tersebut yaitu :
2.1 Peramalan (forecasting) Forecasting adalah peramalan (perkiraan) mengenai sesuatu yang belum terjadi. Dalam ilmu pengetahuan sosial segala sesuatu itu serba tidak pasti, lain halnya dengan ilmu-ilmu eksakta. Jumlah penduduk, pendapatan perkapita, volume penjualan perusahaan, konsumsi dan sebagainya itu selalu berubah- ubah, dan perubahan ini dipengaruhi oleh faktor-faktor yang sangat kompleks. Misalnya kebudayaan masyarakat sekitarnya, penghasilan keluarga, keadaan pribadi dan sebagainya. Oleh karena itu perubahan hal-hal tersebut di atas sukar untuk ditentukan sebelumnya secara pasti. Dalam hal ini kita perlu mengadakan forecast. Di atas telah dijelaskan bahwa hal-hal dalam ilmu sosial itu serba tidak pasti, sukar diperkirakan secara tepat. Didalam forecasting kita selalu bertujuan agar forecast yang kita buat bisa meminimumkan pengaruh ketidakpastian ini terhadap perusahaan. Dengan kata lain forecasting bertujuan mendapatkan forecast yang bisa meminimumkan kesalahan meramal, (forecast error) yang biasanya diukur dengan mean squared error, mean absolute error dan sebagainya. [6]
2.2 Time Series Time series atau deret berkala merupakan “data statistik yang disusun berdasarkan urutan waktu”. Adapun analisis deret berkala itu sendiri menurut Thomas Herbert Wonnacott merupakan “suatu alat yang dapat digunakan untuk mengetahui kecenderungan suatu nilai dari waktu ke waktu, serta alat analisis yang dapat diterapkan guna memprediksi nilai suatu variabel pada kurun waktu tertentu”. Dalam hal ini, kurun waktu yang dimaksud bisa saja berupa tahun, bulan, kuartal, minggu, catur wulan, dan sebagainya. Bagaimana data statistik yang disusun
II-1
II-2
berdasarkan urutan waktu bisa tercipta, hal tersebut merupakan hasil interaksi beberapa faktor, misalnya kegiatan perekonomian, faktor budaya, dinamika sosial serta politik, dan pengaruh siklus alam. Tentang wujud deret berkala ini, kita bisa memberikan ilustrasi contoh berupa data mengenai jumlah sepeda motor yang berhasil dipasarkan oleh PT Rising Star Motor Company, suatu perusahaan yang bergerak dalam bidang usaha penjualan berbagai merek kendaraan bermotor di kota Yogyakarta. Data mengenai jumlah penjualan sepeda motor disusun secara runtut dari tahun 1990 hingga 2000.
Tabel 2.1 PT Rising Star Motor Company Jumlah Sepeda Motor yang Berhasil Dipasarkan dari Tahun 1990 hingga 2000 Tahun
Jumlah Sepeda Motor Terjual
1990
126
1991
129
1992
148
1993
136
1994
149
1995
154
1996
160
1997
153
1998
157
1999
200
2000
195
Bila data mengenai jumlah sepeda motor yang berhasil dijual oleh PT Rising Star Motor Company tersebut digambarkan dalam suatu grafik dimana kutub horizontal (X) menunjukkan tahun sedangkan kutub vertical (Y) merupakan representasi dari jumlah unit sepeda motor yang terjual, maka tampilannya adalah seperti yang tampak di bawah ini:
II-3
Gambar 2.1 Grafik Penjualan Sepeda Motor
Deret berkala itu sendiri nantinya akan dibedakan menjadi empat komponen variasi, yaitu tren sekular (secular tren), variasi musiman (seasonal variation), variasi siklis (cyclical variation), dan variasi tak beraturan (irregular variation). Apabila dinotasikan, hubungan antara keempat komponen variasi deret berkala adalah sebagai berikut: A=TxSxCxI
(2-1)
Dimana A adalah nilai data aktual, T adalah tren sekular, S adalah variasi musiman, C adalah variasi siklis, sedangkan I adalah variasi yang tak beraturan.[7] Pola data dapat dibedakan menjadi empat jenis siklis (cyclical) dan trend. Berikut pola data tersebut. 1. Pola horizontal (H) Terjadi bilamana data berfluktuasi di sekitar nilai rata-rata yang konstan. (Deret seperti itu adalah “stasioner” terhadap nilai rata-ratanya). Suatu produk yang penjualannya tidak meningkat atau menurun selama waktu tertentu termasuk jenis ini. Demikian pula, suatu keadaan pengendalian kualitas yang menyangkut pengambilan contoh dari suatu proses produksi kontinyu yang secara teoritis tidak mengalami perubahan juga termasuk jenis
II-4
ini. Gambar 2.2 menunjukkan suatu pola khas dari data horizontal atau stasioner seperti itu.[8]
Y
Waktu Gambar 2.2 Pola Data Horisontal
2. Pola Musiman (S) Terjadi bilamana suatu deret dipengaruhi oleh faktor musiman (misalnya kuartal tahun tertentu, bulanan, atau hari-hari pada minggu tertentu). Penjualan dari produk seperti minuman ringan, es krim dan bahan bakar pemanas ruang semuanya menunjukkan jenis pola ini. Untuk pola musiman kuartalan, datanya mungkin serupa dengan gambar 2.3. [8]
Y
S
S
F
1979
W S
S
F
1980
W S
S
1981 Waktu
Gambar 2.3 Pola Data Musiman
F W
1982
II-5
3. Pola Siklis (C) Terjadi bilamana datanya dipengaruhi oleh fluktuasi ekonomi jangka panjang seperti yang berhubungan dengan siklus bisnis. Penjualan produk seperti mobil, baja, dan peralatan utama lainnya menunjukkan jenis pola ini seperti ditunjukkan pada gambar 2.4. [8]
Y
Waktu Gambar 2.4 Pola Data Siklis
4. Pola Trend (T) Terjadi bilamana terdapat kenaikan atau penurunan sekuler jangka panjang dalam data. Penjualan banyak perusahaan, produk bruto nasional (GNP) dan berbagai indikator bisnis atau ekonomi lainnya mengikuti suatu pola trend selama perubahannya sepanjang waktu. Gambar 2.5 menunjukkan salah satu pola trend seperti itu. [8]
Y
Waktu Gambar 2.5 Pola Data Trend
II-6
2.3 Curah Hujan (Presipitasi) Pengertian presipitasi mencakup air dalam bentuk cair dan padat (es) yang turun dari awan. Presipitasi dapat berbentuk hujan, gerimis, salju, dan batu es. Di Indonesia hujan jauh lebih sering dijumpai maka hujan lebih diartikan sebagai endapan dalam bentuk air. Curah hujan diukur dalam inci atau millimeter, jika suatu daerah pada suatu hari memiliki curah hujan sebesar 1 milimeter, berarti ketinggian endapan hujan tersebut, jika tidak meresap ke dalam tanah atau diusapkan ke atmosfer, akan mencapai ketinggian 1 mm. Tentu saja kondisi tersebut hanya terjadi jika ditampung pada sebuah alat ukur hujan. Di lapangan, air hujan akan meresap atau diusapkan ke atmosfer sehingga ketinggiannya tidak akan mencapai 1 mm. [9] Untuk mengukur curah hujan digunakan rain gauge atau alat penangkap hujan. Jumlah curah hujan atau salju yang tertampung dalam rain gauge diukur dalam satuan inci atau mm/ satuan waktu (jam atau hari) pada suatu lokasi dan waktu tertentu. Rain gauge berbentuk silinder dan terbuat dari logam tahan karat, fiberglass, atau plastik dengan ukuran standar yang sudah ditentukan berdasarkan ketentuan regional maupun internasional. [10] Untuk intensitas hujan, mengacu pada standar Internasional (WMO) adalah sebagai berikut : Tabel 2.2 Intensitas Hujan [11] Kriteria Hujan
Intensitas per Jam
Intensitas per Hari
< 0.1 mm
<5.0 mm
Ringan
0.1 – 5.0 mm
5.0 – 20 mm
Sedang / normal
5.0 – 10 mm
20 – 50 mm
Lebat
10 – 20 mm
50 – 100 mm
>20 mm
>100 mm
Sangat ringan
Sangat lebat
Curah hujan merupakan unsur meteorologi yang mempunyai variasi yang besar dalam skala ruang dan waktu sehingga paling sulit untuk diprediksi. Disisi lain, informasi curah hujan menjadi sangat penting karena dibutuhkan oleh berbagai aspek
II-7
kehidupan, terutama dalam perencanaan pertanian, transportasi, perkebunan, hingga untuk peringatan dini bencana alam, banjir/longsor serta kekeringan.(Parwati, Suwarsono, Kusumaning Ayu DS, Mahdi Kartasamita, 2009)
2.4 Artificial Neural Networks Artificial Neural Networks (ANN) awalnya mendapat inspirasi dari sistem jaringan saraf tiruan makhluk hidup. Observasi bahwa sistem belajar dari makhluk hidup terutama manusia terdiri dari jaringan yang sangat kompleks yang terdiri dari neuron yang saling terhubung telah memberi inspirasi ini. Dalam ANN, jaringan saraf makhluk hidup ingin ditiru susunannya. ANN muncul sebagai alternative pendekatan konvensional yang biasanya kurang fleksibel terhadap struktur masalah. Ada beberapa karakteristik kemampuan otak manusia: 1. Mengingat 2. Menghitung 3. Mengeneralisasi 4. Adaptasi 5. Konsumsi energi yang rendah Diharapkan ANN yang meniru cara kerja otak manusia mempunyai kemampuan seperti diatas. Komputer digital mampu mengalahkan kemampuan otak manusia dalam hal kemampuan menghitung angka. Tapi manusia mampu melakukan kerja yang sangat susah dilakukan komputer seperti mengenali orang secara cepat di lingkungan yang ramai hampir tanpa usaha yang keras. ANN berusaha meniru struktur/arsitektur dan cara kerja otak manusia sehingga mampu menggantikan beberapa pekerjaan manusia. Pekerjaan seperti mengenali pola (pattern recognition), prediksi, klasifikasi, pendekatan fungsi, optimasi adalah pekerjaan-pekerjaan yang diharapkan bisa diselesaikan dengan ANN.
II-8
ANN mempunyai beberapa kelemahan yaitu: 1. Ketika menangani jumlah variabel yang besar karena kerumitan perhitungan meningkat secara drastis.[12] 2. Sifatnya yang tersembunyi karena banyaknya hubungan node, maka tidaklah praktis untuk mencetak dan menganalisis model jaringan saraf tiruan yang besar. Timbul kesulitan ketika kita ingin memakai model yang dibentuk menggunakan satu sistem dan menjalankannya menggunakan sistem yang lain. Oleh karena itu, data baru harus dimasukkan ke dalam sistem dimana model jaringan saraf tiruan itu dibentuk untuk diterapkan pada kasus yang baru. Jadi hamper mustahil untuk menerapkan model jaringan saraf tiruan di luar sistem dimana model tersebut dibentuk. [12]
ANN mempunyai beberapa kelebihan yaitu: 1. Kemampuan menyelesaikan pekerjaan prediksi yang polanya nonlinear. 2. Waktu penyelesaian yang cepat. 3. Robust terhadap missing data. 4. ANN menawarkan kelebihannya dimana bisa mengatasi beberapa persoalan tanpa mengadakan perubahan drastis terhadap modelnya.
Tidak mengherankan banyak pekerjaan dalam dunia nyata dilakukan dengan memanfaatkan ANN seperti dalam dunia nyata dilakukan dengan memanfaatkan ANN seperti dalam peramalan curah hujan, pendeteksian tornado, pendeteksian pemalsuan pemakaian kartu kredit. Ada 3 periode yang menandai perkembangan riset tentang ANN. Pertama, tahun 1940-an dimana McCulloch dan Pitt memulai riset ANN. Dilanjutkan Rosenblatt pada tahun 1960-an ketika dia menemukan teknik perceptron. Disusul dalam periode yang hampir sama Minsky dan Papert membuktikan kelemahan perceptron sederhana yang ditemukan Rosenblatt. Ada banyak sekali jenis-jenis desain neural networks seperti back-propagasi (feed forward), recurrent network, self organizing map, Bayesian networks dan sebagainya. [4]
II-9
Seperti halnya otak manusia, jaringan syaraf juga terdiri dari beberapa neuron, dan ada hubungan antara neuron-neuron tersebut. Neuron-neuron tersebut akan mentransformasikan informasi yang diterima melalui sambungan keluarnya menuju neuron-neuron yang lain. Pada jaringan syaraf, hubungan ini dikenal dengan nama bobot. Informasi tersebut disimpan pada suatu nilai tertentu pada bobot tersebut. Gambar 2.1 menunjukkan struktur neuron pada jaringan syaraf. bobot
∑
Fungsi aktivasi
Input dari neuronneuron yang lain
bobot
Output
Output ke neuronneuron yang lain
Gambar 2.6 Struktur neuron jaringan syaraf [13]
Jika kita lihat, neuron ini sebenarnya mirip dengan sel neuron biologis. Neuron-neuron buatan tersebut bekerja dengan cara yang sama pula dengan neuronneuron biologis. Informasi (disebut dengan: input) akan dikirim ke neuron dengan bobot kedatangan tertentu. Input ini akan diproses oleh suatu fungsi perambatan yang akan menjumlahkan nilai-nilai semua bobot yang datang. Hail penjumlahan ini kemudian akan dibandingkan dengan suatu nilai ambang (threshold) tertentu melalui fungsi aktifasi setiap neuron. Apabila input tersebut melewati suatu nilai ambang trtentu, maka neuron tersebut akan diaktifkan, tapi kalau tidak, maka neuron tersebut tidak akan diaktifkan. Apabila neuron tersebut diaktifkan, maka neuron tersebut akan mengirimkan output melalui bobot-bobot outputnya ke semua neuron yang berhubungan dengannya. Demikian seterusnya. Pada jaringan syaraf, neuron-neuron akan dikumpulkan dalam lapisan-lapisan (layer) yang disebut dengan lapisan neuron (neuron layers). Biasanya neuron-neuron pada satu lapisan akan dihubungkan dengan lapisan-lapisan sebelum dan sesudahnya (kecuali lapisan input dan lapisan output). Informasi yang diberikan pada jaringan syaraf yang akan dirambatkan lapisan ke lapisan, mulai dari lapisan input sampai ke
II-10
lapisan output melalui lapisan yang lainnya, yang sering dikenal dengan nama lapisan tersembunyi (hidden layer). Tergantung pada algoritma pembelajarannya, bisa jadi informasi tersebut akan dirambatkan secara mundur pada jaringan. [13] Dilihat dari data curah hujan yang tidak linear membuat data ini mempunyai kecocokan dengan salah satu kelebihan pada ANN yaitu kemampuan menyelesaikan pekerjaan prediksi yang polanya nonlinear. Oleh karena itu, ANN dipilih sebagai solusi untuk menyelesaikan permasalahan dalam kasus prediksi curah hujan ini.
2.5 Backpropagation Backpropagation merupakan algoritma pembelajaran yang terawasi dan biasanya digunakan oleh perceptron dengan banyak lapisan untuk mengubah bobot-bobot yang terhubung dengan neuron-neuron yang ada pada lapisan tersembunyinya. Algoritma backpropagation menggunakan error output untuk mengubah nilai bobot-bobotnya dalam arah mundur (backward). Untuk mendapatkan error ini, tahap perambatan maju (forward propogation) harus dikerjakan terlebih dahulu. Pada saat perambatan maju, neuron-neuron diaktifkan dengan menggunakan fungsi aktivasi sigmoid, yaitu: (2-2) Arsitektur jaringan backpropagation itu sendiri dapat dilihat pada gambar berikut. Z1 X
Y Z2
Zn
Gambar 2.7 Arsitektur Jaringan Backpropagation
II-11
Algoritma backpropagation: 1. Inisialisasi bobot (ambil bobot awal dengan nilai random yang cukup kecil). 2. Kerjakan langkah-langkah berikut selama kondisi berhenti bernilai FALSE: a. Untuk tiap-tiap pasangan elemen yang akan dilakukan pembelajaran, kerjakan: Feedforward: 1. Tiap-tiap unit input (Xi, i=1,2,3,…,n) menerima sinyal xi dan meneruskan sinyal tersebut ke semua unit pada lapisan yang ada diatasnya (lapisan tersembunyi). 2. Tiap-tiap unit tersembunyi (Zi, j=1,2,3,…,p) menjumlahkan sinyal-sinyal input terbobot: (2-3) Gunakan fungsi aktivasi untuk menghitung sinyal outputnya: (2-4) Dan kirimkan sinyal tersebut ke semua unit di lapisan atasnya (unit-unit output). 3. Tiap-tiap unit output (Yk, k=1,2,3,…,m) menjumlahkan sinyal-sinyal input terbobot. (2-4) Gunakan fungsi aktivasi untuk menghitung sinyal outputnya: (2-5) Dan kirimkan sinyal tersebut ke semua unit di lapisan atasnya (unit-unit outputnya).
II-12
Backpropagation 4. Tiap-tiap unit output (Yk, k=1,2,3,…,m) menerima target pola yang berhubungan dengan pola input pembelajaran, hitung informasi errornya: δk = (tk – yk)f’(y_ink)
(2-6)
kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai wjk): ∆wjk = α δkzj
(2-7)
Hitung juga koreksi bias (yang nantinya akan digunakan untuk memperbaiki nilai w0k): ∆w0k = α δk
(2-8)
Kirimkan δk ini ke unit-unit yang ada di lapisan bawahnya. 5. Tiap-tiap unit tersembunyi (Zj, j=1,2,3,…,p) menjumlahkan delta inputannya (dari unit-unit yang berada pada lapisan di atasnya): (2-9) Kalikan nilai ini dengan turunan dari fungsi aktivasinya untuk menghitung informasi error : δj = δ_inj f’(y_inj)
(2-10)
kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai vij): ∆vjk = α δj xi
(2-11)
Hitung juga koreksi bias (yang nantinya akan digunakan untuk memperbaiki nilai voj): ∆v0j = α δj
(2-12)
6. Tiap-tiap unit output (Yk, k=1,2,3,…,m) memperbaiki bias dan bobotnya (j=0,1,2,…,p): Wjk(baru)=wjk(lama) + ∆wjk
(2-13)
Tiap-tiap unit tersembunyi (Zj, j=1,2,3,…,p) memperbaiki bias dan bobotnya (i=0,1,2,…,n): Vij(baru) = vij(lama) + ∆vij
(2-14)
II-13
b. Tes kondisi berhenti. [14]
2.6 Unified Modelling Language (UML) Unified Modelling Language adalah bahasa standar yang digunakan untuk menjelaskan dan menVisualisasikan artifak dari proses analisis dan disain berorientasi obyek. UML menyediakan standar pada notasi dan diagram yang bisa digunakan untuk memodelkan suatu sistem. UML dikembangkan oleh pendekar ‘berorientasi obyek’, yaitu Grady Booch, Jim Rumbaugh, dan Ivar Jacobson. UML menjadi bahasa yang bisa digunakan untuk berkomunikasi dalam perspektif obyek antara user dengan Developer, antara Developer dengan Developer, antara Developer analisis dengan Developer disain, dan antara Developer disain dengan Developer pemrograman. UML memungkinkan Developer melakukan pemodelan secara Visual, yaitu penekanan pada penggambaran, bukan didominasi oleh narasi. Pemodelan Visual membantu untuk menangkap struktur dan kelakuan dari obyek, mempermudah penggambaran interaksi antara elemen dalam sistem, dan mempertahankan konsistensi antara disiplin dan implementasi dalam pemrograman. UML menyediakan beberapa notasi dan artifak standar yang bisa digunakan sebagai alat komunikasi bagi para pelaku dalam proses analisis dan disain. Artifak di dalam UML didefinisikan sebagai informasi dalam berbagai bentuk yang digunakan atau dihasilkan dalam proses pengembangan perangkat lunak. Tiga artifak yang penting dalam proses analisis dan disain, yaitu Use case Diagram, Sequence diagram dan Class
diagram
beserta notasi yang berhubungan
dengannya. Use case diagram merupakan artifak dari proses analisis, sementara Sequence diagram dan Class diagram merupakan artifak dari proses disain. [15]