Anda di halaman 1dari 26

KLASIFIKASI SUHU RUANGAN MENGGUNAKAN

ALGORITMA K-NEAREST NEIGHBOR (KNN)

MATA KULIAH “DATA MINING”

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

DAFTAR ISI .......................................................................................................... 2


BAB I PENDAHULUAN ..................................................................................... 3
1.1. Latar Belakang ....................................................................................... 3
1.2. Tujuan ..................................................................................................... 3
1.3. Manfaat ................................................................................................... 4
1.4. Rumusan Masalah .................................................................................. 4
BAB II DASAR TEORI ....................................................................................... 5
2.1. Arduino.................................................................................................... 5
2.1.1. Arduino IDE .......................................................................................................... 5
2.2. Sensor DHT11 ......................................................................................... 6
2.3. K-Nearest Neighbor (KNN) ................................................................... 6
2.4. Python ...................................................................................................... 7
2.5. Normalisasi.............................................................................................. 7
BAB III MODEL DAN TEKNIK ....................................................................... 9
3.1. Dataset yang Digunakan ........................................................................ 9
3.2. Rancangan Penelitian........................................................................... 10
3.2.1. Preparing & Preprocessing Data..................................................... 10
3.2.2. Processing Data ................................................................................. 11
3.2.3. Output (Hasil) ................................................................................... 14
3.3. Metode Evaluasi ................................................................................... 15
3.4. Perbandingan ........................................................................................ 17
BAB IV IMPLEMENTASI DAN PEMBAHASAN ........................................ 19
4.1. Proses Preprocessing Dataset .............................................................. 19
4.2. Proses K-NN .......................................................................................... 21
4.3. Proses Evaluasi dengan Confusion Matrix ........................................ 22
BAB V KESIMPULAN ..................................................................................... 24
DAFTAR PUSTAKA .......................................................................................... 25
BAB I
PENDAHULUAN

1.1. Latar Belakang


Pengetahuan dan pemanfaatan teknologi informasi berkembang
sangat pesat, tidak hanya di bidang kedokteran, industri, dan kesehatan,
tetapi juga di bidang informasi seperti klasifikasi suhu ruangan untuk
mengidentifikasi tingkat standarisasi dari suhu tiap ruangan. kemampuan
pengolahan data suhu yang canggih memungkinkan dapat digunakan lebih
efektif dan efisien untuk mengklasifikasi kualitas ruangan. salah satu contoh
yaitu untuk menentukan ruangan tersebut dalam kondisi normal atau panas.
Salah satu alat yang mengambil peran penting dalam pembangunan
klasifikasi suhu ruangan ini adalah sensor DHT11. Di Indonesia, sensor
DHT11 merupakan module sensor yang berfungsi untuk mensensing objek
suhu dan kelembaban yang memiliki output tegangan analog yang dapat
diolah lebih lanjut menggunakan mikrokontroler. Module sensor ini
tergolong kedalam elemen resistif seperti perangkat pengukur suhu,
contohnya yaitu NTC. Selama ini, evaluasi kualitas dalam proses klasifikasi
suhu ruangan masih dilakukan secara manual melalui perhitungan. Sistem
manual membutuhkan waktu yang lama dan menghasilkan output dengan
kualitas yang tidak merata karena keterbatasan visual, kelelahan, dan
perbedaan persepsi masing-masing pengamat. oleh karena itu pengolahan
data merupakan alternatif untuk mengatasi masalah tersebut.
Pada tugas akhir semester ini dirancang sebuah alat untuk
mengetahui kualitas dari suhu ruangan berdasarkan kelembaban yang
berbasis Arduino untuk mendapatkan hasil yang cepat dan akurat. data suhu
yang akan diambil yaitu berdasarkan output dari sensor DHT11. setelah itu
tahap-tahap yang dilakukan pada penelitian ini adalah perhitungan manual
dan preprocessing data guna untuk membandingkan tingkat keakuratan dari
setiap nilai yang dikeluarkan dari sensor DHT11. kami juga menggunakan
konsep dari algoritma K-Nearest Neighbor (KNN) untuk membantu proses
perhitungan manual tersebut.

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.

1.4. Rumusan Masalah


