Uploaded by vedricamos

PRAKIRAN CUACA BERBASIS ARDUINO MENGGUNA

advertisement
PRAKIRAN CUACA BERBASIS ARDUINO MENGGUNAKAN
METODE NAIVE BAYES
LAPORAN
Diajukan Untuk Memenuhi Tugas Akhir Mata Kuliah Pengenalan Pola
Disusun oleh:
Rania Akhmalia 135150300111001
Rifqi Anshari
135150300111012
PROGRAM STUDI TEKNIK KOMPUTER
JURUSAN INFORMATIKA
FAKULTAS ILMU KOMPUTER
UNIVERSITAS BRAWIJAYA
MALANG
2016
1. Latar Belakang
Prakiraan cuaca merupakan salah satu faktor penting dalam kehidupan sehari-hari, karena
dapat mempengaruhi aktifitas yang dilakukan oleh masyarakat. Ilmu teknologi yang semakin
berkembang sangat mungkin dimanfaatkan dalam hal prakiraan cuaca, dalam perhitungannya
prakiraan cuaca ditentukan oleh beberapa parameter yang sangat mepengaruhi kondisi cuaca,
parameter tersebut yaitu temperatur, curah hujan, penguapan, penyinaran matahari, tekanan
udara, kelembaban dan angin. Badan Meteorologi Klimatologi dan Geofisika (BMKG)
mendapatkan nilai-nilai parameter dari peralatan pengamatan termometer, penakar hujan,
evaporation pan/open pan untuk penguapan, Radiameter Gun Bellani untuk penyinar matahari,
barometer, higrometer dan cup counter anemometer untuk angin. Pertumbuhan yang pesat dari
akumulasi data menyebabkan banyak data yang terkumpul tetapi tidak dapat diolah dengan baik
sehingga tidak memperoleh informasi yang baik pula.
ARIMA (autoregresive integrated moving average) dapat diartikan sebagai gabungan dua
model, yaitu Model Autoregresi (AR) dan Moving Average (MA). Model ini tidak mempunyai
suatu variabel yang berbeda sebagai variabel bebas, tetapi menggunakan informasi dalam series
yang sama dalam membentuk model, yang pada akhirnya sangat bermanfaat untuk peramalan.
Peramalan dengan metode ini lebih dipercaya daripada peramalan yang dilakukan dengan model
prediksi tradisional, hal ini berdasarkan kasus sebelumnya. Namun, hal ini tentu saja perlu
dipelajari lebih lanjut oleh para peneliti yang tertarik menggunakan metode serupa. Aplikasi
prakiraan cuaca menggunakan ARIMA dibuat sebagai alatbantu untuk memprediksi cuaca yang
pada kenyataannya susah untuk diprediksi, serta membantu BMKG dalam pengelolaan data
terutama untuk penentuan klasifikasi prediksi cuaca di daerah tersebut.
Pengukuran dan pengolahan data yang hasil ukur sangat penting digunakan untuk proses
klasifikasi prakiraan cuaca. Penelitian selanjutnya dilakukan dengan mengambil dua parameter
dari beberapa parameter yang telah disebutkan yaitu temperature dan kelembaban. Pengambilan
data dilakukan menggunakan rangkaian sederhana sensor suhu dan kelembaban dengan
mikrokontroller arduino. Penelitian ini juga menggunakan algoritma naïve bayes sebagai
klasifikasi dalam prakiraan cuaca yang sebelumnya diproses menggunakan metode ARIMA.
2. Diagram Sistem
Berikut adalah diagram blok dari rancangan sistem prakiraan cuaca berbasis arduino
menggunakan metode klasifikasi naïve bayes.
INPUT
PROSES
OUTPUT
Penjelasan:
a. Input Sensing
Input sensing merupakan proses pengambilan data primer. Pada sistem ini data berupa
temperature dan kelembaban yang kemudian dikumpulkan untuk diolah menggunakan
algoritma naïve bayes.
b. Proses
-
Proses pertama adalah pengumpulan data temperature dan kelembaban selama satu
minggu yang berguna sebagai data latih.
-
Proses kedua adalah pengkategorian data skala suhu dingin / panas dan kelembaban
lembab / kering.
-
Proses ketiga yaitu perhitungan peluang kejadian masing-masing kelas.
c. Hasil Klasifikasi
Klasifikasi didapatkan dari hasil perhitungan peluang. Dimana peluang kelas yang
terbesar merupakan hasil klasifikasi sebenarnya.
3. Flow Chart Sistem
Mulai
Pengukuran
Input data
suhu dan
kelembab
an
Pengkategorian
data training
Perhitungan
probabilitas
Klasifikasi
Selesai
Penjelasan flow chart:
a. Pengukuran
Pengukuran dilakukan dengan menggunakan sensor temperature dan kelembaban jenis
dht 11.
b. Input data hasil pengukuran
Data hasil pengukuran kemudian diinputkan ke dalam mikroontroler arduino uno untuk
diolah lebih lanjut.
c. Pengkategorian data latih
Pengkategorian suhu:
Temperature dingin <= 25oC
Temperature panas > 25oC
Pengkategorian kelembaban:
Kering <= 55%
Lembab >55%
d. Perhitungan probabilitas
Perhitungan probabilitas menggunakan rumus,
Dimana:
-
Likelihood Probability P(x | Ɯj ) ; adalah probabilitas kelas tersebut pada seluruh data
uji
-
Prior Probability P(Ɯj ) ; adalah probabilitas dari data uji yang berkategori terhadap
keseluruhan data uji
-
Evidence P(x); adalah jumlah total dari semua likelihood probability yang dikalikan
dengan prior probability. Evidence ini yang akan membuat nilai posterior probability
hanya antara 0 dan 1.
e. Proses Klasifikasi
Proses klasifikasi dilakukan jika mendapati hasil perhitungan probabilitas suatu kelas
lebih besar dari kelas lain.
4. Data
a. Suhu
Suhu menunjukkan derajat panas dari suatu objek terukur (benda, ruang dll). Satuan suhu
Internasional adalah Kelvin. Namun pada projek ini digunakan satuan celcius yang
memiliki titik beku/titik didih = 0/100 derajat celcius. (untuk proses pengambilan data
latih source code terlampir)
b. Kelembaban
Kelembaban adalah konsentrasi uap air di udara atau jumlah kandungan uap air yang ada
dalam udara. Kandungan uap air di udara berubah-ubah bergantung pada suhu Makin
tinggi suhu, makin banyak kandungan uap airnya. (untuk proses pengambilan data latih
source code terlampir)
5. Proses Pengukuran
a. Peralatan yang dibutuhkan
- DHT11
DHT11 adalah sensor digital yang dapat mengukur suhu dan kelembaban
udara di sekitarnya. Memiliki tingkat stabilitas yang sangat baik serta fitur
kalibrasi yang sangat akurat. Koefisien kalibrasi disimpan dalam OTP program
memory, sehingga ketika internal sensor mendeteksi sesuatu, maka module ini
menyertakan koefisien tersebut dalam kalkulasinya. DHT11 menjadi input
sensing untuk data latih yang akan digunakan untuk penentuan keputusan. DHT11
memiliki spesifikasi :

