Anda di halaman 1dari 27

MODUL

MACHINE LEARNING

DISUSUN OLEH:

KELOMPOK 3

Nizar Mulyawan 20.01.013.011

Arif Annursida 20.01.013.045

Osama Fajar Anggara 20.01.023.026

Intan Suhartina 20.01.013.038

Rismayanti 20.01.013.025

Tyreenia 20.01.013.078

Rizky Adi Ryanto 19.01.013.044

Bayu Septian 20.01.013.040

FAKULTAS REKAYASA SISTEM


PRODI INFORMATIKA
UNIVERSITAS TEKNOLOGI SUMBAWA
JUNI 2023
KATA PENGANTAR

Saya senang bisa memperkenalkan Anda pada topik yang


menarik, yaitu Machine Learning. Apakah Anda pernah penasaran
tentang bagaimana komputer dapat belajar dan mengambil keputusan
sendiri? Nah, inilah yang akan kita jelajahi bersama dalam modul ini.
Modul pertama akan membawa Anda melalui pengantar
Machine Learning. Kita akan mempelajari taksonomi atau klasifikasi
teknik-teknik pembelajaran yang digunakan dalam Machine Learning.
Ini akan membantu Anda memahami perbedaan antara berbagai jenis
pembelajaran, seperti pembelajaran supervisi, pembelajaran tak
supervisi, dan pembelajaran penguatan. Selain itu, kita juga akan
membahas perkembangan dan masa depan Machine Learning serta
risiko dan keuntungan yang terkait dengannya.
Ketika kita memasuki modul kedua, kita akan mempelajari
penerapan algoritma K-Means Clustering pada Arduino. Kita akan
mempelajari konsep dasar clustering dan cara algoritma K-Means
bekerja. Kemudian, kita akan melangkah lebih jauh dengan
mengimplementasikan algoritma ini pada platform Arduino. Saya akan
memberikan langkah-langkah praktis dan juga contoh-contoh aplikasi
yang relevan.
Modul ketiga membahas penerapan algoritma Convolutional
Neural Network (CNN) pada Arduino. Ini adalah algoritma yang sangat
populer dalam pengolahan citra dan pengenalan pola. Anda akan
mempelajari dasar-dasar CNN, seperti lapisan konvolusi dan pooling,
serta lapisan terhubung penuh. Selanjutnya, kita akan melihat
bagaimana kita bisa mengimplementasikan CNN pada Arduino. Saya
juga akan memberikan contoh kasus penggunaan yang menarik dan
bermanfaat.
Terakhir, dalam modul keempat, kita akan fokus pada penerapan
algoritma K-Nearest Neighbor (KNN) pada Arduino. Algoritma KNN
adalah metode klasifikasi yang sederhana namun efektif dalam
Machine Learning. Saya akan menjelaskan cara kerja algoritma KNN
dan bagaimana kita bisa menggunakannya pada Arduino. Selain itu,
kita akan melihat berbagai contoh penggunaan KNN dalam aplikasi
nyata, seperti pengenalan pola dan sistem rekomendasi.
Dengan mengikuti modul-modul ini, Anda akan mendapatkan
pemahaman yang kuat tentang dasar-dasar Machine Learning dan
juga keterampilan praktis dalam mengimplementasikan algoritma-
algoritma populer pada Arduino. Saya harap Anda menikmati
perjalanan ini dan mendapatkan manfaat yang besar dari kursus ini.

DAFTAR ISI

