Anda di halaman 1dari 105

MACHINE LEARNING PEMBERI PAKAN KUCING OTOMATIS

BERBASIS IOT MENGGUNAKAN METODE ALGORITMA K-MEANS


PADA PLATFORM THINGSPEAK (PERUM)

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

MACHINE LEARNING PEMBERI PAKAN KUCING OTOMATIS


BERBASIS IOT MENGGUNAKAN METODE ALGORITMA K-MEANS
PADA PLATFORM THINGSPEAK (PERUM)

Tugas Akhir

Oleh :

Nama : Mirwana Wening


NPM : 1706700035

Laporan Tugas Akhir ini telah diperiksa dan disetujui untuk disidangkan dan
disahkan di Universitas Mandiri Subang pada Februari 2022.

Disetujui Oleh :

Dosen Pembimbing I, Dosen Pembimbing II,

Anderias Eko Wijaya, S.T.,M.kom Eka Permana, S.T.,M.kom


NIK. 431500024 NIK. 431500028

Mengetahui,

Dekan Teknik Informatika Ketua Prodi Teknik Informatika

Usep Tatang Suryadi, S.T.,M.Kom Dicky Iskandar Sobari, M.Kom.


NIK. 413500055 NIDN. 0419039103
Abstraksi

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

melimpahkan rahmat dan karunia-Nya yang tak terukur,sehingga dapat

diselesaikannya tugas akhir yang berjudul “Machine Learning Pemberi Pakan

Kucing Otomatis Berbasis IoT Menggunakan Metode Algoritma K-Means Pada

Platform Thingspeak (Perum)”dengan baik dan benar.Tidak lupa sholawat serta

salam tercurah kepada Nabi kita Muhammad SAW.

Laporan ini diajukan sebagai syarat untuk menempuh Tugas Akhir

pada Fakultas Teknik, Program Studi Teknik Informatika di Universitas Mandiri

Subang. Penulis menyelesaikan laporan ini tak lepas dari bantuan, kerjasama dan

peran orang-orang yang ada di sekeliling penulis, karena itu penulis mengucapkan

terima kasih kepada:

1. Bapak Dr. Muhammad Faisal selaku Rektor Universitas Mandiri Subang.

2. Bapak Zezen Zaenal Abidin, S.Pd., S.T., M.Cs Wakil Rektor III

Universitas Mandiri Subang.

3. Bapak Usep Tatang Suryadi, S.T., M.Kom selaku Dekan Fakultas Teknik

Universitas Mandiri Subang.

4. Bapak Dicky Iskandar Sobari,M.Kom, selaku Ketua Jurusan Fakultas

Teknik Universitas Mandiri Subang.

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.

6. Kepada Dosen dan Staff Universitas Mandiri Subang.

7. Kepada Kedua Orang Tua yang dari awal perkuliahan sampai akhir

penyusunan tugas akhir mendukung dan membantu agar dalam

penyusunan tugas akhir ini berjalan dengan baik dan lancar.

8. Kepada Adikku Estu Bahana Lingga dan Sahabatku Eva Rahmawati yang

selalu mensupport dan menjadi salah satu dari sekian alasan untuk

semangat menyelesaikan tugas akhir ini.

9. Kepada teman-teman penulis selama perkuliahan yang senatiasa memberi

semangat, kerja sama, dan masukan yang sungguh luar biasa yang telah

menjadi motivasi bagi penulis untuk menyelesaikan tugas akhir ini.

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.

Wassalamuallaikun Wr. Wb.

Subang, Februari 2022


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.1 Latar Belakang.........................................................................................................1

1.2 Identifikasi Masalah.................................................................................................3

1.3 Tujuan......................................................................................................................3

1.4 Manfaat....................................................................................................................3

1.5 Batasan Masalah.......................................................................................................4

1.6 Metodologi Penelitian..............................................................................................4

1.7 Sistematika Penulisan...............................................................................................5

Bab II Landasan Teori.......................................................................................................7

2.1 Kucing......................................................................................................................7

2.2 Machine Learning....................................................................................................8

2.3 Data Mining.............................................................................................................8

2.4 Internet of Things (IoT)..........................................................................................14

2.5 Algoritma K-Means................................................................................................15

2.6. Arduino IDE (Integrated Develovment Environment)...........................................20

vii
2.7 NodeMCU..............................................................................................................20

2.8 Sensor Ultrasonik...................................................................................................22

2.9 Sensor Load Cell....................................................................................................23

2.10 Sensor Water Level...............................................................................................23

2.11 Motor Servo.........................................................................................................24

2.12 Database...............................................................................................................25

2.13 Model Proses (UML)...........................................................................................26

2.14 Class Diagram.....................................................................................................26

2.14.1 Use Case Diagram............................................................................................28

2.14.2 Activity Diagram...............................................................................................29

2.14.3 Sequence Diagram............................................................................................30

2.15 ERD (Entity Relationship Diagram)....................................................................31

2.16 ThingSpeak...........................................................................................................34

2.17 MySQL................................................................................................................35

2.18 Jaringan................................................................................................................37

2.19 Xampp..................................................................................................................37

2.20 Pemrograman Bahasa C.......................................................................................38

Bab III Analisa dan Perancangan sistem.........................................................................39

3.1 Deskripsi Sistem.....................................................................................................39

3.2 Kebutuhan perangkat Lunak...................................................................................40

3.3 Kebutuhan Perangkat Keras...................................................................................40

3.4 Implementasi algoritma K-Means..........................................................................41

3.4.1 Iterasi 1............................................................................................................43

3.4.2 Iterasi 2............................................................................................................44

viii
3.4.3 Iterasi 3.....................................................................................................45

3.4.4 Iterasi 4.....................................................................................................46

3.4.5 Between Cluster Variation, Within Cluster Variation dan Ratio....................47

3.5 Pemodelan Sistem..................................................................................................48

3.5.1 Usecase Diagram.............................................................................................48

3.5.2 Class Diagram.................................................................................................49

3.5.3 Squence Diagram............................................................................................49

3.5.4 State Diagram..................................................................................................50

3.5.5 Activity Diagram.............................................................................................51

3.5.6 Kerangka Pemikiran........................................................................................51

3.6 Perancangan Arsitektur Perangkat Keras...............................................................52

3.7 Arsitektur Jaringan.................................................................................................53

3.8 Rancangan Database..............................................................................................54

3.8.1 Tabel data........................................................................................................54

3.8.2 Tabel Cluster............................................................................................54

3.8.3 Tabel Iterasi.....................................................................................................55

3.9 Skema Alat.............................................................................................................56

3.10 Rancanngan Antarmuka Sistem............................................................................56

3.10.1 Rancangan Home.....................................................................................56

3.10.2 Rancangan Proses Data............................................................................57

Bab IV Implementasi dan Pengujian...............................................................................58

4.1 Tempat Penelitian...................................................................................................58

4.2. Implementasi Program..........................................................................................58

4.2.1 Spesifikasi dan Instalasi Server dan Tool........................................................58

ix
4.2.2 Instalasi Arduino IDE......................................................................................59

4.2.3 Installasi Xampp Sebagai Server.....................................................................60

4.2.4 Registrasi Akun ThingSpeak...........................................................................63

4.3 Implementasi Antarmuka Sistem............................................................................67

4.4 Implementasi Perakitan dan Pengujian Alat...........................................................71

Bab V Kesimpulan dan Saran.........................................................................................73

5.1 Kesimpulan............................................................................................................73

5.2 Saran......................................................................................................................73

Daftar Pustaka..................................................................................................................75

Lampiran-Lampiran.........................................................................................................77

x
Daftar Tabel

Tabel 1 Multiplicity Class Diagram.......................................................................27

Tabel 2 Komponen Class Diagram......................................................................27

Tabel 3 Komponen Use Case Diagram.................................................................28

Tabel 4 Activity Diagram......................................................................................29

Tabel 5 Komponen Squence Diagram...................................................................30

Tabel 6 Komponen ERD........................................................................................32

Tabel 7 Data Awal Yang Akan Dihitung...............................................................41

Tabel 8 Centroid Awal...........................................................................................42

Tabel 9 Centroid Awal...........................................................................................43

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 12 Centroid Iterasi 2....................................................................................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

Tabel 15 Centroid Iterasi 3....................................................................................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 18 Centroid Iterasi 4....................................................................................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

Tabel 21 Nilai BCV, WCV, Rasio dan Perpindahan Anggota Cluster..................48

xii
Daftar Gambar

Gambar 1 Tahapan-tahapan Data mining...............................................................9

Gambar 2 NodeMCU ESP8266............................................................................21

Gambar 3 Sensor Ultrasonik.................................................................................22

Gambar 4 Sensor Load Cell (Sensor Berat)..........................................................23

Gambar 5 ThingSpeak..........................................................................................35

Gambar 6 UseCase Diagram................................................................................48

Gambar 7 Class Diagram.....................................................................................49

Gambar 8 Squence Diagram.................................................................................50

Gambar 9 Squence Diagram.................................................................................50

Gambar 10 Activity Diagram................................................................................51

Gambar 11 Kerangka Pemikiran...........................................................................52

Gambar 12 Perancangan Arsitektur Perangkat Keras...........................................53

Gambar 13 Arsitektur Jaringan.............................................................................53

Gambar 14 Struktur Tabel Data............................................................................54

Gambar 15 Struktur Tabel Cluster........................................................................55

Gambar 16 Struktur Tabel Iterasi..........................................................................55

Gambar 17 Skema Alat.........................................................................................56

Gambar 18 Rancangan index................................................................................56

Gambar 19 Rancangan Proses Data......................................................................57

Gambar 20 Tempat Penelitian...............................................................................58

Gambar 21 Halaman Download Arduino IDE......................................................59

xiii
Gambar 22 Tampilan Arduino IDE......................................................................60

Gambar 23 Icon Installer xampp...........................................................................60

Gambar 24 Tampilan Awal Instalasi Xampp........................................................61

Gambar 25 Pilihan instalasi xampp......................................................................61

Gambar 26 Memilih folder direktori instalasi.......................................................62

Gambar 27 Proses Installasi xampp......................................................................62