Dari tujuan yang telah diketahui diatas, maka masalah dalam Tugas
Akhir Semester ini dapat dirumuskan sebagai berikut.
1. Bagaimana membangun sistem yang dapat mengklasifikasi suhu
ruangan jika dilihat dari kelembaban ruangan?
2. Bagaimana melakukan kombinasi antara perhitungan manual
dan perhitungan menggunakan sistem?
3. Apakah metode KNN dapat menghasilkan akurasi yang
diharapkan dalam klasifikasi kualitas suhu ruangan?
BAB II
DASAR TEORI

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.3. K-Nearest Neighbor (KNN)


Algoritma K-Nearest Neighbor merupakan sebuah metode untuk
melakukan klasifikasi terhadap objek berdasarkan data pembelajaran yang
jaraknya paling dekat dengan objek tersebut. prinsip kerja dari K-Nearest
Neighbor ini untuk mencari jarak terdekat antara data yang akan dievaluasi
dengan K tetangga (neighbor) terdekatnya dalam data pelatihan.
pada fase pembelajaran, algoritma ini hanya melakukan vektor-
vektor fitur dan klasifikasi dari data pembelajaran. Pada fase klasifikasi,
fitur-fitur yang sama dihitung untuk data test (yang klasifikasinya tidak
diketahui). Jarak dari vektor yang baru ini terhadap seluruh vektor data
pembelajaran dihitung, dan sejumlah k buah yang paling dekat diambil.
Titik yang baru klasifikasinya diprediksikan termasuk pada klasifikasi
terbanyak dari titik-titik tersebut.
Nilai k yang terbaik untuk algoritma ini tergantung pada data. Secara
umum, nilai k yang tinggi akan mengurangi efek noise pada klasifikasi,
tetapi membuat batasan antara setiap klasifikasi menjadi lebih kabur. Nilai
k yang bagus dapat dipilih dengan optimasi parameter, misalnya dengan
menggunakan cross-validation. Kasus khusus dimana klasifikasi
diprediksikan berdasarkan data pembelajaran yang paling dekat (dengan
kata lain, k = 1) disebut algoritma k-nearest neighbor.
Ketepatan algoritma k-NN ini sangat dipengaruhi oleh ada atau
tidaknya fitur-fitur yang tidak relevan, atau jika bobot fitur tersebut tidak
setara dengan relevansinya terhadap klasifikasi. Riset terhadap algoritma ini
sebagian besar membahas bagaimana memilih dan memberi bobot terhadap
fitur agar performa klasifikasi menjadi lebih baik.
Sesuai dengan prinsip kerja K-Nearest Neighbor yaitu mencari jarak
terdekat antara data yang akan dievaluasi dengan k tetangga(neighbor)
terdekatnya dalam data pelatihan.Persamaan dibawah ini menunjukkan
rumus perhitungan untuk mencari jarak terdekat dengan d adalah jarak dan
p adalah dimensi data(Agusta, 2007)

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) - - - -

Tabel 3.2 Tabel Dataset yang Digunakan


No. Humidity Temperature Status
1 68 32,3 NORMAL
2 68 32,2 NORMAL
3 68 32,2 NORMAL
4 68 32,2 NORMAL
5 68 32,2 NORMAL
6 68 32,2 NORMAL
7 68 32,2 NORMAL
8 68 32,2 NORMAL
9 69 32,1 NORMAL
10 69 32,1 NORMAL
... ... ... ...
171 65 32,5 NORMAL

3.2. Rancangan Penelitian


3.2.1. Preparing & Preprocessing Data
Dataset yang telah dikumpulkan dan disiapkan selanjutnya
akan masuk ke proses preprocessing yang sangat penting dalam data
mining, hal ini karena kualitas dari data masukan akan sangat
berpengaruh pada kualitas keluaran data analisis yang dihasilkan.
Pada penelitian ini preprocessing data yang diterapkan yaitu teknik
normalisasi data dengan tujuan meminimalisir kesalahan data dan
terjadinya inkonsistensi data. Sebuah atribut dari dataset akan
dinormalisasi dengan men-skala-kan nilainya sehingga hasilnya
berada dalam kisaran yang ditentukan kecil, seperti (0,0) hingga
(0,1). Teknik normalisasi yang akan diterapkan yaitu Z-Score
Normalization yang mana merupakan metode normalisasi
berdasarkan nilai mean (rata-rata) dan nilai standard deviation
(standar deviasi) dari suatu atribut data dengan rumusnya sebagai
berikut.
𝑑𝑎𝑡𝑎 − 𝑚𝑒𝑎𝑛
𝑛𝑒𝑤𝑑𝑎𝑡𝑎 =
𝑠𝑡𝑑
Keterangan:
• Newdata : nilai data baru hasil normalisasi
• Mean : nilai rata-rata dari suatu atribut data
• Std : nilai standar deviasi dari suatu atribut data