Modul 1 4
Pengantar Machine Learning 4
Taksonomi Teknik Learning 4
Perkembangan dan Masa Depan Machine Learning 5
Resiko dan Keuntungan Machine Learning 7
Modul 2 9
Penerapan Algoritma K-Means Clustering pada Arduino 9
Berikut adalah contoh dari Penerapan Algoritma K-Means
Clustering pada Arduino 10
Modul 3 15
Penerapan Algoritma Convlutional neural network (CNN) pada
Arduino 15
Modul 4 21
Penerapan Algoritma K-nearest neighbor (KNN) pada Arduino 21
Modul 1
Pengantar Machine Learning
Machine Learning adalah bidang yang menarik di mana
komputer dapat belajar dari data dan mengambil keputusan
tanpa pemrograman eksplisit. Dalam modul ini, kita akan
memperkenalkan konsep dasar Machine Learning kepada Anda.
Kami akan menjelajahi bagaimana komputer dapat belajar
dari contoh-contoh data yang diberikan dan menggunakan
pengetahuan ini untuk membuat prediksi atau mengambil
tindakan yang cerdas. Anda akan mempelajari berbagai teknik
pembelajaran, seperti pembelajaran supervisi, di mana komputer
belajar dari contoh-contoh yang telah diberi label, dan
pembelajaran tak supervisi, di mana komputer menemukan pola
tanpa bantuan label.
Selain itu, kita akan membahas perkembangan dan masa
depan Machine Learning. Anda akan melihat bagaimana
Machine Learning telah mengubah berbagai industri, mulai dari
kesehatan hingga transportasi. Kami juga akan membahas tren
terkini dalam Machine Learning dan melihat ke depan untuk
melihat apa yang bisa diharapkan di masa mendatang.
Namun, seperti bidang teknologi lainnya, Machine Learning
juga memiliki risiko dan keuntungan. Kami akan membahas
resiko keamanan dan privasi yang terkait dengan penggunaan
Machine Learning. Anda akan memahami pentingnya etika
dalam mengimplementasikan algoritma Machine Learning. Di
sisi lain, kami juga akan menjelaskan manfaat yang luar biasa
yang dapat diperoleh dari penerapan Machine Learning, seperti
peningkatan efisiensi dan pengambilan keputusan yang lebih
baik.
Kami sangat antusias untuk berbagi pengetahuan dan
pengalaman kami dengan Anda dalam modul ini. Semoga Anda
menikmati perjalanan ini dan mendapatkan pemahaman yang
kuat tentang Machine Learning. Mari kita mulai!
Taksonomi Teknik Learning
Dalam dunia Machine Learning, terdapat berbagai teknik
pembelajaran yang digunakan untuk melatih komputer agar
dapat belajar dan mengambil keputusan secara otomatis.
Taksonomi teknik pembelajaran mengelompokkan teknik-teknik
ini berdasarkan karakteristik dan pendekatan yang mereka miliki.
Mari kita jelajahi beberapa kategori utama dalam taksonomi ini:
1. Pembelajaran Supervisi (Supervised Learning)
Teknik pembelajaran supervisi melibatkan penggunaan
data yang sudah diberi label. Dalam hal ini, setiap contoh
data dilengkapi dengan label yang mengidentifikasi kelas
atau hasil yang diinginkan. Komputer belajar untuk
memetakan input ke output berdasarkan contoh-contoh yang
telah diberi label ini. Algoritma populer dalam pembelajaran
supervisi termasuk Regresi Linier, Naive Bayes, Decision Tree,
dan Support Vector Machines (SVM).
2. Pembelajaran Tak Supervisi (Unsupervised Learning)
Pembelajaran tak supervisi tidak memanfaatkan data yang
diberi label. Tujuannya adalah menemukan pola atau struktur
tersembunyi dalam data. Algoritma clustering, seperti K-
Means Clustering dan Hierarchical Clustering, adalah contoh
pembelajaran tak supervisi yang populer. Algoritma lainnya
termasuk analisis faktor, reduksi dimensi, dan regresi tak
supervisi.
3. Pembelajaran Penguatan (Reinforcement Learning)
Pembelajaran penguatan melibatkan interaksi antara agen
pembelajaran (misalnya, komputer) dengan lingkungan.
Agar dapat memaksimalkan hadiah atau mendapatkan skor
tertinggi, agen harus belajar melalui percobaan dan
kesalahan. Algoritma Q-Learning dan Deep Q-Network (DQN)
adalah contoh pembelajaran penguatan yang populer.
4. Pembelajaran Semi-Supervisi (Semi-Supervised Learning)
Pembelajaran semi-supervisi mencoba memanfaatkan
data yang memiliki sebagian besar tidak ada label dan
sebagian kecil diberi label. Tujuannya adalah memanfaatkan
informasi yang dapat diperoleh dari data yang tidak berlabel
untuk meningkatkan kinerja algoritma pembelajaran. Teknik-
teknik seperti Label Propagation dan Self-Training
digunakan dalam pembelajaran semi-supervisi.
Setiap kategori teknik pembelajaran memiliki keunikan dan
kegunaan mereka sendiri, tergantung pada situasi dan jenis data
yang Anda hadapi. Pemahaman tentang taksonomi ini
membantu Anda memilih teknik pembelajaran yang sesuai
dengan masalah yang ingin Anda pecahkan.
Jadi, itu dia taksonomi teknik pembelajaran dalam
Machine Learning. Dalam modul ini, kita akan menjelajahi setiap
teknik dengan lebih detail dan mempelajari cara
mengimplementasikannya. Mari kita terus belajar dan jelajahi
dunia Machine Learning!
Perkembangan dan Masa Depan Machine Learning
Machine Learning telah mengalami perkembangan yang
pesat selama beberapa tahun terakhir dan terus menjadi salah
satu bidang paling menarik dan penting dalam dunia teknologi.
Ada beberapa tren dan perkembangan penting yang layak
dipertimbangkan saat melihat masa depan Machine Learning.
Mari kita jelajahi beberapa di antaranya:
1. Perkembangan Algoritma dan Model yang Lebih Canggih
Ada peningkatan yang signifikan dalam pengembangan
algoritma dan model Machine Learning yang lebih canggih.
Misalnya, model Deep Learning seperti Jaringan Saraf
Tiruan (Artificial Neural Networks) dengan arsitektur yang
dalam dan kompleks telah menghasilkan kemajuan besar
dalam bidang pengenalan citra, pengenalan suara, dan
bahasa alami. Terus munculnya algoritma dan model baru
yang lebih kuat akan memperluas kemampuan Machine
Learning dalam memecahkan masalah yang lebih kompleks
dan mendalam.
2. Integrasi dengan Teknologi Lain
Machine Learning semakin terintegrasi dengan teknologi
lain seperti Internet of Things (IoT), Big Data, Cloud
Computing, dan Robotika. Ini menciptakan peluang besar
dalam mengoptimalkan penggunaan data yang besar dan
heterogen serta menghasilkan sistem cerdas yang dapat
beradaptasi dan belajar secara real-time.
3. Penerapan di Berbagai Industri
Machine Learning memiliki potensi besar untuk
mengubah berbagai industri. Di bidang kesehatan, dapat
digunakan untuk diagnosis penyakit, penelitian obat, dan
perawatan pasien yang lebih personal. Di bidang keuangan,
Machine Learning dapat membantu dalam deteksi penipuan,
analisis risiko, dan prediksi pasar. Di bidang transportasi,
dapat digunakan untuk mengoptimalkan rute, meningkatkan
keselamatan, dan mengembangkan kendaraan otonom.
Penerapan Machine Learning juga dapat ditemukan di
bidang energi, pertanian, manufaktur, dan banyak lagi.
4. Keamanan dan Etika
Seiring dengan kemajuan Machine Learning, ada
kekhawatiran terkait keamanan dan etika. Keamanan data
dan privasi menjadi isu krusial dalam penggunaan Machine
Learning. Perlindungan data pribadi dan penggunaan yang
etis menjadi penting dalam mencegah penyalahgunaan dan
bias yang tidak disengaja dalam pengambilan keputusan
berbasis Machine Learning. Pengembangan kerangka kerja
dan kebijakan yang kuat untuk mengatasi masalah ini akan
semakin penting di masa depan.
5. Pembelajaran Otomatis
Automl (Automated Machine Learning) adalah area yang
sedang berkembang pesat di mana komputer belajar untuk
merancang dan mengoptimalkan model Machine Learning
secara otomatis. Ini memungkinkan non-ahli Machine
Learning untuk menggunakan dan menerapkan teknik
pembelajaran mesin dengan lebih mudah, meningkatkan
aksesibilitas dan adopsi teknologi.
Perkembangan dan masa depan Machine Learning sangat
menjanjikan. Terus munculnya inovasi dan aplikasi baru akan
membuka pintu untuk lebih banyak kemungkinan dan manfaat.
Penting bagi kita untuk terus mengikuti perkembangan terbaru
dan mempelajari keterampilan yang
relevan dalam Machine Learning untuk tetap berada di
garis depan di era yang semakin dikuasai oleh teknologi ini.
Dalam modul ini, kita akan terus menjelajahi
perkembangan ini dan memperdalam pemahaman kita tentang
Machine Learning. Ayo kita lanjutkan dan berpartisipasi dalam
perjalanan yang menarik ini!
Resiko dan Keuntungan Machine Learning
Machine Learning menawarkan potensi besar untuk
mengubah cara kita bekerja, berinteraksi, dan membuat
keputusan. Namun, seperti teknologi lainnya, Machine Learning
juga memiliki resiko dan keuntungan yang perlu
dipertimbangkan. Mari kita jelajahi resiko dan keuntungan utama
yang terkait dengan penggunaan Machine Learning:
Resiko Machine Learning
1. Bias dan Diskriminasi
Model Machine Learning dapat mencerminkan bias
atau diskriminasi yang ada dalam data pelatihan. Jika data
yang digunakan untuk melatih model tidak mencakup
keragaman yang mencerminkan masyarakat secara adil,
model tersebut dapat menghasilkan keputusan yang tidak
adil atau memperkuat bias yang ada.
2. Kerahasiaan dan Privasi Data
Machine Learning sering kali membutuhkan
penggunaan data yang sensitif atau pribadi. Risiko terkait
privasi dan kerahasiaan data meningkat ketika data
sensitif digunakan dalam proses pembelajaran dan ketika
model tersebut harus dipertahankan atau dibagikan
dengan pihak ketiga.
3. Kesalahan dan Ketidakakuratan
Model Machine Learning tidak selalu sempurna dan dapat
menghasilkan kesalahan atau ketidakakuratan. Jika model
digunakan untuk mengambil keputusan kritis, kesalahan ini
dapat memiliki konsekuensi yang signifikan.
Keuntungan Machine Learning
1. Automatisasi dan Efisiensi
Machine Learning dapat mengotomatisasi tugas-tugas
yang berulang dan memakan waktu, mengurangi beban kerja
manusia, dan meningkatkan efisiensi. Ini memungkinkan
manusia untuk fokus pada tugas yang membutuhkan
pemikiran kreatif dan pemecahan masalah yang kompleks.