Gambar 28 Xampp selesai installasi.....................................................................63

Gambar 29 Halaman Utama ThingSpeak..............................................................63

Gambar 30 Tampilan Sign In................................................................................64

Gambar 31 Daftar ThingSpeak..............................................................................64

Gambar 32 Daftar Channel Baru..........................................................................64

Gambar 33 Login untuk membuka channel..........................................................65

Gambar 34 Masukan Password............................................................................65

Gambar 35 News Channels...................................................................................66

Gambar 36 Channel Status...................................................................................66

Gambar 37 Halaman Index...................................................................................67

Gambar 38 Halaman Jarak Kucing.......................................................................67

Gambar 39 Halaman Berat Pakan.........................................................................68

Gambar 40 Halaman Ketinggian Air Minum.......................................................68

Gambar 41 Penentuan dan Pengisian Centroid Algoritma K-Means....................69

Gambar 42 Data Pakan Kucing.............................................................................69

Gambar 43 Hasil Iterasi 1.....................................................................................70

Gambar 44 Hasil Iterasi 2.....................................................................................70

xiv
Gambar 45 Hasil Iterasi 3......................................................................................71

Gambar 46 Perakitan Alat.....................................................................................72

Gambar 47 Pengujian Alat....................................................................................72

xv
Bab I
Pendahuluan

1.1 Latar Belakang

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

dipengaruhi oleh pekerjaan dan hewan peliharaan. Dengan masalah

tersebut,mereka ada di rumah karena pemilik kucingnya,dan terkadang juga

mereka harus mencari tempat penitipan hewan, dan terkadang mereka menitipkan

kucing peliharaannya kepada kerabat terdekatnya untuk menyelesaikan masalah

pemberian makan. Tentunya hal ini sangat merepotkan bagi sebagian orang yang

sangat sibuk dalam kehidupan sehari-hari. Menghadapi permasalahan tersebut

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

Otomatis) Upaya Peningkatan Produksi Dan Efisiensi Waktu Budidaya Tambak

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

alat bisa memberikan pakan secara menyeluruh (menyebar). Penelitian yang

paling mendekati dengan penelitian yang akan dilakukan adalah “Perancangan

dan Implementasi Sistem Monitoring dan Pemberi Pakan Kucing Otomatis

Berbasis Android” oleh (Pamungkas et al., 2019). Meskipun mikrokontroler yang

digunakan sama, sistem penjadwalannya berbeda.

Pada penelitian ini juga menggunakan komponen Water Level sebagai

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

tersebut telah disediakan, sehingga pengguna dapat mengecek apakah feed

tersebut sudah disediakan. Berdasarkan observasi dan literatur peneliti, peneliti

dapat memberikan solusi dengan merancang dan membuat alat otomatis yang

dapat memberikan kontribusi secara reguler. Solusi lain yang dapat memberikan

pekerjaan breeder yang disederhanakan adalah bahwa alat otomatis dapat

dikontrol dari jarak jauh dengan menggunakan Internet, dan alat tersebut dapat

memantau aktivitas yang dilakukan oleh sistem dan menginformasikannya


melalui halaman web. Hal ini yang mendasari penulis atau peneliti dengan judul

“Machine Learning Pemberi Pakan Pada Kucing Otomatis Berbasis Internet of

Things (IoT)”. Sistem ini hanya untuk memberi makan kucing otomatis secara

teratur dalam lingkungan rumah (PERUM). Penulis mengembangkan sistem ini

dari sistem yang sebelumnya, dimana pada sistem sebelumya hanya mampu

membuat kandang kucing otomatis.

1.2 Identifikasi Masalah

Identifikasi masalah pada Tugas Akhir ini adalah:

1. Kesibukan pemilik kucing untuk memberi pakan kucingnya.

2. Diperlukannya Machine Learning pemberi makan pada kucing berbasis

Internet of Things (IoT).

3. Pengaturan pembuka katup penutup penampung pakan kucing

menggunakan motor servo.

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.

3. Mengurangi biaya agar tidak menitipkan kucingnya ke penitipan

hewan,jika pemilik kucing tidak ada dirumah.

1.5 Batasan Masalah

Batasan masalah dalam Tugas Akhir ini adalah:

1. Alat ini hanya untuk pemberiaan pakan kucing otomatis secara teratur dan

terdiri dari beberapa alat diantaranya: Arduino, NodeMcu Esp8266, Sensor

Ultrasonik, Sensor Water Level, Motor Servo, Sensor Load Cell.

2. Sistem ini menggunakan algoritma K-Means.

3. Bahasa pemprograman yang digunakan adalah bahasa C++/C.

4. Sistem yag akan dibuat berbasis IoT menggukan Platform ThingSpeak.

1.6 Metodologi Penelitian

Metodologi yang di gunakan dalam pelaksanaan Tugas Akhir ini adalah:

1 Penelitian Lapangan, penelitian langsung kepada pihak perumahan BTN

GMI untuk mendapatkan data dimana penulis melakukan pengumpulan

data dengan cara mencatat data pakan otomatis hewan kucing.

2 Penelitian Kepustakaan, penelitian ini bertujuan untuk mendapatkan

sumber referensi data yang akan diteliti seperti mngumpulakan buku-buku

tau bahan lainnya yang akan digunakan dalam menyusun Tugas Akhir ini.

3 Teknik Data mining menggunakan metode clustering, algoritma K-Means

meruapakan salah satu algoritma dalam data mining yang bisa digunakan
untuk melakukan pengelompokan/clustering suatu data. Ada banyak

pendekatan untuk membuat cluster, diantaranya adalah membuat aturan

yang mendikte keanggotaan dalam group yang sama berdasarkan tingkat

persamaan diantara anggota-anggotanya.

4 Analisi Masalah, kegiatan ini merupakan analisa terhadap masalah pada

objek penelitian meliputi penentuan parameter tingkat pakan otomatis dan

di analis kedalam program.

5 Sistem pemantau suatu kegiatan hewan kucing, kegiatan ini meliputi analis

spesifikasi yang akan digunakan sebagai alat bantu peneltian.

6 Perancangan alat pemantau pakan otomatis hewan kucing dengan

perancangan kelas dan perancangan antar muka dari hasil analis

perancangan perangkat keras.

7 Pengujian Perangkat Keras, pengujian terhadap perangkat keras yang telah

diimplementasikan.

1.7 Sistematika Penulisan

Laporan Tugas Akhir ini terdiri dari lima bab, yaitu pendahuluan, landasan

teori, analis dan perancangan sistem, implementasi dan pengujian, serta

kesimpulan dan saran.

Bab I Pendahuluan, bab ini berisi latarbelakang, rumusan masalah, tujuan,

batasan, metodelogi serta sistematika pembahasan pada laporan Tugas Akhir

ini.
Bab II Landasan Teori, bab ini berisi konsep-konsep yang mendukung dan

mendasari pelaksanaan Tugas Akhir ini, meliputi peranan teknologi dalam

bidang pangan.

Bab III Analisis dan perancangan sistem, bab ini berisi perancangan

perangkat keras yang akan dibangun dalam Tugas Akhir.

Bab IV Implementasi dan Pengujian, bab ini berisi hasil implementasi

perangkat keras dari rancangan yang telah dibuat, serta hasil pengujian pada

ala pemantau pakan otomatis hewan kucing.

Bab V Kesimpulan dan saran, bab ini berisi kesimpulan dan saran

terhadap hasil pelaksanan Tugas Akhir.


Bab II
Landasan Teori

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

menjadi pertanyaan yang membingungkan karena pikiran kita berada dalam

dilema antara urusan bisnis dan hewan peliharaan kami berada di rumah karena

para pemilik kucing terkadang harus mencari tempat penitipan hewan, dan

terkadang menitipkan kucing peliharaan kepada kerabat terdekatnya hanya untuk

mengurus masalah makannya. Tentu hal ini sangat merepotkan bagi sebagian

orang yang kesehariannya sangat padat. Menghadapi permasalahan tersebut,

diperlukan suatu alat untuk membantu pemilik kucing di rumah memberi makan

kucingnya saat tidak berada di rumah karena hal-hal tertentu.

Menurut Suwed dan Napitupulu, 2011 Kucing adalah hewan dengan

banyak kelebihan, dengan bulu yang lembut dan tubuh yang lucu. Sifatnya yang

manja membuat para penggemarnya selalu ingin menyentuhnya dan bermain

dengannya. Selain itu, tingkahnya yang sangat lucu saat bercanda membuat para

pecinta menikmatinya. Kucing pertama berasal dari alam liar, kemudian perlahan-

lahan melalui proses domestikasi. Sekarang, kucing menjadi hewan peliharaan


yang sangat dekat dengan manusia. Bahkan, kucing sudah banyak mengikuti

pameran kucing di berbagai negara maju. Oleh karena itu, kucing sebagai peluang

bisnis juga menguntungkan.

2.2 Machine Learning

Machine learning (ML) adalah metode dalam AI yang banyak digunakan

untuk menggantikan atau meniru perilaku manusia untuk memecahkan masalah

atau melakukan otomatisasi. Seperti namanya, machine learning mencoba meniru

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

pelatihan. Oleh karena itu, machine learning membutuhkan data pembelajaran,

yang disebut data pelatihan. Klasifikasi adalah salah satu metode dalam machine

learning. Ketika manusia mencoba membedakan objek, mesin menggunakannya

untuk mengurutkan atau mengklasifikasikan objek berdasarkan karakteristik

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

Machine (SVM) dan Neural Network.(Ahmad Hania, 2017)

2.3 Data Mining

Data mining adalah proses memperoleh informasi yang berguna dari

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

membangun sebuah model, dan kemudian menggunakan model tersebut untuk

mengidentifikasi pola data lain yang tidak ada dalam database penyimpanan.

Prediksi kebutuhan juga bisa menggunakan teknik ini. (Prasetyo, 2012)

Dalam data mining,pengelompokan data juga bisa dilakukan. Tujuannya

untuk dapat mengetahui pola universal data-data yang ada. Anomali data transaksi

juga perlu dideteksi untuk dapat mengetahui kelanjutan berikutnya yang dapat