Supply Voltage: +5 V

Temperature range : 0-50 °C error of ± 2 °C

Humidity : 20-90% RH ± 5% RH error

Interface : Digital
- Arduino Uno
Arduino Uno adalah board mikrokontroler berbasis ATmega328. Uno
memiliki 14 pin digital input / output, 6 input analog, kecepatan clock 16 MHz,
koneksi USB, jack listrik, header ICSP, dan tombol reset.Arduino menjadi sumber
pemrposes data dan sebagai tempat menjalankan algorithma penentu keputusan
.Arduino Uno memiliki spesifikasi :

Mikrokontroler : ATmega328

Operasi tegangan : 5Volt

Input tegangan : disarankan 7-11Volt

Input tegangan batas : 6-20Volt

Pin I/O digital : 14 (6 bisa untuk PWM)

Pin Analog : 6Arus DC tiap pin I/O50mA

Arus DC ketika 3.3V : 50mA

Memori flash : 32 KB (ATmega328) dan 0,5 KB digunakan oleh
bootloader

SRAM : 2 KB (ATmega328)

EEPROM : 1 KB (ATmega328)

Kecepatan clock : 16 MHz
b. Metode yang digunakan
Proses klasifikasi prakiraan cuaca menggunakan data latih yang di
kumpulkan dalam kurun waktu tertentu sebagai penentu keputusan prakiraan
cuaca pada hari yang diinginkan. Pengambilan keputusan akhir menggunakan
metode naïve bayes. Naïve bayes merupakan sebuah metode klasifikasi yang
berakar pada teorema bayes. Pada naïve bayes untuk memprediksi peluang di
masa depan berdasarkan pengalaman di masa sebelumnya. Ciri utama dari naïve
bayes adalah asumsi yang sangat kuat akan indepedensi dari masing – masing
kondisi.
6. Implementasi
Data latih dikumpulkan dan dikategorikan menggunakan rata – rata suhu dan kelembaban
dari masing - masing hari dengan kriteria yang ditentukan yaitu panas (suhu > 25 oC ), dingin
(suhu ≤ 25 oC), lembab (kelembaban > 55%), kering (kelembaban ≤ 55%).
Selanjutnya input data uji. Input tersebut akan ditentukan prakiraan cuaca yang mungkin
terjadi pada hari tersebut.
Hal ini dilakukan dengan cara metode naïve bayes. Pada input baru memiliki kategori dingin dan
lembab, dari data tersebut dapat diketahui :
-
Prior probability peluang ber-kelas hujan dari semua pengukuran, p(hujan)= 2/7
-
Conditional probabillity peluang berkelas hujan pada kondisi suhu = dingin dan
kelembaban = lembab, p (lembab&dingin | hujan) = 1/5
-
Prior probability peluang ber-kelas ber-kelas tidak hujan dari semua pengukuran,
p(Tidak hujan)= 5/7
-
Conditional probabillity peluang berkelas tidak hujan pada kondisi suhu = dingin dan
kelembaban = lembab, p (lembab&dingin | tidak hujan) = 2/2
Dari peluang kondisi suhu dan kelembaban digolongkan sebagai hujan adalah :
(
(
)
)
(
)
Dari peluang kondisi suhu dan kelembaban digolongkan sebagai tidak hujan adalah :
(
(
)
)
(
)
Karena peluang hujan dengan kondisi suhu = dingin dan kelembaban = lembab untuk
digolongkan menjadi hujan adalah 0.67 sedangkan untuk digolongkan sebagai tidak hujan adalah
0.33 , maka pada hari tersebut tersebut diperkirakan cuaca akan hujan.
LAMPIRAN
Lampiran 1
Source code pengukuran suhu
#include <dht.h>
#define dht_apin A0 // Analog Pin sensor is connected to
dht DHT;
void setup(){
Serial.begin(9600);
delay(500);//Delay to let system boot
Serial.println("DHT11 Humidity & temperature Sensor\n\n");
delay(1000);//Wait before accessing Sensor
}//end "setup()"
void loop(){
DHT.read11(dht_apin);
Serial.print("Current humidity = ");
Serial.print(DHT.humidity-5);
Serial.print("% ");
Serial.print("temperature = ");
Serial.print(DHT.temperature-5);
Serial.println("C ");
delay(5000);
}
Lampiran 2
Source code naïve bayes
#include <stdio.h>
#include <math.h>
float
float
float
float
float
float
a=1;
b=2;
c=5;
d=7;
iYa = (b/b);
iTidak = (a/c);
float jumlahT = (c/d);
float jumlahY = (b/d);
float totalInput;
float Htidak;
float Hya;
void setup() {
Serial.begin(9600);
totalInput = ((iYa*jumlahY)+(iTidak*jumlahT));
Htidak = (iTidak*jumlahT)/totalInput;
Hya = (iYa*jumlahY)/totalInput;
Serial.println("====KLASIFIKASI====");
Serial.print("Besar Peluang terjadi HUJAN = ");
Serial.println(Hya);
Serial.print("Besar Peluang TIDAK terjadi HUJAN = ");
Serial.println(Htidak);
if (Hya > Htidak){
Serial.println("==kesimpulan==");
Serial.println("HUJAN");
}
else {
Serial.println("==kesimpulan==");
Serial.println("TIDAK HUJAN"); }
}
Download