2. Prediksi dan Analisis yang Akurat


Model Machine Learning dapat menganalisis data dalam
skala besar dan kompleksitas yang manusia sulit untuk
diproses. Hal ini memungkinkan untuk prediksi yang lebih
akurat, pengenalan pola yang canggih, dan analisis
mendalam yang dapat memberikan wawasan berharga.

3. Personalisasi dan Rekomendasi


Machine Learning dapat digunakan untuk menyediakan
pengalaman yang lebih personal dan rekomendasi yang
relevan. Contohnya adalah sistem rekomendasi di platform e-
commerce atau platform streaming yang memahami
preferensi pengguna dan memberikan rekomendasi yang
sesuai.

4. Peningkatan Pengambilan Keputusan


Dengan mengandalkan data dan pembelajaran dari pola,
Machine Learning dapat membantu dalam pengambilan
keputusan yang lebih baik dan informasi yang lebih tepat
waktu. Hal ini dapat diterapkan dalam berbagai bidang, seperti
keuangan, kesehatan, dan manajemen rantai pasokan.
Dalam menerapkan Machine Learning, penting untuk
menyadari resiko yang mungkin timbul dan mengambil langkah-
langkah untuk mengurangi dampak negatifnya. Ini melibatkan
pengumpulan data yang representatif, memeriksa dan
mengatasi bias dalam data dan model, serta menjaga privasi
dan keamanan data.
Dengan memanfaatkan keuntungan dan mengatasi resiko
yang terkait, Machine Learning dapat menjadi alat yang kuat
dalam mencapai tujuan bisnis, inovasi teknologi, dan
meningkatkan kualitas hidup kita.

