Upload
dohanh
View
247
Download
2
Embed Size (px)
Citation preview
IMPLEMENTASI JARINGAN SYARAF TIRUAN ALGORITMA
BACKPROPAGATION UNTUK MEMPREDIKSI
JUMLAH PENDUDUK DI YOGYAKARTA
NASKAH PUBLIKASI
diajukan oleh
Setyo Nugroho
10.11.4264
kepadaSEKOLAH TINGGI MANAJEMEN INFROMATIKA DAN KOMPUTER
AMIKOM YOGYAKARTAYOGYAKARTA
2013
IMPLEMENTATION OF ARTIFICIAL NEURAL NETWORKS WITHBACKPROPAGATION METHOD TO PREDICT THE NUMBER OF
RESIDENTS IN YOGYAKARTAIMPLEMENTASI JARINGAN SYARAF TIRUAN ALGORITMA
BACKPROPAGATION UNTUK MEMPREDIKSIJUMLAH PENDUDUK DI YOGYAKARTA
Setyo Nugroho
KusriniJurusan Teknik Informatika
STMIK AMIKOM YOGYAKARTA
ABSTRACT
Indonesia has a large population with the largest population in SoutheastAsia and the fourth highest in the world, then the government has a hugemortgage to prosper, if the government can not afford it there will be an increasein unemployment and crime.
The development of science and technology is very fast has created a lot ofinformation. Artificial neural network is an information processing paradigminspired by the nervous system or the discovery of new information by adoptingthe workings of biological neurons that focuses on the workings of the humanbrain neurons. By searching a particular pattern or rules of a number of largeamounts of data, methods Backpropagation is expected to overcome thedifficulties in predicting the population, especially in Yogyakarta.
There are many methods have been developed to achieve optimal resultsfrom the prediction or forecasting. Which will be reviewed in this paper is the useof artificial neural network Backpropagation method to obtain prediction resultsare expected to provide a level of accuracy that comes closest to the error.
Keywords: Artificial Neural Networks, population, backpropagation
1. PENDAHULUAN
Indonesia mempunyai jumlah penduduk yang besar, berdasarkan
perhitungan pada tahun 2004 indonesia menjadi negara dengan penduduk
terbanyak di asia tenggara dan urutan ke 4 dunia. Memiliki penduduk yang
banyak bisa memberikan keuntungan yaitu dengan memberdayakannya untuk
meningkatkan pembangunan akan tetapi nilai negatifnya juga ada, dengan jumlah
penduduk yang besar maka pemerintah mempunyai tanggungan yang besar untuk
mensejahterakannya dan apabila pemerintah tidak mampu maka akan ada
peningkatan angka pengangguran dan kejahatan.
Di Indonesia jumlah kependudukan diatur dalam Dinas Kependudukan
dan Catatan Sipil. Dinas tersebut bertugas mengadakan penelitian dan pelayanan
tentang kependudukan yang salah satu bidangnya adalah pembuatan surat tanda
lahir atau yang lebih dikenal dengan akta kelahiran, kartu tanda penduduk (KTP),
kartu keluarga (KK).
Jumlah pertambahan penduduk dapat mempengaruhi tingkat kepadatan
penduduk yang tidak merata di suatu wilayah serta mempengaruhi tingkat
perekonomian, pendidikan, kesehatan dan juga instansi-instansi terkait lainnya.
2. LANDASAN TEORI
2.1. Pengertian penduduk
Kependudukan, atau dalam hal ini adalah penduduk, merupakan pusat dari
seluruh kebijaksanaan dan program pembangunan yang dilakukan. Dalam Garis
Besar Haluan Negara (GBHN) dengan jelas dikemukakan bahwa penduduk adalah
subyek dan obyek pembangunan. Sebagai subyek pembangunan maka penduduk
harus dibina dan dikembangkan sehingga mampu menjadi penggerak
pembangunan. Sebaliknya, pembangunan juga harus dapat dinikmati oleh
penduduk yang bersangkutan. Dengan demikian jelas bahwa pembangunan harus
dikembangkan dengan memperhitungkan kemampuan penduduk agar seluruh
penduduk dapat berpartisipasi aktif dalam dinamika pembangunan tersebut.
Sebaliknya, pembangunan tersebut baru dikatakan berhasil jika mampu
meningkatkan kesejahteraan penduduk dalam arti yang luas
(www.bappenas.go.id/get-file-server/node/8562/. April, 7, 2013).
2.2. Jaringan Syaraf Tiruan
Jaringan saraf tiruan (JST), atau juga disebut simulated neural network
(SNN), atau umumnya hanya disebut neural network (NN)), adalah jaringan dari
sekelompok unit pemroses kecil yang dimodelkan berdasarkan jaringan saraf
manusia. Jaringan saraf tiruan merupakan sistem adaptif yang dapat mengubah
strukturnya untuk memecahkan masalah berdasarkan informasi eksternal maupun
internal yang mengalir melalui jaringan tersebut. Secara sederhana, JST adalah
sebuah alat pemodelan data statistik non-linier. JST dapat digunakan untuk
memodelkan hubungan yang kompleks antara input dan output untuk menemukan
pola-pola pada data (Arief Hermawan, 2006, hlm. 5).
2.2.1. Model Jaringan Syaraf Tiruan
Seperti halnya otak manusia, jaringan syaraf tiruan terdiri dari
beberapa neuron dan ada hubungannya antara neuron-neuron tersebut.
Beberapa neuron akan mentranformasikan informasi yang diterimanya
melalui sambungan keluaran menuju neuron-neuron lainnya. Dengan kata
lain, neuron/sel saraf adalah sebuah unit pemroses informasi yang
merupakan dasar operasi jaringan syaraf tiruan. Neuron ini dimodelkan
dari penyederhanaan sel syaraf manusia sebenarnya. Gambar dibawah ini
menunjukan contoh suatu neuron (Arief Hermawan, 2006, hlm. 5).
Gambar 2.2. Struktur Unit Jaringan Syaraf Tiruan
2.2.2. Backpropagation
Penemuan Backpropagation yang terdiri dari beberapa
layar membuka kembali cakrawala. Terlebih setelah berhasil
ditemukannya berbagai aplikasi yang dapat diselesaikan
dengan Backpropagation, membuat Jaringan Syaraf Tiruan
semakin diminati orang. Backpropagation melatih jaringan
untuk mendapatkan keseimbangan antara kemampuan jaringan
untuk mengenali pola yang digunakan selama pelatihan serta
kemampuan jaringan untuk memberikan respon yang benar
terhadap pola masukan yang serupa (Diyah Puspitaningrum,
2006, hlm. 125)
3. ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Data
3.1.1. Kebutuhan Fungsional
Kebutuhan fungsional pada aplikasi prediksi jumlah penduduk ini
adalah sebagai berikut :
1. Pengujian Data
Fungsi ini berguna untuk mengetahui tingkat keakuratan nilai prediksi
dengan nilai aktualnya.
2. Pelatihan Data
Fungsi ini berguna untuk melatih jaringan hingga diperoleh bobot yang
sesuai.
3. Prediksi
Fungsi ini berguna jika user memprediksi jumlah penduduk tahunan
tertentu secara khusus.
3.1.2. Analisis Kebutuhan Data
Dalam pelatihan Jaringan Syaraf Tiruan, banyak data yang dibutuhkan
supaya jaringan dapat dilatih dengan benar. Data yang digunakan dibagi menjadi
dua, yaitu data yang akan dijadikan bahan pelatihan serta data yang akan diujikan.
Semakin banyaknya data yang digunakan dalam pelatihan, jaringan akan mudah
mengenali polanya dan diharapkan hasil prediksinya mendekati sempurna
3.1.2.1. Analisis Kebutuhan Perangkat Lunak
Perangkat lunak (Software) yang digunakan dalam
pelatihan Jaringan Syaraf Tiruan ini adalah :
1. MATLAB 7.10 beserta toolbox Neural Network untuk pembuatan jaringan
dan GUIDE MATLAB untuk pembuatan user interface, juga M-File editor untuk
penulisan program.
2. Microsoft Excel 2010 untuk penyimpanan data masukan bagi jaringan
3.2. Perancangan Jaringan Backpropagation
Proses pembuatan jaringan dijelaskan dalam langkah-langkah aplikasi,
yaitu langkah pertama adalah mengumpulkan data untuk pelatihan dan
pengujian jaringan syaraf tiruan. Semakin banyak data dapat diperoleh,
semakin baik jaringan jaringan dapat menyelesaikan masalahnya. Data yang
telah diperoleh ini dipisahkan pada langkah ke 2 menjadi 2 bagian. Bagian
pertama digunakan untuk melatih jaringan syaraf dan bagian kedua
dipergunakan untuk menguji kerja jaringan syaraf tiruan.
Pada langkah ke 3 dan ke 4 dilakukan pemilihan arsitektur dan algoritma
pelatihan jaringan. Banyaknya sel input dan output disesuaikan dengan
masalah yang akan diselesaikan.
Langkah ke 5 adalah langkah untuk menginisialisasi parameter jaringan
syaraf bobot, bias, konstanta belajar, momentum dan lain-lain. Langkah ke 6
dan ke 7 dilakukan untuk melatih jaringan syaraf tiruan untuk menemukan
titik konvergensinya. Konvergensi jaringan syaraf tiruan di tandai dengan
telah tercapainya galat yang diinginkan. Setelah jaringan syaraf konvergen
diujikan pada langkah ke 8. Selanjutnya langkah ke 9 jaringan syaraf tiruan di
implementasikan sebagai sebuah sistem yang siap untuk menyelesaikan
masalah. (Arief Hermawan, 2006, hlm.142).
3.2.1. Pengumpulan Data dan Penentuan Pola
Data jumlah penduduk tahunan didapat dari Badan Pusat Statistik
(BPS) Yogyakarta yaitu data dari Tahun 1989 sampai Tahun 2012. Total
data adalah 24 data yang akan dibagi 2 yaitu 16 data untuk pelatihan
jaringan, dan 8 data untuk pengujian jaringan.
Data jumlah penduduk tersebut dibagi menjadi 2 yaitu data tahun
1989 sampai 2004 digunakan sebagai data pelatihan jaringan, dan data
tahun 2005 sampai tahun 2012 digunakan sebagai data pengujian jaringan.
3.2.1.1. Algoritma Pelatihan
Algoritma pelatihan jaringan backpropagation yang
memiliki tiga lapisan dengan fungsi aktivasi sigmoid biner serta
penambahan momentum adalah sebagai berikut:
1. Inisialisasi bobot dan bias secara acak dengan bilangan acak
kecil.
2. Tetapkan jumlah epoch maksimum, batas galat, laju
pembelajaran dan momentum.
3. Selama kondisi penghentian belum terpenuhi (epoch < epoch
maksimum dan MSE > batas galat), maka lakukan langkah-
langkah berikut :
1. Epoch = Epoch + 1
2. Untuk setiap pasang data pelatihan, kerjakan Fase Feed
Forward, Fase Backpropagation dan Fase Perubahan
Bobot
Contoh Perhitungan
Misalnya dalam kasus ini akan dibuat sebuah jaringan syaraf tiruan
backpropagation dengan masukan data jumlah penduduk tahun 1989 – tahun
2004, dan data tahun 2005 – tahun 2012 sebagai target keluaran. Karena fungsi
aktifasi dengan menggunakan sigmoid biner (range 0 sampai dengan 1), maka
data harus ditransformasikan [0,1]. Tapi akan lebih baik di transformasikan pada
range [0,1 - 0,9] karena fungsi sigmoid nilainya tidak pernah 0 ataupun 1.
Untuk mentransformasikan data digunakan rumus sebagai berikut :
x = Data awala = Nilai minimal data awalb = Nilai maksimal data awal
Perhitungan dilakukan hingga data tahun 2012. Sehingga didapatkan
keseluruhan data yang telah ditransformasi sebagai berikut :
Table 3.5. Tabel data yang telah di transformasi
Tahun Jumlah Tahun Jumlah Tahun Jumlah1989 0.1652 1997 0.43 2005 0.7041990 0.1936 1998 0.4532 2006 0.71581991 0.2167 1999 0.4915 2007 0.75461992 0.2321 2000 0.5348 2008 0.77131993 0.175 2001 0.5741 2009 0.79271994 0.1 2002 0.6116 2010 0.81861995 0.3497 2003 0.6402 2011 0.86321996 0.3497 2004 0.6808 2012 0.9
Setelah data ditransformasikan seperti diatas, selanjutnya adalah
menentukan pola yang akan digunakan pada jaringan syaraf tiruan yang akan
dibuat. Dengan memecah data menjadi dua bagian yaitu 16 data pelatihan dan 8
b - a+ 0.1X’ = 0.8 (x – a)
data pengujian. Pada kasus ini pola data pelatihan adalah 8 data sebagai data
masukan dan 8 data sebagai data target, artinya data jumlah penduduk tahun 1989
– tahun 1996 sebagai masukan dan data jumlah penduduk tahun 1997 – tahun
2004 sebagai target dan data pelatihan ditransformasi pada range 0 – 1 :
Setelah itu kemudian dilakukan inisialisasi bobot secara acak dengan
angka yang berada di antara angka -1 hingga 1.
Fase Feed Forward
a. Tiap unit masukan xi (i = 1, 2, 3,...,n) menerima sinyal dan
meneruskannya ke semua unit lapisan tersembunyi di atasnya.
b. Setiap unit di lapisan tersembunyi zj (j = 1, 2, 3, ..., p) menjumlahkan
sinyal-sinyal input dengan bobotnya masing-masing:
z_netj = ji
n
iij vxv
1
0
vjo = bobot garis yang menghubungkan bias di unit masukan ke unit
di lapisan tersembunyi zj
vji = bobot garis dari unit masukan xi ke unit di lapisan tersembunyi
zj
Sinyal output dihitung dengan fungsi aktivasi:
zj = f(z_netj) =jnetz
e_
11
c. Unit di lapisan keluaran yk (k = 1, 2, 3, ..., m) menjumlahkan sinyal-
sinyal dari unit tersembunyi dengan bobotnya masing-masing:
y_netk = kj
p
jjk wzw
1
0
wko = bobot garis yang menghubungkan bias di unit lapisan
tersembunyi ke unit lapisan keluaran yk
wkj = bobot garis dari unit lapisan tersembunyi zj ke unit di lapisan
keluaran yk
Sinyal output dihitung dengan fungsi aktivasi:
yk = f(y_netk) =knetye _1
1
Fase Backpropagation
d. Unit di lapisan keluaran yk (k = 1, 2, 3, ..., m) menerima target lalu
dibandingkan dengan masukan yang diterimanya. Factor galat dihitung
dengan menggunakan persamaan :
δ k = (t k – y k) f’(y_netk) = (t k – y k) y k (1 - y k)
dimana δk merupakan kesalahan yang akan dipakai dalam perubahan
bobot lapisan di bawahnya.
Perubahan bobot Δwkj dihitung untuk merubah bobot wkj dengan laju
pembelajaran α
Δwkj = α.δk.zj
e. Hitung factor δ unit tersembunyi berdasarkan kesalahan disetiap unit
tersembunyi zj :
δ_netj =
m
kkjk w
1
Nilai ini dikalikan dengan turunan fungsi aktivasinya untuk
mendapatkan informasi galat:
δ j = δ _netj f’(z_netj) = δ _netj zj (1 - zj)
Kemudian dihitung perubahan bobot Δvji
Δvji = α δj x
Fase Perubahan Bobot
f. Prubahan bobot garis yang menuju ke unit keluaran ditambah factor
momentum (µ) :
wkj (t+1) = wkj (t) + Δwkj + μ (wkj (t) - wkj (t-1))
bk (t+1) = bk (t) + Δbk + μ (bk (t) - bk (t-1))
perubahan bobot garis menuju ke unit tersembunyi :
vji (t+1) = vji (t) + Δvji + μ (vji (t) - vji (t-1))
bj (t+1) = bj (t) + Δbj + μ (bj (t) – bj (t-1))
3.2.2. Alur Kerja Program
Gambar 3.3. Flowchart alur kerja program
Memproses data
Tampilkan hasil proses data
Selesai
Mulai
Masukan data dalam format .xls
Mencari data
Data ada/tidak
Ya
Tidak
4. HASIL DAN PEMBAHASAN
4.1.1. Membangun Jaringan dengan MATLAB
Langkah pertama yang harus dilakukan untuk memprogram
backpropagation dengan MATLAB adalah membuat inisialisasi jaringan.
Perintah untuk membentuk jaringan adalah newff. Yang formatnya
adalah sebagai berikut:
net = newff(PR,[S1 S2 ... SN],{TF1 TF2 …TFN},BTF,BLF,PF)
dengan keterangan :
net = Jaringan backpropagation yang terdiri dari n layer
PR = Matriks ordo R x 2 yang berisi nilai minimum dan
maksimum R buah elemen masukannya.
Si = Fungsi aktivasi yang dipakai pada layar ke-i (i=1,2,...,n).
Default = tansig (sigmoid bipolar)
BTF = Fungsi pelatihan jaringan. Defaultnya = traingdx
BLF = Fungsi perubahan bobot/bias. Default=learngdm
PF = Fungsi perhitungan error (Mean Square Error MSE)
Sebelum pelatihan dilakukan, terlebih dahulu ditentukan nilai
parameter yang diinginkan guna memperoleh hasil yang optimal. Untuk
memberikan nilai parameter dalam MATLAB adalah sebagai berikut :
1. Net.trainParam.ShowPerintah yang digunakan untuk menampilkan frekuensi perubahan
MSE (default setiap 25 epochs)
2. Net.trainParam.epochsPerintah yang dipakai untuk menentukan jumlah epochs
maksimum pelatihan (default 100 epochs)
3. Net.trainParam.goalPerintah untuk menentukan batas MSE agar iterasi dihentikan.
Iterasi akan berhenti jika MSE < dari batas yang ditentukan atau jumlah
epoch telah mencapai maksimum sesuai nilai yang diberikan pada perintah
net.trainParam.epochs4. Net.trainParam.lr
Perintah yang digunakan untuk menentukan laju pembelajaran
(learning rate). Default-nya adalah 0,01. Semakin besar nilai laju
pembelajaran, semakin cepat pula proses pelatihan. Akan tetapi jika
nilainya terlalu besar, algoritma menjadi tidak stabil dan mencapai titik
minimum lokal.
5. Net.trainParam.timePerintah untuk membatasi lama pelatihan (dalam detik). Pelatihan
dihentikan jika lamanya melebihi nilai yang ditentukan.
6. Net.trainParam.mcPerintah ini digunakan untuk menentukan nilai momentum antara 0
– 1 (default adalah 0,9).
4.1.2. Pembahasan Output Program
Setelah dilakukan pelatihan dengan berbagai macam kombinasi Pelatihan
(pembelajaran), nilai Error (The Last RMSE) tidak tergantung pada besarnya nilai
Learning Rate, tetapi jumlah iterasi (epoch) semakin kecil. Dan ternyata hasil
yang paling baik adalah dengan menggunakan kombinasi pembelajaran(learning
rate) 0.1, momentum 0.25, hiden layer 25 dengan target error 0.0001, karena
dengan kombinasi pembelajaran tersebut hasil target yang akan diinginkan dapat
tercapai.
Dari hasil pengujian sistem aplikasi model jaringan saraf tiruan yang telah
dibuat dengan konstanta belajar 0.1, keberhasilan dalam memprediksi hasil jumlah
penduduk sebesar 97,5 %. Tabel 4.1. menunjukkan hasil pengujian dengan
beberapa learning rate, momentum, hiden layer, serta target error.
Table 4.1. Presentase kebenaran & epoch yang dicapai
Momentum LearningRate
HidenLayer
Epoce(iterasi) The LastRMSE
HasilPorsentase
m=0.25 0.1 25 168 0.0000992 97,5 %.
0.5 131 0.0000996 95 %
0.9 129 0.0000955 90 %
m=0.5 0.1 50 109 0.0000995 95 %
0.5 90 0.0000959 90 %
0.9 38 0.0000988 92,5 %
m=0.75 0.1 75 86 0.0000941 85 %
0.5 52 0.0000904 80 %
0.9 82 0.0000987 92,5 %
Pada pelatihan yang baik adalah performance mengalami
penurunan nilai mendekati goal yang ditentukan, namun pada pelatihan
tersebut performance menunjukan penurunan dan juga kenaikan yang
menjauhi nilai goal.
1. Menu utama akan tampil sebagai berikut :
Gambar 4.2. Tampilan halaman utama program
2. Tampilan menu ‘Program_Latih dan Uji’ yang merupakan sub-menu
dari menu program untuk melakukan pelatihan dan pengujian jaringan
sebagai berikut :
3. Tampilan menu ‘Prediksi Jumlah Penduduk sebagai berikut :
5. Kesimpulan
1. Dari hasil penelitian, dapat disimpulkan bahwa metode
Backpropagation dapat digunakan untuk melakukan pendeteksian
jumlah penduduk, mendekati ketepatan dalam melakukan pengujian.
2. Semakin kecil batas galat yang ditentukan, maka akan mengalami
waktu pelatihan yang semakin lama serta epoch yang dicapai semakin
besar.
3. Hasil pengujian data yang telah dilatih menunjukkan performa yang
cukup baik. Selisih antara target yang sebenarnya dengan hasil output
program tidak menunjukkan perbedaan yang begitu besar.
4. Semakin banyak data yang digunakan untuk pelatihan, jaringan akan
semakin mampu mengenali pola, sehingga penentuan nilai galat dapat
diperkecil.
5. Fasilitas MATLAB yang menyediakan fitur-fitur untuk perhitungan
neural network sangat membantu dalam pembuatan aplikasi Jaringan
Syaraf Tiruan. Meskipun fasilitas GUIDE MATLAB 7.10.0 masih
terbatas jika dibandingkan dengan perangkat lunak lainnya.
5. DAFTAR PUSTAKA
Amutiara. 2013. Backpropagtion dan contoh. http : //amutiara.staff.gunadarma.ac.id/Downloads/files/15556/Kuliah_7b_BACKPROPAGATIONS. diakses pada tanggal 5 April 2013.
Anonim. 2013. Accelerating the pace of engineering and science. http ://www.mathworks.com. diakses pada tanggal 31 Maret 2013.
Anonim. 2013. Pengertian Penduduk. http : //repository.usu.ac.id/bitstream/123456789/19103/3/Chapter. diakses padatanggal 4 April 2013.
Anonim. 2013. Programming and Algorithm Development, http ://www.mathworks.com/products/matlab/description4.html. diaksespada tanggal 4 April 2013.
Anonim. 2013. rumus pertumbuhan geometric. http : //www.datastatistik-indonesia.com. diakses pada tanggal 7 April 2013.
Hermawan, Arief. 2006. Jaringan Saraf Tiruan, Teori dan AplikasiYogyakarta: Penerbit Andi.
Kristanto, Andi. 2004. Jaringan Syaraf Tiruan. Yogyakarta: PenerbitGava Media.
Puspitaningrum, Diyah. 2006. Pengantar Jaringan Syaraf Tiruan.Yogyakarta : Penerbit Andi.
Tjiptoherijanto, Prijono. 2013. Dimensi Kependudukan DalamPembangunan Berkelanjutan. http : //www.bappenas.go.id/get-file-server/node/8562/. diakses pada tanggal 7April 2013.