5
BAB II LANDASAN TEORI
2.1 Jaringan Syaraf TiruanJaringan syaraf tiruan atau dikenal sebagai Artificial Neural Network adalah algoritma yang diaplikasikan ke dalam proses komputasi komputer dengan mengadaptasi dari struktur jaringan syaraf yang terdapat pada tubuh mahluk hidup seperti yang ditunjukkan pada gambar 2.1.1. Jaringan syaraf diimplementasikan dan dimodelkan pada jaringan buatan secara matematis. Jaringan syaraf tiruan mengalami proses pembelajaran dalam dua cara yaitu pelatihan terbimbing dan pelatihan mandiri. Pelatihan terbimbing melibatkan target dalam proses pelatihannya contohnya adalah single-layer perceptron, multi-layer perceptron, dan Back Propagation. Sementara pelatihan mandiri tidak melibatkan target dalam sesi pelatihannya, sebagai contoh adalah Self-Organizing Map (SOM).
Gambar 2.1.1 Struktur Jaringan Syaraf Manusia
Sumber : An Introduction to Artifiial Neural Network (Peterson & Rognvaldsson, 1991)
Menurut (Peterson & Rognvaldsson, 1991) pada jurnalnya yang berjudul An Introduction to Artificial Neural Network, jaringan syaraf tiruan memiliki tiga lapisan utama yaitu lapisan input, hidden dan output. Ketiga lapisan ini dihubungkan dan setiap data yang berpindah harus melewati jalur yang memiliki nilai bobot. Perhitungan akhir akan menghasilkan nilai pada lapisan output. Secara ringkas jaringan syaraf tiruan memiliki struktur seperti yang ditujukkan pada gambar 2.1.2.
melambangkan bobot-bobot pada tiap jalur, sementara x melambangkan input layer, h melangkan hidden layer, dan o melambangkan output layer.
Gambar 2.1.2 Struktur Dasar Jaringan Syaraf Tiruan
Sumber : An Introduction to Artifiial Neural Network (Peterson & Rognvaldsson, 1991)
2.1.1 Input Layer
Input Layer atau lapisan masukan adalah lapisan yang akan menangani seluruh parameter yang akan digunakan. Parameter ini dapat berbentuk bilangan asli ataupun bilangan biner (0 dan 1) dan bipolar (1, 0 dan -1). Lapisan input ini akan mengirimkan nilai menuju lapisan tersembunyi dengan melewati masing-masing bobot untuk diproses lebih lanjut. Lapisan input memiliki node sejumlah dengan parameter yang ditetapkan, jadi masing-masing node akan memuat satu nilai dari parameter yang diwakilinya.
2.1.2 Hidden Layer
Hidden Layer atau layer tersembunyi berfungsi sebagai penambahan operasi logika dalam jaringan syaraf tiruan. Jumlah hidden layer mengakibatkan bertambahnya proses komputasi yan terjadi didalam sistem jaringan namun tidak menjamin meningkatkan kemampuan jaringan dalam melakukan proses pembelajaran.
2.1.3 Node
Masing-masing lapisan (input, hidden dan output) akan memiliki node masing-masing. Jumlah node pada lapisan input akan berbeda dengan jumlah node pada lapisan output. Hal ini dikarenakan jumlah node pada lapisan input akan
mengikuti jumlah parameter atau fitur yang digunakan. Sementara jumlah node pada lapisan output akan menyesuaikan dengan jumlah keluaran yang diinginkan.
2.1.4 Output Layer
Output Layer merupakan lapisan yang mengeluarkan hasil akhir dari perhitungan dalam jaringan. Lapisan ini mengeluarkan nilai, nilai ini dapat berupa bilangan biner atau bipolar.
2.2 Algoritma Genetika
Algoritma genetika merupakan algoritma yang mengaplikasikan proses hokum alam untuk menemukan solusi dari permasalahan optimasi. Algoritma ini mengadaptasi proses yang terjadi di alam yaitu proses seleksi alam. Slogan “Yang kuat yang bertahan” menjadi algoritma utama dalam algoritma ini. Algoritma genetika akan membuat individu yang memiliki nilai fitness tinggi untuk terus bermutasi dan berkembang biak menjadi individu yang lebih baik. Beberapa item dalam algoritma ini yang perlu dikenal diantaranya diilustrasikan pada gambar 2.2.1.
2.2.1 Allele
Merupakan isi atau nilai dari setiap gen yang ada pada tiap individu. Allele inilah yang nantinya akan digunakan di dalam proses matematika algoritma genetika. Allele sendiri pada proses pembangkitannya akan memiliki nilai random.
2.2.2 Gen
Merupakan bagian kecil dari suatu individu. Masing-masing gen akan memiliki satu nilai yang disebut allele. Gen akan dimanfaatkan dalam membentuk kromsom baru demi mencapai hasil optimal (meminimalkan atau memaksimalkan). Pada proses cross-over beberapa gen akan ditukarkan posisinya antar individu. Hal ini akan menghasilkan individu baru dengan nilai fitness baru. Pada proses mutasi nilai gen tertentu akan kembali dilakukan pengacakan sehingga menghasilkan individu dengan nilai fitness baru.
2.2.3 Individu
Individu merupakan kumpulan dari gen. Gen dapat berupa bilangan biner ataupun integer dan float. Struktur individu dalam penelitian ini dapat dilihat pada gambar 2.2.2.
Gambar 2.2.2 Struktur individu (b) ketika digunakan struktur jaringan syaraf tiruan dengan dua node input, satu node hidden layer dan satu node output (a).
Dalam algoritma genetika, solusi dari permasalahan yang ingin kita optimalisasi didapat dari nilai-nilai yang terdapat di dalam kumpulan gen, dalam hal ini kita sebut individu. Di dalam algoritma genetika pembangkitan individu-individu awal dilakukan dengan mengacak nilai allele, kemudaian dari setiap individu
memiliki nilai fitness masing-masing dan nilai ini akan menentukan probabilitas masing-masing individu untuk melakukan proses cross-over dengan individu lainnya. Pada akhir suatu generasi akan dipilih satu individu dengan nilai fitness tertinggi untuk ditetapkan sebagai solusi permasalahan.
2.2.4 Populasi
Dalam suatu generasi, terdapat banyak individu yang akan dikenakan proses penghitungan nilai fitness, kemudian proses perkawinan silang atau cross-over, dan proses mutasi. Kumpulan dari individu-individu yang melalui semua proses tersebut secara bersamaan disebut populasi. Dalam satu populasi biasanya akan terdapat lebih dari satu individu. Hal ini tergantung dari angka yang ditetapkan pengguna algoritma untuk menentukan jumlah maksimum populasi yang akan digunakan.
2.2.5 Generasi
Satu generasi dalam proses algoritma genetika menunjukkan satu siklus evolusi dari suatu individu dalam satu populasi. Proses evolusi ini meliputi proses cross-over dan mutasi. Didalam algoritma lainnya satu generasi biasanya disebut sebagai satu iterasi.
2.2.6 Nilai Fitness
Nilai fitness merupakan nilai yang dapat dijadikan tolak ukur bagus atau tidaknya suatu individu. Nilai fitness yang bagus dapat berupa fungsi memaksimumkan atau meminimumkan. Sebagai contoh, populasi dengan nilai fitness yang memiliki tujuan meminimumkan error akan menganggap individu dengan nilai error terendah sebagai individu terbaik. Berbeda dengan populasi yang memaksimalkan nilai akurasi, akan menganggap individu dengan nilai akurasi terbesar sebagai individu terbaik. Nilai fitness dapat secara bebas disesuaikan dengan kebutuhan perancang.
2.2.7 Seleksi Roulette-Wheel
Pada setiap populasi baru, tidak semua individu pada populasi lama dapat bertahan, hanya individu yang lolos dari seleksi yang akan bertahan pada populasi yang baru. Seleksi alam akan disimulasikan dengan mengaplikasikan algoritma seleksi Roulette-Wheel. Algoritma seleksi Roulette-Wheel ini mengaplikasikan cara
bermain permainan judi Roulette-Wheel di kasino. Dengan membagi roda Roulette sesuai dengan besarnya persentase nilai fitness seperti yang diilustrasikan pada gambar 2.2.3, setelah itu mulai mencari nilai random yang akan menentukan pada bagian individu mana yang akan terkena operasi selanjutnya.
Gambar 2.2.3 Ilustrasi Roulette-Wheel
Sumber : Genetic Algorithm Performance with Different Selection Strategies in Solving TSP (Razali & Geraghty, 2011)
2.2.8 Cross-Over
Proses Cross-Over merupakan proses perkawinan silang yang terjadi antar individu proses perkawinan silang ini akan menghasilkan 2 (dua) individu baru yang diharapkan memiliki nilai fitness lebih baik dari pada individu induknya. Ilustrasi selengkapnya dapat dilihat pada gambar 2.2.4.
Gambar 2.2.4 Ilustrasi Cross-Over
Sumber : An Introduction to Genetic Algorithm (Thede, 2004)
Proses Cross-Over dilakukan dengan memilih 20 individu yang dipilih secara acak. Kemudian akan dikawinkan sehingga menghasilkan 20 individu baru. Sebanyak 20 individu baru akan diurutkan dengan 40 individu lama, 20 individu terbawah dianggap tidak bertahan pada seleksi alam. Pada gambar 2.2.4 diilustrasikan individu dengan gen bernilai biner akan melakukan proses Cross-Over, sehingga dari dua
induk (sisi kiri) melalui pertukaran gen (sisi tengah) akan menghasilkan dua individu baru (sisi kanan).
2.2.9 Mutasi
Proses mutasi merupakan proses mengubah gen pada individu tanpa menukar dengan individu lainnya. Proses mutasi dapat dilakukan dengan dua kemungkinan. Kemungkinan pertama ketika allele dari suatu gen ditentukan adalah bilangan biner, maka proses mutasi akan melakukan operasi flip pada nilai allele tersebut. Jadi ketika awal gen memiliki allele bernilai 1 maka akan dikenakan proses invers sehingga allele memiliki nilai 0 seperti yang diilustrasikam pada gambar 2.2.5.
Gambar 2.2.5 Ilustrasi proses mutasi
Sumber : An Introduction to Genetic Algorithm (Thede, 2004) 2.2.10 Stopping Condition
Stopping Condition atau kriteria untuk terhentinya penciptaan generasi baru ditentukan dari beberapa factor. Umumnya kondisi yang digunakan dalam menghentikan generasi baru adalah dengan menggunakan batasan jumlah generasi maksimum. Disamping sebuah penelitian pada tahun 2012 (Bhandaril, Murthy, & Pal, 2012) mengemukanan bahwa ada satu kriteria baru dalam menentukan Stopping Condition, yaitu menggunakan nilai varian. Bhandaril mengemukakan bahwa nilai varian yang kecil memiliki arti bahwa seluruh individu telah mengalami konvergensi. 2.3 Back Propagation
Back Propagation merupakan salah satu algoritma pembelajaran yang digunakan untuk memperoleh bobot optimal dalam struktur jaringan syaraf tiruan. Algoritma Back-propagation atau disebut runut-balik akan mendapatkan bobot optimal dengan cara mempelajari pola dari data pelatihan yang diberikan. Semakin banyak dan bervariasi data yang diberikan akan semakin memperkaya pengetahuan
dari algoritma ini. Beberapa unsur yang diperlukan dalam algoritma ini adalah inisialisasi bobot awal, fungsi aktifasi, fase runut maju dan fase runut balik.
2.3.1 Inisialisasi Bobot Awal
Inisisalisasi bobot awal dari algoritma ini didapatkan dari proses acak. Proses acak dapat dilakukan dengan benar-benar acak atau dengan menggunakan algoritma acak ngujen-widrow. Algoritma acak ngujen-widrow merupakan algoritma optimasi untuk mendapatkan bobot awal yang optimal, sehingga di dalam proses back-propagation tidak diperlukan iterasi dalam jumlah yang banyak untuk mencapai bobot optimal.
Algoritma ngujen-widrow diawali juga dengan proses acak. Setelah itu dilakukan beberapa tahap perhitungan. Perhitungan pertama merupakan perhitungan faktor skala dengan persamaan (1).
………(1) Dimana adalah faktor skala n adalah jumlah node pada layer input dan p adalah jumlah node pada layer tersembunyi.
Selanjutnya adalah perhitungan besaran vektor bobot. Besaran vektor dapat dihitung dengan persamaan (2).
………(2) Dimana adalah besaran vektor baris i dan kolom j. vij adalaj bobot yang
didapat dari proses random awal.
Setelah didapatkan besaran vektor bobot maka dapat dihitung bobot awal optimal yang seharusnya digunakan pada jaringan syaraf tiruan. Bobot baru didapatkan dengan persamaan (3).
……….(3) 2.3.2 Proses Runut Maju
Proses runut maju merupakan fase dimana algoritma back-propagation menggunakan bobot yang dimiliki untuk melakukan proses penentuan target. Data
input akan dikalikan dengan bobot yang menghubungkan lapisan input dengan lapisan tersembunyi dan dikenakan fungsi aktifasi sigmoid sehingga menghasilkan keluaran, keluaran ini akan dijadikan input pada lapisan tersembunyi yang nantinya akan dikalikan dengan bobot yang menghubungkan lapisan tersembunyi ke lapisan output. Hasil perkalian ini akan dikenakan fungsi aktifasi sigmoid sehingga akan menghasilkan kelas. Kelas akan menggolongkan data input tadi ke dalam beberapa kelompok sejulah kelas yang telah ditentukan. Bagan aliran dari perhitungan runut maju dapat dilihat pada gambar 2.3.1.
Gambar 2.3.1 Alur Perhitung Proses Runut Maju pada algoritma Back-Propagation
Dalam proses perhitungan antara lapisan input dengan lapisan tersembunyi, persamaan (4) akan digunakan secara berurutan dengan persamaan (11) untuk mendapat keluaran pada layer tersembunyi.
………..……….(4) Persamaan (4) menunjukkan bahwa znet_j merupakan hasil penjumlahan dari
bias (v0j) dengan hasil perkalian dari data input (xi) dan bobot yang menghubungkan
lapisan input dengan lapisan tersembunyi (vij). znet_j akan dikenakan fungsi aktifasi
Hal yang sama akan dilakukan pada lapisan tersembunyi dan lapisan output. Persamaan yang digunakan memiliki notasi yang serupa dengan persamaan (4).
……….(5) Persamaan (5) menunjukkan bahwa ynet_k merupakan hasil penjumlahan dari
bias (w0k) dengan hasil perkalian dari keluaran lapisan tersembunyi (zj) dan bobot
yang menghubungkan lapisan tersembunyi dengan lapisan output (wjk). ynet_k juga
akan dikenakan fungsi aktifasi dengan persamaan (12) untuk dapat mencari nilai keluaran pada lapisan output.
2.3.3 Proses Runut Balik
Setelah proses runut maju selesai dikerjakan maka akan didapatkan target dari hasil keluaran lapisan output. Target yang didapatkan jika tidak tepat akan menimbulkan error atau kesalahan. Kesalahan pada tiap lapisan akan berpengaruh terhadap perubahan bobot yang terjadi dalam jaringan syaraf tiruan.
Perubahan bobot antara lapisan tersembunyi dengan lapisan output atau disebut dipengaruhi oleh kesalahan pada lapisan output, pencarian kesalahan dapat dicari melalui persamaan (6).
………...(6) Kesalahan pada lapisan output atau didapatkan melalui selisih tk dengan yk. Dimana tk adalah target keluaran yang diharapkan, sementara yk adalah keluaran
yang dihasilkan oleh sistem pembelajaran.
Kemudian besarnya perubahan bobot w dicari melalui persamaan (7).
………(7) Perubahan bobot ( ) didapatkan dari perkalian learning rate ( ) dengan kesalahan pada lapisan output ( ) degan keluaran pada lapisan tersembunyi (zj).
Perubahan bobot antara lapisan input dengan lapisan tersembunyi atau disebut dipengaruhi oleh kesalahan pada lapisan tersembunyi, pencarian kesalahan dapat dilakukan melalui persamaan (8).
….………(8) ……….………(9) Kemudian besarnya perubahan bobot v dicari melalui persamaan (10).
………..(10) Dengan xi adalah nilai fitur ke-i dari input data yang diperoleh melalui data
pelatihan. Setelah didapatkan besarnya perubahan bobot ( dan ) maka perubahan bobot dilakukan dengan menjumlahkan perubahan bobot dengan bobot lama untuk mendapat bobot baru.
2.3.4 Fungsi Aktifasi
Fungsi aktifasi yang digunakan dalam algoritma pembelajaran back propagation harus memenuhi syarat dapat fiturunkan. Fungsi yang sering digunakan dalam dalam algoritma pembelajaran back propagation adalah fungsi aktifasi sigmoid. Fungsi aktifasi sigmoid yang digunakan pada lapisan tersembunyi adalah fungsi aktifasi pada persaamaan (11).
………..…(11) Sementara fungsi aktifasi pada lapisan output digunakan persamaan (12).
………(12) 2.3.5 RMSE (Root Mean Square Error)
RMSE merupakan kesalahan yang dilakukan oleh sistem dalam melakukan pelatihan. Kesalahan dapat dilihat dari selisih mutlak antara target seharusnya (targetk) dengan target yang didapatkan sistem (yk). Selisih ini nantinya akan dibagi
sejumlah banyaknya output target (n). Secara matematis RMSE dapat dinyatakan dalam persamaan (13).
2.4 Prakiraan Hujan Harian
Di kota pariwisata seperti Bali, kapan saja merupakan waktu yang tepat untuk melancong dan menghabiskan waktu bersama keluarga. Hal ini pula yang terlintas di pikiran para wisatawan. Penghasilan terbesar para penyedia lokasi wisata adalah ketika lokasi mereka dikunjungi banyak turis. Lokasi wisata bias saja menjadi sepi pengunjung ketika hujan turun. Apalagi lokasi wisata yang bersifat outdoor. Hal ini yang menyebabkan banyaknya permintaan akan ramalan hujan setiap harinya di BMKG wilayah III. Prakiraan hujan di BMKG Wilayah III sendiri dilakukan oleh 2 forecaster setiap harinya. Prakiraan hujan harian menggunakan data satu hari yang lalu untuk meramal cuaca satu hari kedepan. Prakiraan hujan harian ini mengandalkan pengalaman forecaster dalam membaca pola data curah hujan arah angin dan kelembapan udara serta beberapa unsur cuaca lainnya.
Seiring berkembangnya teknologi, peluang teknologi informasi (TI) untuk merambah ke semua bidang sangat besar. Pada bidang meteorologi misalnya dapat diaplikasikan algoritma pengenalan pola seperti jaringan syaraf tiruan sebagai algoritma dalam pembuatan system pendukung keputusan prakiraan hujan harian. 2.4.1 Unsur Cuaca
Banyak hal yang mempengaruhi perubahan cuaca yang terjadi di sekitar kita. Menurut Bayong (Tjasyono, 2004) ada beberapa hal yang dapat mempengaruhi unsur yang berperan di dalam terjadinya perubahan cuaca sehari-hari yaitu radiasi matahari, daerah darat dan perairan, selang tekanan tinggi dan rendah, massa udara, pegunungan, arus laut dan badai siklonik. Hal-hal tadi akan memberikan pengaruh pada unsur cuaca yaitu pada suhu udara (temperatur), curah hujan (endapan), kelembapan udara (humidity), tekanan udara, serta arah dan kecepatan angin.
Bagan pengaruh dari kendali iklim terhadap unsur iklim sehingga menghasilkan jenis cuaca ditunjukkan pada gambar 2.4.1.
Gambar 2.4.1 Hubungan Unsur Iklim dengan Kendali Iklim
Sumber : Buku Klimatologi (Tjasyono, 2004) 2.4.1.1Temperatur
Temperatur udara atau suhu udara merupakan salah satu unsur cuaca yang mengambil andil besar dalam mempengaruhi perubahan cuaca di permukaan bumi. Namun ada pernyataan (Tjasyono, 2004) yang mengatakan “Bahkan ahli meteorologi pun mempertanyakan apa yang dimaksud dengan suhu udara, karena unsur cuaca ini berubah sesuai dengan tempat.” Hal ini menyebabkan pengukuran suhu hanya akan mendapatkan nilai rata-rata dari suhu atmosfer.
Suhu udara dalam satu hari dapat berubah secara drastis dalam hitungan jam. Sehingga menurut buku Klimatologi (Tjasyono, 2004) untuk mendapatkan suhu udara dalam satu hari dapat menggunakan persamaan untuk mencari rata-rata seperti yang diuraikan pada persamaan (14).
T = ………(14)
Suhu udara dikatakan sangat berpengaruh karena suhu udara memicu terjadinya penguapan air di permukaan bumi ke atmosfer. Namun suhu udara bukanlah satu-satunya unsur yang berpengaruh secara mutlak terhadap perubahan cuaca.
2.4.1.2Tekanan Udara
Tekanan udara merupakan berat sebuah kolom udara persatuan luas di atas sebuah titik (Tjasyono, 2004). Tekanan udara biasanya berbanding terbalik dengan ketinggian. Semakin tinggi dari permukaan bumi maka tekanan akan semakin rendah dikarenakan udara yang berada di permukaan bumi mendapat tekanan dari massa udara yang ada pada ketinggian yang lebih tinggi. Pada bidang forecasting, jika terjadi perubahan tekanan yang signifikan dalam satu hari maka dipastikan akan turun
hujan. Tekanan udara juga mengambil peran terhadap perubahan dan kecepatan arah angin.
2.4.1.3Kelembapan Udara
Kelembapan udara merupakan perpaduan dari udara kering dan uap air di atmosfer. Menjelamg tengah hari kelembapan secara bertahap akan turun dan akan naik kembali dari sore hingga menjelang pagi hari.
2.4.1.4Arah dan Kecepatan Angin
Angin yang berhembus dapat membawa awan mendung bertiup ke suatu daerah dan menyebabkan hujan. Angin terjadi akibat adanya perubahan tekanan yang signifikan pada suatu daerah. Kecepatan angin dipengaruhi oleh seberapa drastis jarak perbedaan tekanan yang terjadi pada suatu daerah. Semakin signifikan perbedaan tekanan pada satu daerah maka kecepatan angin yang berhembus akan semakin kencang. Sebaliknya angin akan tenang apabila di suatu daerah yang luas perbedaan tekanannya mendekati 0.
Seperti yang kita ketahui angin bergerak dari tempat bertekanan tinggi ke tempat bertekanan rendah. Namun selain itu arah angin juga dipengaruhi oleh gaya yang dihasilkan oleh perputaran rotasi bumi. Gaya ini disebut gaya Coriolis. Gaya Coriolis akan sangat kuat pada lintang yang tinggi, pada garis ekuator dan sekitarnya gaya Coriolis akan hampir bernilai 0 (tidak berpengaruh).
Untuk mengetahui arah dan kecepatan angin pada suatu daerah dapat dihitung dengan mencari angin paduan (resultant wind) yakni membagi angin menjadi dua komponen yaitu komponen timur-barat serta utara-selatan.
2.4.1.5Embun, Kabut dan Perawanan
Udara dapat berubah menjadi uap air dalam beberapa bentuk yang berbeda. Uap air dapat terbentuk sebagai embun jika udara berada diatas titik beku dan dibawah titik embun. Udara dapat menjadi embun akibat terkena suhu udara dingin pada malam hari akibat hilangnya radiasi matahari.
Uap air juga dapat terbentuk sebagai kabut. Secara struktur kabut dan awan tidak berbeda jauh, perbedaan terjadi dalam proses pembentukan dan lokasi terjadinya (Tjasyono, 2004). Kabut terjadi jika banyak embun yang terbentuk di
permukaan bumi sehingga menyebabkan adanya butir air yang mengapung di permukaan bumi. Kabut dapat dibedakan berdasarkan efek jarak pandangnya (Tjasyono, 2004), penggolongan kabut dapat dilihat pada tabel 2.4.1.
Sumber : Klimatologi (Tjasyono, 2004)
Tabel 2.4.1 Penggolongan kabut berdasarkan jarak pandang
Golongan Benda tidak terlihat pada jarak
Kabut Padat 45 m
Kabut Tebal 180 m
Kabut 450 m
Kabut Sedang 900 m
Kabut Tipis 1800 m
Sementara awan merupakan titik air yang terbentuk jika udara menjadi dingin secara adiabatik melalui udara yang naik dan mengembang. Banyaknya awan di langit dapat dihitung dengan menggunakan persen namun pada BMKG dinyatakan dengan perdelapanan. Jadi langit akan dibagi menjadi delapan dan akan dihitung berapa bagian langit yang tertutup awan, semisal langit penuh dengan awan maka akan dinyatakan dengan skala 8/8. Jika langit cerah maka akan dinyatakan dengan