diambil. Semua hal tersebut bertujuan mendukung kegiatan operasional

perusahaan sehingga tujuan akhir perusahaan diharapkan bisa tercapai. Data

mining adalah bagian dari proses Knowledge Discovery from Data (KDD).

Dibawah ini digambarkan skema dari proses KDD.(Supriyanto, 2020)

Gambar 1 Tahapan-tahapan Data mining


(sumber gambar: Data mining concept and tehniques, Han & Kamber).

Gambar 2.1 menunjukkan proses penjelajahan pengetahuan dimulai dari

beberapa database dilakukan proses cleaning dan integration sehingga dapat


menghasilkan data warehouse. Dilakukan proses selection dan transformation

yang kemudian disebut sebagai data mining hingga menemukan pola dan

memperoleh pengetahuan dari data (knowledge).

Sebagai salah satu rangkaian proses diatas, Data Mining dibagi menjadi

beberapa tahap. Tahap-tahap tersebut memiliki sifat interaktif di mana pemakai

dapat terlibat langsung atau dengan perantaraan knowledge base. Tahapan-tahapan

tersebut, diantaranya :

1. Pembersihan Data

Pada umumnya data yang diperoleh,dari database suatu perusahaan

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

dimasukkan juga sampah) adalah istilah yang sering dipakai untuk

menggambarkan tahap ini. Pembersihan data juga bisa mempengaruhi performasi

dari sistem Data Mining karena data yang ditangani bisa berkurang jumlah dan

kompleksitasnya.

2. Integrasi Data

Integrasi data dapat dilakukan pada atribut-atribut yang bisa

mengidentifikasikan entitas-entitas yang unik seperti atribut nama, jenis produk,

nomor pelanggan dsb. Integrasi data yang perlu dilakukan secara cermat karena
kesalahan pada saat integrasi data bisa menghasilkan hasil yang menyimpang dan

bahkan bisa menyesatkan pengambilan aksi nantinya. Sebagai contoh bila

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.

3. Seleksi dan Transformasi Data

Beberapa teknik Data Mining membutuhkan design data yang khusus

sebelum bisa diaplikasikan. Sebagai contoh beberapa teknik standar seperti

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

Mining nantinya karena ada beberapa karakteristik dari teknik-teknik Data

Mining tertentu yang tergantung pada tahapan ini.

4. Aplikasi Teknik Data Mining

Penerapan teknologi data mining sendiri hanyalah sebagian dari

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

bioinformatika, seperti menganalisis hasil micro array untuk mengidentifikasi

DNA dan fungsinya.

5. Evaluasi Pola Yang Ditemukan

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

mengambil berbagai alternatif, seperti melakukan feedback untuk memperbaiki

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.

6. Persentasi Pola Yang Ditemukan untuk menghasilkan aksi

Tahap terakhir dari proses Data Mining adalah bagaimana

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

Mining. Dalam presentasi ini, visualisasi juga bisa membantu

mengkomunikasikan hasil Data Mining tersebut (Aryuni, 2018).

Terdapat beberapa teknik data mining yang sering disebut-sebut dalam

literatur. Namun ada 4 teknik data mining yang populer (Santosa 1999), yaitu:

1) Association Rule Mining


Association Rule mining adalah teknik mining untuk menemukan asosiatif

antara kombinasi atribut.Contoh dari aturan asosiatif dari analisa pembelian di

suatu pasar swalayan dapat mengatur penempatan barangnya atau merancang

strategi pemasaran dengan memakai kupon diskon untuk kombinasi barang

tertentu.

2) Clustering

Berbeda dengan association rule mining dan klasifikasi dimana kelas data

telah ditentukan sebelumnya,clustering dapat dipakai untuk memberikan label

pada kelas data yang belum diketahuin. Karena itu clustering sering digolongkan

sebagai metode unsupervised learning. Prinsip clustering dapat dilakukan pada

data yang memiliki beberapa atribut yang dipetakan sebagai ruang multidimensi.

3) Klasifikasi

Dalam klasifikasi,terdapat target variabel kategori. Sebagai

contoh,penggolongan pendapatan dapat dipisahkan dalam tiga kategori,yaitu

pendapatan tinggi,pendapatan sedang,pendapatan rendah.

4) Pohon Keputusan (Decision Tree)

Pohon keputusan adalah salah satu metode klasifikasi yang paling populer

karena mudah di interperensi manusia. Pohon keputusan adalah model prediksi

menggunakan struktur pohon atau struktur berhirarki. Konsep dari pohon

keputusan adalah mengubah data menjadi pohon keputusan dan aturan-aturan

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

tenis,kriteria yang digunakan adalah cuaca,angin,iklim dan temperatur.

Manfaat utama menggunakan pohon keputusan adalah kemampuannya untuk

membreak down proses pengambilan keputusan yang kompleks menjadi lebih

simpel sehingga pengambilan keputusan akan menjadi kebih menginterprestasikan

solusi permasalahan. Pohon keputusan juga berguna untuk mengeksplorasi

data,menemukan hubungan tersembunyi antara sejumlah calon variabel input

dengan sebuat variabel target. Pohon keputusan memadukan antara eksplorasi

data dan pemodelan sehingga sangat bagus sebagai langkah awal pemodelan

bahkan ketika dijadikan sebagai model akhir dari beberapa teknik lain.

2.4 Internet of Things (IoT)

Internet of Things (IoT) adalah bentuk interkoneksi perangkat yang saling

berhubungan yang dapat menghasilkan informasi yang dapat diakses dan

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

identifikasi otomatis, sebuah teknologi berbasis radio frequency identification

(RFID), yang merupakan identifikasi unik kode produk elektronik, kemudian

berkembang menjadi teknologi di mana setiap objek dapat memiliki alamat

Internet Protocol (IP).

Dengan berkembangnya infrastruktur Internet, kita memasuki tahap

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,

akurasi, dan manfaat ekonomi. Setiap objek/things mampu diidentifikasi melalui

sistem komputasi yang tertanam dan mampu beroperasi dalam infrastruktur

internet yang ada. (Tanto & Darmuji, 2019)

2.5 Algoritma K-Means

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. Adapun tujuan dari data clustering

ini adalah untuk meminimalisasi objective function yang diset dalam proses

clustering, yang pada umumnya berusaha meminimalisasikan variasi di dalam

suatu cluster dan memaksimalisasikan variasi antar cluster.

Pada awalnya dalam algoritma K-means melakukan pengambilan sebagai dari

banyaknya populasi untuk dijadikan cluster awal. Ada banyak cara dalam

memberi nilai awal misalnya dengan pengambilan data beberapa populasi data.

Setelah mendapatkan pusat cluster awal, algoritma K-Means melakukan

pengujian masing-masing komponen ke salah satu pusat cluster yang telah

didefinisikan jarak minimumnya antar komponen dengan tiap-tiap pusat clusteri.

Posisi pusat cluster akan melakukan perhitungan kembali sampai semua


komponen data dapat digolongkan kedalam setiap cluster dan akan membentuk

posisi cluster baru.

Algoritma K-Means terdapat 3 komponen didalamnya yaitu :

1. Jumlah Cluster K

Dalam metode ini jumlah k harus ditentukan dulu, setelah jumlah k

didapatkan dengan melalui pendekatan metode hirarki dapat melakukan

pengambilan cluster awal. Aturan khusus dalam menentukan jumlah cluster k

bahkan tidak ada, namun ada juga jumlah cluster yang diinginkan sesuai dengan

kebutuhan subjektif seseorang.

2. Cluster Awal

Ada banyak pendapat saat melakukan pengambilan cluster awal untuk

metode K-means misalnya pemilihan terhadap interval dari jumlah setiap

observasi, melalui pendekatan salah satu metode hirarki dan ada juga dengan

melalui pemilihan cluster secara acak dari sekumpulan observasi. Maka dengan

adanya beberapa cara pengambilan cluster awal tersebut dapat memungkinkan

solusi terbaik yang dihasilkan.

3. Ukuran Jarak

Pada tahap ini ukuran jarak juga penting dalam menempatkan observasi ke

dalam cluster berdasarkan nilai centroid terdekat. Euclidian Distance adalah jarak

yang digunakan untuk mengukur jarak dalam metode K-means.

Berikut ini adalah rumus Euclidian Distance :


√∑
m
Dik= ¿ ¿ ¿ ………………… (2.1)
j=1

Keterangan :
Dik = Titik dokumen/jarak data ke-i
M = Jumlah variable
Xij = Data yang akan dilakukan pengclusteran
Ckj = Pusat dari cluster

Jarak yang terpendek antara centroid dengan dokumen menentukan posisi

cluster suatu dokumen.

Berikut merupakan rumus penentuan centroid baru :

¿
1
¿∑
Vij= Xkj……………………….. (2.2)
k=0

Keterangan :

Vij = Centroid/ rata-rata cluster ke-i untuk variable ke-j

Ni = Jumlah data yang menjadi anggota cluster ke-i

i.k = Indeks dari cluster

j = Indeks dari variable

Xkj = Nilai data ke-k yang ada di dalam cluster tersebut untuk
variable ke-j

Algoritma K-Means bersifat partitional clustering yaitu dengan cara

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 :

1. Tentukan K sebagai jumlah cluster yang akan dibentuk.

2. Tentukan K Centroid (titik pusat cluster) awal secara random/acak.

3. Hitung jarak objek ke masing-masing centroid dari masing-masing cluster.

Lokasi centroid setiap kelompok diambil dari rata-rata (mean) semua nilai

data pada setiap fiturnya.

∑ xi ..............................(1)
i=1
v= ; i=1,2,3 … n
n

Dimana:

v : Centroid pada cluster

xi : Objek ke-i

n : Banyaknya objek/jumlah objek yang menjadi anggota cluster

4. Alokasikan masing-masing objek ke dalam centroid yang paling dekat.

Ada beberapa cara yang dapat dilakukan untuk mengukur jarak data ke

pusat kelompok diantaranya adalah dengan menggunakan Euclidian

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

5. Alokasikan kembali data ke dalam masing-masing kelompok berdasarkan

perbandingan jarak antara data dengan centroid setiap cluster yang ada.

Data dialokasikan pada kelompok yang mempunyai jarak centroid

