Tugas Akhir
Disusun Sebagai Salah Satu Syarat Kelulusan Strata Satu (S1) Pada Program
Studi Teknik Informatika
Oleh :
Nama : Mirwana Wening
NPM : 1706700035
UNIVERSITAS MANDIRI
FAKULTAS TEKNIK
2022
Lembar Pengesahan
Tugas Akhir
Oleh :
Laporan Tugas Akhir ini telah diperiksa dan disetujui untuk disidangkan dan
disahkan di Universitas Mandiri Subang pada Februari 2022.
Disetujui Oleh :
Mengetahui,
Internet of Things dapat diterapkan dan digunakan untuk mengurangi beban kerja
manusia, misalnya memberi makan kucing secara teratur. Kucing adalah salah
satu hewan peliharaan paling populer di masyarakat saat ini. Akan tetapi demi
menjaga kesehatan kucing peliharaan, pemilik kucing harus lebih memperhatikan
makanan dan perawatan kucingnya, jika tidak kucing akan mudah terserang
penyakit yang dapat merugikan pemilik kucing. K-Means merupakan salah satu
metode data clustering non hirarki yang berusaha mempartisi data yang ada ke
dalam bentuk satu atau lebih cluster/kelompok. Metode ini mempartisi data ke
dalam cluster/kelompok sehingga data yang memiliki karakteristik yang sama
dikelompokan ke dalam satu cluster yang sama dan data yang mempunyai
karakteristik yang berbeda dikelompokan ke dalam kelompok yang lain.Sistem ini
dibuat dengan menghubungkan perangkat lunak dan perangkat keras melalui
jaringan Internet. Selain menggunakan komponen mikrokontroller nodemcu
ESP8266 yang sudah diprogram dengan menggunakan software Arduino IDE,
sistem ini juga menggunakan komponen perangkat keras lainnya, diantaranya
sensor ultrasonik sebagai sensor yang dapat mengubah besaran fisis (suara)
menjadi listrik dan sebaliknya, Sensor Load Cell untuk mendeteksi tekanan atau
berat beban, Water Level untuk mengetahui tingginya air minum, Motor servo
tertutup untuk mengatur atau menyesuaikannya untuk menentukan dan
memastikan posisi sudut poros keluaran motor.Machine Learning Pemberi Pakan
Kucing Otomatis Berbasis IoT Menggunakan Metode Algoritma K-Means Pada
Platform Thingspeak yang penulis buat telah berjalan sesuai fungsinya dengan
hasil yang baik.Keseluruhan perangkat keras dan perangkat lunak yang digunakan
tidak mengalami kendala yang berarti sehingga dapat berfungsi dengan baik
ketika proses pengembalian data dan pengujian alat berlangsung
dilapangan.Penelitian dilakukan dengan menggunakan metode perhitungan
algoritma K-Means dengan menerapkan perbandingan nilai rasio dari setiap iterasi
melalui perhitungan algoritma K-Means.
Kata Kunci : Arduino IDE, Internet of Things, K-Means , Machine Learning
iii
Abstract
The Internet of Things can be implemented and used to reduce the workload of
humans, such as feeding cats regularly. Cats are one of the most popular pets in
today's society. However, in order to maintain the health of pet cats, cat owners
should pay more attention to food and cat care, otherwise the cat will be
susceptible to diseases that can harm the cat owner. K-Means is a non-hierarchical
data clustering method that attempts to partition existing data into one or more
clusters/groups. This method partitions data into clusters/groups so that data with
the same characteristics are grouped into the same cluster and data with different
characteristics are grouped into other groups. This system is made by connecting
software and hardware through the Internet network. . In addition to using the
nodemcu ESP8266 microcontroller component that has been programmed using
the Arduino IDE software, this system also uses other hardware components,
including ultrasonic sensors as sensors that can convert physical quantities
(sound) into electricity and vice versa, Load Cell Sensors to detect pressure or
weight. load, Water Level to determine the height of drinking water, Closed servo
motor to adjust or adjust it to determine and ensure the angular position of the
motor output shaft. IoT Based Automatic Cat Feeding Machine Learning Using
the K-Means Algorithm Method on the Thingspeak Platform that the author made
has been running according to function with good results. Overall hardware and
software used did not experience significant problems so that it could function
properly when the data return process and tool testing took place in the field. The
research was carried out using the calculation method K-Means algorithm by
applying the comparison of the ratio values of each iteration through the
calculation of the K-Means algorithm.
Keyword : Arduino IDE, Internet of Things, K-Means , Machine Learning
iv
Kata Pengantar
Assalamualaikum Wr.Wb
Segala puji dan syukur saya panjatkan kehadirat Ilahi Robbi,yang telah
Subang. Penulis menyelesaikan laporan ini tak lepas dari bantuan, kerjasama dan
peran orang-orang yang ada di sekeliling penulis, karena itu penulis mengucapkan
2. Bapak Zezen Zaenal Abidin, S.Pd., S.T., M.Cs Wakil Rektor III
3. Bapak Usep Tatang Suryadi, S.T., M.Kom selaku Dekan Fakultas Teknik
5. Kepada Bapak Andreas Eko Wijaya, ST., M.Kom selaku Wakil Dekan
Fakultas Teknik dan Pembimbing pertama dan Bapak Eka Permana, S.T.,
v
M.Kom selaku pembimbing pembantu, karena dengan adanya bimbingan
serta masukan yang diberikan, laporan tugas akhir ini tersusun secara baik
dan benar.
7. Kepada Kedua Orang Tua yang dari awal perkuliahan sampai akhir
8. Kepada Adikku Estu Bahana Lingga dan Sahabatku Eva Rahmawati yang
selalu mensupport dan menjadi salah satu dari sekian alasan untuk
semangat, kerja sama, dan masukan yang sungguh luar biasa yang telah
Laporan ini masih jauh dari kata sempurna, oleh karena itu diharapkan kritik
dan saran yang bersifat membangun demi kesempurnaan penulisan dimana yang
akan datanng. Akhir kata semoga laporan ini dapat bermanfaat bagi para pembaca
maupun penulis.
Mirwana Wening
vi
Daftar Isi
Lembar Pengesahan...........................................................................................................2
Abstraksi...........................................................................................................................iii
Abstract.............................................................................................................................iv
Kata Pengantar...................................................................................................................v
Daftar Isi...........................................................................................................................vii
Daftar Tabel.......................................................................................................................x
Daftar Gambar..................................................................................................................xii
Bab I Pendahuluan............................................................................................................1
1.3 Tujuan......................................................................................................................3
1.4 Manfaat....................................................................................................................3
2.1 Kucing......................................................................................................................7
vii
2.7 NodeMCU..............................................................................................................20
2.12 Database...............................................................................................................25
2.16 ThingSpeak...........................................................................................................34
2.17 MySQL................................................................................................................35
2.18 Jaringan................................................................................................................37
2.19 Xampp..................................................................................................................37
viii
3.4.3 Iterasi 3.....................................................................................................45
ix
4.2.2 Instalasi Arduino IDE......................................................................................59
5.1 Kesimpulan............................................................................................................73
5.2 Saran......................................................................................................................73
Daftar Pustaka..................................................................................................................75
Lampiran-Lampiran.........................................................................................................77
x
Daftar Tabel
Tabel 10 Jarak ke Centroid dan Penentuan Kelompok Cluster dari Iterasi 1........43
Tabel 11 Hasil Penghitungan BCV, WCV dan Rasio dari Iterasi 1......................44
Tabel 13 Jarak ke Centroid dan Penentuan Kelompok Cluster dari Iterasi 2........44
Tabel 14 Hasil Penghitungan BCV, WCV dan Rasio dari Iterasi 2......................45
xi
Tabel 16 Jarak ke Centroid dan Penentuan Kelompok Cluster dari Iterasi 3........46
Tabel 17 Hasil Penghitungan BCV, WCV dan Rasio dari Iterasi 3......................46
Tabel 19 Jarak ke Centroid dan Penentuan Kelompok Cluster dari Iterasi 4........47
Tabel 20 Hasil Penghitungan BCV, WCV dan Rasio dari Iterasi 4......................47
xii
Daftar Gambar
Gambar 5 ThingSpeak..........................................................................................35
xiii
Gambar 22 Tampilan Arduino IDE......................................................................60
xiv
Gambar 45 Hasil Iterasi 3......................................................................................71
xv
Bab I
Pendahuluan
beban kerja manusia, misalnya memberi makan kucing secara teratur. Kucing
adalah salah satu hewan peliharaan paling populer di masyarakat saat ini. Akan
tetapi demi menjaga kesehatan kucing peliharaan, pemilik kucing harus lebih
memperhatikan makanan dan perawatan kucingnya, jika tidak kucing akan mudah
terserang penyakit yang dapat merugikan pemilik kucing. Salah satu masalah
yang dihadapi pemelihara adalah saat memberi makan kucing, karena terkadang
pemilik hanya perlu meluangkan waktu sebentar atau beberapa hari jauh dari
rumah. Hal ini menjadi masalah yang membingungkan karena pikiran kita
mereka harus mencari tempat penitipan hewan, dan terkadang mereka menitipkan
pemberian makan. Tentunya hal ini sangat merepotkan bagi sebagian orang yang
maka diperlukan suatu alat yang dapat membantu pemilik kucing di rumah untuk
memelihara kucingnya saat sedang berpergian atau ada beberapa alasan. Inilah
mengapa penulis membuat alat pemberi makan kucing otomatis agar pemilik
kucing tidak perlu khawatir Saat dia tidak ada di rumah, beri makan kucing
peliharaannya lagi.
Sebelumnya (Wahyuni, 2018) sudah pernah melakukan penelitian tentang
pemberian pakan secara otomatis dengan judul “Papakinoto (Penebar Pakan Ikan
Ikan Tawar Masyarakat Belawa Kabupaten Soppeng”. Hasil dari penelitian yang
dilakukan oleh (Wahyuni, 2018) adalah produk yang berupa prototype system
pemberian pakan ikan secara otomatis dan alat dapat dikendalikan secara jarak
jauh menggunakan bluetooth. Tak hanya itu, prototype yang dibuat dirancang agar
penanda air minum yang harus disediakan pada feed. Tidak hanya itu, penelitian
ini juga dilengkapi dengan sistem database yang dapat menghitung feed yang telah
disediakan, dan sistem tersebut juga dilengkapi dengan notifikasi bahwa feed
dapat memberikan solusi dengan merancang dan membuat alat otomatis yang
dapat memberikan kontribusi secara reguler. Solusi lain yang dapat memberikan
dikontrol dari jarak jauh dengan menggunakan Internet, dan alat tersebut dapat
Things (IoT)”. Sistem ini hanya untuk memberi makan kucing otomatis secara
dari sistem yang sebelumnya, dimana pada sistem sebelumya hanya mampu
1.3 Tujuan
Tujuan yang diperoleh dari Tugas Akhir ini membuat machine learning
untuk memberi pakan kucing peliharaan tepat waktu dan tidak akan memengaruhi
aktivitas pemiliknya dan bisa dikontrol dari jarak jauh menggunakan IoT,sehingga
pemilik kucing tidak perlu repot untuk memberi makan kucing peliharaannya.
1.4 Manfaat
Manfaat yang ingin dicapai dari pelaksanaan Tugas Akhir ini adalah:
1. Bisa digunakan sebagai solusi saat pemilik kucing tidak ada dirumah.
2. Pemilik kucing bisa menyediakan pakan untuk kucingnya kapanpun dan
dimanapun.
1. Alat ini hanya untuk pemberiaan pakan kucing otomatis secara teratur dan
tau bahan lainnya yang akan digunakan dalam menyusun Tugas Akhir ini.
meruapakan salah satu algoritma dalam data mining yang bisa digunakan
untuk melakukan pengelompokan/clustering suatu data. Ada banyak
5 Sistem pemantau suatu kegiatan hewan kucing, kegiatan ini meliputi analis
diimplementasikan.
Laporan Tugas Akhir ini terdiri dari lima bab, yaitu pendahuluan, landasan
ini.
Bab II Landasan Teori, bab ini berisi konsep-konsep yang mendukung dan
bidang pangan.
Bab III Analisis dan perancangan sistem, bab ini berisi perancangan
perangkat keras dari rancangan yang telah dibuat, serta hasil pengujian pada
Bab V Kesimpulan dan saran, bab ini berisi kesimpulan dan saran
2.1 Kucing
Kucing adalah salah satu hewan peliharaan paling populer saat ini.
Namun, untuk menjaga kesehatan kucing peliharaan, pemilik kucing harus lebih
memperhatikan pola makan dan perawatan kucing, jika tidak kucing rentan sakit
dan membahayakan pemilik kucing. Salah satu masalah pemilik adalah saat
memberi makan kucing, karena terkadang pemilik tidak berada di rumah dan
hanya membutuhkan waktu yang singkat atau beberapa hari saja. Tentu saja ini
dilema antara urusan bisnis dan hewan peliharaan kami berada di rumah karena
para pemilik kucing terkadang harus mencari tempat penitipan hewan, dan
mengurus masalah makannya. Tentu hal ini sangat merepotkan bagi sebagian
diperlukan suatu alat untuk membantu pemilik kucing di rumah memberi makan
banyak kelebihan, dengan bulu yang lembut dan tubuh yang lucu. Sifatnya yang
dengannya. Selain itu, tingkahnya yang sangat lucu saat bercanda membuat para
pecinta menikmatinya. Kucing pertama berasal dari alam liar, kemudian perlahan-
pameran kucing di berbagai negara maju. Oleh karena itu, kucing sebagai peluang
cara manusia atau makhluk cerdas belajar dan menggeneralisasi. Setidaknya ada
dua aplikasi utama dalam machine learning, yaitu klasifikasi dan prediksi. Ciri
khas dari machine learning adalah adanya proses pelatihan, pembelajaran, atau
yang disebut data pelatihan. Klasifikasi adalah salah satu metode dalam machine
tertentu. Mesin menggunakan prediksi atau regresi untuk menebak output dari
data input berdasarkan data yang dipelajari dalam pelatihan. Metode machine
learning yang paling populer yaitu Sistem Pengambil Keputusan, Support Vector
gudang database yang besar. Data mining juga dapat diartikan sebagai penggalian
informasi baru yang membantu pengambilan keputusan dari blok data yang besar.
Istilah data mining kadang-kadang disebut juga knowledge discovery. Salah satu
teknik dalam data mining adalah bagaimana melacak data yang ada untuk
mengidentifikasi pola data lain yang tidak ada dalam database penyimpanan.
untuk dapat mengetahui pola universal data-data yang ada. Anomali data transaksi
juga perlu dideteksi untuk dapat mengetahui kelanjutan berikutnya yang dapat
mining adalah bagian dari proses Knowledge Discovery from Data (KDD).
yang kemudian disebut sebagai data mining hingga menemukan pola dan
Sebagai salah satu rangkaian proses diatas, Data Mining dibagi menjadi
tersebut, diantaranya :
1. Pembersihan Data
ataupun dari hasil eksperimen, memiliki isi-isi yang tidak sempurna seperti data
yang hilang, data yang tidak valid atau juga hanya sekedar salah ketik. Selain itu,
ada atribut-atribut data yang tidak bisa relevan dengan hipotesa Data Mining yang
kita miliki. Data-data yang tidak relevan itu juga baiknya dibuang karena
keberadaannya bisa mengurangi mutu atau akurasi dari hasil Data Mining
nantinya. Garbage in garbage out (hanya sampah yang bisa dihasilkan bila yang
dari sistem Data Mining karena data yang ditangani bisa berkurang jumlah dan
kompleksitasnya.
2. Integrasi Data
nomor pelanggan dsb. Integrasi data yang perlu dilakukan secara cermat karena
kesalahan pada saat integrasi data bisa menghasilkan hasil yang menyimpang dan
integrasi data berdasarkan jenis produk ternyata bisa menggabungkan produk dari
kategori yang berbeda maka akan didapatkan korelasi antar produk yang
sebenarnya tidak ada. Dalam integrasi data ini juga perlu dilakukan transformasi
dan pembersihan data karena seringkali data dari dua database berbeda tidak sama
cara penelitiannya atau bahkan data yang ada di satu database ternyata tidak ada di
database lainnya.
analisis asosiasi dan klastering hanya bisa menerima input data kategorikal.
Karenanya data berupa angka numerik yang berlanjut perlu dibagi-bagi menjadi
beberapa span. Compositions ini sering disebut binning. Disini juga dilakukan
pemilihan information yang diperlukan oleh teknik Data Mining yang dipakai.
Transformasi dan pemilihan data ini juga menentukan kualitas dari hasil Data
proses data mining. Ada beberapa teknik data mining yang umum digunakan.
Kami akan membahas teknik-teknik ini secara rinci di bagian selanjutnya. Perlu
dicatat bahwa terkadang teknik data mining umum yang tersedia di pasaran tidak
cukup untuk data mining di bidang tertentu atau data tertentu. Sebagai contoh,
berbagai teknik data mining baru baru-baru ini dikembangkan untuk bidang
Pada tahap ini, hasil dari teknik data mining dievaluasi dalam bentuk
model tipikal dan model prediktif untuk menilai apakah asumsi yang ada memang
terealisasi. Jika ternyata hasil yang didapat tidak sesuai dengan asumsi, Anda bisa
proses data mining, mencoba teknik Data Mining lain yang lebih sesuai, atau
menerima hasil ini sebagai suatu hasil yang di luar dugaan yang mungkin
bermanfaat.
memformulasikans keputusan atau aksi dari hasil analisa yang didapat. Ada
kalanya hal ini harus melibatkan orang-orang yang tidak memahami Data Mining.
Karenanya presentasi hasil Data Mining dalam bentuk pengetahuan yang bisa
dipahami semua orang adalah satu tahapan yang diperlukan dalam proses Data
literatur. Namun ada 4 teknik data mining yang populer (Santosa 1999), yaitu:
tertentu.
2) Clustering
Berbeda dengan association rule mining dan klasifikasi dimana kelas data
pada kelas data yang belum diketahuin. Karena itu clustering sering digolongkan
data yang memiliki beberapa atribut yang dipetakan sebagai ruang multidimensi.
3) Klasifikasi
Pohon keputusan adalah salah satu metode klasifikasi yang paling populer
keputusan. Data dalam pohon keputusan biasanya dinyatakan dalam bentuk tabel
dengan atribut dan record. Atribut menyatakan suatu parameter yang dibuat
sebagai kriteria dalam pembentukan tree. Misalkan untuk menentukan main
data dan pemodelan sehingga sangat bagus sebagai langkah awal pemodelan
bahkan ketika dijadikan sebagai model akhir dari beberapa teknik lain.
digunakan oleh manusia atau sistem lain. Ide awal Internet of Things pertama kali
dikemukakan oleh Kevin Ashton pada tahun 1999. Benda-benda di sekitar kita
dapat saling berkomunikasi melalui jaringan seperti internet. Berawal dari pusat
selanjutnya, tidak hanya smartphone atau komputer saja yang bisa terkoneksi ke
Internet. Tetapi semua jenis objek nyata terhubung ke Internet, dan teknologi
Internet of Things dapat mengontrol objek dari jarak jauh di seluruh infrastruktur
jaringan yang ada dan mampu menciptakan peluang untuk integrasi antara dunia
fisik dan sistem digital berbasis cyber sehingga dapat meningkatkan efisiensi,
K-Means merupakan salah satu metode data clustering non hirarki yang
berusaha mempartisi data yang ada ke dalam bentuk satu atau lebih
sehingga data yang memiliki karakteristik yang sama dikelompokan ke dalam satu
cluster yang sama dan data yang mempunyai karakteristik yang berbeda
dikelompokan ke dalam kelompok yang lain. Adapun tujuan dari data clustering
ini adalah untuk meminimalisasi objective function yang diset dalam proses
banyaknya populasi untuk dijadikan cluster awal. Ada banyak cara dalam
memberi nilai awal misalnya dengan pengambilan data beberapa populasi data.
1. Jumlah Cluster K
bahkan tidak ada, namun ada juga jumlah cluster yang diinginkan sesuai dengan
2. Cluster Awal
observasi, melalui pendekatan salah satu metode hirarki dan ada juga dengan
melalui pemilihan cluster secara acak dari sekumpulan observasi. Maka dengan
3. Ukuran Jarak
Pada tahap ini ukuran jarak juga penting dalam menempatkan observasi ke
dalam cluster berdasarkan nilai centroid terdekat. Euclidian Distance adalah jarak
Keterangan :
Dik = Titik dokumen/jarak data ke-i
M = Jumlah variable
Xij = Data yang akan dilakukan pengclusteran
Ckj = Pusat dari cluster
¿
1
¿∑
Vij= Xkj……………………….. (2.2)
k=0
Keterangan :
Xkj = Nilai data ke-k yang ada di dalam cluster tersebut untuk
variable ke-j
membagi himpunan objek data ke dalam sub himpunan (cluster) yang tidak
overlap, sehingga hasil dari setiap objek data berada tepat dalam satu cluster.
Adapun langkah algoritma K-means adalah sebagai berikut :
Lokasi centroid setiap kelompok diambil dari rata-rata (mean) semua nilai
∑ xi ..............................(1)
i=1
v= ; i=1,2,3 … n
n
Dimana:
xi : Objek ke-i
Ada beberapa cara yang dapat dilakukan untuk mengukur jarak data ke
Distance.
√∑
n
d ( x , y )=‖x i− y i‖2=
2
( x i - y i ) ; i=1,2,3 … n.........(2)
i=1
Dimana:
xi : Objek x ke-i
yi : Objek y ke-i
n : Banyaknya objek
perbandingan jarak antara data dengan centroid setiap cluster yang ada.
terdekat.
{
d =min { D ¿¿
a ik= 1 ................................. (3)
0 lainnya
Dimana,
Setelah didapat hasil dari proses clustering dengan algoritma K-Means perlu
metode sum squared error (SSE). Selain menggunakan SSE bisa juga dengan cara
Within-Class Variation (WCV) pada iterasi terakhir yang sering disebut dengan
rasio. Apabila hasil perhitungan pengujian yang diperoleh besar, maka semakin
k
1
BCV = ∑ d (mi , mi)……….................... (2.3)
nk i=1
Keterangan :
k = Jumlah cluster
i = Nama yang mewakili cluster yang dibentuk
mi = Jumlah anggota dari cluster ke-i
N
WCV ( SSE )=∑ ∑ d ¿ ¿ ¿………… (2.4)
J P ∈ci
Keterangan :
BCV
Rasio = ................................................. (2.5)
WCV
kompilasi dan upload. Arduino IDE ini juga dilengkapi dengan terminal serial,
secara simulasi maupun secara perangkat keras. Arduino IDE bersifat Open-
Arduino IDE ini mendukung berbagai sistem operasi antara lain Windows,
MAC dan Linux. Arduino IDE dilengkapi dengan banyak library C/C++
sehingga programmer menjadi lebih mudah dan cepat. Pada penelitian ini,
Manager.
2.7 NodeMCU
open source. NodeMCU terdiri dari perangkat keras berupa system on chip
secara default tidak mengacu pada perangkat keras development kitnya melainkan
mengacu pada firmware yang digunakan. Karena NodeMCU terdiri dari perangkat
ESP8266. Pada board NodeMCU, ESP8266 telah dikemas dengan berbagai fitur
ekstensi kabel data USB yang sama persis dengan kabel data yang digunakan
NodeMCU antara lain bersifat open source,biaya yang tergolong rendah, smart,
diintegrasikan dengan sensor dan aktuator melalui pin GPIO. Modul ini
mempunyai fitur seperti mendukung standar IEEE 802.11 b/g/n, bisa digunakan
untuk WiFi direct (P2P), AccesPoint soft-AP, memunyai RAM 81 Mb dan Flash
memory 1Mb, kecepatan hingga 160 MHz, serta daya keluaran sebesar 19.5 dBm.
Sensor ultrasonik adalah sensor yang dapat mengubah besaran fisis (suara)
menjadi listrik dan sebaliknya. Sensor ultrasonik sering disebut sensor jarak
karena sensor ini dapat mendeteksi jarak yang sangat jauh dibandingkan dengan
IR.Kelebihan sensor ini dibandingkan dengan sensor lain yaitu adanya led
indikator yang dapat mendeteksi apakah sensor berfungsi apa tidak dan sensor ini
frekuensi lebih dari 20 KHz dan bekerja berdasarkan pantulan gelombang suara.
Gelombang ultrasonik bisa merambat pada medium padat, cair dan gas. Rangkain
suatu benda atau objek maka gelombang ultrasonik akan dipantulkan kembali dan
diterima oleh rangkaian sensor yang berfungsi sebagai penerima. Maksimum jarak
yang dapat dibaca sensor ultrasonik adalah 0 s.d 3m. (Maulidia, 2019)
Load Cell merupakan modul timbangan yang ada pada timbangan digital,
sensor load cell disusun dari strain gauge, konduktor, dan jembatan wheatstone.
et al., 2018)
Pada sistem yang dibangun, sensor berat digunakan sebagai pendeteksian
mikrokontroler. Cara kerja sensor ini adalah pembacaan resistansi yang dihasilkan
air yang mengenai garis lempengan pada sensor. Semakin banyak air yang
mengenai lempengan tersebut, maka nilai resistansinya akan semakin kecil dan
Motor servo adalah motor dengan sistem umpan balik tertutup, dimana
Motor terdiri dari motor, rangkaian roda gigi, potensiometer, dan rangkaian
melalui kaki sinyal kabel motor. Seperti terlihat pada gambar, pulsa adalah 1,5 ms
dan periodenya 2 ms, maka sudut poros motor akan berada di posisi tengah.
Semakin lebar pulsa OFF, semakin besar gerakan sumbu searah jarum jam;
semakin kecil pulsa OFF, semakin besar gerakan sumbu berlawanan arah jarum
jam.
Motor servo biasanya hanya bergerak pada sudut tertentu, tidak terus
menerus seperti motor DC atau motor stepper. Namun, servo dapat dimodifikasi
untuk bergerak terus menerus untuk beberapa tujuan. Dalam robotika, motor
tersebut biasanya digunakan di kaki, lengan, atau area lain di mana gerakan
terbatas dan torsi yang cukup diperlukan. Motor servo merupakan motor yang
dapat bekerja dua arah (CW dan CCW), dimana arah dan sudut putaran rotor
hanya dapat dikontrol dengan mengatur duty cycle dari sinyal PWM pada pin
2.12 Database
Basis data atau database adalah kumpulan informasi yang disimpan secara
sistematis dalam perangkat keras (komputer) sehingga dapat diolah oleh perangkat
lunak, merupakan satu kesatuan yang utuh. Dengan sistem ini, data yang
(Swara, 2016)
3. Pembuatan file/tabel baru ke suatu basis data (create table), yang identik
dengan penambahan map arsip baru ke sebuah lemari arsip yang telah
ada.
4. Penghapusan file/tabel dari suatu basis data (drop table), yang identik
dengan perusakan map arsip lama yang ada di sebuah lemari arsip.
map arsip.
perangkat keras, sistem operasi, dan jaringan apa pun, dan dapat ditulis dalam
bahasa pemrograman apa pun. Tetapi karena UML juga menggunakan kelas dan
operasi dalam konsep dasarnya, maka lebih cocok untuk menulis perangkat lunak
dalam bahasa berorientasi objek seperti C++, Java, atau VB. jaringan.
(Sulistyorini, 2009)
Class Diagram merupakan hubungan antar kelas dan penjelasan detail tiap-
tiap kelas di dalam model desain dari suatu sistem, juga memperlihatkan aturan-
aturan dan tanggung jawab entitas yang menentukan perilaku sistem. Class
2016)
dan visibility, tingkat akses objek eksternal kepada suatu operasi atau attribut.
memiliki metoda
class.
generalization sepadan
berorientasi objek.
informasi yang akan dibuat. Use case digunakan untuk mengetahui fungsi apa saja
yang ada di dalam sistem informasi dan siapa saja yang berhak menggunakan
Association Association
digunakan untuk
menghubungkan
actor dengan use
case.
sebuah sistem atau proses bisnis. (Hendini, 2016) Simbol-simbol yang digunakan
Decition Menentukan
kapan alur dalam
Points aktivitas menjadi
bercabang.
Relasi Fungsi Notasi
Transition Menggambarkan
Between Activity pertukaran dari contoh
alur antara aktivitas.
mendeskripsikan waktu hidup objek dan pesan yang dikirimkan dan diterima antar
yaitu:
Activation Activation
mengidentifikasikan
keberadaaan sebuah
object yang akan
melakukan sebuah
aksi.
Message Message
mengidentifikasi
komunikasi antara
object-object.
yang menggunakan susunan data secara acak. ERD juga menghubungkan entitas
dengan entitas lain sehingga dapat dikembangkan menjadi database di masa yang
akan datang. Model data juga akan membantu ketika menganalisis dan mendesain
database, karena model data akan menunjukkan berbagai tipe data yang
hubungan antara file yang digunakan untuk memodelkan struktur data serta
hubungan antar data . Tetapi harus mengenali sismbol – simbol dasar dalam ERD
dibawah ini :
secara untik
tentang entitas
Selain simbol diatas , sebenarnya masih banyak simbol lain . yaitu entitas
asosiatif , atribut , derivat dan lainnya . Akan tetapi simbol diatas tersebut inti
yang wajib diketahui . ada tiga komponen , yaitu entitas (entity) , atribut
(attribute) dan relasi (relation).Entitas merupakan dasar yang terlibat dalam
sistem . Atribut atau field berperan sebagai penjelas dari entitas dan relasi atau
hubungan yang menjadi antara dua entitas . Berikut ini adalah penjelasan lengkap
1. Entitas
Objek dasar dapat berupa orang , benda , atau hal – hal yang perlu memiliki
2. Atribut
ini :
menggunakan garis
3. Relasi
2.16 ThingSpeak
layanan yang berisi aplikasi dan API yang bersifat open source untuk menyimpan
(Hypertext Transfer Protocol) melalui Internet atau melalui LAN (Local Area
logging sensor, aplikasi pelacakan lokasi, dan jaringan sosial dari segala sesuatu
2018)
Gambar 5 ThingSpeak
(sumber: www.hackster.io)
2.17 MySQL
query (perintah) SQL. Database sendiri dibutuhkan jika kita ingin menginput data
dari user menggunakan form HTML untuk kemudian diolah PHP agar bisa
Michael Widenius . Untuk saat ini MySQL didukung oleh perusahaan ternama
MySQL itu sendiri bersama dua orang lainnya yaitu David Axmark dan Allan
bersifat open source atau gratis, Sehingga menjadi aplikasi paling populer
multithreat dan juga bisa multiuser. Selain gratis dan juga sangat ideal untuk
1. Kecepatan
Mekanisme dalam MySQL dapat menangani banyak data dalam waktu sedikit.
2. Dapat Dipercaya
Walapun MySQL bersifat gratis atau open source tanya dapat dipercaya
pengguna.
4. Gratis
secara legal.
GPL atau yang biasa di sebut dengan General Public License. Dan tetapi
mysql ini dapat menjual dibawah komersial dalam kasus pengguna bagi
2.18 Jaringan
atau lebih, yang terhubung dengan media transmisi kabel atau tanpa kabel
terhadap komputer lain dengan akses penuh, sehingga dapat membuat komputer
lain, restart, shutdown, kehilangan file atau kerusakan sistem. Dalam defenisi
autonomous yang sangat besar.) Dua unit komputer dikatakan terkoneksi apabila
seperti: file, printer, media penyimpanan (hardisk, floppy disk, cd-rom, flashdisk,
2.19 Xampp
dalam membangun dan mengembangkan sebuah web dalam satu paket. Fungsinya
adalah sebagai server yang menjalankan website berbasis PHP dan menggunakan
server yang mudah digunakan dan dapat melayani tampilan halaman web yang
database.
pengolahan soal-soal, nama-nama siswa serta nama guru yang dapat mengakses
media pembelajaran berbasis web. Pada web media pembelajaran ini ada beberapa
program utama dari rangkaian XAMPP. XAMPP juga dapat disebut sebagai
sebuah CPanel server virtual, yang dapat membantu preview sehingga dapat
2017)
komputer. Dibuat pada tahun 1972 oleh Dennis Ritchie untuk Sistem Operasi
memprogram sistem dan jaringan komputer namun bahasa ini juga sering
dipakai oleh berbagai jenis platform sistem operasi dan arsitektur komputer,
bahkan terdapat beberepa compiler yang sangat populer telah tersedia. Bahasa C
secara luar biasa memengaruhi bahasa populer lainnya, terutama bahasa C++ yang
pendukung adanya alat pemberi pakan kucing berbasis web dengan menggunakan
software Arduino IDE, sistem ini juga menggunakan komponen perangkat keras
besaran fisis (suara) menjadi listrik dan sebaliknya, Sensor Load Cell untuk
mendeteksi tekanan atau berat beban, Water Level untuk mengetahui tingginya air
dan sebagai tindakan output yang dilakukan Arduino. Perangkat lunak terdapat di
untuk melakukan aksi pemicu terhadap sensor ultrasonik, sensor berat, sensor
water level dan motor servo. Kemudian program kedua terdapat dibagian platform
Thingspeak yang merupakan tempat penyimpanan data. Sistem ini akan
mengoleksi data-data jarak, berat dan ketinggian air, data tersebut akan di rekap
Means.
penelitian ini.
1. Antarmuka/Komputer server.
koneksi internet.
4. Nodemcu ESP2866.
5. Sensor Ultrasonik
8. Motor servo
9. Jumper
2. Tentukan titik pusat awal dari setiap cluster. Dalam penelitian ini titik
pusat
1 Kucing 1 13 10 15
2 Kucing 2 26 26 20
3 Kucing 3 25 26 20
4 Kucing 4 13 11 12
5 Kucing 5 27 21 23
6 Kucing 6 27 21 23
7 Kucing 7 14 12 22
8 Kucing 8 13 10 12
9 Kucing 9 13 12 11
10 Kucing 10 12 11 12
...... ..... ..... ..... .....
105 Kucing 105 11 12 12
Inisial data titik pusat awal (K) diambil secara random dari data, diantaranya :
3. Menghitung jarak setiap data ke titik pusat cluster atau centroid awal antara
√∑ {
n
2
d ij = x ik − y ik }
k=1 yik : Objek y ke-i
n : Banyaknya objek
baru.
terdapat data yang berpindah cluster atau jika nilai ratio baru > ratio lama,
dan atau jika iterasi dihentikan jika tidak terjadi perpindahan data antar
3.4.1 Iterasi 1
centroid (pusat cluster), data yang dipilih berasal dari data ke-25 dan ke-35
menghitung jarak satu per satu data dengan centroid nya menggunakan rumus
Data C1
Data C2
clustering dengan melihat jarak terdekat atau jarak terkecil dari data terhadap
C1 C2 Kuadrat Min
Jarak Min Jarak
25 23 22 11 13 11 Jarak
19,6468827 2,236067977 C2 2,23606798 5
20,32240143 2,449489743 C2 2,44948974 6
...... ...... ..... ....... .......
20,42057786 1,414213562 C2 1,41421356 2
Variation yaitu dengan cara menjumlahkan seluruh nilai jarak terdekat dibagi
dengan banyak jumlah data, dan dilanjutkan dengan menghitung nilai Ratio
3.4.2 Iterasi 2
Tabel 12 Centroid Iterasi 2
25,4583333
C1 3 22,60416667 21,3125
12,1929824
C2 6 12,38596491 13,89473684
C1 C2
Jar Min Kuadrat
25,458 22,604 21,31 12,192 12,385 13,894
ak Jarak Min Jarak
33 17 25 98 96 74
3,66938 13,46440
C1
3,669388195 19,66305897 819 972
2,48237 6,162203
C2
19,40591172 2,482378649 865 755
2,79244 7,797743
C1
2,792443922 19,39987593 392 056
2,79244 7,797743
C1
2,792443922 19,39987593 392 056
8,31321 69,10957
C2
15,62736093 8,313216717 672 218
3,15184 9,934133
C2
20,01993364 3,151846059 606 58
3,02980 9,179747
C2
19,33923671 3,029809831 983 615
2,35545 5,548168
C2
20,06255408 2,355455087 509 667
..... ..... ..... ..... .....
2,27204 5,162203
C2
20,20431661 2,272048361 836 755
Rasio 0,012290379
3.4.3 Iterasi 3
Rasio 0,012658828
3.4.4 Iterasi 4
Rasio 0,012658828
3.4.5 Between Cluster Variation, Within Cluster Variation dan Ratio
Cluster Variation (BCV), Within Cluster Variation (BCV) dan Ratio pada proses
awal hingga akhir yakni dari iterasi ke-1, ke-2, ke-3 dan ke-4 setelah dianalisa
lebih lanjut didapat kesimpulan bahwa tidak terjadi perubahan yang signifikan
dari perpindahan data antar anggota cluster maupun perubahan dari nilai ratio,
yang terlibat dalam kegiatan yang dapat dilakukan pada sistem. Dalam hal ini
beberapa kelas yang ada dalam sistem perangkat lunak yang akan
kejadian yang mungkin terjadi pada sistem. Berikut adalah sequence diagram
dari sistem mikrokontroler yang dimana dalam membaca setiap sensor dan
mengirim data sensor, jika jaringan terputus maka sistem tidak akan
jika jaringan terhubung dengan baik maka data sensor terkirim dapat
platform.
3.5.5 Activity Diagram
data dan dikirim ke platform ThingSpeak yang akan di olah dan d hitung
alat yang penulis buat, terdiri dari sensor Ultrasonik, sensor load cell, Sensor
energy vcc dan GND sementara untuk nodemcu mengirim 3 data dari sensor
Ultrasonik, sensor Load Cell, sensor water level melalui jaringan berupa
ThingSpeak.
yang dibuat oleh penulis. Dibuat menggunakan sistem web yang bernama draw.io
tersebut berisi id, tanggal, jarak, berat, tinggi air dan class dengan masing-
sebagai cluster, kemudian akan bertambah jika telah didapat cluster baru jika
syarat melanjutkan iterasi dalam algoritma K-Means terpenuhi dan atau data
cluster akan berhenti jika tidak terjadi perubahan anggota cluster. Terdapat
sebagai hasil hitung data dengan cluster1, c2 sebagai hasil hitung data dengan
cluster2, dan min sebagai hasil jarak terdekat dan penentu sebuah data
ultrasonik, sensor load cell, sensor water level, nodemcu esp8266, servo penulis
konfigurasi dan penyajian informasi dari sistem yang dibuat serta paparan hasil
pengujian sistem.
- Harddisk : 512 GB
Website : https://www.arduino.cc/en/Main/Software
3. Buka file installer Arduino IDE yang sudah di download, kkemudian klik
next-next-finish.
Gambar 22 Tampilan Arduino IDE
4.2.3 Installasi Xampp Sebagai Server
XAMPP.
membuat akun.
Gambar 30 Tampilan Sign In
2. Masukan Email Addres, Location, sesuai dengan alamat pengguna. First
Berikut merupakan alat yang sudah dirakit dan pengambilan data dari
5.1 Kesimpulan
kesimpulan diantaranya :
yang penulis buat telah berjalan sesuai fungsinya dengan hasil yang baik.
dilapangan.
5.2 Saran
%.
1 Kucing 1 13 10 15
2 Kucing 2 26 26 20
3 Kucing 3 25 26 20
4 Kucing 4 13 11 12
5 Kucing 5 27 21 23
6 Kucing 6 27 21 23
7 Kucing 7 14 12 22
8 Kucing 8 13 10 12
9 Kucing 9 13 12 11
10 Kucing 10 12 11 12
11 Kucing 11 26 25 20
12 Kucing 12 13 20 22
13 Kucing 13 15 15 15
14 Kucing 14 11 13 12
15 Kucing 15 25 20 21
16 Kucing 16 25 22 20
17 Kucing 17 26 24 23
18 Kucing 18 13 10 11
19 Kucing 19 11 19 19
20 Kucing 20 14 12 18
21 Kucing 21 11 12 12
22 Kucing 22 12 18 13
23 Kucing 23 14 15 17
24 Kucing 24 26 20 21
25 Kucing 25 25 23 22
26 Kucing 26 25 22 22
27 Kucing 27 26 20 20
28 Kucing 28 12 14 14
29 Kucing 29 11 11 13
30 Kucing 30 12 13 16
31 Kucing 31 26 21 23
32 Kucing 32 28 25 22
33 Kucing 33 11 13 11
34 Kucing 34 14 16 17
35 Kucing 35 11 13 11
36 Kucing 36 14 12 12
37 Kucing 37 26 22 22
38 Kucing 38 25 22 21
39 Kucing 39 27 21 20
40 Kucing 40 13 10 15
41 Kucing 41 26 26 20
42 Kucing 42 25 26 20
43 Kucing 43 13 11 12
44 Kucing 44 27 21 23
45 Kucing 45 27 21 23
46 Kucing 46 14 12 22
47 Kucing 47 13 10 12
48 Kucing 48 14 12 11
49 Kucing 49 12 11 12
50 Kucing 50 26 25 20
51 Kucing 51 11 10 12
52 Kucing 52 12 12 11
53 Kucing 53 13 11 12
54 Kucing 54 26 25 20
55 Kucing 55 11 20 22
56 Kucing 56 13 15 15
57 Kucing 57 10 13 12
58 Kucing 58 25 20 21
59 Kucing 59 25 22 20
60 Kucing 60 26 24 23
61 Kucing 61 11 10 11
62 Kucing 62 13 19 19
63 Kucing 63 10 12 18
64 Kucing 64 11 12 12
65 Kucing 65 26 20 21
66 Kucing 66 25 23 22
67 Kucing 67 25 22 22
68 Kucing 68 26 20 20
69 Kucing 69 12 14 14
70 Kucing 70 11 11 13
71 Kucing 71 12 13 16
72 Kucing 72 26 21 23
73 Kucing 73 28 25 22
74 Kucing 74 11 13 11
75 Kucing 75 25 22 21
76 Kucing 76 27 21 20
77 Kucing 77 13 10 15
78 Kucing 78 26 26 20
79 Kucing 79 25 26 20
80 Kucing 80 13 11 12
81 Kucing 81 27 21 23
No Nama Kucing Jarak(X) Berat(Y) Tinggi Air (Z)
82 Kucing 82 27 21 23
83 Kucing 83 27 21 23
84 Kucing 84 14 12 22
85 Kucing 85 13 10 12
86 Kucing 86 12 12 11
87 Kucing 87 12 11 12
88 Kucing 88 26 25 20
89 Kucing 89 13 10 12
90 Kucing 90 10 12 11
91 Kucing 91 11 11 12
92 Kucing 92 26 25 20
93 Kucing 93 12 14 14
94 Kucing 94 11 11 13
95 Kucing 95 12 13 16
96 Kucing 96 26 21 23
97 Kucing 97 28 25 22
98 Kucing 98 11 13 11
99 Kucing 99 25 22 21
100 Kucing 100 27 21 20
101 Kucing 101 13 10 15
102 Kucing 102 26 26 20
103 Kucing 103 11 19 19
104 Kucing 104 10 12 18
105 Kucing 105 11 12 12
#include <HX711_ADC.h>
#if defined(ESP8266)|| defined(ESP32) || defined(AVR)
#include <EEPROM.h>
#endif
#define TRIGGERPIN 2
#define ECHOPIN 3
#define pinSensor A0 //Pin Sensor Water Level
const int HX711_dout = 5; //mcu > HX711 dout pin
const int HX711_sck = 6; //mcu > HX711 sck pin
Servo myservo;
int nilai = 0; // Menyimpan data sensor di Variable Nilai
void setup() {
Serial.begin(9600);
myservo.attach(4);
pinMode(TRIGGERPIN, OUTPUT);
pinMode(ECHOPIN, INPUT);
LoadCell.begin();
float calibrationValue; // calibration value (see example file "Calibration.ino")
calibrationValue = 696.0; // uncomment this if you want to set the calibration
value in the sketch
#if defined(ESP8266)|| defined(ESP32)
//EEPROM.begin(512); // uncomment this if you use ESP8266/ESP32 and want
to fetch the calibration value from eeprom
#endif
//EEPROM.get(calVal_eepromAdress, calibrationValue); // uncomment this if
you want to fetch the calibration value from eeprom
}
void loop() {
//baca permintaan dari nodemcu
String minta = "";
//baca permintaan nodemcu
while(Serial.available() > 0 ) {
minta += char(Serial.read());
}
minta.trim();
//uji variabel minta
if(minta == "Ya")
{
//kirim datanya
kirimdata();
}
//kosongkan variable minta
minta = "";
delay(1000);
}
void kirimdata()
{
// int ketinggian = bacaSensor();
int nilai=analogRead(pinSensor);
long duration, distance;
digitalWrite(TRIGGERPIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGERPIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGERPIN, LOW);
duration = pulseIn(ECHOPIN, HIGH);
distance = (duration/2) / 29.1;
}
}
}
}
3. Source Code Arduino IDE untuk mikrokontroler nodemcu thingspeak
#include <SoftwareSerial.h>
#include <ESP8266WiFi.h>
WiFiClient client;
String apiKey = "P767V2E4DHTVC8Y3";
const char *ssid = "Mirwanaw";
const char *pass = "12345678";
const char* server = "api.thingspeak.com";
void loop() {
//konfigurasi millis
unsigned long currentMillis = millis(); // baca waktu millis saat ini
if (currentMillis - previosMillis >= interval)
{
//update previosMillis
previosMillis = currentMillis;
//uji data
if (data != "")
{
//format data "10#20.00.#89.00"
//parsing data (pecah data)
int index = 0;
for(int i=0; i<=data.length(); i++)
{
char delimiter = '#';
if(data[i] != delimiter)
arrData[index] += data[i];
else
index++; //variabel index bertambah 1
}
//pastikan bahwa data yang dikirim lengkap maksudnya
ldr,temperatute,humidity
//urutannya 0,1,2
if(index == 2)
{
if(client.connect(server, 80)){
String postStr= apiKey;
postStr += "&field1=";
postStr += String(arrData[0]);
postStr += "&field2=";
postStr += String(arrData[1]);
postStr += "&field3=";
postStr += String(arrData[2]);
postStr += "\r\n\r\n";
client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(postStr.length());
client.print("\n\n");
client.print(postStr);
}
//minta data ke arduino uno
DataSerial.println("Ya");
}