Tabel 3.3 Tabel Dataset Hasil Normalisasi


No. Humidity Temperature Status
1 1,173061 -1,113465 NORMAL
2 1,173061 -1,183828 NORMAL
3 1,173061 -1,183828 NORMAL
4 1,173061 -1,183828 NORMAL
5 1,173061 -1,183828 NORMAL
6 1,173061 -1,183828 NORMAL
7 1,173061 -1,183828 NORMAL
8 1,173061 -1,183828 NORMAL
9 1,373454 -1,254191 NORMAL
10 1,373454 -1,254191 NORMAL
... ... ... ...
171 0,571882 -0,972739 NORMAL
Dari hasil dataset yang telah dinormalisasi pada Tabel 3.3
kita telah 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).
Record dataset dengan jumlah sebanyak 171 data yang terbagi
dalam 2 kelas “Status” yaitu NORMAL (94 data) dan PANAS (77
data). Dari dataset tersebut akan dibagi menjadi 2 dengan
perbandingan 80:20 yang dibuat dan dibagi secara acak agar
menghasilkan nilai yang bervariasi (tidak terpaku atau berat pada
salah satu kelas saja), sehingga didapatkan hasil untuk data latih
(data training) sebanyak 136 data dan data uji (data testing)
sebanyak 35 data.

3.2.2. Processing Data


Setelah dataset melewati proses normalisasi, selanjutnya
yaitu melakukan perhitungan K-Nearest Neighbor (KNN) yang akan
diukur kemiripan datanya dengan data yang lain / jarak data dengan
tetangga dengan mencari nilai Euclidian Distance (ED). Tabel 3.4
yang merupakan data latih (data training) akan diukur jarak
Euclidean-nya dengan data uji (data testing) pada Tabel 3.5.

Tabel 3.4 Tabel Data Latih (Data Training)


No. Humidity Temperature Status
1 1,173061 -0,058019 NORMAL
2 0,371489 -0,761650 NORMAL
3 1,373454 -1,254191 NORMAL
4 -1,432048 1,419606 PANAS
5 1,173061 -1,324554 NORMAL
6 1,173061 -1,394918 NORMAL
7 1,373454 -1,324554 NORMAL
8 1,373454 -1,324554 NORMAL
9 -1,632442 1,489969 PANAS
10 -0,830869 0,504886 PANAS
... ... ... ...
136 -0,229690 0,012344 NORMAL

Tabel 3.5 Tabel Data Uji (Data Testing)


No. Humidity Temperature Status
137 -0,229690 -0,128382 ?
138 -1,432048 1,419606 ?
139 -1,632442 1,701059 ?
140 1,373454 -0,761650 ?
141 -1,432048 1,349243 ?
142 -0,830869 0,575249 ?
143 -1,031262 0,786338 ?
144 0,171096 -0,480197 ?
145 1,573847 -1,113465 ?
146 0,371489 -0,620923 ?
... ... ... ...
171 1,373454 -1,254191 ?

Kemudian, langkah-langkah yang akan dilakukan setelah


mendapatkan nilai untuk masing-masing data training dan data
testing sebagai berikut.
1) Menentukan parameter K (jumlah tetangga paling dekat). Pada
perhitungan yang akan dilakukan, nilai K yang akan digunakan
adalah 3 (K = 3).
2) Menghitung Euclidean Distance. Setelah menentukan
parameter K yang akan digunakan, selanjutnya yaitu
menghitung kuadrat jarak Euclidean objek data testing
terhadap data training yang telah disajikan. Perhitungan yang
dilakukan antara 136 data training pada Tabel 3.4 terhadap
data testing pada Tabel 3.5 menggunakan rumus :