Modul 2
Penerapan Algoritma K-Means Clustering pada Arduino
Pada modul ini, kita akan menjelajahi penerapan algoritma
K-Means Clustering pada platform Arduino. K-Means Clustering
adalah salah satu metode clustering yang populer dalam
Machine Learning. Ini memungkinkan kita untuk
mengelompokkan data ke dalam kelompok-kelompok yang
serupa berdasarkan pola dan karakteristik yang ditemukan
dalam data.
Penerapan K-Means Clustering pada Arduino membuka
peluang untuk membuat sistem cerdas yang dapat
mengelompokkan data secara real-time dengan menggunakan
sumber daya yang terbatas pada mikrokontroler Arduino.
Proses penerapan K-Means Clustering pada Arduino melibatkan
beberapa langkah penting:
1. Pengumpulan Data
Langkah pertama adalah mengumpulkan data yang akan
digunakan untuk melakukan clustering. Data ini dapat
berupa nilai sensor, pengukuran fisik, atau parameter lain
yang relevan dengan aplikasi yang ingin kita kembangkan.

2. Preprocessing Data
Setelah data terkumpul, mungkin perlu dilakukan tahap
preprocessing. Ini termasuk membersihkan data dari nilai
yang hilang atau tidak valid, serta melakukan normalisasi
atau transformasi jika diperlukan.

3. Implementasi Algoritma K-Means Clustering


Selanjutnya, algoritma K-Means Clustering perlu
diimplementasikan pada Arduino. Ini melibatkan penulisan
kode yang tepat untuk menghitung jarak antara titik data
dan pusat cluster, serta mengatur ulang centroid cluster
hingga konvergensi tercapai.

4. Evaluasi dan Visualisasi Hasil