terdekat.

Pengalokasian ini dapat dirumuskan sebagai berikut :

{
d =min ⁡{ D ¿¿
a ik= 1 ................................. (3)
0 lainnya

Dimana,

ɑik : Keanggotaan data ke-k ke cluster ke-i

ci : Nilai centroid cluster ke-i

6. Lakukan iterasi, kemudian tentukan posisi centroid baru dengan

menggunakan persamaan (1).

7. Ulangi langkah 3 jika posisi centroid baru tidak sama.

Setelah didapat hasil dari proses clustering dengan algoritma K-Means perlu

diadakan suatu evaluasi pengujian. Pengujian tersebut dengan menggunakan

metode sum squared error (SSE). Selain menggunakan SSE bisa juga dengan cara

melakukan perhitungan perbandingan antara Between-Class Variation (BCV) dan

Within-Class Variation (WCV) pada iterasi terakhir yang sering disebut dengan

rasio. Apabila hasil perhitungan pengujian yang diperoleh besar, maka semakin

bagus juga tingkat kualitas clustering tersebut (Alfina,T., dkk, 2012)


BCV merupakan rata-rata dari centroid, sedangkan WCV adalah SSE itu

sendiri. Rumus perhitungannya adalah sebagai berikut :

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 :

p∈∁ i = Jumlah semua data


k = Jumalah cluster
p = Cluster jarak terdekat
mi = Jumlah anggota dari cluster ke-i

BCV
Rasio = ................................................. (2.5)
WCV

2.6. Arduino IDE (Integrated Develovment Environment)

Arduino IDE adalah sebuah perangkat lunak yang berfungsi untuk

mengembangkan aplikasi mikrokontroler dari proses pembuatan program,

kompilasi dan upload. Arduino IDE ini juga dilengkapi dengan terminal serial,

sehingga memudahkan pengguna untuk melalukan komunikasi Usart / RS232


ke komputer. Namun, aplikasi ini belum mampu melakukan proses debug

secara simulasi maupun secara perangkat keras. Arduino IDE bersifat Open-

source, yang dapat didownload secara langsung pada halaman resminya.

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,

peneliti menambahkan library ESP8266-E12, yang telah disediakan pada Board

Manager.

2.7 NodeMCU

NodeMCU adalah sebuah platform Internet Of Things (IoT) yang bersifat

open source. NodeMCU terdiri dari perangkat keras berupa system on chip

ESP8266 dan firmware yang digunakan. Istilah NodeMCU sendiri sebenarnya

secara default tidak mengacu pada perangkat keras development kitnya melainkan

mengacu pada firmware yang digunakan. Karena NodeMCU terdiri dari perangkat

keras ESP8266 maka NodeMCU dapat diartikan sebagai board Arduinonya

ESP8266. Pada board NodeMCU, ESP8266 telah dikemas dengan berbagai fitur

layaknya mikrokontroler yang memiliki kapabilitas akses wifi juga chip

komunikasi USB to serial. Sehingga untuk memprogramnya hanya memerlukan

ekstensi kabel data USB yang sama persis dengan kabel data yang digunakan

untuk me-charger smartphone Android. Beberapa fitur yang disediakan oleh

NodeMCU antara lain bersifat open source,biaya yang tergolong rendah, smart,

interaktif dan wifi yang sudah aktif. (Setiawan, 2017)


Gambar 2 NodeMCU ESP8266
(Sumbe : https://components101.com/development-boards/nodemcu-esp8266-
pinout-features-and-datasheet)
Modul ESP8266 ini mempunyai prosessor dan memory, yang dapat

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.

(P.Pratama, 2017) (TAMBAH ARDUINO)

2.8 Sensor Ultrasonik

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

hanya membutuhkan satu jalur data. (Oktavianto, 2014)


Gambar 3 Sensor Ultrasonik
(Sumber: www.immersa-lab.com)
Sensor ini terdiri dari dua bagian, yaitu transmitter dan receiver dengan

komponen yang sama, yaitu piezoelectric transducer. Komponen ultrasonic ini

bekerja berdasarkan prinsip speaker konvensional. Hanya frekuensi responsnya

dibatasi secara tajam. Gelombang Ultrasonik adalah gelombang yang mempunyai

frekuensi lebih dari 20 KHz dan bekerja berdasarkan pantulan gelombang suara.

Gelombang ultrasonik bisa merambat pada medium padat, cair dan gas. Rangkain

sensor yang berfungsi sebagai pemancar akan memancarkan gelombang

ultrasonik dengan frekuensi tertentu, kemudian apabila terjadi benturan terhadap

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)

2.9 Sensor Load Cell

Load Cell merupakan modul timbangan yang ada pada timbangan digital,

sensor load cell disusun dari strain gauge, konduktor, dan jembatan wheatstone.

Secara teori loadcell difungsikan untuk menghitung massa suatu benda.(Wahyudi

et al., 2018)
Pada sistem yang dibangun, sensor berat digunakan sebagai pendeteksian

berat pakan pada wadah pakan kucing.

Gambar 4 Sensor Load Cell (Sensor Berat)


(sumber: www.samrasyid.com)
2.10 Sensor Water Level

Water level merupakan sensor yang berfungsi untuk mendeteksi

ketinggian air dengan output analog kemudian diolah menggunakan

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

sebaliknya. (Kusumadiarti & Qodawi, 2021)

2.11 Motor Servo

Motor servo adalah motor dengan sistem umpan balik tertutup, dimana

posisi motor akan diberitahukan kembali ke rangkaian kontrol di motor servo.

Motor terdiri dari motor, rangkaian roda gigi, potensiometer, dan rangkaian

kontrol. Potensiometer digunakan untuk menentukan batas sudut putaran servo.


Dan sudut poros motor servo diatur sesuai dengan lebar pulsa yang dikirim

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

kontrol. (Nasution et al., 2016)

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

terkumpul dalam database dapat menghasilkan informasi yang bermanfaat.

(Swara, 2016)

Ada beberapa operasi basis data diantaranya :


1. Pembuatan basis data baru (create database), yang identik dengan

pembuatan lemari arsip yang baru.

2. Penghapusan basis data (drop database), yang identik dengan perusakan

lemari arsip (sekaligus beserta isinya jika ada).

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.

5. Penambahan/pengisian data baru ke sebuah file/tabel di sebuah basis

data (insert), yang identik dengan penambahan lembaran arsip ke sebuah

map arsip.

6. Pengambilan data dari sebuah file/tabel (retrieve/search), yang identik

dengan pencarian lembaran arsip dari sebuah map arsip.

7. Pengubahan data dari sebuah file/tabel (update), yang identik dengan

perbaikan isi lembaran arsip yang ada di sebuah map arsip.

8. Penghapusan data dari sebuah file/tabel (delete), yang identik dengan

penghapusan sebuah lembaran arsip yang ada di sebuah map arsip.

2.13 Model Proses (UML)

Unified Modeling Language (UML) adalah "bahasa" yang telah

menjadi standar industri untuk memvisualisasikan, merancang, dan

mendokumentasikan sistem perangkat lunak. UML menyediakan standar untuk

merancang model sistem. Dengan menggunakan UML, Anda dapat membuat


model untuk semua jenis aplikasi perangkat lunak yang dapat berjalan di

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)

Menurut (Gata, 2013) Unified Modeling Language (UML) adalah bahasa

spesifikasi standar yang dipergunakan untuk mendokumentasikan,

menspesifikasikan dan membanngun perangkat lunak. UML merupakan

metodologi dalam mengembangkan sistem berorientasi objek dan juga merupakan

alat untuk mendukung pengembangan sistem.

2.14 Class Diagram

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

Diagram juga menunjukkan atribut-atribut dan operasi-operasi dari sebuah kelas

dan constraint yang berhubungan dengan objek yang dikoneksikan. (Hendini,

2016)

Hubungan antar kelas mempunyai keterangan yang disebut dengan

Multiplicity atau Cardinality.

Tabel 1 Multiplicity Class Diagram


Multiplicity Penjelasan
1 Satu dan hanya satu
0..* Boleh tidak ada atau 1 atau lebih
1..* 1 atau lebih
0..1 Boleh tidak ada, maksimal 1
Batasan antara. Contoh 2..4
n..n mempunyai arti minimal 2 maksimal
4
Class Diagram secara khas meliputi : Kelas (Class), Relasi Assosiations,

Generalitation dan Aggregation, attribut (Attributes), operasi (operation/method)

dan visibility, tingkat akses objek eksternal kepada suatu operasi atau attribut.

Tabel 2 Komponen Class Diagram


Relasi Fungsi Notasi

Class implementasi dari sebuah

interface, yaitu class

abstrak yang hanya

memiliki metoda

Assosiation hubungan statis antar

class.

Composition Jika suatu class tidak bisa

dan harus merupakan

bagian dari class.

Defendency Class yang menggunakan

class yang lain.


Relasi Fungsi Notasi

Generalization Sebuah relasi

generalization sepadan

dengan sebuah realasi

inheritance pada konsep

berorientasi objek.

2.14.1 Use Case Diagram

Use case diagram merupakan pemodelan untuk kelakuakn (behavior) sistem

informasi yang akan dibuat. Use case digunakan untuk mengetahui fungsi apa saja

yang ada di dalam sistem informasi dan siapa saja yang berhak menggunakan

fungsi-fungsi tersebut. (Hendini, 2016). Simbol-simbol yang digunakan dalam

Use Case Diagram yaitu:

Tabel 3 Komponen Use Case Diagram


Relasi Fungsi Notasi
Actor Actor adalah
pengguna sistem.
Actor tidak terbatas
hanya untuk manusia
saja, jika sistem
berkomunikasi
dengan aplikasi lain
dan membutuhkan
input ataupun
memberikan output
maka aplikasi
tersebut juga dapat
dianggap sebagai
actor.

Use Case Use case


digambarkan sebagai
lingkaran elips
dengan nama use
case.

Association Association
digunakan untuk
menghubungkan
actor dengan use
case.

2.14.2 Activity Diagram

Activity Diagram menggambarkan workflow (aliran kerja) atau aktivitas dari