Keterangan:
• p, q = dua titik ruang-n Euclidean
• qi, pi = vektor Euclidean, dimulai dari asal ruang
(titik awal)
• n = ruang-n

Sebagai contoh, kita akan melakukan perhitungan 136 data


training terhadap data testing pada data nomor 137.

Perhitungan data training nomor 1

Langkah perhitungan terhadap data testing nomor 137 di


atas akan dilakukan terus menerus hingga sampai ke urutan data
training yang terakhir yaitu nomor 136. (untuk memudahkan silakan
menggunakan Excel dalam melakukan perhitungan)

3) Mengurutkan objek-objek tersebut ke dalam kelompok yang


mempunyai jarak Euclidean terkecil. Setelah menghitung nilai
Euclidean makan kita dapat mengurutkan dari data yang
mempunyai jarak terkecil ke terbesar. Berikut hasil urutan
berupa rangking dari perhitungan 136 data training terhadap
data testing pada data nomor 137 pada Tabel 3.6 berikut.

Tabel 3.6 Tabel Hasil Euclidean Distance


No. Jarak Euclidean Ranking Status
1 1,404515 84
2 0,873181 44
... ... ... ...
19 0,000000 1 NORMAL
20 0,873181 44
... ... ... ...
31 0,000000 1 NORMAL
32 1,066590 60
... ... ... ...
74 0,000000 1 NORMAL
... ... ... ...
136 0,140726 5

4) Mengumpulkan kategori untuk atribut Status. Dari K yang


telah ditentukan sebelumnya yaitu K=3, maka didapatkan hasil
3 data terbaik dari penghitungan jarak terpendek pada data
testing (Euclidean Distance) yaitu dari data training nomor
(19), (31), dan (74).
5) Dengan menggunakan kategori Nearest Neighbor data hasil
yang paling mayoritas maka dapat diprediksikan sebagai
kategori objek yang sedang diuji dandidapatkan hasil
klasifikasi dari ketiga data tersebut sesuai dengan dataset awal
(setelah urutan diacak) semua memiliki status NORMAL,
sehingga hasil klasifikasi data testing pada nomor 173 adalah
NORMAL.

Tabel 3.7 Tabel Hasil Perhitungan KNN


No. Humidity Temperature Status
137 -0,229690 -0,128382 NORMAL

Maka setelah melakukan proses penghitungan KNN,


didapatkan nilai untuk atribut STATUS pada baris 137
memiliki predikat NORMAL. Selanjutnya kita akan melihat
kembali dataset awal untuk memastikan data yang didapatkan
benar dan sesuai dengan data asli.
Untuk penentuan klasifikasi pada data berikutnya hingga
seluruh data testing habis dilakukan dengan cara yang sama
dan dengan nilai K (tetangga terdekat) yang sama. Kemudian
dengan membandingkan nilai target dan hasil klasifikasi pada
proses KNN maka dapat dihitung jumlah data yang benar
untuk mengetahui tingkat akurasi klasifikasi.

3.2.3. Output (Hasil)


Hasil pengujian diukur seberapa besar nilai akursasi dari
proses training terhadap data testing secara manual menggunakan
Excel. Pengukuran akurasi dilakukan dengan menggunakan tabel
klasifikasi hasil perhitungan KNN data training terhadap data
testing menggunakan confusion matrix. Oleh pada bab ini fokus
pada perhitungan menggunakan teknik manual (yaitu Excel)
sehingga akan berfokus pada pembahasan evaluasi dari data testing
saja. Sehingga dari total 172 record data pada dataset awal yang
setelah itu dibagi menjadi dengan perbandingan 80:20 dan
menghasil data training sebanyak 136 record data dan data testing
sebanyak 35 record data.
Dengan melakukan uji coba terhadap seluruh atribut pada
data testing dengan ketentuan yang sama, maka diperoleh hasil data
yang sesuai sebanyak 35 data dari 35 data.

Tabel 3.8 Tabel Hasil Perhitungan KNN