Setelah clustering selesai, penting untuk mengevaluasi dan
memvisualisasikan hasilnya. Ini dapat dilakukan dengan
mengamati pusat cluster, memplot titik-titik data pada
grafik, atau menggunakan metode lain untuk menafsirkan
dan memahami hasil clustering.
Penerapan K-Means Clustering pada Arduino memiliki
berbagai aplikasi yang menarik. Misalnya, Anda dapat
menggunakannya untuk mengelompokkan data dari sensor suhu
dan kelembaban pada sistem kendali lingkungan cerdas.
Anda juga dapat mengimplementasikan K-Means
Clustering untuk mengklasifikasikan objek atau mengenali pola
dalam data dari sensor gerakan.
Dalam modul ini, kita akan melangkah lebih jauh dalam
implementasi langkah-langkah ini dan memberikan contoh
aplikasi yang relevan. Dengan menggabungkan kemampuan
algoritma clustering dengan potensi yang ditawarkan oleh
Arduino, kita akan mendapatkan pemahaman yang lebih baik
tentang cara memanfaatkan Machine Learning pada platform
mikrokontroler.
Ayo kita bersiap untuk mempelajari penerapan K-Means
Clustering pada Arduino dan mengeksplorasi potensi yang
menarik dari kombinasi ini!

Berikut adalah contoh dari Penerapan Algoritma K-Means


Clustering pada Arduino

Implementasi prangkat keras


Implementasi prangkat keras pada penelitian ini meliputi
implementasi rangkaian dimmer, implementasi rangkaian RTC,
dan implementasi rangkaian Arduino ke NRF24L01. Pada ketiga
implementasi perangkat keras tersebut saling berhubungan,
hasil dari implementasi prangkat keras pada penelitian ini di
tunjukan pada gambar berikut.

Implementasi Perangkat Lunak


Implementasi perangkat lunak dalam penelitian ini meliputi
implementasi algoritma k-Means, program dimmer, program
RCT, program penulisan dan pembacaan data ke EEPROM
Arduino.

Implementasi algoritma K-means


Proses algoritma K-means adalah proses Klasterisasi data
yang dimasukan oleh pengguna dari modul radio frekuensi (FR).
Source Code algoritma K-means beserta hasil dari perhitungan
klasterisasi algoritma K-means pada Arduino pro mini di tunjukan
pada gambar berikut.

void K_MEANS() {
const int Jumlah_Klaster = 5;
const int Jumlah_Data = 20;
int data_intensitas[Jumlah_Data] = {1020,1140,1260,1380,61,
1022,1143,1264,1385,66, 1027,1148,1269,1390,71,
1032,1153,1274,1395,76};
int data_waktu[Jumlah_Data] = {50,70,100,40,1, 50,70,100,40,1,
50,70,100,40,1, 50,70,100,40,1};
Data_Kmeans* k = new Data_Kmeans[Jumlah_Klaster];
Data_Kmeans* Center_Centroid = new Data_Kmeans[Jumlah_Klaster];
int count_Group[Jumlah_Klaster];
vector<Data_Kmeans> datasementara;
vector<int> jarak[Jumlah_Klaster];

for (int i = 0; i < Jumlah_Data; i++) {


Data_Kmeans tmp;
tmp.x = (int)(rand() % 100);
tmp.y = (int)(rand() % 100);
cout << "data" << i << "(" << tmp.x << "," << tmp.y << ")" << endl;
datasementara.push_back(tmp); // meletakkan daata dibelakang
}

for (int i = 0; i < Jumlah_Klaster; i++) {


k[i] = datasementara[i];
Center_Centroid[i].x = datasementara[i].x;
Center_Centroid[i].y = datasementara[i].y;
jarak[i].resize(Jumlah_Data);
cout << "Centroid" << i << "(" << Center_Centroid[i].x << "," <<
Center_Centroid[i].y << ")" << endl;
}

bool loop = true;


while (loop) {
//Center_Centroid init
for (int i = 0; i < Jumlah_Klaster; i++) {
Center_Centroid[i].x = 0;
Center_Centroid[i].y = 0;
count_Group[i] = 0;
}
// jarak
for (int i = 0; i < datasementara.size(); i++) {
for (int j = 0; j < Jumlah_Klaster; j++) {
int tmp_jarak = sqrt(pow(k[j].x - datasementara[i].x, 2) + pow(k[j].y
- datasementara[i].y, 2));
jarak[j][i] = tmp_jarak;
}
}

// Mencari centroid
for (int i = 0; i < datasementara.size(); i++) {
int min = jarak[0][i];
int min_j = 0;
for (int j = 1; j < Jumlah_Klaster; j++) {
if (min > jarak[j][i]) {
min = jarak[j][i];
min_j = j;
}
}
Center_Centroid[min_j].x += datasementara[i].x;
Center_Centroid[min_j].y += datasementara[i].y;
count_Group[min_j]++;
}

// menganti nilai K
int same_count = 0;
for (int i = 0;

i < Jumlah_Klaster; i++) {


if (count_Group[i] != 0) {
if ((Center_Centroid[i].x / count_Group[i]) == k[i].x &&
(Center_Centroid[i].y / count_Group[i]) == k[i].y)
same_count++;
k[i].x = Center_Centroid[i].x / count_Group[i];
k[i].y = Center_Centroid[i].y / count_Group[i];
}
if (same_count == Jumlah_Klaster) {
loop = false;
}
cout << "(" << k[i].x << setprecision(2) << "," << k[i].y <<
setprecision(2) << ") ";
}
cout << endl;
}
for (int i = 0; i < datasementara.size(); i++) {
int min = jarak[0][i];
int min_j = 0;
for (int j = 1; j < Jumlah_Klaster; j++) {
if (min > jarak[j][i]) {
min = jarak[j][i];
min_j = j;
}
}
}
}