sebuah sistem atau proses bisnis. (Hendini, 2016) Simbol-simbol yang digunakan

dalam activity Diagram yaitu:

Tabel 4 Activity Diagram


Relasi Fungsi Notasi

Intial State Mempresentasik


an dimulainya alur
kerja suatu sistem
dalam activity
diagram.

Final State Mempresentasik


an diakhirinya alur
kerja suatu sistem
dalam activity
diagram.
Activity Mempresentasik
an performa dari
beberapa tingkah laku
di dalam alur kerja.

Decition Menentukan
kapan alur dalam
Points aktivitas menjadi
bercabang.
Relasi Fungsi Notasi

Synhoronizati Fork; digunakan


on bars untuk kegiatan yang
dilakukan secara
parallel atau untuk
menggabungkan dua
kegiatan parallel
menjadi satu.

Transition Menggambarkan
Between Activity pertukaran dari contoh
alur antara aktivitas.

2.14.3 Sequence Diagram

Sequence Diagram menggambarkan kelakuan objek pada use case dengan

mendeskripsikan waktu hidup objek dan pesan yang dikirimkan dan diterima antar

objek. (Hendini, 2016) Simbol-simbol yang digunakan dalam Sequence Diagram

yaitu:

Tabel 5 Komponen Squence Diagram


Relasi Fungsi Notasi
Object Object merupakan
intance dari class dan
dituliskan tersusun
secara horizontal.

Actor Actor juga dapat


berkomunikasi dengan
object, maka actor
juga dapat diurutkan
sebagai kolom.
Relasi Fungsi Notasi
Lifeline Lifeline
mengindikasikan
keberadaan sebuah
object dalam baris
waktu.

Activation Activation
mengidentifikasikan
keberadaaan sebuah
object yang akan
melakukan sebuah
aksi.

Message Message
mengidentifikasi
komunikasi antara
object-object.

2.15 ERD (Entity Relationship Diagram)

Entity Relationship Diagram mewakili hubungan antara data dengan

mengidentifikasi jenis entitas dan hubungannya. ERD merupakan model jaringan

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

dibutuhkan dan hubungan antar data.


ERD ini juga merupakan model konseptual yang dapat mendeskripsikan

hubungan antara file yang digunakan untuk memodelkan struktur data serta

hubungan antar data . Tetapi harus mengenali sismbol – simbol dasar dalam ERD

dibawah ini :

Tabel 6 Komponen ERD


Simbol Keterangan

Entitas , yaitu kumpulan dari

objek yang dapat diidentifikasikan

secara untik

Relasi , yaitu hubungan antara

entitas satu dengan entitas

lainnya . Antara lain one to one ,

one to many , many to many

Atribut , yaitu karakteristik

dari entitas atau relasi yang

merupakan penjelasan detail

tentang entitas

Hubungan antara entitas dengan

atributnya dan himpunan entitas

dengan himpunan relasinya

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

pada komponen diatas :

1. Entitas

Entitas merupakan objek – objek dasar yang terkait didalam sistem .

Objek dasar dapat berupa orang , benda , atau hal – hal yang perlu memiliki

keterangan untuk disimpan ke database. Untuk menggambarkan entitas

dilakukan dengan cara mengikuti aturan dibawah ini :

1. Entitas berbentuk simbol persegi panjang

2. Nama entitas berupa kata benda tunggal

3. Nama entitas harus menggunakan nama yang mudah dipahami

2. Atribut

Atribut mempunyai arti properti , merupakan keterangan – keterangan

yang terkait pada sebuah entitas yang perlu disimpan sebagai ke

database.Atribut berfungsi untuk memperlejas sebuah entitas. Untuk

menggambarkan atribut yang dilakukan harus mengikuti aturan dibawah

ini :

1. Atribut berbentuk simbol ellipse

2. Nama atribut ditulis dengan simbol ellipse

3. Nama atribut harus berupa kata benda tunggal

4. Nama atribut harus menggunakan nama yang mudah dipahami


5. Atribut menghubungkan dengan entitas yang sesuai dengan

menggunakan garis

3. Relasi

Relasi atau hubungan adalah kejadian atau transaksi yang terjadi

diantara dua entitas yang keterangannya perlu disimpan ke database. Aturan

penggambaran relasi antar entitas dibawah ini :

1. Relasi berbentuk simbol belah ketupat

2. Nama relasi dituliskan di dalam simbol belah ketupat

3. Relasi menghubungkan dua entitas

4. Nama relasi harus menggunakan awal kata (me) tunggal

5. Nama relasi harus mudah dipahami.

2.16 ThingSpeak

ThingSpeak merupakan sebuah layanan internet yang menyediakan

layanan untuk pengaplikasian "Internet of Things". Thingspeak merupakan

layanan yang berisi aplikasi dan API yang bersifat open source untuk menyimpan

dan mengambil data dari berbagai perangkat yang menggunakan HTTP

(Hypertext Transfer Protocol) melalui Internet atau melalui LAN (Local Area

Network). Dengan menggunakan ThingSpeak, seseorang dapat membuat aplikasi

logging sensor, aplikasi pelacakan lokasi, dan jaringan sosial dari segala sesuatu

yang terhubung ke internet dengan pembaruan status. (Alfannizar & Rahayu,

2018)
Gambar 5 ThingSpeak
(sumber: www.hackster.io)
2.17 MySQL

MySQL merupakan server yang melayani database. Untuk membuat dan

mengolah database, kita dapat mempelajari pemrograman khusus yang disebut

query (perintah) SQL. Database sendiri dibutuhkan jika kita ingin menginput data

dari user menggunakan form HTML untuk kemudian diolah PHP agar bisa

disimpan ke dalam database MySQL. (Enterprise, 2018)

MySQL berdiri pada tahun 1979 oleh seorang programmer bernama

Michael Widenius . Untuk saat ini MySQL didukung oleh perusahaan ternama

asal swedia yaitu MySQL AB . MySQL AB sendiri didirikan oleh penemu

MySQL itu sendiri bersama dua orang lainnya yaitu David Axmark dan Allan

Larsson . Pengguna MySQL sudah meluas ke berbagai negara dikarenakan sudan

bersifat open source atau gratis, Sehingga menjadi aplikasi paling populer

digunakan pada saat ini.


MySQL adalah perangkat lunak sistem manajemen basis data yang bisa

multithreat dan juga bisa multiuser. Selain gratis dan juga sangat ideal untuk

digunakan, MySQL juga memiliki banyak kelebihan :

1. Kecepatan

MySQL memiliki kecepatan lebih cepat dari aplikasi sejenisnya .

Mekanisme dalam MySQL dapat menangani banyak data dalam waktu sedikit.

2. Dapat Dipercaya

Walapun MySQL bersifat gratis atau open source tanya dapat dipercaya

karena didukung oleh beberapa programmer yang berpengalaman diseluruh dunia

sehingga dapat mengurangi terjadinya error atau bug.

3. Mempunyai banyak tipe data

MySQL memiliki banyak sekali tipe data sehingga mampu mempermudah

pengguna.

4. Gratis

MySQL berada dibawah lisensi GPL sehingga kita bisa menggunakannya

secara legal.

Menurut (H Dhika, 2019) MySQL adalah sebuah perangkat lunak yang

terdapat didalam sistem manajemen basis data SQL (database

management system) atau yang biasa disebut DBMS yang

multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. Dalam

membuatkan mysql yang tersedia di dalam perangkat lunak yang terletak di

GPL atau yang biasa di sebut dengan General Public License. Dan tetapi
mysql ini dapat menjual dibawah komersial dalam kasus pengguna bagi

yang tidak sama cocok dengan penggunaan General Public License.

2.18 Jaringan

Jaringan komputer adalah “interkoneksi” antara 2 komputer autonomus

atau lebih, yang terhubung dengan media transmisi kabel atau tanpa kabel

(wireless). Autonomus adalah apabila sebuah komputer tidak melakukan kontrol

terhadap komputer lain dengan akses penuh, sehingga dapat membuat komputer

lain, restart, shutdown, kehilangan file atau kerusakan sistem. Dalam defenisi

networking yang lain autonomous dijelaskan sebagai jaringan yang independent

dengan manajemen sistem sendiri (punya admin sendiri), memiliki topologi

Jaringan, hardware dan software sendiri, dan dikoneksikan dengan jaringan

autonomous yang lain. (Internet merupakan contoh kumpulan jaringan

autonomous yang sangat besar.) Dua unit komputer dikatakan terkoneksi apabila

keduanya bisa saling bertukar data/informasi, berbagi resource yang dimiliki,

seperti: file, printer, media penyimpanan (hardisk, floppy disk, cd-rom, flashdisk,

dll) (Wongkar et al., 2015)

2.19 Xampp

XAMPP merupakan kompilasi dari beberapa program yang digunakan

dalam membangun dan mengembangkan sebuah web dalam satu paket. Fungsinya

adalah sebagai server yang menjalankan website berbasis PHP dan menggunakan

pengolah data MySQL dikomputer lokal (localhost). XAMPP merupakan web

server yang mudah digunakan dan dapat melayani tampilan halaman web yang

dinamis. Bagian penting XAMPP yang biasa digunakan pada umumnya :


1. XAMPP Control Panel Aplication merupakan program yang mengelola

layanan (service) XAMPP. Seperti mengaktifkan layanan (start) dan

menghentikan (stop) layanan.

2. htdoc adalah folder tempat meletakkan berkas-berkas yang akan

dijalankan. Dalam Windows, folder ini berada di C:/xampp,

3. phpMyAdmin merupakan bagian yang digunakan untuk mengelola

database.

Dalam web media pembelajaran, database digunakan sebagai pusat data

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

memodifikasi web tanpa harus mengakses internet. (Rohdiani & Rakhmawati,

2017)

2.20 Pemrograman Bahasa C

Pemrograman Bahasa C merupakansalah satu bahasa pemrograman

komputer. Dibuat pada tahun 1972 oleh Dennis Ritchie untuk Sistem Operasi

Unix di Bell Telephone Laboratories. Meskipun bahasa C dibuat untuk

memprogram sistem dan jaringan komputer namun bahasa ini juga sering

