BAB V KESIMPULAN DAN SARAN
5.2 Saran
1. Penelitian ini sebaiknya dilakukan di tiap-tiap kabupaten kota untuk sebagai masukan dalam mengambil keputusan dalam mengantisipasi cuaca ekstrim.
2. Sebaiknya dilakukan validasi dan verifikasi hasil prediksi untuk mengetahui tingkat keakuratan model tersebut.
3. Menggunakan data-data yang lebih rapat agar dapat mengcakup wilayah yang lebih spesifik.
DAFTAR PUSTAKA
Arif H., 2006. Jaringan Syaraf Tiruan Teori dan Aplikasi. Penerbit Andi. Yogyakarta.
Bambang D.P., Budi, et.al., 1999. Teknik Jaringan Syaraf Tiruan Feedforward Untuk Prediksi Harga Saham pada Pasar Modal Indonesia. Jurnal
Informatika, Vol.1 No.1 Mei 1999, hal. 33-37. Program Pascasarjana
Peran Teknik Kendali, Institut Teknologi Bandung. .
Diyah P., 2006. Pengantar Jaringan Syaraf Tiruan. Penerbit Andi. Yogyakarta. Fausett, L., 1994. Fundamental of Neural Networks. Prentice Hall. New Jersey. Haykin, S. 1999. Neural Network, a Comprehensive Foundation. Prentice Hall.
New Jersey.
Marimin, 2005. Teori dan Aplikasi Sistem Pakar dalam Teknologi Manajerial. Ed.2. IPB Press. Bogor.
Mc Menamin, J.S., dan F. A. Monforte., 1998. Short Term EnergyForecasting
with Neural Network. The Energy Journal. vol 19 no.4. ABI/INFORM Research, New York.
Nur Iriawan,Ph.D, 2006. Mengolah data Statistik dengan Mudah Menggunakan Minitab 14. Penerbit ANDI, Yogyakarta.
Panjaitan, Lanny W., 2007. Dasar-dasar Komputasi Cerdas. Penerbit Andi. Yogyakarta.
Pratama, T. Iwan B.,1999. Metode Peramalan Memakai Jaringan Saraf Buatan dengan Cara Backpropagation, Jurnal Teknologi Industri, Vol. III. No.2, hal 109-116.
Resmana, Dwi Wiyanto, 1997. Prediksi Nilai Tukar Valuta Asing: Sebuah Studi
KasusPenggunaan Jaringan Syaraf Tiruan Untuk Peramalan, Edisi
Pertama. Surabaya:Lembaga Penelitian dan Pengabdian Kepada Masyarakat Universitas Kristen Petra.
Rumelhart, D.E, G.E. Hinton dan J.L. Mc Cleland. Parallel Distributed Processing. The MIT Press, 1988.
Salya, D. H., 2006. Rekayasa Model Sistem Deteksi Dini Perniagaan Minyak Goreng Kelapa Sawit. Disertasi. Sekolah Pascasarjana,IPB – Bogor.
Siang, J, J., 2005. Jaringan Syaraf Tiruan dan Pemogramannya Menggunakan Matlab. Penerbit Andi. Yogyakata.
Suyanto., 2008. Soft Computing Membangun Mesin Ber-IQ Tinggi. Penerbit Informatika. Bnadung.
Timothy, Signal and Image Processing with Neural Networks, John Wiley and Sons, Inc., New York, 1994.
Tommy W S and Siu Yeung C., 2007. Neural Network and Computing. Series In Elecrtrical and Computer Engineering Vol 7. Imperial College Press. London.
Tursilawat. L, Hermawan. E, Risdiyanto. I, Indeks Kenyamanan di Bandung dari Data Satelit Lansat dengan Tekhnik GIS dan Model Neraca Energi. Jurnal Teknik Lingkungan Edisi Khusus, Agustus 2006.
Zhang, W., Q. Cao, dan M.J. Schniederjans. 2004. Neural Network Earning Per Share Forecasting Models: A Comparative Analysis of Alternative Methods. Decision Sciences Vol 35 No. 2.ABI/INFORM Research, New York.
(…………..2010a). Angin. http://id.wikipedia.org/wiki/Angin
Diiakses tanggal 2 April 2010 Jam 1.40 PM (…………..2010b). Angin.
http://www.e-dukasi.net/pengpop/pp_full.php?ppid=276&fname=materi2.html Diiakses tanggal 2 April 2010 Jam 10.38 AM.
(…………..2010c). Hujan. http://id.wikipedia.org/wiki/Hujan
Lampiran K
Analisis Prediksi Suhu Udara Maksimum Polonia
Lampiran L
Analisis Prediksi Curah Hujan Maksimum Polonia
Lampiran M
Analisis Prediksi Kecepatan Angin Maksimum Polonia
Lampiran O
Analisis Prediksi Suhu Udara Maksimum Belawan
Lampiran P
Analisis Prediksi Curah Hujan Maksimum Belawan
Lampiran Q
Analisis Prediksi Kecepatan Angin Maksimum Belawan
Lampiran R
(a) Grafik Trend Prediksi JST untuk Suhu Udara Maksimum di Polonia Tahun 2010-2014
(b) Grafik Trend Prediksi JST untuk Curah Hujan Maksimum di Polonia Tahun 2010-2014
(c) Grafik Trend Prediksi JST untuk Kecepatan Angin Maksimum di Polonia Tahun 2010-2014
(d) Grafik Trend Prediksi JST untuk Suhu Udara Maksimum di Belawan Tahun 2010-2014
(e) Grafik Trend Prediksi JST untuk Curah Hujan Maksimum di Polonia Tahun 2010-2014
(f) Grafik Trend Prediksi JST untuk Kecepatan Angin Maksimum di Polonia Tahun 2010-2014
LAMPIRAN S
Aplikasi Jaringan Syaraf Tiruan
% backprop adalah pembelajaran per-epoch backpropagation untuk feedforward
% layar ganda neural network
% Network = bbackprop(Layers,N,M,SatisfactoryMSE,Input,Desired) % mengembalikan nilai Network, struktur yang memiliki a
structure having the fields:
% structure - vektor jumlah node pada masing-masing lapisan % weights - cell array, bernilai matriks bobot final yang dihitung
% epochs - epochs yang diperlukan untuk pembelajaran % mse - (mean squared error) pada saat program berhenti % weights (bobot) adalah cell array yang memberikan matriks bobot akhir dihiting dengan
% minimalisasi mse(mean squared error) antara output yang diinginkan dan
% actual output yang sebenarnya dari jaringan, dengan diketahui data
% sample pembelajaran : Input dan
% the SatisfactoryMSE (satisfactory mean squared error) %
% Input:
% Layers - suatu vektor dari bilangan bulat, yang bernilai jumlah node
% pd tiap2 lapisan, misalnya untuk semua i, Layers(i) = jumlah node pada
% lapisan i, sehingga harus ada paling sedikit tiga lapisan, dan lapisan
% input Layers(1) harus memiliki dimensi yang sama dg dimensi masing2
% vektor input, begitu pula Layer(end) harus sama dengan dimensi dengan
% setiap vektor output Desired.
% N - laju pembelajaran untuk jaringan pembelajaran [0.1 - 0.9]
% M - momentum untuk aturan update bobot [0.0 - 0.9]
% SatisfactoryMSE - nilai mse pada saat pembelajaran berakhir % Input - sample pembelajaran, matriks PxN, dimana tiap
% Input[p] adalah suatu vektor pembelajaran
% Desired - input yang didinginkan, matriks PxM dimana tiap Desired[p]
% adalah output yang diinginkan untuk Input[p] yang bersesuaian
%
% Algoritma ini menggunakan fungsi node hyperbolic tangent (sigmoid bipolar)
% 2/(1+e^(-net)) - 1, cocok untuk data bipolar dari -1 s/d 1 %
%
% Original Author: Dale Patterson % $Version: 3.1.2 $ $Date: 2.25.06 $ % Modifikasi : Yeni Megalina
function Network = bbackprop(L,n,m,smse,X,D)
%%%%% FASE VERIFIKASI %%%%%
% tentukan jumlah sample input , output yang diinginkan dan dimensi masing-masing
[P,N] = size(X); [Pd,M] = size(D);
%E=1;
% memastikan tiap-tiap vektor input harus memiliki output yang diinginkan
if P ~= Pd
error('backprop:invalidTrainingAndDesired', ...
'The number of input vectors and desired ouput do not
match');
end
% pastikan paling sedikit memiliki tiga lapisan dan pastikan input dan output ini
% dimensi masing-masingnya sama
if length(L) < 3
error('backprop:invalidNetworkStructure','The network must
have at least 3 layers');
else
if N ~= L(1) || M ~= L(end)
e = sprintf('Dimensions of input (%d) does not match input
layer (%d)',N,L(1));
error('backprop:invalidLayerSize', e);
elseif M ~= L(end)
e = sprintf('Dimensions of output (%d) does not match
output layer (%d)',M,L(end));
error('backprop:invalidLayerSize', e);
end
end
%%%%% FASE INITIALISASI %%%%%
nLayers = length(L); % we'll use the number of layers often
% acak matriks bobot secara seragam yang memiliki nilai antara [-1 1], ada
% satu bobot matrik antara tiap lapisan node
% tiap lapisan ini (eksklusif lapisan output) memiliki node bias yang memiliki aktivasinya selalu bernilai 1
% , itu adalah fungsi node C(net) = 1. selanjutnya , ada link dari % tiap-tiap node pada lapisan i ke node bias pada lapisan j (kolom terakhir
% pada tiap-tiap matriks) karena paling murah secara komputasi. bobot dari
% semua link ke node bias, semuanya tidak relevan dan didefinisikan sebagai
% 0.
w = cell(nLayers-1,1); % matriks bobot antara lapisan
for i=1:nLayers-2
w{i} = [1 - 2.*rand(L(i+1),L(i)+1) ; zeros(1,L(i)+1)];
end
% initialisasi untuk pemberhentian looping
mse = Inf; % assuming the intial weight matrices are bad
epochs = 0;
%%%%% FASE PREALLOCATION %%%%%
% untuk proses lebih cepat pra-alokasikan activation,net,prev_w dan sum_w
% Aktivasi: ada aktivasi matriks a{i} untuk tiap layer dalam jaringan
% sedemikian rupa sehingga a{1} = jaringan input dan a{end} = jaringan
% output. karena kita menggunakan batch mode, tiap aktivasi matriks a{1}
% adalah matriks P-by-K (P=jumlah samples,K=nodes pada lapisan i) sedemikian
% a{i}(j) melambangakan vektor aktivasi lapisan i untuk input ke j dan
% a{i}(j,k) melambangkan aktivasi output ke kt node pada lapisan i untuk input ke j
% input
a = cell(nLayers,1); % aktivasi matriks untuk tiap lapisan
a{1} = [X ones(P,1)]; % a{1} input + '1' untuk aktivasi bias node
% a{1} bernilai tetap selama komputasi
for i=2:nLayers-1
a{i} = ones(P,L(i)+1); % lapisan dalam termasuk node bias
(PxNodes+1)
end
a{end} = ones(P,L(end)); % tidak ada bias pada lapisan output
% Net: seperti aktivasi , ada matriks net net{i} untuk tiap lapisan
% eksklusif input sedemikian sehingga net{i} = sum(w(i,j) * a(j)) untu j = i-1
% dan tiap net matriks net{i} adalah matriks P x K sedemikian rupa sehinga net{i}(j) melambangkan
% vektor net pada lapisan i untuk sample ke jth dan net{i}(j,k) % melambangkan input net pada node k dari lapisan i untuk sample j
net = cell(nLayers-1,1); % net matrix untuk tiap lapisan exclusive
input
for i=1:nLayers-2;
net{i} = ones(P,L(i+1)+1); % affix bias node
end
net{end} = ones(P,L(end));
% karena kita menggunakan batch mode dan momentum, dua matriks tambahan diperlukan
% yaitu: prev_dw adalah bobot delta matriks pada waktu (t-1) dan sum_dw
% adalah jumlah bobot delta untuk tiap tampilan dari input % notasi disini sama dengan net dan aktivasi, yaitu prev_dw{i} % adalah P-by-K matrix dimana prev_dw{i} adalah delta weight matrix untuk semua sample
% pada waktu (t-1) dan sum_dw{i} adalah matriks PxK dimana sum_dw{i} adalah
% jumlah matriks bobot pada lapis i untuk semua sample
prev_dw = cell(nLayers-1,1); sum_dw = cell(nLayers-1,1);
for i=1:nLayers-1
prev_dw{i} = zeros(size(w{i})); % prev_dw mulai pada 0
sum_dw{i} = zeros(size(w{i}));
end
% iterasi akan terus berputar sampai batas akhir (epochs) terlampaui atau eror mse dicapai pada
% algoritma ini kita set nilai epoch pada 30000 epochs, nilai ini bisa
% diubah jika diperlukan
while mse > smse && epochs < 15000
% FASE FEEDFORWARD: hitung input/output tiap-tiap lapisan
untuk semua
% sample
for i=1:nLayers-1
net{i} = a{i} * w{i}'; % hitung input-input pada lapisan
terkini
% hitung aktivasi(output lapisan terkini, untuk semua
lapisan
% terkecuali output, node terakhir adalah node bisa dan
% aktivasinya selalu 1
if i < nLayers-1 % lapisan-lapisan dalam
a{i+1} = [2./(1+exp(-net{i}(:,1:end-1)))-1 ones(P,1)];
else % lapisan output
a{i+1} = 2 ./ (1 + exp(-net{i})) - 1;
end
end
% hitung error kuadrat untuk semua samples
err = (D-a{end}); % simpan nilai ini untuk digunakan
kemudian
sse = sum(sum(err.^2)); % jumlah error untuk semua samples,
dan semua nodes
% save result output
% FASE BACKPROPAGATION: hitung modifikasi error pada lapisan
output
% S'(Output) * (D-Output) dalam kasus ini S'(Output) =
(1+Output)*(1-Output)
% kemudian mulai pada lapisan output, hitung jumlah matriks
bobot untuk semua samples
% :LajuPembelajaran * ModifikasiError * Aktivasi
% kemudian laju mundurkan kesalahan/error sedemikian rupa
sehingga
% modifikasi kesalahan untuk lapisan ini adalah
% : S'(Aktivasi) * ModifikasiError * bobot matriks
delta = err .* (1 + a{end}) .* (1 - a{end});
sum_dw{i} = n * delta' * a{i};
if i > 1
delta = (1+a{i}) .* (1-a{i}) .* (delta*w{i});
end
end
% update prev_w, matriks bobot, hitungan epoch dan mse
for i=1:nLayers-1
% kita memiliki jumlah bobot delta, dibagi dengan jumlah
samples dan
% tambahkan bobot momentum * delta pada (t-1)
% terakhir, update bobot matriks
prev_dw{i} = (sum_dw{i} ./ P) + (m * prev_dw{i}); w{i} = w{i} + prev_dw{i};
end
epochs = epochs + 1;
mse = sse/(P*M); % mse = 1/P * 1/M * summed squared error
if epochs==1 E=[mse]; else E=[E mse]; end end O=a{end};
% return the trained network
Network.structure = L; Network.weights = w; Network.epochs = epochs; Network.mse = mse; Network.output = O; Network.error= E;
Lampiran T Proses Pembelajaran JST input_matriks; target; Layers=[24 14 12]; N=0.2; M=0.5; SatisfactoryMSE=0.001; Network = bbackprop(Layers,N,M,SatisfactoryMSE,Input,Desired);