Penjelasan proses pada sour code di atas:


1) Baris 2-16 proses inisialisasi jumlah klaster dan jumlah data
berserta data
yang dipakai dalam implentasi ini.
2) Baris 24-35 proses penentuan centroid awal.
3) Baris 36-55 adalah proses pemasukkan data kedalam variable
vector.
4) Baris 54-63 adalah perhitungan Euclidian disctance.
5) Baris 64-72 adalah percarian centroid baru.
6) Baris 78-89 adalah menganti centroid lama dengan yang baru.
7) Baris 89-109 adalah proses interasi berhenti ketika centroid lama
dan baru tidak berbeda
Gambar di atas adalah Proses algoritma K-means

Modul 3
Penerapan Algoritma Convlutional neural network (CNN) pada
Arduino
Pada modul ini, kita akan menjelajahi penerapan algoritma
Convolutional Neural Network (CNN) pada platform Arduino.
CNN adalah salah satu jenis model jaringan saraf tiruan yang
sangat efektif dalam pengolahan citra dan pengenalan pola.
Penerapan CNN pada Arduino membuka peluang untuk
membangun sistem cerdas yang dapat melakukan pengolahan
citra secara real-time dengan menggunakan sumber daya
terbatas pada mikrokontroler Arduino.

Proses penerapan CNN pada Arduino melibatkan beberapa


langkah penting:
1. Pengumpulan dan Preprocessing Data
Langkah pertama adalah mengumpulkan data citra yang
akan digunakan untuk melatih dan menguji CNN. Data ini
dapat berupa dataset citra yang relevan dengan aplikasi yang
ingin kita kembangkan, seperti pengenalan objek atau
identifikasi pola.
Selanjutnya, data citra perlu diproses sebelum digunakan.
Ini melibatkan tahap preprocessing seperti normalisasi,
resizing citra, dan konversi ke format yang sesuai dengan
kebutuhan algoritma CNN.
2. Desain dan Training CNN
Setelah data diproses, kita perlu merancang dan melatih
model CNN. Ini melibatkan menentukan arsitektur jaringan,
termasuk lapisan konvolusi, pooling, dan lapisan terhubung
penuh. Kemudian, kita akan menggunakan data latih untuk
melatih CNN dengan menggunakan algoritma pembelajaran
yang sesuai, seperti backpropagation.
Training model CNN dapat dilakukan di komputer yang
lebih kuat dengan menggunakan library atau framework
Machine Learning seperti TensorFlow atau PyTorch. Setelah
pelatihan selesai, kita akan mendapatkan parameter model
yang dapat diterapkan pada Arduino.
3. Implementasi CNN pada Arduino
Selanjutnya, kita perlu mengimplementasikan model CNN
yang telah dilatih pada Arduino. Karena sumber daya terbatas
pada Arduino, kita perlu memperhatikan kebutuhan memori
dan kemampuan komputasi. Ini melibatkan penulisan kode
yang tepat untuk menerapkan operasi konvolusi, pooling, dan
lapisan terhubung pada citra masukan