Status Status
No. Humidity Temperature
(True) (Predicted)
1 -0,229690 -0,128382 NORMAL NORMAL
2 -1,432048 1,419606 PANAS PANAS
3 -1,632442 1,701059 PANAS PANAS
4 1,373454 -0,761650 NORMAL NORMAL
5 -1,432048 1,349243 PANAS PANAS
6 -0,830869 0,575249 PANAS PANAS
7 -1,031262 0,786338 PANAS PANAS
8 0,171096 -0,480197 NORMAL NORMAL
9 1,573847 -1,113465 NORMAL NORMAL
10 0,371489 -0,620923 NORMAL NORMAL
11 -1,832835 1,771422 PANAS PANAS
12 1,373454 -1,394918 NORMAL NORMAL
13 -0,229690 0,012344 NORMAL NORMAL
14 1,373454 -1,254191 NORMAL NORMAL
15 -1,031262 0,997428 PANAS PANAS
16 1,373454 -1,394918 NORMAL NORMAL
17 -0,029297 -0,198745 NORMAL NORMAL
18 1,173061 -1,324554 NORMAL NORMAL
19 -0,229690 0,012344 NORMAL NORMAL
20 -0,830869 0,645612 PANAS PANAS
21 1,173061 -1,183828 NORMAL NORMAL
22 -1,432048 1,349243 PANAS PANAS
23 -1,031262 1,138154 PANAS PANAS
24 1,173061 -1,324554 NORMAL NORMAL
25 1,173061 -1,113465 NORMAL NORMAL
26 -0,229690 -0,058019 NORMAL NORMAL
27 -1,432048 1,208517 PANAS PANAS
28 -1,231655 1,067791 PANAS PANAS
29 1,573847 -1,043102 NORMAL NORMAL
30 0,371489 -0,550560 NORMAL NORMAL
31 0,171096 -0,409834 NORMAL NORMAL
32 -0,630476 0,856702 PANAS PANAS
33 -1,231655 1,982511 PANAS PANAS
34 -1,231655 1,067791 PANAS PANAS
35 1,373454 -1,254191 NORMAL NORMAL

Adapun persamaan akurasi hasil klasifikasi KNN


menggunakan persamaan berikut.

Dengan menggunakan persamaan akurasi di atas untuk K =


3 maka diperoleh hasil dari akurasi perhitungan klasifikasi
menggunakan KNN sebesar 100%.
Dari hasil perhitungan tingkat akurasi dengan skor 100%,
maka dapat ditarik kesimpulan bahwa model dan teknik yang
diterapkan terhadap dataset yang digunakan tingkat akurasinya
sangat tinggi.

3.3. Metode Evaluasi


Pada pembahasan tugas akhir ini dilakukan evaluasi dengan menggunakan
metode confusion matrix. Confusion matrix adalah alat yang berguna untuk
menganalisis seberapa baik classifier mengenali tuple dari kelas yang berbeda
(Han & Kamber, 2011). Nilai dari True-Positive dan True-Negative
memberikan informasi ketika classifier melakukan klasifikasi data bernilai
benar, sedangkan False-Positive dan False-Negative memberikan informasi
ketika classifier salah dalam melakukan klasifikasi data (Fibrianda &
Bhawiyuga, 2018). Tabel confusion matrix untuk mengevaluasi data testing
yang telah sebelumnya akan ditunjukkan pada Tabel 3.6
Tabel 3.9 Tabel Confusion Matrix untuk Data Uji (Data Testing)
No. Variabel Jumlah
1 True Positive (TP) 20
2 False Negative (FP) 0
3 False Positive (FN) 0
4 True Negative (TN) 15
Total 35

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

4.1. Proses Preprocessing Dataset


Pada proses preprocessing dataset yang sudah kami mining melalui
Arduino Uno yang telah diintegrasikan oleh sensor DHT11, kami akan
melakukan beberapa langkah terkait untuk preprocessing. adapun langkah
serta implementasinya sebagai berikut :

1. Melakukan Import dataset ke dalam Google Collab


Dalam melakukan pengimportan disini cukup mengupload dataset
terlebih dahulu, lalu apa bila telah terupload kami memerlukan suatu
library yang bernama pandas, library pandas ini berfungsi untuk
membaca data yang sudah diupload pada google collab. Untuk
mengimport pandas ini cukup mengetik “import pandas as pd” di dalam
google collab.

Dikarenakan pada pengolahan ini kami pun memerlukan library


