Disusun Oleh
Nurazmi Aprilia 19.11.2884
Mahesa Putra Baskoro C.R. 19.11.2900
Leon Ellen 19.11.2907
Dosen Pengampu
Kusnawi, S.Kom, M.Eng
JURUSAN INFORMATIKA
FAKULTAS ILMU KOMPUTER
UNIVERSITAS AMIKOM YOGYAKARTA
YOGYAKARTA
2022
DAFTAR ISI
1.2. Tujuan
Berdasarkan latar belakang yang telah diuraikan, maka tujuan dari
Tugas Akhir Semester ini adalah sebagai berikut.
1. Merancang alat yang dapat melakukan klasifikasi suhu ruangan
berdasarkan standarisasi dari masing-masing ruangan serta
pengklasifikasian menggunakan K-Nearest Neighbor.
2. Menganalisis performansi sistem klasifikasi kualitas ruangan
berdasarkan parameter tingkat akurasi dan waktu komputasi
dalam pengklasifikasian menggunakan preprocessing dan K-
Nearest Neighbor.
1.3. Manfaat
Manfaat dari penelitian ini adalah untuk menghasilkan alat bantu
dalam bidang pengklasifikasian suhu terutama bagi pengamat (grader)
berdasarkan kelembaban berbasis Arduino.
2.1. Arduino
Menurut Kadir (2016) dalam bukunya yang berjudul “Simulasi
Arduino” berpendapat bahwa Arduino merupakan perangkat keras
sekaligus sebagai perangkat lunak yang memungkinkan siapapun untuk
membuat prototype rangkaian elektronik berbasis mikrokontroler dengan
mudah dan cepat.
Menurut Budiharto (2010), Arduino merupakan suatu papan
rangkaian elektronik open source yang didalamnya menggunakan
komponen utama berupa chip mikrokontroler jenis AVR yang diproduksi
oleh perusahaan Atmel.
Berdasarkan beberapa pengertian tersebut, maka bisa disimpulkan
bahwa Arduino adalah suatu platform yang terdiri atas hardware dan
software open source yang memungkinkan siapapun untuk membuat
prototype rangkaian elektronik dengan mudah dan cepat. dimana komponen
utama hardware-nya adalah chip mikrokontroler jenis AVR dari perusahaan
Atmel.
2.1.1. Arduino IDE
Menurut Sulaiman (2021:1) Arduino IDE diciptakan untuk
pemula bahkan yang tidak memiliki basic bahasa pemrograman
sama sekali karena menggunakan bahasa C++ yang telah
dipermudah melalui Library. Arduino IDE menggunakan
software processing yang digunakan untuk menulis program ke
dalam Arduino. Processing sendiri merupakan penggabungan
antara bahasa C++ dan Java. Software Arduino ini dapat di-install
di berbagai Operating System seperti LINUX, Mac OS,
Windows.
Software Arduino IDE terdiri dari 3 bagian:
1. Editor Program, untuk menulis dan mengedit program
dalam bahasa processing. Listing Program pada Arduino
disebut Sketch.
2. Compiler, modul yang berfungsi mengubah bahasa
processing (kode program) ke dalam kode biner, karena
kode biner adalah satu-satunya bahasa pemrograman
yang dipahami oleh mikrokontroler.
3. Uploader, modul yang berfungsi memasukan kode biner
kedalam memori mikrokontroler.
Struktur perintah Arduino secara garis besar terdiri dari
bagian yaitu void setup dan void loop. Void setup berisi perintah
yang akan dieksekusi hanya satu kali sejak Arduino dihidupkan,
sedangkan void loop berisi perintah yang akan dieksekusi
berulang-ulang selama Arduino dinyalakan
2.2. Sensor DHT11
Sensor DHT11 merupakan sensor dengan kalibrasi sinyal digital
yang mampu memberikan informasi suhu dan kelembaban. sensor ini
tergolong komponen yang memiliki tingkat stabilitas yang sangat baik,
apalagi digandeng dengan kemampuan mikrokontroler ATmega8. Produk
dengan kualitas terbaik, respon pembacaan yang cepat, dan kemampuan
anti-interference dengan harga yang terjangkau. DHT11 memiliki fitur
kalibrasi yang sangat akurat. koefisien kalibrasi ini disimpan dalam OTP
program memory sehingga ketika internal sensor mendeteksi sesuatu suhu
atau kelembaban, maka module ini membaca koefisien sensor tersebut.
ukurannya yang kecil, dengan transmisi sinyal hingga 20 meter membuat
produk ini cocok digunakan untuk banyak aplikasi-aplikasi (Yan, Adiptya,
& Wibawanto, 2013).
Kelembaban udara menggambarkan kandungan uap air di udara
yang dapat dinyatakan sebagai kelembaban mutlak, kelembaban nisbi
(relatif) maupun defisit tekanan uap air. Kelembaban nisbi adalah
membandingkan antara kandungan atau tekanan uap air aktual dengan
keadaan jenuhnya atau pada kapasitas udara untuk menampung uap air.
Peralatan elektronik juga menjadi mudah berkarat jika udara di sekitarnya
memiliki kelembaban yang cukup tinggi. Oleh karena itu, informasi
mengenai kelembaban udara pada suatu area tertentu menjadi sesuatu hal
yang penting untuk diketahui karena menyangkut efek-efek yang
ditimbulkannya.
Informasi mengenai nilai kelembaban udara diperoleh dari prosess
pengukuran. Alat yang biasanya digunakan untuk mengukur kelembaban
udara adalah hygrometer. DHT11 adalah sensor digital yang dapat
mengukur suhu dan kelembaban udara disekitarnya. Sensor ini sangat
mudah digunakan dengan Raspberry. Memiliki tingkat stabilitas yang
sangat baik serta fitur kalibrasi yang sangat akurat. Koefisien kalibrasi di
simpan dalam OTP program memory, sehingga ketika internal sensor
mendeteksi sesuatu, maka modul ini menyertakan koefisien tersebut dalam
kalkulasinya.
2.4. Python
Python adalah salah satu bahasa pemrograman yang dapat
melakukan eksekusi sejumlah instruksi multi guna secara langsung
(interpretatif) dengan metode orientasi object (Object Oriented
Programming) serta menggunakan semantik dinamis untuk memberikan
tingkat keterbacaan syntax. sebagian lain mengartikan python sebagai
bahasa yang kemampuan, menggabungkan kapabilitas, dan sintaks kode
yang sangat jelas, dan juga dilengkapi dengan fungsionalitas pustaka
standar yang besar serta komprehensif. Walaupun python tergolong bahasa
pemrograman dengan level tinggi, nyatanya Python dirancang sedemikian
rupa agar mudah dipelajari dan dipahami.
Python sendiri menampilkan fitur-fitur yang menarik sehingga layak
untuk dipelajari. Python memiliki tata bahasa dan script yang sangat mudah
dan juga memiliki sistem pengelolaan data dan memori otomatis. Selain itu
modul pada python selalu diupdate. Ditambah lagi, python juga memiliki
banyak fasilitas pendukung.
2.5. Normalisasi
Normalisasi merupakan sebuah teknik logical desain dalam sebuah
basis data yang mengelompokkan atribut dari berbagai entitas dalam suatu
relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi atau
pengulangan data) serta sebagian besar ambiguity bisa dihilangkan.
Atau singkatnya, Normalisasi adalah proses pengelompokan atribut
data yang membentuk entitas sederhana, non redundant, fleksibel dan
mudah beradaptasi. Dapat dipastikan bahwa database yang dibuat
berkualitas baik.
Normalisasi terdiri dari banyak bentuk, dalam ilmu basis data ada
setidaknya 9 bentuk normalisasi yang ada yaitu 1NF, 2NF, 3NF, ENKF,
BCNF, 4NF, 5NF, DKNF, dan 6NF. Database 1NF, 2NF, dan 3NF akan
sering ditemui ketika akan membuat sebuah database yang optimal.
BAB III
MODEL DAN TEKNIK
Pada bab ini akan membahas mengenai analisis data yang digunakan untuk
menghasilkan data latih dan data uji, analisis terkait teknik data mining yang akan
diterapkan yaitu menggunakan algoritma K-Nearest Neighbor (KNN), serta proses
perhitungan manual hingga menghasilkan evaluasi dari model atau teknik yang
digunakan.
3.1. Dataset yang Digunakan
Data yang digunakan berasal dari hasil kumpulan data (dataset) yang
dihasilkan oleh rangkaian mikrokontroller dengan modul utama berupa sensor
DHT11. Sensor DHT11 merupakan module sensor yang berfungsi untuk
mengukur suhu dan kelembaban udara. Data yang digunakan memiliki 171
record data dengan 3 atribut yaitu : HUMIDITY, TEMPERATURE, dan
STATUS. Setelah data terkumpul, kemudian dilakukan analisis data yang
sesuai dengan kebutuhan pada penelitian ini. Tabel karakteristik data yang
dikumpulkan dan digunakan pada penelitian ini, dapat dilihat pada Tabel 3.1
sedangkan tabel dataset awal sebelum dilakukan preprocessing data dapat
dilihat pada Tabel 3.2.
Tabel 3.1 Tabel Karakteristik Atribut Data
No. Atribut Min Mean Max Standard
Deviation
1 Humidity 53 62,15 70 4,99
2 Temperature 31,9 33,88 36,9 1,42
3 Status (NORMAL / PANAS) - - - -
Keterangan:
• p, q = dua titik ruang-n Euclidean
• qi, pi = vektor Euclidean, dimulai dari asal ruang
(titik awal)
• n = ruang-n
Dari tabel 3.5 dapat dihitung nilai Accuracy, precission, Recall, dan F1-Score
(F-Measure) berdasarkan tabel Data Uji (data testing) sebagai berikut.
𝑗𝑢𝑚𝑙𝑎ℎ 𝑑𝑎𝑡𝑎 𝑦𝑎𝑛𝑔 𝑑𝑖𝑝𝑟𝑒𝑑𝑖𝑘𝑠𝑖 𝑏𝑒𝑛𝑎𝑟
𝑨𝒄𝒄𝒖𝒓𝒂𝒄𝒚 =
𝑗𝑢𝑚𝑙𝑎ℎ 𝑑𝑎𝑡𝑎 𝑘𝑒𝑠𝑒𝑙𝑢𝑟𝑢ℎ𝑎𝑛
𝑃𝑟𝑒𝑐𝑖𝑠𝑠𝑖𝑜𝑛 × 𝑅𝑒𝑐𝑎𝑙𝑙
𝑭𝟏 − 𝑺𝒄𝒐𝒓𝒆 = 2 ×
𝑃𝑟𝑒𝑐𝑖𝑠𝑠𝑖𝑜𝑛 + 𝑅𝑒𝑐𝑎𝑙𝑙
3.4. Perbandingan
Dari hasil perhitungan manual yang telah dilakukan dengan tingkat akurasi
sangat tinggi dan nilai evaluasi yang sama tingginya, yaitu bernilai 100% untuk
tingkat akurasi dan semua nilai evaluasi. Maka dilakukan perhitungan lainnya
dengan algoritma yang sama yaitu K-Nearest Neighbor (KNN), tetapi terdapat
perbedaan pada tahap preprocessing sebagai perbandingan dan bahan evaluasi
untuk meyakinkan bahwa model/teknik yang digunakan memang bagus.
a) Pada perhitungan lainnya, ketika memasuki tahap preprocessing sebelum
itu dataset yang awalnya berjumlah 171 record data direduksi terlebih
dahulu dengan cara menghapus nilai atribut yang redundan atau duplikat
dan menghasilkan total 65 record data.
b) Setelah dilakukan reduksi, selanjutnya 65 record data tersebut dilakukan
tahap normalisasi untuk mengubah nilai dua atribut yang sebelumnya
terlihat jauh menjadi nilai dengan skala yang sama, sehingga kita dapat
melanjutkan pada proses perhitungan K-Nearest Neighbor (KNN).
c) Record dataset dengan jumlah sebanyak 65 data yang terbagi dalam 2 kelas
“Status” yaitu NORMAL (28 data) dan PANAS (37 data). Dari dataset
yang telah dilakukan reduksi, normalisasi dan urutan yang diacak tersebut
akan dibagi menjadi 2 dengan perbandingan 80:20, sehingga didapatkan
hasil untuk data latih (data training) sebanyak 52 data dan data uji (data
testing) sebanyak 13 data.
d) Pada hasil akhir setelah melakukan metode perhitungan K-Nearest
Neighbor yang sama yaitu menggunakan parameter nilai K adalah 3 (K =
3) dan menggunakan rumus Euclidean Distance diperoleh hasil data yang
sesuai sebanyak 12 data dari 13 data.
e) Kemudian pada tahap evaluasi dengan fokus pada data uji (data testing)
didapatkan nilai akurasi sebesar 92%. Dari hasil perhitungan tingkat
akurasi dengan nilai 92%, maka skor ini termasuk dalam tingkat yang besar
di mana tingkat akurasi mendekati 100%.
Dengan membandingkan antara perhitungan pertama dengan perhitungan
kedua yang sangat berbeda dari jumlah data training dan data testing yang
digunakan serta digunakan dan tidaknya proses reduksi data, disimpulkan
bahwa model atau teknik yang digunakan sudah bagus dan sesuai karena
perbedaan tingkat akurasinya pun tidak jauh dan sama-sama memiliki skor
yang tinggi.
Adanya perbedaan skor ini tentu berpengaruh pada banyaknya data yang
diuji dan dihitung dikarenakan K-Nearest Neighbor (KNN) sendiri kuat
terhadap data training yang noise dan lebih efektif jika data uji nya berukuran
besar, sehingga algoritma KNN ini akan sangat cocok diterapkan pada dataset
yang ukurannya besar karena semakin besar datanya kinerja algoritma K-NN
pun akan semakin baik.
BAB IV
IMPLEMENTASI DAN PEMBAHASAN
3. Normalisasi
Pada langkah normalisasi ini memiliki tujuan untuk membuat
beberapa variabel memiliki rentang nilai yang sama, tidak ada yang
terlalu besar ataupun terlalu kecil. KNN merupakan suatu metode yang
berdasarkan pada tingkatan kedekatan antar atribut atau pun yang biasa
dikenal antar tetangganya. Penggunaan normalisasi ini sangat
disarankan dalam pemrosesannya agar penghitungan jarak menjadi
lebih valid. Adapun data yang sudah kami format sebelumnya menjadi
array numpy langsung dilakukan tahap normalisasi dengan
menggunakan library dari preprocessing StandardScaler, adapun untuk
melakukan normalisasi itu sendiri seperti gambar di bawah ini:
Pada gambar di atas, kami dapat melihat persebaran data yang sudah
kami proses sebelumnya. Di dalam grafik yang tercantum pada gambar
di atas kami dapat menarik kesimpulan bahwa data test setiap label yang
dekat dengan sekat yang ada pada grafik tersebut, paling dekat banyak
yang berasal dari data training setiap labelnya sendiri.
Jika dilihat dari hasil report keduanya, untuk hasil yang ditampilkan
tidak jauh berbeda, hal ini berarti dalam model yang sudah kami buat,
tidak adanya indikasi dari overfitting yang terjadi.
BAB V
KESIMPULAN
https://www.jurnaleeccis.ub.ac.id/index.php/eeccis/article/view/626/383
http://repository.uin-suska.ac.id/3012/3/BAB%20II.pdf
https://en.wikipedia.org/wiki/Arduino
https://en.wikipedia.org/wiki/Arduino_IDE
https://en.wikipedia.org/wiki/Python_(programming_language)