.
4. Evaluasi dan Pengujian
Setelah implementasi selesai, kita perlu mengevaluasi
kinerja CNN pada Arduino. Ini melibatkan menguji model
dengan menggunakan data uji yang belum pernah dilihat
sebelumnya dan mengukur akurasi serta kinerja lainnya.
Evaluasi ini akan memberikan wawasan tentang sejauh mana
model CNN yang diimplementasikan pada Arduino dapat
menghasilkan hasil yang diharapkan.
Penerapan CNN pada Arduino memiliki berbagai aplikasi
yang menarik. Misalnya, Anda dapat mengimplementasikan CNN
pada Arduino untuk pengenalan wajah, identifikasi objek dalam
citra, atau bahkan navigasi visual dalam robotika.
Dalam modul ini, kita akan melangkah lebih jauh dalam
implementasi langkah-langkah ini dan memberikan contoh
aplikasi yang relevan. Dengan menggabungkan kemampuan
algoritma CNN dengan potensi yang ditawarkan oleh Arduino,
kita akan mendapatkan pemahaman yang lebih baik tentang
cara memanfaatkan Machine Learning dalam pengolahan citra
pada platform mikrokontroler.
untuk mempelajari penerapan Convolutional Neural
Network (CNN) pada Arduino dan mengeksplorasi potensi yang
menarik dari kombinasi ini!
Berikut adalah contoh
Penerapan Algoritma Convolutional Neural Network Dan
Arsitektur MobileNet Pada Aplikasi Deteksi Penyakit Daun Padi
Namun, perlu diingat bahwa kemampuan komputasi
mikrokontroler Arduino terbatas dibandingkan dengan komputer atau
perangkat lain yang lebih canggih. Oleh karena itu, implementasi CNN
pada Arduino mungkin memerlukan beberapa penyesuaian dan
optimasi untuk memastikan bahwa sistem dapat berjalan dengan
lancar dan efisien.
Hasil pelatihan dan pengujian Pelatihan dan pengujian pada
Software Visual Studio Code berfungsi untuk melatih dataset dan
memperoleh modelnya serta melakukan pengujian dari hasil pelatihan
tersebut. Pada penelitian ini proses pelatihan menggunakan 100

Epochs dan hasilnya dapat dilihat dibawah ini:

Gambar di atas Hasil Proses Epochs Berdasarkan


hasil pelatihan dengan 100 epochs dapat dilihat bahwa
hasil pelatihan dan validasinya semakin meningkat
mendekati nilai 1.0 seiring bertambahnya epochs. Pada
nilai epochs 100 nilai akurasi pelatihan mencapai 1.0 dan
nilai akurasi validasi mencapai 0.8333. Dan nilai kesalahan
pada saat proses pelatihan yaitu 0.0010, sedangkan nilai
validasi kesalahan yaitu sebesar 0.6030. Sehingga nilai
validasi kesalahan lebih tinggi dibandingkan nilai
kesalahan proses pelatihan, hal ini akan terjadi overfitting.
Pada hasil pelatihan dan pengujian pada arsitektur
mobilenetVI didapat hasil kurva akurasi dibawah ini:
Gambar di atas Kurva akurasi hasil pelatihan Dan
kurva kesalahan selama proses pelatihan dapat dilihat
pada gambar dibawah ini:

Hasil Validasi Confusion Matrix


Hasil pelatihan confusion matrix yang digunakan
untuk mengetahui tingkat keberhasilan dan kegagalan
pada pengujian yang dilakukan. Berikut hasil confusion
matrix
Gambar di atas Confusion Matrix Hasil Pengujian
Berdasarkan confusion matrix dari hasil pengujian tersebut
dapat disimpulkan bahwa hasil prediksi berlabel benar dari
jenis penyakit daun Bacterial leaf bligt memiliki nilai 1.0
hasil prediksi berlabel benar pada jenis penyakit Brown
Spot bernilai 0.83 dan hasil prediksi berlabel benar pada
jenis penyakit Leaf Smut yaitu dengan nilai 1.0. Dan
terdapat 0.17 terjadi kesalahan prediksi yaitu pada jenis
penyakit Brown Spot.
Hasil Pengujian Pada Aplikasi Berbasis Android
Aplikasi yang dibangun yaitu aplikasi berbasis android
dengan menerapkan algoritma CNN dan arsitektur
MobileNetV1 dapat dilihat pada gambar dibawah ini:
Gambar di atas adalah Aplikasi Andorid Deteksi
Penyakit Daun Padi Penggunaan aplikasi yang sudah
dibangun ketika dijalankan, pertamakali akan muncul
seperti gambar 6, klasifikasi gambar pertama dimasukan
dengan menekan tombol cari gambar, ketika di pilih
gambar penyakit daun padi maka akan muncul jenis
penyakit daun padi, seperti gambar 7 dibawah ini
Gambar di atas adalah Hasil Klasifikasi Penyakit
Daun Padi