lainnya untuk pengolahan dataset, sehingga agar efisien dalam
pembuatan programnya di sini kami menambahkan library
preprocessing dan numpy sekaligus, seperti gambar di atas.
Apabila telah meng-upload dataset, langkah selanjutnya adalah
membaca dataset tersebut dengan library pandas yang telah kami
import sebelumnya.
2. Memformat dataset ke bentuk kumpulan atribut
Sebelum kami melakukan pemformatan pada dataset dari data frame
pandas ke array numpy, disini kami akan mengecek terlebih dahulu
colum dari yang dimiliki dataset. seperti gambar di bawah ini :

Setelah mengetahui dari kolum-kolum yang ada pada dataset yang


kami punya, langkah selanjutnya adalah dengan memformat data frame
pandas ke bentuk array numpy agar dapat menggunakan library scikit-
learn yang ada di google collab, untuk melakukan penghormatan nya
seperti gambar di bawah ini :

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:

4. Membagi dataset menjadi data training dan data testing


Dalam membagi dataset ini kami mengambil untuk data training
sebanyak 80% dan data tes nya sebanyak 20% dari data yang telah kami
lakukan proses normalisasi, hal ini dapat dilihat pada codingnya di
bagian test_size yang kami tetapkan. Dalam melakukan pembagian
dataset ini kami menggunakan library train test split yang sudah
disediakan dari library sklearn model_selection. Adapun untuk
melakukan pembagian dataset menjadi data training dan data test
sebagai berikut :

5. Mengecek persebaran data


Dalam melakukan pengecekan persebaran data, di sini kami harus
import library pyplot dari matplotlib terlebih dahulu, yang fungsinya
untuk menampilkan persebaran data yang sudah kami olah. Adapun
cara mengecek persebaran datanya sebagai berikut :

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.

4.2. Proses K-NN


Tahap selanjutnya adalah prose pengklasifikasian menggunakan K-NN,
sebelum melakukan pengklasifikasi kami harus mengimpor dari library
KNN dan library metrics terlebih dahulu yang sudah disediakan google
colab dengan library dari sklearn. Fungsi dari library metrics adalah
nantinya akan digunakan untuk menampilkan hasil report dengan confusion
matrix. Adapun cara meng-import-nya seperti gambar di bawah ini :
Lalu untuk selanjutnya adalah menentukan nilai K =3, kenapa harus 3.
Dalam proses klasifikasi KNN belum dapat ditentukan berapakah untuk
pemodelan nilai K yang ideal. Oleh karena disini kami hanya mencoba
memasukannya di segala kemungkinan yang sudah kami lakukan. Di antara
3x percobaan hasil K=3 yang kami pilih dalam melakukan
pengklasifikasian ini. Setelah kami menentukan akan nilai K tersebut lalu
kami meng-fit data training dan y train yang sudah kami pisah atau pun split
sebelumnya dari dataset, fungsi dari fit tersebut digunakan untuk
menghasilkan parameter model pembelajaran dari data pelatihan .Adapun
cara mendefinisikan nilai K dan mengedit datanya seperti gambar di bawah
ini :

Selanjutnya adalah tahap memprediksi klasifikasi, dalam memprediksi


klasifikasi disini kami menggunakan data test yang sudah kami bagi atau
split dari dataset sebelumnya. Adapun cara prediksi klasifikasinya datanya
seperti gambar di bawah ini:

4.3. Proses Evaluasi dengan Confusion Matrix


Dalam membuktikan accuracy, recall, precision, F1 Score dari model
yang sudah kami buat, untuk evaluasinya kami menggunakan Confusion
Matrix dengan mengecek antara data test prediksi dengan data train
prediksi. Hal ini bertujuan selain melihat score yang ada pada model kami,
juga untuk melihat apakah model kami terjadi overfitting atau tidak. Perlu
diingat, overfitting terjadi ketika model terlalu bagus untuk prediksi data
train, akan tetapi ketika diberikan data baru untuk hasilnya sangat buruk,
indikasi lainnya apabila score data train itu besar akan tetapi score data test
malah kecil. Ada pun melakukan cara melakukan evaluasi seperti gambar
di bawah ini :

1. Evaluasi prediksi data Test


2. Evaluasi prediksi data train

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