digunakan dalam mengembangkan software aplikasi. Bahasa C juga banyak

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

merupakan extensi dari bahasa C. (Abdullah, 2019)


Bab III
Analisa dan Perancangan sistem

3.1 Deskripsi Sistem

Dalam penelitian tugas akhir ini, penulis membuat rancangan sistem

pendukung adanya alat pemberi pakan kucing berbasis web dengan menggunakan

platfrom ThingSpeak serta menggunakan komponen mikrokontroller nodemcu

ESP8266. 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.

Dimana alat sudah memidai hasil proses tersebut akan dikirim

melalui modul ESP8266 ke platform Tingspeak untuk ditampilkan pada sistem

dan sebagai tindakan output yang dilakukan Arduino. Perangkat lunak terdapat di

dua sisi, yang pertama dibagian mikrokontroler, merupakan sebuah program

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

dan kemudian dilakukan proses perhitungan prediksi menggunakan metode K-

Means.

3.2 Kebutuhan perangkat Lunak

Berdasarkan Analisa yang dilakukan oleh peneliti, ada beberapa software

atau perangkat lunak yanng diperlukan, antaranya:

1. Arduino IDE, berperan sebagai tempat memprogram NodeMCU dan

komponen hardware lainnya yang dipakai dalam penelitian ini.

2. Platform Thingspeak, yang digunakan sebagai penyimpanan data untuk

penelitian ini.

3. Sistem Operasi Windows.

3.3 Kebutuhan Perangkat Keras

Berdasarkan studi yang dilakukan oleh peneliti,maka peneliti menentukan

kebutuhan perangkat keras sebagai berikut:

1. Antarmuka/Komputer server.

2. Dibutuhkan sebuah komputer yang dilengkapi dengan web browser dan

koneksi internet.

3. Arduino AtMega 2560

4. Nodemcu ESP2866.

5. Sensor Ultrasonik

6. Sensor Load Cell


7. Sensor Water Level

8. Motor servo

9. Jumper

10. Bread board

3.4 Implementasi algoritma K-Means

Urutan proses clustering dengan algoritma K-means untuk dapat

melakukan pengelompokan data menjadi beberapa cluster adalah sebagai berikut :

1. Tentukan nilai K sebagai jumlah cluster yang diinginkan. Dalam penelitian

ini data-data yang ada akan dikelompokan menjadi tiga cluster.

2. Tentukan titik pusat awal dari setiap cluster. Dalam penelitian ini titik

pusat

dilihat pada tabel 4.

Tabel 7 Data Awal Yang Akan Dihitung


Data Nama Kucing Jarak(X) Berat(Y) Tinggi Air(Z)

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 :

data ke 25 dan 35.

Tabel 8 Centroid Awal


C1 25 23 22
C2 11 13 11

3. Menghitung jarak setiap data ke titik pusat cluster atau centroid awal antara

objek ke centroid dengan perhitungan jarak Euclidean sebagai berikut :

Keterangan: xik : Objek x ke-i

√∑ {
n
2
d ij = x ik − y ik }
k=1 yik : Objek y ke-i

n : Banyaknya objek

4. Menentukan jarak terdekat dan mengelompokkannya sesuai dengan

cluster (jarak terdekat), kemudian dikuadratkan untuk langkah awal

menentukan Within Cluster Variation.

5. Menentukan pusat cluster baru dengan menghitung rata-rata (mean) dari

banyaknya jumlah anggota cluster.

Mean = Jumlah Data / Banyaknya Data


6. Menghitung jarak ratio, dengan rumus sebagai berikut :

Between Cluster Variation (BCV) = d(m1,m2) + d(m1,m3) + d(m2,m3)


Within Cluster Variation (WCV) = (Jarak Terdekat)^2
Ratio = BCV / WCV
7. Pembaruan centroid (pusat cluster) dari nilai rata-rata (mean) pada

masing-masing cluster sehingga nilai mean tersebut menjadi centroid

baru.

8. Melanjutkan penghitungan ke iterasi selanjtnya (dari langkah ke-3), jika

terdapat data yang berpindah cluster atau jika nilai ratio baru > ratio lama,
dan atau jika iterasi dihentikan jika tidak terjadi perpindahan data antar

cluster atau nilai ratio baru < ratio lama.

3.4.1 Iterasi 1

Pada iterasi 1 dipilih K jumlah cluster = 3 yang kemudian dijadikan sebagai

centroid (pusat cluster), data yang dipilih berasal dari data ke-25 dan ke-35

dengan nilai sebagai berikut :

Tabel 9 Centroid Awal


C1 25 23 22
C2 11 13 11
Kemudian, setelah ditentukan centroid, hal yang perlu dilakukan adalah

menghitung jarak satu per satu data dengan centroid nya menggunakan rumus

Eucladian Distance sehingga didapat nilai-nilai sebagai berikut :

a. Data ke-1 terhadap Centorid.

Data C1

¿ √ ( 13−25 ) + ( 10−23 ) + ( 15−22 ) = 19,02629759


2 2 2

Data C2

¿ √ ( 13−11 ) + ( 10−13 ) + ( 15−11 ) = 5,385164807


2 2 2

Dari hasil penghitungan di atas, dapat dilakukan pengelompokan atau

clustering dengan melihat jarak terdekat atau jarak terkecil dari data terhadap

centroid sehingga didapat kelompok cluster sebagai berikut :

Tabel 10 Jarak ke Centroid dan Penentuan Kelompok Cluster dari Iterasi 1


C1 C2 Kuadrat Min
Jarak Min Jarak
25 23 22 11 13 11 Jarak
19,02629759 5,385164807 C2 5,38516481 29
3,741657387 21,79449472 C1 3,74165739 14
3,605551275 21,11871208 C1 3,60555128 13
19,6977156 3 C2 3 9
3 21,54065923 C1 3 9
3 21,54065923 C1 3 9
15,55634919 11,44552314 C2 11,4455231 131
20,32240143 3,741657387 C2 3,74165739 14

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

Kemudian, lakukan langkah penghitungan nilai Between Cluster Variation

dengan menggunakan rumus Eucladian Distance di antara tiga cluster yaitu

((m1,m2), (m2,m3), (m1,m3)), selanjutnya menghitung nilai Within Cluster

Variation yaitu dengan cara menjumlahkan seluruh nilai jarak terdekat dibagi

dengan banyak jumlah data, dan dilanjutkan dengan menghitung nilai Ratio

dengan menggunakan rumus BCV/WCV sehingga didapat nilai sebagai berikut :

Tabel 11 Hasil Penghitungan BCV, WCV dan Rasio dari Iterasi 1


Between Cluster Variation (BCV) 20,42057786
Within Cluster Variation (WCV) 2205
Rasio 0,009261033

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

Tabel 13 Jarak ke Centroid dan Penentuan Kelompok Cluster dari Iterasi 2


C1 C2 Jar Min Kuadrat
25,458 22,604 21,31 12,19298 12,385 13,894 ak Jarak Min Jarak
33 17 25 246 96 74
2,75058 7,565712
18,81283453 2,750584034 C2 403 527
3,68072 13,54774
3,680725887 20,32854946 C1 589 306

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

Tabel 14 Hasil Penghitungan BCV, WCV dan Rasio dari Iterasi 2


Between Cluster Variation (BCV) 18,31404901
Within Cluster Variation (WCV) 1490,112693

Rasio 0,012290379

3.4.3 Iterasi 3

Tabel 15 Centroid Iterasi 3


C1 26,04347826 22,7173913 21,2826087
C2 12,18644068 12,6440678 14,16949153

Tabel 16 Jarak ke Centroid dan Penentuan Kelompok Cluster dari Iterasi 3


C1 C2 Kuadrat
Jar Min
26,04 22,71 21,282 12,1864 12,64 14,16 Min
ak Jarak
348 739 6087 4068 407 949 Jarak
2,8883 8,34271
19,27006847 2,888376293 C2 7629 761
3,5245 12,4224
3,524556039 20,07959599 C1 5604 9527
3,6755 13,5094
3,675520616 19,40523271 C1 2062 518
2,8410 8,07153
19,83926431 2,841044028 C2 4403 1169
2,6103 6,81379
2,610325578 19,16353367 C1 2558 9622
2,6103 6,81379
2,610325578 19,16353367 C1 2558 9622
8,0635 65,0206
16,1376112 8,063540396 C2 404 8371
3,5156 12,3596
20,44581109 3,515631773 C2 3177 6676
3,3350 11,1223
19,76681166 3,335023032 C2 2303 7863
2,7284 7,44441
20,51056715 2,728445075 C2 4507 2525
..... ..... ..... ..... .....
2,5552 6,52915
20,67209565 2,555221769 C2 2177 8288

Tabel 17 Hasil Penghitungan BCV, WCV dan Rasio dari Iterasi 3


Between Cluster Variation (BCV) 18,54954913
Within Cluster Variation (WCV) 1465,344878

Rasio 0,012658828
3.4.4 Iterasi 4

Tabel 18 Centroid Iterasi 4


C1 26,04347826 22,7173913 21,2826087
C2 12,18644068 12,6440678 14,16949153

Tabel 19 Jarak ke Centroid dan Penentuan Kelompok Cluster dari Iterasi 4


C1 C2 Kuadrat
Jar Min
26,04 22,71 21,282 12,1864 12,64 14,16 Min
ak Jarak
348 739 6087 4068 407 949 Jarak
2,8883 8,34271
19,27006847 2,888376293 C2 7629 761
3,5245 12,4224
3,524556039 20,07959599 C1 5604 9527
3,6755 13,5094
3,675520616 19,40523271 C1 2062 518
2,8410 8,07153
19,83926431 2,841044028 C2 4403 1169
2,6103 6,81379
2,610325578 19,16353367 C1 2558 9622
2,6103 6,81379
2,610325578 19,16353367 C1 2558 9622
8,0635 65,0206
16,1376112 8,063540396 C2 404 8371
3,5156 12,3596
20,44581109 3,515631773 C2 3177 6676
3,3350 11,1223
19,76681166 3,335023032 C2 2303 7863
2,7284 7,44441
20,51056715 2,728445075 C2 4507 2525
....
..... ..... . ..... .....
2,5552 6,52915
20,67209565 2,555221769 C2 2177 8288