Kesimpulan
Klasifikasi gambar jenis penyakit daun padi
menggunakan algoritma CNN dengan arsitektur
MobileNetV1 dan Feature Extraction memiliki akurasi yang
baik sekali yaitu sebesar 92% namun dengan jumlah data
cukup kecil dan penggunaan epochs yaitu 100,
mengakibatkan nilai validasi kesalahan lebih tinggi
dibandingkan nilai kesalahan pada proses pelatihan,
sehingga akan terjadi overfitting. Saran pada penelitian
selanjutnya yaitu perlu adanya optimasi agar tidak terjadi
overfitting dan aplikasi yang dibangun berbasis android
perlu dikembangkan agar dapat mendeteksi secara
realtime, sehingga pengguna aplikasi tidak perlu menekan
tombol deteksi.
Modul 4
Penerapan Algoritma K-nearest neighbor (KNN) pada Arduino
Pada modul ini, kita akan menjelajahi penerapan algoritma
K-nearest neighbor (KNN) pada platform Arduino. KNN adalah
salah satu metode klasifikasi yang sederhana namun efektif
dalam Machine Learning. Algoritma ini memanfaatkan
keterdekatannya dengan tetangga terdekat dalam ruang fitur
untuk melakukan prediksi atau klasifikasi.
Penerapan KNN pada Arduino membuka peluang untuk
membangun sistem cerdas yang dapat melakukan klasifikasi
secara real-time dengan menggunakan sumber daya terbatas
pada mikrokontroler Arduino.
Proses penerapan KNN pada Arduino melibatkan beberapa
langkah penting:
1. Pengumpulan dan Preprocessing Data
Langkah pertama adalah mengumpulkan data yang akan
digunakan untuk melatih dan menguji model KNN. Data ini dapat
berupa dataset yang memiliki atribut atau fitur yang relevan
dengan klasifikasi yang ingin kita lakukan.
Setelah itu, data perlu diproses sebelum digunakan. Hal ini
melibatkan tahap preprocessing seperti normalisasi atau
standarisasi fitur untuk memastikan skala yang konsisten, dan
mungkin juga menghapus atau mengisi nilai yang hilang.
2. Pembangunan Model KNN
Setelah data diproses, langkah berikutnya adalah
membangun model KNN. Ini melibatkan menentukan nilai K
(jumlah tetangga terdekat yang akan digunakan), dan menghitung
jarak antara titik data yang baru dengan tetangga terdekat dalam
ruang fitur. Model KNN tidak memerlukan proses pelatihan
seperti algoritma pembelajaran lainnya. Namun, kita perlu
memastikan data yang digunakan untuk membangun model
mewakili variasi dan keberagaman yang ada dalam kelas atau
kategori yang ingin kita klasifikasikan.
3. Implementasi KNN pada Arduino
Selanjutnya, kita perlu mengimplementasikan model KNN
yang telah dibangun pada Arduino. Karena keterbatasan sumber
daya pada Arduino, kita perlu mempertimbangkan kebutuhan
memori dan kemampuan komputasi. Ini melibatkan penulisan
kode yang tepat untuk menghitung jarak dan melakukan
pemilihan tetangga terdekat, serta memprediksi atau
mengklasifikasikan titik data baru berdasarkan mayoritas kelas
tetangga terdekat.
4. Evaluasi dan Pengujian
Setelah implementasi selesai, kita perlu mengevaluasi
kinerja KNN pada Arduino. Ini melibatkan menguji model dengan
menggunakan data uji yang belum pernah dilihat sebelumnya,
dan mengukur akurasi serta kinerja lainnya. Evaluasi ini akan
memberikan wawasan tentang sejauh mana model KNN yang
diimplementasikan pada Arduino dapat melakukan klasifikasi
dengan akurat.
Penerapan KNN pada Arduino memiliki berbagai aplikasi
yang menarik. Misalnya, Anda dapat mengimplementasikan KNN
pada Arduino untuk klasifikasi objek berdasarkan atributnya,
seperti mengklasifikasikan bunga berdasarkan fitur morfologi
atau mengklasifikasikan citra berdasarkan warna atau tekstur.
Dalam modul ini, kita akan melangkah lebih jauh dalam
implementasi langkah-langkah ini dan memberikan contoh
aplikasi yang relevan. Dengan menggabungkan kemampuan
algoritma KNN dengan potensi yang ditawarkan oleh Arduino,
kita akan mendapatkan pemahaman yang lebih baik tentang
cara memanfaatkan Machine Learning dalam klasifikasi pada
platform mikrokontroler.

Anda mungkin juga menyukai