Berdasarkan penelitian yang sudah kami lakukan, dapat dirumuskan kesimpulan


sebagai berikut.
1. Alat untuk penelitian ini sudah berhasil dirancang dan sudah dilakukan
percobaan pada ruangan berdasarkan suhu dan kelembabannya.
2. Setelah dilakukan perhitungan menggunakan processing data hingga teknik
normalisasi, data yang didapatkan lebih akurat dan tepat sasaran.
3. Proses KNN yang didapat juga tidak jauh berbeda dengan proses evaluasi
prediksi data test, dengan demikian model yang sudah kami buat tidak ada
indikasi dari overfitting yang terjadi.
4. Terdapat perbedaan nilai skor yang didapatkan pada perhitungan manual
dengan jumlah data yang berbeda. Adanya perbedaan skor ini dipengaruhi
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.
DAFTAR PUSTAKA

Suryaman, Sean Alexander., Magdalena, Rita., & Sa’idah, Sofia. (2021).


Klasifikasi Cuaca Menggunakan Metode VGG-16, Principal Component
Analysis Dan K-Nearest Neighbor. Jurnal Ilmu Komputer dan Informatika
(JIKI), 2(2), 1-8. https://doi.org/10.54082/jiki.1

Amin, Faris Mushlihul. (2018). IDENTIFIKASI CITRA DAGING AYAM


BERFORMALIN MENGGUNAKAN METODE FITUR TEKSTUR DAN
K-NEAREST NEIGHBOR (K-NN). JURNAL MATEMATIKA “MANTIK”,
4(1), 68-74. https://doi.org/10.15642/mantik.2018.4.1.68-74

Budiarso, Zuli., Winarno, Edy., & Listiyono, Hersatoto. (2015). Implementasi


Teknik I/O Interfacing berbasis Arduino. Jurnal Teknologi Informasi
DINAMIK, 20(1), 86-92. http://data.upiyptk.ac.id/soe/Materi%20-
%20Organisasi%20Sistem%20Komputer/Jurnal%20HCI-Hardware/HCI-
Hardware-06.pdf

Puspitasari, Dwi., Rahmad, Cahya., & Astiningrum, Mungki. (2016). Normalisasi


Tabel Pada Basisdata Relasional. Prosiding SENTIA, 8, A-342 – A345.
https://prosiding.polinema.ac.id/sentia/index.php/SENTIA2016/article/view
File/65/60

Rangkuti, Muhammad Yusuf Rizqon., Alfansyuri, Muhamamd Valensyah., &


Gunawan, Wawan. (2021). PENERAPAN ALGORITMA K-NEAREST
NEIGHBOR (KNN) DALAM MEMPREDIKSI DAN MENGHITUNG
TINGKAT AKURASI DATA CUACA DI INDONESIA. HEXAGON:
Jurnal Teknik dan Sains Fakultas Teknik Universitas Teknologi Sumbawa,
2(2), 11-16. https://jurnal.uts.ac.id/index.php/hexagon/article/view/1082

Noviansyah, M. Reza., Rismawan, Tedy., & Midyanti, Dwi Marisa. (2018).


PENERAPAN DATA MINING MENGGUNAKAN METODE K-NEAREST
NEIGHBOR UNTUK KLASIFIKASI INDEKS CUACA KEBAKARAN
BERDASARKAN DATA AWS (AUTOMATIC WEATHER
STATION)(STUDI KASUS: KABUPATEN KUBU RAYA). Jurnal Coding
Sistem Komputer Untan, 6(2), 48-56.
https://jurnal.untan.ac.id/index.php/jcskommipa/article/view/26672

Rina, Khadiza. (2019). KLASIFIKASI LAHAN SAWAH MENGGUNAKAN


ALGORITMA K-NEAREST NEIGHBOR. Repositori Institusi Universitas
Sumatera Utara. https://repositori.usu.ac.id/handle/123456789/15413

Ihsan, M. Arinal. (2018). REDUKSI ATRIBUT PADA ALGORITMA K-


NEAREST NEIGHBOR (KNN) DENGAN MENGGUNAKAN
ALGORITMA GENETIKA. Repositori Institusi Universitas Sumatera
Utara. https://repositori.usu.ac.id/handle/123456789/3878

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)

Anda mungkin juga menyukai