Tabel 20 Hasil Penghitungan BCV, WCV dan Rasio dari Iterasi 4


Between Cluster Variation (BCV) 18,54954913
Within Cluster Variation (WCV) 1465,344878

Rasio 0,012658828
3.4.5 Between Cluster Variation, Within Cluster Variation dan Ratio

Dari seluruh penghitungan di atas, kemudian tercatat nilai Between

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 dapat dilihat dari nilai sebagai berikut :

Tabel 21 Nilai BCV, WCV, Rasio dan Perpindahan Anggota Cluster


Anggota Cluster
Iterasi BCV WCV Rasio
C1 C2
1 20,42057786 2205 0,00926103 48 57
2 18,31404901 1490,11269 0,01229038 48 57
3 18,54954913 1465,34488 0,01265883 46 59
4 18,54954913 1465,34488 0,01265883 46 59

3.5 Pemodelan Sistem

3.5.1 Usecase Diagram

Usecase Diagram digunakan dalam menggambarkan fungsionalitas dari

sebuah sistem. Sebuah diagram usecase akan mengindentifikasikan aktor

yang terlibat dalam kegiatan yang dapat dilakukan pada sistem. Dalam hal ini

meliputi User, Mikrokontroler, dan Platform seperti dapat dilihat.


Gambar 6 UseCase Diagram
3.5.2 Class Diagram

Class diagram adalah diagram yang digunakan untuk menampilkan

beberapa kelas yang ada dalam sistem perangkat lunak yang akan

dikembangkan Class diagram menunjukan hubungan antar class dalam sistem

yang sedang dibangun dan bagaimana mereka saling berkolaborasi untuk

memncapai suatu tujuan. Berikut penggambaran Class diagram.

Gambar 7 Class Diagram


3.5.3 Squence Diagram

Sequence diagram digunakan untuk menggambarkan urutan-urutan

kejadian yang mungkin terjadi pada sistem. Berikut adalah sequence diagram
dari sistem mikrokontroler yang dimana dalam membaca setiap sensor dan

menampilakn di platform ThingSpeak.

Gambar 8 Squence Diagram


3.5.4 State Diagram

Gambar 9 Squence Diagram


Dapat dijelaskan bahwa sistem menghubungkan jaringan untuk

mengirim data sensor, jika jaringan terputus maka sistem tidak akan

mengirim data ke platform dan akan mengecek ulang jaringan. Kemudian

jika jaringan terhubung dengan baik maka data sensor terkirim dapat

menampilkan data sensor diplatform dan tersimpan otomatis oleh database

platform.
3.5.5 Activity Diagram

Activity diagram menggambarkan berbagai alir aktivitas dalam sistem

yang di rancang sesuai dengan metode yang digunakan, maka langkah-

langkah yang dilakukan dalan activitiy diagram adalah sebagai berikut :

Gambar 10 Activity Diagram


Gambar di atas menjelaskan Sistem Mikrokontroler yang menghasilkan

data dan dikirim ke platform ThingSpeak yang akan di olah dan d hitung

menggunakan mmetode Algoritma K-Means.

3.5.6 Kerangka Pemikiran


Gambar 11 Kerangka Pemikiran
3.6 Perancangan Arsitektur Perangkat Keras

Arsitektur perancangan perangkat keras merupakan gambaran alur kerja

alat yang penulis buat, terdiri dari sensor Ultrasonik, sensor load cell, Sensor

water level, nodemcu, smartphone, laptop (personal laptop), platform thingspeak,

dan basis data.


Gambar 12 Perancangan Arsitektur Perangkat Keras
Penjelasan pada gambar di atas yaitu arduino atmega hanya memberikan

energy vcc dan GND sementara untuk nodemcu mengirim 3 data dari sensor

Ultrasonik, sensor Load Cell, sensor water level melalui jaringan berupa

smartphone dengan mengaktifkakn mode hostpot. Data yang dikirim oleh

nodemcu diinputkan oleh laptop user ke dalam database melalui platform

ThingSpeak.

3.7 Arsitektur Jaringan

Arsitektur diagram adalah penggambaran untuk jaringan alat dan sistem

yang dibuat oleh penulis. Dibuat menggunakan sistem web yang bernama draw.io

Gambar 13 Arsitektur Jaringan


3.8 Rancangan Database
3.8.1 Tabel data

Pada tabel 14 penulis membuat rancangn database dimana tabel

tersebut berisi id, tanggal, jarak, berat, tinggi air dan class dengan masing-

masing type data.

Gambar 14 Struktur Tabel Data


3.8.2 Tabel Cluster

Tabel cluster dibuat untuk menyimpan data awal yang dipilih

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

beberapa field dalam tabel cluster di antaranya ID sebagai primary key,

Cluster, idx, jarak, berat, ktair.


Gambar 15 Struktur Tabel Cluster
3.8.3 Tabel Iterasi
Tabel iterasi berfungsi sebagai penyimpanan keseluruhan hasil

algoritma K-Means dari data yang dihitung, sehingga didapat angka-angka

yang nantinya menjadi penentu dilanjutkan atau dihentikannya sebuah iterasi.

Terdapat beberapa field antara lain ID sebagai primary key, Cluster, c1

sebagai hasil hitung data dengan cluster1, c2 sebagai hasil hitung data dengan

cluster2, dan min sebagai hasil jarak terdekat dan penentu sebuah data

menjadi anggota cluster.

Gambar 16 Struktur Tabel Iterasi


3.9 Skema Alat

Perancangan Mikrokontroler adalah skema instalasi antara sensor

ultrasonik, sensor load cell, sensor water level, nodemcu esp8266, servo penulis

menggambar skema mikrokontroler ini menggunakan software yaitu fritzing.

Gambar 17 Skema Alat


3.10 Rancanngan Antarmuka Sistem

Pada tahap rancangan antarmuka sistem ini penulis merancang sistem

otomatis dengan berisi web dengan menggunakan bahasa php.

3.10.1 Rancangan Home

Gambar 18 Rancangan index


3.10.2 Rancangan Proses Data

Gambar 19 Rancangan Proses Data


Bab IV
Implementasi dan Pengujian

4.1 Tempat Penelitian

Gambar 20 Tempat Penelitian


Tempat yang penulis teliti berada di perumahan BTN Griya Mukri Indah

tepatnya Jl.Pagaden-Subang Kab.Subang Kec.Pagaden 41252.

4.2. Implementasi Program

Pada bab ini membahas tentang implementasi sistem, berupa uraian

implementasi dari perancangan sistem sebelumnya, terdiri dari installasi server,

konfigurasi dan penyajian informasi dari sistem yang dibuat serta paparan hasil

pengujian sistem.

4.2.1 Spesifikasi dan Instalasi Server dan Tool

Dalam pengimplementasian tugas akhir ini, penulis melakukan penelitian

dengan satu unit laptop dengan spesifikasi sebagai berikut :


- Processor : AMD Ryzen 3 3250U

- Processor Speed : 2.6 GHz (4M Cache; up to 3.5 Ghz; 2 Cores)

- Memory : 8 GB DDR4 on board

- Harddisk : 512 GB

- Operating system : Windows 10 Home

4.2.2 Instalasi Arduino IDE

1. Kunjungi website Arduino untuk mendapatkan link download software

Arduino IDE terbaru.

Website : https://www.arduino.cc/en/Main/Software

Gambar 21 Halaman Download Arduino IDE

2. Pilih windows installer untuk instalasi secara offline.

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 merupakan sebuah paket instalasi untuk PHP, APACHE,

MYSQL, dsd. Sehingga tidak perlu menginstal softwarre-software tersebut secara

terpisah. Untuk mendapatkan software aplikasi XAMPP dapat di download di

https://www.apachefriends.org/download.html. Berikut ini adalah cara menginstal

XAMPP.

1. Klik dua kali file xampp-windows-x64-7.3.33-0-VC15-installer.exe

Gambar 23 Icon Installer xampp


2. Berikut pilih Next.

Gambar 24 Tampilan Awal Instalasi Xampp


3. Ceklis semua pilihan pada jendela setup wizard.

Gambar 25 Pilihan instalasi xampp


4. Berikutnya kita diminta untuk memilih folder direktori instalasi
Gambar 26 Memilih folder direktori instalasi
5. Klik next tunggu hingga proses instalasi selesai

Gambar 27 Proses Installasi xampp


6. Kemudian next dan finish
Gambar 28 Xampp selesai installasi
4.2.4 Registrasi Akun ThingSpeak

Kunjungi website Thingspeak https://thingspeak.com/

Gambar 29 Halaman Utama ThingSpeak


1. Pilih Sign In untuk membuka halaman Mathwork, klik Create One untuk

membuat akun.
Gambar 30 Tampilan Sign In
2. Masukan Email Addres, Location, sesuai dengan alamat pengguna. First

Name, dan Last Name.

Gambar 31 Daftar ThingSpeak


3. Isi kolom yang tersedia.

Gambar 32 Daftar Channel Baru


4. Setelah selesai membuat akun baru masukan kembali email yang barusan

daftar. Klik Next.

Gambar 33 Login untuk membuka channel


5. Masukan Password, klik Sign In.

Gambar 34 Masukan Password


6. Pilih Channels yang barusan di buat.
Gambar 35 News Channels
7. Tampilan Channels Stats

Gambar 36 Channel Status


4.3 Implementasi Antarmuka Sistem

Gambar 37 Halaman Index


(Sumber : http://localhost/mirwa/index.php )

Gambar 38 Halaman Jarak Kucing


(Sumber : http://localhost/mirwa/ultra.php )
Gambar 39 Halaman Berat Pakan
(Sumber : http://localhost/mirwa/berat.php )

Gambar 40 Halaman Ketinggian Air Minum


(Sumber : http://localhost/mirwa/kta.php )
Gambar 41 Penentuan dan Pengisian Centroid Algoritma K-Means
(Sumber : http://localhost/mirwa/Prosesdata.php )

Gambar 42 Data Pakan Kucing


(Sumber : http://localhost/mirwa/Prosesdata.php )
Gambar 43 Hasil Iterasi 1
(Sumber : http://localhost/mirwa/Prosesdata.php )

Gambar 44 Hasil Iterasi 2


(Sumber : http://localhost/mirwa/Prosesdata.php )
Gambar 45 Hasil Iterasi 3
(Sumber : http://localhost/mirwa/Prosesdata.php )
4.4 Implementasi Perakitan dan Pengujian Alat

Berikut merupakan alat yang sudah dirakit dan pengambilan data dari

sistem dan alat penulis ditempat penelitian.


Gambar 46 Perakitan Alat

Gambar 47 Pengujian Alat


Bab V
Kesimpulan dan Saran

5.1 Kesimpulan

Sistem ini dibangun denngan menggunakan komponen mikrokontroler

yang berbasis IoT dengan menggunakan platform Thingspeak, Serta

menggunakan Sistem web.Dalam penelitian ini penulis mendapatkan beberapa

kesimpulan diantaranya :

1. 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.

2. 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.

3. Penelitian dilakukan dengan menggunakan metode perhitungan algoritma

K-Means dengan menerapkan perbandingan nilai rasio dari setiap iterasi

melalui perhitungan algoritma K-Means.

5.2 Saran

Berikut merupakan beberapa saran dari penullis untuk membuat penelitian

selanjutnya agar menjadi lebih baik lagi.

1. Dalam proses pemberian minum dilakukan secara otomatis menggunakan

water level sensor funduino pada tempat minum kucing. kemudian


dilanjutkan relay mengontrol water pump untuk mengisi air pada tempat

minum kucing.Tingkat keberhasilan water level sensor funduino dalam

mendeteksi tingkat ketinggian air pada tempat minum kucing sebesar 85

%.

2. Untuk pengerjaan selanjutnya, dapat digunakan bahan acrylic agar alat

bisa lebih kuat dan kokoh.

3. Pengembangan selanjutnya dapat ditambahkan dengan ukuran

penyimpanan makanan kucing yang lebih besar supaya makanan kucing

dapat diberikan untuk waktu yang lama.


Daftar Pustaka

Ahmad Hania, A. (2017). Mengenal Artificial Intelligence, Machine Learning, &


Deep Learning. Jurnal Teknologi Indonesia, 1(June), 1–6. https://amt-
it.com/mengenal-perbedaan-artificial-inteligence-machine-learning-deep-
learning/
Alfannizar, I., & Rahayu, Y. (2018). Perancangan Dan Pembuatan Alat Home
Electricity Based Home Appliance Controller Berbasis Internet of Things.
Jom FTEKNIK, 5(1), 1–6. https://www.neliti.com/publications/201384/
Alfina, T., & Santosa, B. (2012). Analisa Perbandingan Metode Hierarchical
Clustering, K-Means dan Gabugan Keduanya dalam Membentuk Cluster
Data (Studi Kasus : Problem Kerja Praktek Jurusan Teknik Industri ITS).
Analisa PerbandinganMetode Hierarchical Clustering, K-Means Dan
Gabungan Keduanya Dalam Cluster Data, 1(1), 1–5.
Hendini, A. (2016). Diagram. PEMODELAN UML SISTEM INFORMASI
MONITORING PENJUALAN DAN STOK BARANG (STUDI KASUS:
DISTRO ZHEZHA PONTIANAK), 25(1), 27–47.
https://doi.org/10.1145/358315.358387
Kusumadiarti, R. S., & Qodawi, H. (2021). Implementasi Sensor Water Level
Dalam Sistem Pengatur Debit Air Di Pesawahan. Jurnal Petik, 7(1), 19–29.
https://doi.org/10.31980/jpetik.v7i1.957
Maulidia, C. A. Y. U. (2019). Alarm Peringatan Dini Potensi Banjir Berbasis
Arduino 2560 Dengan Sensor Ultrasonic. Ubiquitous: Computers and Its
Applications Journal, 2, 21–28. https://doi.org/10.51804/ucaiaj.v2i1.21-28
Nasution, R. Y., Putri, H., & Hariyani, Y. S. (2016). Perancangan Dan
Implementasi Tuner Gitar Otomatis Dengan Penggerak Motor Servo
Berbasis Arduino. Jurnal Elektro Dan Telekomunikasi Terapan, 2(1), 83–94.
https://doi.org/10.25124/jett.v2i1.96
Oktavianto, A. (2014). Perancangan Robot Pemadam Api Menggunakan Kontrol
PID. Universitas Bengkulu.
Pamungkas, M. R. I., Sumaryo, S., & Wibowo, A. S. (2019). Perancangan Dan
Implementasi Sistem Monitoring Dan Pemberi Pakan Kucing Otomatis
Berbasis Android. E-Proceeding of Engineering, 6(1), 112–119.
Rohdiani, F., & Rakhmawati, L. (2017). Pengembangan Pembelajaran Berbasis
Web Pada Mata Pelajaran Dasar Elektronika di SMK Negeri 3 Jombang.
Jurnal Pendidikan Teknik Elektro, 6(1), 105–110.
Setiawan, Y. (2017). Rancang Bangun Pemantauan dan Penjadwalan Alat
Pemberi Pakan Ikan Otomatis Secara Jarak Jauh. 210093.
Sulistyorini, P. (2009). Pemodelan Visual dengan Menggunakan UML dan
Rational Rose. Jurnal Teknologi Informasi DINAMIK Volume, XIV(1), 23–
29.
Supriyanto, A. (2020). Implementasi Data Mining untuk Memprediksi Masa Studi
Mahasiswa Menggunakan Metode C4. 5 (Studi Kasus PTIK FKIP UNS).
11(2), 130–138.
https://digilib.uns.ac.id/dokumen/detail/82717/Implementasi-Data-Mining-
untuk-Memprediksi-Masa-Studi-Mahasiswa-Menggunakan-Metode-C45-
Studi-Kasus-PTIK-FKIP-UNS
Tanto, & Darmuji. (2019). Penerapan Internet of Things (IoT) Pada Alat
Monitoring Energi Listrik. Jurnal Elektronika Listrik Dan Teknologi
Informasi Terapan, 1(1), 45–51. https://ojs.politeknikjambi.ac.id/elti
WAHYUDI, W., RAHMAN, A., & NAWAWI, M. (2018). Perbandingan Nilai
Ukur Sensor Load Cell pada Alat Penyortir Buah Otomatis terhadap
Timbangan Manual. ELKOMIKA: Jurnal Teknik Energi Elektrik, Teknik
Telekomunikasi, & Teknik Elektronika, 5(2), 207.
https://doi.org/10.26760/elkomika.v5i2.207
Wahyuni, S. (2018). Ground Rapid Transit System with Magnetic Suspension - 1,
2, 3. Bundesminist Forsch Technol Forschungsber Technol Forsch Entwickl
T 74-38, 4, 42–49.
Wongkar, S., Sinsuw, A., & Najoan, X. (2015). Analisa Implementasi Jaringan
InternetDengan Menggabungkan Jaringan LAN Dan WLAN Di Desa
Kawangkoan Bawah Wilayah Amurang II. E-Journal Teknik Elektro Dan
Komputer, 4(6), 62–68.
Lampiran-Lampiran
1.Data Pakan Kucing menggunakan sensor jarak, sensor berat, sensor tinggi air.

No Nama Kucing Jarak(X) Berat(Y) Tinggi Air(Z)

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

2. Source Code Arduino IDE untuk mikrokontroler Arduino Atmega


#include <Wire.h>
#include <Servo.h>

#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

HX711_ADC LoadCell(HX711_dout, HX711_sck);

const int calVal_eepromAdress = 0;


unsigned long t = 0;

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

unsigned long stabilizingtime = 2000; // preciscion right after power-up can be


improved by adding a few seconds of stabilizing time
boolean _tare = true; //set this to false if you don't want tare to be performed in
the next step
LoadCell.start(stabilizingtime, _tare);
if (LoadCell.getTareTimeoutFlag()) {
while (1);
}
else {
LoadCell.setCalFactor(calibrationValue); // set calibration value (float)
}

}
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;

static boolean newDataReady = 0;


const int serialPrintInterval = 0; //increase value to slow down serial print
activity

// check for new data/start next conversion:


if (LoadCell.update()) newDataReady = true;

// get smoothed value from the dataset:


if (newDataReady) {
if (millis() > t + serialPrintInterval) {
float i = LoadCell.getData();
newDataReady = 0;
t = millis();

//sediakan variabel penampung data yang akan dikirim


// datakirim = 10#29.05#05
String datakirim = String(distance) + "#" + String(i) + "#" + String(nilai);
//kirimdata ke nodemcu
Serial.println(datakirim);

if (distance > 10 && distance <25){


Serial.println("Ada Kucing");
myservo.write(160);
}else{
myservo.write(30);
Serial.println("Tidak Ada Kucing");

}
}
}
}
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";

//buat variabel untuk software serial


SoftwareSerial DataSerial(D6,D7);
//12 pin D6 dan 13 pin D7 di nodemcu

//millis sebagai pengganti delay


unsigned long previosMillis = 0;
const long interval = 2000;

//variable array untuk pharsing data


String arrData[3];
void setup() {
Serial.begin(9600);
DataSerial.begin(9600);
Serial.println("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");

void loop() {
//konfigurasi millis
unsigned long currentMillis = millis(); // baca waktu millis saat ini
if (currentMillis - previosMillis >= interval)
{
//update previosMillis
previosMillis = currentMillis;

//priotaskan pembaca data dari arduino uno (hasil kirim data)


//baca data serial
String data = "";
while(DataSerial.available()>0)
{
data += char (DataSerial.read());
}
//buang spasi datanya
data.trim();

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

//tampilkan nilai sensor ke serial monitor


Serial.println("Jarak : " + arrData[0]); // nilai ldr
Serial.println("Berat : " + arrData[1]); // nilai temperatute
Serial.println("Ketinggian Air : " + arrData[2]); // nilai humidity
}
Serial.println();
}
arrData[0] = "";
arrData[1] = "";
arrData[2] = "";

}
//minta data ke arduino uno
DataSerial.println("Ya");
}

Anda mungkin juga menyukai