SISTEM PENYORTIRAN BUAH APEL MENGGUNAKAN SENSOR TCS3200 DAN MIKROKONTROLER
BERBASIS ANDROID
SKRIPSI
MUHAMMAD HAMYASA JALALUDDIN 141401149
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2020
BERBASIS ANDROID
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
MUHAMMAD HAMYASA JALALUDDIN 141401149
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2020
iii
SISTEM PENYORTIRAN BUAH APEL MENGGUNAKAN SENSOR TCS3200 DAN MIKROKONTROLER
BERBASIS ANDROID
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, Januari 2020
Muhammad Hamyasa Jalaluddin 141401149
v
PENGHARGAAN
Puji dan syukur saya ucapkan kepada Allah SWT yang telah memberikan rahmat beserta hidayah-Nya sehingga penulis dapat menyelesaikan skripsi ini. Penulis sangat beterima kasih kepada semua pihak yang telah membantu dan mendukung sehingga skripsi ini bisa diselesaikan. Penulis ingin mengucapkan terima kasih kepada:
1. Bapak Prof. Dr. Runtung Sitepu, SH., M.Hum sebagai Rektor Universitas Sumatera Utara.
2. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc sebagai Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom sebagai Ketua Program Studi S1 Ilmu Komputer dan sekaligus sebagai Dosen Pembimbing I yang telah memberikan banyak masukan kepada saya untuk menyelesaikan skripsi ini.
4. Prof. Dr. M. Zarlis, M.Sc sebagai Dosen Pembimbing II yang telah membimbing dan memberi banyak masukkan kepada penulis selama mengerjakan skripsi ini.
5. Seluruh Dosen serta staf Pegawai di Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
6. Orangtua penulis Ibunda dan Ayahanda yang tak kenal lelah memberikan dukungan semangat dan motivasi sehingga penulis dapat menyelesaikan skripsi ini.
7. Teman-Teman stambuk 2014, khususnya KOM B yang selama ini telah memberikan banyak pelajaran hidup kepada penulis, terkhusus Muhari Akbar, Muhammad Ihsan, Muhammad Rifky Bawono, Muhammad Al-Abrar Khairy, Radzie Makmun, Muhammad Hafiz Al-Qadri dan teman - teman lainnya.
8. Teman teman dari SMA Al Khor International School, khususnya grup SS.TT yaitu Rifqi, Abrar, Bima, Fansha, Elfan, Bintang, Dio, Rizky, Bang Nugraha, Odi, Andri, Odi dan lain-lain.
9. Abang dan kakak senior yang telah memberikan masukkan kepada penulis yang telah banyak membantu dan memberikan semangat kepada penulis dalam pengerjaan skripsi.
10. Teman-teman satu komplek yaitu Dea, Kak Cut dan Sari.
12. Adik adik yang juga senantiasa mendukung dan menyemangati kepada penulis.
13. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu-persatu yang telah membantu penyelesaian skripsi ini.
Semoga Allah SWT memberikan berkah, kesehatan, dan keselamatan bagi semua pihak yang telah mendukung penulis untuk menyelesaikan skripsi ini. Semoga penellitian ini bermanfaat kepada seluruh orang terutama kepada penulis sendiri.
Medan, Januari 2020 Penulis,
Muhammad Hamyasa Jalaluddin
vii
ABSTRAK
Buah apel merupakan buah musiman yang banyak dikonsumsi di Indonesia. Proses grading dilakukan untuk memilih apel berkualitasuntuk di distributorkan ke masyarakat atau konsumer. Secara sederhana grading masih memerlukan tenaga manusia dengan hasil yang tidak relevan menyertai individu. Proses grading menjadi tidak efisien jika buah apel yang dipanen terlalu banyak dengan tenaga kerja yang sedikit, jadi proses grading menjadi lama dan bagian apel disimpan di gudang sementara. Saya akan membuat alat sistem penyortir ini dengan Arduino Uno karena penggunaannya yang mudah dan praktis. Dan hasil output dari sistem ini berupa tampilan yang ada di layar hp Android yang dikirm menggunakan modul bluetooth sehingga memudahkan penggunanya.
Kata Kunci : Mikrokontroler, TCS3200, Arduino Uno, Bluetooth, Android, Sensor
SORTING SYSTEM FOR APPLE USING TCS3200 SENSOR AND MICROCONTROLLER BASED ON ANDROID
ABSTRACT
Apple is a seasonal fruit that is widely consumed in Indonesia. The grading process is carried out to select quality apples to be distributed to the public or consumers. As simple as grading still requires human labor with irrelevant results. The grading process becomes inefficient if the apples are harvested too much with little labor, so the grading process takes a long time and the apples are stored in a temporary warehouse. I will make this system with Arduino Uno because of its easy and practical use. And the output of this system is in the form of a display on the Android Smartphone that is sent using a Bluetooth module making it user friendly.
Keywords : Microcontroller, TCS3200, Arduino Uno, Bluetooth, Android, Sensor
ix DAFTAR ISI
PERSETUJUAN ...i
PERNYATAAN …...ii
UCAPAN TERIMA KASIH ...iii
ABSTRAK ...v
ABSTRACT...vi
DAFTAR ISI ...vii
DAFTAR TABEL ...x
DAFTAR GAMBAR...xi
DAFTAR LAMPIRAN...xii
BAB I PENDAHULUAN 1.1 Latar Belakang...1
1.2 Rumusan Masalah...2
1.3 Batasan Masalah...2
1.4 Tujuan Penelitian...3
1.5 Manfaat Penelitian...3
1.6 Metodologi Penelitian ...3
1.7 Sistematika Penelitian ...4
BAB II LANDASAN TEORI 2.1 Sensor Warna TCS3200…...5
2.2 Mikrokontroler ATMega328...6
2.3 Arduino Uno…...6
2.4 Buah Apel……...7
2.5 Bluetooth HC-05…...8
2.6 Konektivitas………...9
2.7 Sistem Operasi Android ... 10
2.8 Motor Servo SG90...10
2.9 Penelitian yang Relevan ...11
3.1 Analisis Sistem...13
3.1.1 Analisis Masalah...13
3.1.2 Analisis Kebutuhan Sistem...14
3.1.2.1 Kebutuhan Fungsional ...15
3.1.2.2 Kebutuhan Nonfungsional ...15
3.1.3 Pemodelan Sistem ...16
3.1.3.1 Use Case Diagram...16
3.1.3.2 Activity Diagram...17
3.1.3.3 Sequence Diagram...19
3.1.3.4 Flowchart...19
3.2 Blok Diagram Sistem ...20
3.3 Perancangan Sistem...21
3.3.1 Perancangan Perangkat Keras...22
3.3.1.1 Main Board(Arduino)...22
3.3.1.2 Sensor TCS3200...22
3.3.1.3 Konektivitas...23
3.3.2 Perancangan Perangkat Lunak...24
3.3.2.1 Perancangan Antar Muka(Interface)...24
BAB IV IMPLEMENTASI DAN PENGUJIAN 4.1 Implementasi Sistem ...25
4.1.1.Kontruksi Utama/Main Board...25
4.1.2.Sensor TCS3200 ...26
4.1.3.Bluetooth HC-05...26
4.1.4. Motor Servo MG599.... ...27
4.1.5. Motor Servo SG90...28
4.2. Penggabungan Perangkat Keras...30
4.2.1.Percobaan Mesin Penyortir Warna Buah Apel...30
4.2.2 Uraian Singkat Cara Kerja...31
4.3. Implementasi Perangkat Lunak...32
4.4. Interface Perangkat Lunak...34
4.5. Pengujian Alat...34
xi BAB IV KESIMPULAN DAN SARAN
5.1. Kesimpulan...36 5.2. Saran...36 DAFTAR PUSTAKA...37
TABEL 4.1. Pengujian Akurasi Penyortiran Warna Buah Apel ...35
xi DAFTAR GAMBAR
GAMBAR 2.1. Bentuk Fisik TCS3200. ... 5
GAMBAR 2.2. Bentuk Fisik ATMega328. ... 6
GAMBAR 2.3. Bentuk Fisik Arduino Uno. ... 7
GAMBAR 2.4. Bentuk Buah Apel ... 8
GAMBAR 2.5. Bentuk Fisik Bluetooth HC-05. ... 9
GAMBAR 2.6. Bentuk Kabel Jumper Male to Male ... 9
GAMBAR 2.7. Logo Android. ... 10
GAMBAR 2.8. Bentuk Dari Servo SG90. ... 11
GAMBAR 3.1. Diagram Fishbone Masalah Penelitian. ... 14
GAMBAR 3.2. Use Case Sistem ... 17
GAMBAR 3.3. Activity Diagram Sistem ... 18
GAMBAR 3.4. Sequence Diagram Sistem ... 19
GAMBAR 3.5. Flowchart Sistem ... 20
GAMBAR 3.6. Block Diagram Sistem ... 21
GAMBAR 3.7. Arduino Uno. ... 22
GAMBAR 3.8. Bentuk Fisik Sensor TCS3200. ... 23
GAMBAR 3.9. Kabel Jumper Male to Male ... 23
GAMBAR 4.1. Arduino Uno. ... 25
GAMBAR 4.2. Sensor TCS3200. ... 26
GAMBAR 4.3. Sensor Bluetooth HC-05...27
GAMBAR 4.4. Motor Servo MG955. ... 28
GAMBAR 4.5. Motor Servo SG90 Bagian Penyortir Warna Merah dan Hijau ... 29
GAMBAR 4.6. Motor Servo SG90 Bagian Buka Tutup Pintu ... 29
GAMBAR 4.7. Penggabungan Perangkat Keras ... 30
GAMBAR 4.8. Percobaan Mesin Penyortir Warna Buah Apel ... 31
GAMBAR 4.9. Tampilan Perangkat Lunak Android Studio ... 33
GAMBAR 4.10. Tampilan Perangkat Lunak Arduino. ... 33
GAMBAR 4.11. Interface Perangkat Lunak ... 34
LAMPIRAN 1. Listing Program ... A-1
BAB I PENDAHULUAN
1.1 Latar Belakang
Buah apel merupakan buah musiman yang banyak dikonsumsi di Indonesia.
Proses grading dilakukan untuk memilih apel berkualitas untuk di distributorkan ke masyarakat atau konsumer. Secara sederhana grading masih memerlukan tenaga manusia dengan hasil yang tidak relevan menyertai individu. Proses grading menjadi tidak efisien jika buah apel yang dipanen terlalu banyak dengan tenaga kerja yang sedikit, jadi proses grading menjadi lama dan bagian apel disimpan di gudang sementara.
Buah apel adalah buah yang cukup populer dikonsumsi dan memiliki berbagai jenis bentuk dan warna. Apel sendiri memiliki berbagai warna kulit, seperti merah, hijau, dan kekuningan. Sortasi merupakan bagian kegiatan pasca panen yang dilakukan dengan target untuk memisahkan hasil panen yang baik dan yang tidak baik. Sistem yang mau dirancang adalah salah satu pengklasifikasian berdasarkan fisik yaitu dari warna buah apel, dan akan menyortir buah sesuai dengan warnanya.
Sensor warna TCS3200 menggunakan chip TAOS TCS3200 RGB. Modul ini telah terintegrasi dengan 4 LED. Sensor warna TCS3200 dapat mendeteksi dan mengukur intensitas warna tampak. Beberapa aplikasi yang menggunakan sensor ini diantaranya: pembacaan warna, pengelompokkan barang berdasarkan warna, ambient light sensing and calibration, pencocokan warna, dan banyak aplikasi lainnya (Artha, 2012).
Dengan demikian, dapat dikatakan bahwa apel merupakan buah yang sangat disukai karena manfaatnya yang sangat berlimpah dan rasa yang nikmat.
Adakalanya pengusaha apel masih menggunakan cara manual untuk membedakan warna apel tersebut, sedangkan cara yang dilakukan oleh tenaga manusia ada kalanya tidak akurat dan berlainan dalam penentuannya. Perbedaan tersebut terjadi karena bedanya tanggapan pada setiap orang.
Bluetooth adalah protokol komunikasi wireless yang bekerja pada frekuensi radio 2.4 GHz untuk pertukaran data pada perangkat bergerak seperti pada, laptop, HP, dan lain-lain. Salah satu hasil contoh modul Bluetooth yang paling banyak digunakan adalah tipe HC-05. Modul Bluetooth HC-05 merupakan modul Bluetooth yang bisa menjadi slave ataupun master, hal ini dibuktikan dengan bisa memberikan notifikasi untuk melakukan pairing keperangkat lain, maupun perangkat lain tersebut yang melakukan pairing ke module Bluetooth HC-05. Untuk mengeset perangkat Bluetooth dibutuhkan perintah-perintah AT Command yang mana perintah AT Command tersebut akan di respon oleh perangkat Bluetooth jika modul Bluetooth tidak dalam keadaan terkoneksi dengan perangkat lain.(Alvin Dwi Rizdki, 2014).
Saya akan membuatnya dengan Arduino Uno R3 karena penggunaannya yang mudah dan praktis. Dan hasil output dari sistem ini berupa tampilan yang ada di layar hp Android yang dikirm menggunakan modul bluetooth sehingga memudahkan penggunanya.
1.2 Rumusan Masalah
Berdasarkan latar belakang diatas rumusan masalah dalam penelitian ini adalah mengelompokkan buah apel secara otomatis berdasarkan warna buah dengan alat penyortiran dan sensor warna.
1.3 Batasan Masalah
Batasan masalah penelitian sebagai berikut:
1. Medium yang digunakan adalah buah apel.
2. Hanya mendeteksi warna kulit buah apel.
3. Pengiriman data hanya menggunakan perangkat Bluetooth.
4. Penelitian ini hanya menggunakan sebuah sistem berupa Arduino Uno.
5. Menggunakan bahasa pemrograman Java berbasis Android.
3
1.4 Tujuan Penelitian Tujuan Penelitian ini adalah:
1. Mendeteksi warna dan menyortir buah apel untuk digunakan dalam bidang pertanian khususnya bagi petani apel dan supermarket.
2. Mengirimkan hasil deteksi warna buah apel ke device Android dengan menggunakan modul Bluetooth.
1.5 Manfaat Penelitian
Sistem ini diharapkan untuk bisa digunakan oleh petani yang membutuhkan alat penyortiran buah apel dengan mudah dan simple agar membantu dalam bidang pertanian.
1.6 Metodologi Penelitian
Metode penelitian yang dilakukan dalam penelitian ini adalah:
1. Studi Pustaka
Tahap ini penelitian dimulai dengan cara mencari referensi dari berbagai sumber yang terpercaya dan melakukan peninjauan pustaka melalui buku- buku, artikel ilmiah, dan penelitian-penelitian lainnya dalam bentuk jurnal yang berhubungan dengan Arduino, TCS3200 dan buah apel.
2. Analisa dan Perancangan
Pada tahap ini, dilakukan Analisa untuk penelitian sehingga dapat dirancang menggunakan flowchart.
3. Implementasi
Pada tahap ini, perancangan sistem dibuat menggunakan aplikasi berbasis android untuk menampilkan penyortiran buah.
4. Pengujian
Pada tahap ini, prototype sistem yang telah dirancang dilakukan uji coba menggunakan buah apel.
5. Dokumentasi
Pada tahap ini, penelitian yang telah dilakukan, didokumentasikan mulai dari tahap analisa sampai kepada pengujian dalam bentuk skripsi.
1.7 Sistematika Penulisan
Sistematika penulisan skripsi in iterdiri dari beberapa bagian utama, yang terdiri dari beberapa bab-bab berikut:
BAB 1 PENDAHULUAN
Bab ini berisi latar belakang dari penelitian yang akan dilakukan yang berjudul “Sistem penyortiran buah apel Menggunakan Sensor Warna TCS3200 Dan Mikrokontroler Berbasis Android”, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian dan sistematika penulisan.
BAB 2 LANDASAN TEORI
Bab ini berisi penjelasan secara umum mengenai mikrokontroller Sensor Warna TCS3200, Mikrokontroler ATMega328, Arduino Uno, Buah Apel, Bluetooth HC-05, Konektivitas, Sistem Operasi Android, serta penelitian yang relevan dan beberapa teori yang mendukung dalam penelitian.
BAB 3 ANALISIS DAN PERANCANGAN
Bab ini berisi analisis terhadap masalah penelitian dan perancangan sistem yang akan dibuat sebagai solusi permasalahan tersebut.
BAB 4 IMPLEMENTASI DAN PENGUJIAN
Bab ini dilakukan perancangan sistem dan penggabungan komponen-komponen keras, implementasi perangkat lunak dan pengujian sistem.
BAB 5 KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan dari uraian setiap bab sebelumnya dan saran berdasarkan hasil pengujian agar bermanfaat bagi penelitian kedepannya.
5
BAB II
LANDASAN TEORI
1.1. Sensor Warna TCS3200
Sensor warna TCS3200 adalah suatu chip yang bekerja dengan mengkonversikan penyambut sorotan cahaya dari suatu warna tertentu kedalam bentuk frekuensi, tersusun dari 2 (dua) bagian utama yaitu bagian penerima cahaya yang tersusun secara array dan bagian cahaya ke frekuensi. Sensor warna TCS3200 ini menggambarkan sensor cahaya yang dilengkapi filter cahaya untuk warna dasar RGB (Red-Green-Blue) dan sensor cahaya tanpa filter dengan skala 8 bit untuk tiap bagian sensornya (Artha, 2012).
Sensor ini memiliki beberapa fitur antara lain : 1. Power (2.7V to 5.5V)
2. Interface: Digital TTL
3. High-Resolution Conversion of Light Intensity to Frequency 4. Programmable Color and Full-Scale Outpun Frequency 5. Power Down Feature
6. Communicates Directly to Microcontroller 7. Size 28.4x28.4mm
Gambar 2.1. Bentuk Fisik TCS3200 (Sumber: https://www.nuttyengineer.com)
1.2. Mikrokontroller ATMega328
Mikrokontroler adalah sebuah sistem komputer fungsional dalam sebuah chip. Di dalamnya ada inti prosesor, memori (sejumlah kecil RAM, memori program, atau keduanya), dan ada input/output. Dengan kata lain, mikrokontroler adalah sebuah alat elektronika digital yang mempunyai masukan dan keluaran dan kendali dengan program yang bisa ditulis dan dihapus dengan cara spesifik (A. Amelya, 2014).
Mikrokontroler merupakan komputer didalam chip yang digunakan untuk mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya.
Secara garis besar bisa disebut “pengendali kecil” dimana sebuah system elektronik yang sebelumnya banyak memerlukan komponen-komponen pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh mikrokontroler ini (A. Amelya, 2014).
Gambar 2.2. Bentuk Fisik ATMega328 (Sumber: https://www.nuttyengineer.com)
1.3. Arduino Uno
Arduino adalah sebuah board mikrokontroller yang berbasis ATmega328.
Arduino mampu mensupport mikrokontroller, dapat dikoneksikan dengan komputer menggunakan kabel USB. Arduino seperti pengatur mikro single-board yang berkarakter open source, diturunkan dari Wiring platform, dirancang untuk meringankan penggunaan elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman
7
sendiri. Jadi Arduino sangat populer di seluruh dunia. Banyak pemula yang mencari ilmu mengenal robotika dan elektronika melalui Arduino karena sederhana dipelajari. Tapi tidak hanya pemula, yang sudah profesional pun ikut meluaskan aplikasi elektronik menggunakan Arduino. Bahasa yang digunakan dalam Arduino bukan assembler yang relatif sulit, tapi bahasa C yang disederhanakan dengan dukungan pustaka-pustaka (libraries) Arduino. Arduino juga mempermudah proses bekerja dengan mikrokontroler (Andrianto,penerbit informatika, 2010).
Gambar 2.3. Bentuk Fisik Arduino Uno (Sumber: https://www.enhancedradio.com)
1.4. Buah Apel
Apel adalah jenis buah yang dihasilkan dari pohon buah apel. Buah apel pada umumnya berwarna merah kulitnya apabila masak dan siap dimakan, akan tetapi bisa juga kulitnya berwarna hijau atau kuning. Kulit buahnya agak lembek, daging buahnya keras. Buah ini mempunyai beberapa biji didalamnya.
Pertama kali orang menanam apel di Asia Tengah. Sekarang buah apel sudah berkembang di Negara yang suhu udaranya dingin. Nama ilmiah pohon apel dalam bahasa Latin ialah Malus domestica. Apel keturunan dari Malus sieversii asal Asia Tengah, dengan sebagian genom dari Malus sylvestris (apel hutan/apel liar).
Ada beberapa manfaat dari buah apel yaitu mencegah kanker, menurunkan
kolesterol, meningkatkan sistem kekebalan tubuh, mengobati asma, mengeluarkan racun dan masih banyak lagi (Padia Games, 2017).
Gambar 2.4. Bentuk Buah Apel (Sumber: https://doktersehat.com)
1.5. Bluetooth HC-05
Bluetooth adalah protokol komunikasi wireless yang bekerja pada frekuensi radio 2.4 GHz untuk pertukaran data pada perangkat bergerak seperti pada, laptop, HP, dan lain-lain. Salah satu hasil contoh modul Bluetooth yang paling banyak digunakan adalah tipe HC-05. Modul Bluetooth HC-05 adalah modul Bluetooth yang bisa menjadi slave ataupun master, hal ini dibuktikan dengan bisa memberikan notifikasi untuk melakukan pairing keperangkat lain, maupun perangkat lain tersebut yang melakukan pairing ke module Bluetooth HC-05.
Untuk mengeset perangkat Bluetooth diperlukan perintah-perintah AT Command yang mana perintah AT Command tersebut akan di respon oleh perangkat Bluetooth jika modul Bluetooth tidak dalam keadaan terkoneksi dengan perangkat lain (L. Linarti, 2014).
9
Gambar 2.5. Bentuk Fisik Bluetooth HC-05 (Sumber: http://idebelajar.com/)
1.6. Konektivitas
Maksud dari konektivitas disini adalah bagaimana perangkat-perangkat yang digunakan dapat dihubungkan semuanya. Penulis menggunakan kabel jumper male to male sebagai konektivitas antara perangkat-perangkat elektronika seperti sensor dan modul Bluetooth dikarenakan mudah dipakai (Eka, 2018)
Gambar 2.6. Bentuk Kabel Jumper Male to Male (Sumber: https://www.gadgetkudus.com/)
1.7. Sistem Operasi Android
Android adalah sistem operasi berbasis Linux untuk telepon seluler seperti smartphone dan komputer tablet. Android mengadakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri untuk digunakan oleh macam-macam perangkat (Fitri, 2014).
Gambar 2.7. Logo Android (Sumber: https://www.theregister.co.uk)
1.8. Motor Servo SG90
Motor servo adalah sebuah perangkat atau aktuator putar (motor) yang dirancang dengan sistem kontrol umpan balik loop tertutup (servo), sehingga dapat di set-up atau di atur untuk menentukan dan memastikan posisi sudut dari poros output motor. motor servo merupakan perangkat yang terdiri dari motor DC, serangkaian gear, rangkaian kontrol dan potensiometer. Serangkaian gear yang melekat pada poros motor DC akan memperlambat putar an poros dan meningkatkan torsi motor servo, sedangkan potensiometer dengan perubahan resistansinya saat motor berputar berfungsi sebagai penentu batas posisi putaran poros motor servo.
(Trikeuni, 2014)
11
Gambar 2.8. Bentuk Dari Servo SG90 (Sumber: https://www.devobox.com)
1.9. Penelitian Yang Relevan
Beberapa penelitian yang relevan dengan penelitian yang akan dilakukan oleh penulis adalah sebagai berikut:
1. Sistem Pengukuran Mutu Buah Apel Berdasarkan Kematangan, Ukuran dan Area Bercak Menggunakan Fuzzy Inference System.
Keunggulan sistem ini digunakan untuk mendapatkan hasil grading yang lebih baik berdasarkan parameter warna, ukuran, dan bercak suatu apel. Conveyer belt digunakan untuk mengangkut apel sehingga proses grading lebih cepat. Akibatnya, citra apel mengalami motion blur. Hasil penelitian menunjukkan bahwa pada kondisi diam diperoleh akurasi sebesar 77%. Sementara kekurangan dari penelitian ini adalah pada kondisi bergerak akurasinya semakin menurun (Saiful dkk,2017).
2. Sistem Penyortiran Buah Apel Manalagi Menggunakan Sensor
Loadcell Dan
TCS3200 Berdasarkan Berat Dan Warna Berbasis Arduino Uno.
Keunggulan dari penelitian ini adalah penerapan metode Adaline di prototype tersebut berhasil. Kekurangan dari penelitian ini ada hanya
menggunakan 4 buah apel, jadi hasil dari data tersebut kurang efisien.
(Abdul dkk,2018)
3. Rancang Bangun Sistem Sortir Buah Apel Menggunakan Sensor Warna Dan Sensor Suhu. Pada penelitian ini telah dirancang dan diimplemetasikan sistem sortir buah apel menggunakan sensor RGB LDR, suhu dan kelembaban dengan memanfaatkan NRF24L01 sebagai modul pengiriman secara wireless. Kekurangan dari penelitian ini adalah menggunakan transceiver dan receiver dan tidak menggunakan Wi-Fi atau Bluetooth untuk menghubung hasil data ke Android, karena cara ini akan membuat penelitiannya lebih mudah untuk menyimpan data yang didapatkan dari sensor tersebut (Fauzin dkk, 2017).
13
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Sistem
Dalam pengerjaan suatu sistem, hal yang harus dimulai pertama sekali yaitu analisis. Di dalam fase analisis ini akan dilakukan identifikasi masalah, sehingga diketahui apa-apa saja rintangan yang akan timbul beserta solusi.
Sesudah melakukan identifikasi masalah, tahap selanjutnya adalah analisis keperluan sistem, dimana pada tahap ini akan dianalisis apa-apa saja yang dibutuhkan pada sistem. Akhirnya tahap terakhir adalah pembuatan model dan spesifikasi sistem biar diketahui gambaran yang akan dilakukan kedepannya.
3.1.1. Analisis Masalah
Didalam fase ini akan dilakukan proses penentuan masalah apa yang bakal terjadi, penyebab masalah itu terjadi, dan solusi untuk menanganinya.
Adapun pada tahapan analisis masalah bisa digambarkan dengan menggunakan Diagram Ishikawa atau biasa disebut dengan Diagram fishbone. Diagram fishbone pada masalah dalam penelitian penulis dapat dilihat pada gambar dibawah ini:
Gambar 3.1. Diagram Fishbone Masalah Penelitian
Pada gambar diagram ishikawa atau fishbone diatas, dijelaskan masalah utama yang diperoleh pada penelitian penulis yang akan diselesaikan. Diagram fishbone biasanya terbagi menjadi dua bagian, yaitu bagian kepala atau head dan bagian bone. Bagian head mengandung masalah yang terjadi pada penelitian. Sedangkan bone adalah penyebab dari masalah tersebut, terdiri dari 4 kategori yaitu mesin, material, manusia dan metode. Dalam 4 kategori ini juga ada sub kategori yang ditunjukkan oleh anak panah yang menuju ke kategori masing-masing.
3.1.2. Analisis Kebutuhan Sistem
Sesudah dilakukan analisis masalah, tahap kemudian adalah analisis kebutuhan sistem. Pada tahap ini akan dilakukan analisis berupa apa-apa saja yang diperlukan sistem ini agar tujuan sistem tersebut berhasil. Analisis kebutuhan sistem dibagi menjadi dua kategori yang umum, merupakan analisis kebutuhan fungsional dan juga kebutuhan non-fungsional.
Kebutuhan fungsional yaitu kebutuhan yang dipenuhi agar tujuan dari
15
sistem tercapai, sedangkan kebutuhan non-fungsional adalah kebutuhan yang dapat membuat kemampuan sistem menjadi lebih baik.
3.1.2.1. Kebutuhan Fungsional
Agar proses kerja penyortiran buah apel ini dapat berjalan dengan baik maka, kebutuhan fungsional yang harus dipenuhi adalah sebagai berikut:
1. Sistem harus memiliki sensor TCS3200 yang bertujuan untuk mendeteksi warna buah apel yang selanjutnya diproses oleh Arduino.
2. Sistem harus memiliki sebuah papan Arduino dimana komponen ini bertugas sebagai unit pemrosesan inti yang melakukan pembacaan, pendeteksian, dan sebagainya.
3. Sistem harus memiliki motor servo sebagai penggerak untuk memindahkan buah apel ke arah masing-masing sesuai warna.
4. Sistem harus memiliki Bluetooth sebagai pengirim data dari Arduino ke Android.
3.1.2.2. Kebutuhan Non-Fungsional
Adapun kebutuhan non-fungsional dari sistem ini agar kinerjanya menjadi lebih baik adalah sebagai berikut:
1. User friendly
Agar sistem bias digunakan lebih mudah oleh pengguna, maka mesin yang dibuat sebaiknya sesederhana mungkin bentuk dan cara penggunaanya.
2. Kualitas
Sistem memiliki komponen-komponen yang dapat menyoritr buah apel secara akurat.
3. Efektif dan Efisien
Sistem yang dibangun haruslah cepat dalam proses pendeteksi warna buah dimulai dari saat buah apel dimasukkan hingga keluar keposisi masing-masing.
4. Dokumentasi
Sistem yang dibangun memiliki petunjuk penggunaannya.
5. Kinerja
Sistem dapat mendeteksi warna buah apel yang dimasukkan dan mengeluarkan ke posisi masing-masing.
3.1.3. Pemodelan Sistem
Pemodelan sistem menggambarkan sebuah proses yang mempunyai arah untuk merancang sistem agar didapatkan gambaran umum mendampingi fungsi dan sasaran utama dari sistem yang berikutnya akan dibangun.
Pemodelan dari sistem ini meliputi Use Case Diagram, Activity Diagram dan Sequence Diagram.
3.1.3.1. Use Case Diagram
Use Case Diagram yaitu diagram yang menggambarkan apa-apa saja yang dapat dilakukan oleh pengguna (user) beserta interaksi antara user dengan sistem. Use Case diagram dari sistem yang akan dibuat dapat dilihat pada gambar dibawah ini:
17
Gambar 3.2. Use Case Sistem
Berdasarkan diagram Use case diatas, user akan memasukkan buah apel warna hijau maupun warna merah, kemudian mendeteksi warna buah tersebut.
lalu sistem menyortir buah dan meletakkan buah ke posisinya masing-masing.
Kemudian mengirimkan data jumlah dari warna buah apel ke Android.
3.1.3.2. Activity Diagram
Activity diagram adalah sebuah diagram yang menggambarkan alur aktifitas antara user dengan sistem. Didalam diagram ini dijelaskan proses kerja sistem dari awal sampai akhir terhadap aktifitas yang dilakukan oleh pengguna. Activity diagram dari sistem yang akan dibangun dapat dilihat pada gambar dibawah ini:
Gambar 3.3. Activity Diagram Sistem
Pada gambar 3.3 diatas, dijelaskan bahwa sistem dimulai dengan aktifitas user menghubungkan Bluetooth pada Android ke Arduino. Lalu user dapat memilih antara memulai sistem untuk berjalan ataupun untuk berhenti. Saat sistem berjalan, sensor akan mendeteksi nilai berdasarkan warna apel dan menyortirnya.
Lalu motor servo akan bergerak sesuai dari nilai yang diberikan dari sensor yang dihitung pada Arduino.
19
3.1.3.3. Sequence Diagram
Sequence diagram merupakan diagram yang menggambarkan interaksi antara pengguna dengan objek yang terkait pada sistem. Sequence diagram dari penelitian ini dapat dilihat pada gambar dibawah ini:
Gambar 3.4. Sequence Diagram Sistem
Seperti yang digambarkan Sequence diagram sistem diatas, terdiri dari beberapa aktivitas yaitu menghubungkan perangkat Android ke Arduino. Lalu Arduino akan membaca nilai sensor TCS3200. Kemudian nilai yang didapatkan diolah untuk menggerakkan motor servo pada alat penyortir. Setelah itu Arduino akan mengirimkan data ke Android melalui Bluetooth untuk ditampilkan ke user.
3.1.4. Flowchart
Flowchart adalah sebuah diagram yang menggambarkan urutan langkah-langkah yang secara logis yang digambarkan dengan symbol-simbol.
Gambar 3.5. Flowchart Sistem
3.2 Blok Diagram Sistem
Dibawah ini merupakan gambar dari blok diagram dari sistem yang akan dibangun:
21
Gambar 3.6 Blok Diagram Sistem Berikut ini merupakan penjelasan dari blog diagram sistem diatas:
1. Pengguna menghubungkan smartphone dengan Arduino menggunakan Bluetooth dengan mengklik tombol yang ada pada aplikasi
2. Sensor TCS3200 akan mendeteksi nilai warna pada buah apel dan mengirimkan nilainya ke Arduino.
3. Arduino akan memproses dan melakukan perhitungan berdasarkan nilai yang diterima dari sensor.
4. Motor servo itu bergerak sesuai dengan sinyal yang dikirimkan dari Arduino berdasarkan nilai sensor yang telah dihitung.
5. Arduino mengirimkan data ke Android hasil perhitungan melalui Bluetooth.
3.3. Perancangan Sistem
Pada penelitian ini, perancangan meliputi 2 bagian utama yaitu perancangan perangkat keras dan perancangan perangkat lunak. Yang dimaksud perangkat keras disini adalah komponen-komponen fisik yang digunakan yang membentuk sistem elektronika. Sedangkan perangkat lunak dalam penelitian ini
merupakan program yang dijalankan pada smartphone yang bekerja sama dengan sistem.
3.3.1 Perancangan Perangkat Keras
Pada sistem penyortiran buah apel dengan menggunakan sensor TCS3200, terdapat beberapa komponen utama dalam sistem ini agar dapat berjalan dengan lancar sesuai yang diharapkan, yaitu main board (Arduino), sensor, dan motor servo.
3.3.1.1 Main Board(Arduino)
Komponen utama dalam sistem ini yaitu Arduino itu sendiri sebagai main board (papan utama), karena alat inilah yang menjadi unit pemrosesan utama.
Gambar 3.7. Arduino Uno
(Sumber: https://www.enhancedradio.com)
3.3.1.2. Sensor TCS3200
Agar nilai warna dapat dibaca oleh Arduino, maka kita membutuhkan sensor yang bisa dibaca oleh Arduino, maka pada penelitian ini digunakan sensor TCS3200 untuk mendeteksi warna pada RGB. Berikut ini adalah bentuk fisik dari sensor RCS3200:
23
Gambar 3.8. Bentuk Fisik Sensor TCS3200 (Sumber: https://www.nuttyengineer.com)
3.3.1.3. Konektivitas
Maksud dari konektivitas disini adalah bagaimana perangkat-perangkat yang digunakan dapat dihubungkan semuanya. Penulis menggunakan kabel jumper male to male sebagai konektivitas antara perangkat-perangkat elektronika seperti sensor dan Bluetooth dikarenakan mudah dipakai.
Gambar 3.9. Kabel Jumper Male to Male (Sumber: https://www.gadgetkudus.com/)
3.3.2. Perancangan Perangkat Lunak
Perangkat lunak yang digunakan pada sistem ini adalah sebuah program dari sistem operasi android. Program aplikasi ini seperti yang sudah dijelaskan diatas memiliki kemampuan untuk menghubungkan smartphone dan Arduino.
3.3.2.1. Perancangan Antar Muka (Interface)
Aplikasi android ini memiliki 3 halaman yaitu halaman depan, halaman utama, dan halaman tampilan notifikasi pengisian. Gambar 3.10. Rancangan Halaman Depan
25
BAB IV
IMPLEMENTASI DAN PENGUJIAN
Pada tahap ini dilakukan implementasi sistem sesuai dengan analisis dan perancangan yang sudah ditentukan dan kemudian dilakukan pengujian sistem.
4.1. Implementasi Sistem
Pada tahap implementasi sistem dilakukan pembuatan sistem sesuai dengan rancangan. Yaitu konstruksi perangkat keras.
4.1.1. Konstruksi Utama/ Main Board
Kerangka utama dari sistem ini berupa sebuah papan Arduino Uno. Arduino pada sistem yang akan dibuat ini berfungsi sebagai unit pemrosesan utama, dimana motor servo, sensor TCS3200, Bluetooth HC-05, serta perangkat-perangkat lainnya akan terhubung pada papan ini.
Gambar 4.1. Arduino Nano
4.1.2. Sensor TCS3200
Alat ini menggunakan sensor warna dengan jenis TCS 3200. Sensor ini akan langsung disambungkan dengan Arduino Uno. Keluaran dari sensor TCS3200 ini sendiri berupa output digital yang berbentuk sinyal-sinyal hasil penangkapan warna RGB. Pada prinsipnya pembacaan warna pada TCS 3200 dilakukan sebagai bertahap yaitu membaca frekuensi warna dasar secara simultan dengan cara memfilter pada tiap tiap warna dasar. Berikut adalah letak sensor warna TCS3200 yang dapat dilihat pada gambar 4.2.
Gambar 4.2. Sensor TCS3200
4.1.3 Bluetooth HC-05
Alat ini akan menggunakan Bluetooth HC-05 dimana akan disambungkan langsung ke Arduino Uno yang berfungsi sebagai alat komunikasi pertukaran data perangkat antara Arduino dan Android. Berikut adalah letak Bluetooth HC-05 yang dapat dilihat pada gambar 4.3.
27
Gambar 4.3. Sensor Bluetooth HC-05
4.1.4. Motor Servo MG995
Sistem yang dibuat menggunakan Motor Servo dengan jenis MG995 yang digunakan untuk proses menggerakkan posisi buah apel yang telah tersortir secara otomatis. Alat ini memiliki 3 kabel yang akan terhubung ke Arduino, pcc, dan ground dimana alat ini akan bekerja apabila mendapat perintah dari Arduino.
Berikut adalah letak Motor Servo MG995 yang dapat dilihat pada gambar 4.4.
Gambar 4.4. Motor Servo MG995
4.1.5. Motor Servo SG90
Motor Servo SG90 yang pertama akan digunakan untuk menggerakkan pembatas antara penyortiran warna hijau dan bukan hijau secara otomatis. Alat ini memiliki 3 kabel yang akan terhubung ke Arduino, pcc, dan ground dimana alat ini akan bekerja apabila mendapat perintah dari Arduino. Berikut adalah letak Motor Servo SG90 yang dapat dilihat pada gambar 4.5. Motor Servo SG90 yang kedua adalah servo untuk pembuka dan penutup pintu buah apel yang menuju ke sensor warna yang disebut TCS3200 dan juga bisa dilihat pada Gambar 4.6.
29
Gambar 4.5. Motor Servo SG90 Bagian Penyortir Warna Merah dan Hijau
Gambar 4.6. Motor Servo SG90 Bagian Buka Tutup Pintu
4.2. Penggabungan Perangkat Keras
Penggabungan perangkat keras utama yaitu menggabungkan Arduino Uno, Bluetooth HC-05, Motor Servo MG996R, Motor Servo SG90, dan komponen- komponen lainnya. Kemudian dilakukan pembuatan kerangka sistem penyortiran warna buah apel dengan menggunakan papan kayu triplek agar semua komponen dapat tergabung dan dapat membentuk suatu mesin penyortiran warna buah apel yang utuh. Pada gambar 4.7. dapat dilihiat penggabungan perangkat keras dibawah ini.
Gambar 4.7. Penggabungan Perangkat Keras
31
4.2.1 Percobaan Mesin Penyortir Warna Buah Apel
Pada percobaan mesin ini, pengguna mempersiapkan 3 buah apel dengan warna merah, hijau, dan warna yang bukan merah dan hijau serta wadah untuk menampung ketiga wadah tersebut. Pada percobaan mesin penyortir warna buah apel dapat dilihat pada gambar 4.8. dibawah ini.
Gambar 4.8. Percobaan Mesin Penyortir Warna Buah Apel
4.2.2 Uraian Singkat Cara Kerja Mesin Penyortir Warna Buah Apel Cara Kerja :
1. Siapkan terlebih dahulu 7 buah apel dengan warna merah, hijau, dan warna bukan merah dan hijau serta wadah penampung untuk masing-masing buah apel tersebut.
2. Masukkan 7 buah apel tersebut kedalam mesin penyortir.
3. Aktifkan aplikasi penyortir warna buah apel pada Android. Kemudian sambungkan perangkat Android dengan mesin melalui Bluetooth.
4. Setelah aplikasi sudah tersambung dengan mesin penyortir, tekan tombol
“start” untuk memerintahkan mesin melakukan penyortiran warna buah apel.
5. Arduino Uno akan memerintahkan mesin untuk melakukan penyortiran, dimana servo yang pertama akan membuka pintu untuk buah yang akan jatuh ke sensor TCS3200 dan akan membaca warna objek pada buah apel apakah buah apel berwarna merah, hijau, atau bukan berwarna merah dan hijau.
6. Setelah warna buah teridentifikasi, Arduino akan memerintahkan motor servo untuk menggerakkan/menggeser apel secara otomatis ke wadah yang telah disiapkan, yaitu wadah apel berwarna merah, hijau, dan warna bukan merah dan hijau.
7. Kemudian Arduino akan memberikan data percobaan penyortiran warna buah apel ke aplikasi Android secara realtime.
8. Tekan tombol “stop” untuk memberikan perintah menghentikan mesin penyortiran warna buah apel.
4.3. Implementasi Perangkat Lunak
Implementasi perangkat lunak memiliki peranan penting antara Arduino Uno dan Smarthphone Android dalam berkomunikasi. Pada Android Studio, bahasa pemrograman yang digunakan adalah Java, sedangkan bahasa pemrograman yang di Arduino adalah C/C++. Tampilan dari perangkat lunak tersebut dapat dilihat pada gambar 4.9 dan 4.10 dibawah ini:
33
Gambar 4.9. Tampilan Perangkat Lunak Android Studio
Gambar 4.10. Tampilan Perangkat Lunak Arduino
4.4. Interface Perangkat Lunak
Gambar 4.11. Interface Perangkat Lunak
Pada gambar diatas adalah interface dari perangkat lunak yaitu program untuk Arduino Uno menggunakan bahasa pemrograman C dan aplikasi Arduino CC sebagai compiler serta program aplikasi pada Android memakai Android Studio.
File hasil dari program mesin ini berekstensi .ino yang dimasukkan kedalam Arduino Uno melalui kabel USB khusus papan Arduino.
4.5. Pengujian Alat
Pengujian ini dilakukan untuk memahami apakah alat yang telah dibuat sesuai dengan analisis dan perancangan sistem yang sebelumnya telah dilakukan dan untuk mengetahui baik tidaknya kerja dari alat ini. Pada tahap ini, pengujian yang dilakukan adalah pengujian akurasi dari penyortiran warna buah apel dengan jumlah 10 apel dimana 5 buah apel berwarna merah, 3 buah apel berwarna hijau, dan 2 buah apel berwarna bukan merah dan hijau. Hasil percobaan yang dilakukan dapat dilihat pada tabel 4.1 dibawah ini.
35
Tabel 4.1. Pengujian Akurasi Penyortiran Warna Buah Apel
Perco baan Ke-
Apel Hasil Sensor Kesalahan Sensor Merah Hijau Lain
nya Merah Hijau Lain
nya Merah Hijau Lain nya
1 2 2 3 2 2 3 0 0 0
2 2 2 3 2 2 3 0 0 0
3 2 2 3 1 2 3 1 0 0
4 2 2 3 2 2 3 0 0 0
5 2 2 3 2 2 3 0 0 0
6 2 2 3 1 2 3 1 0 0
7 2 2 3 2 1 3 0 1 0
8 2 2 3 2 2 3 0 0 0
9 2 2 3 1 1 3 1 1 0
10 2 2 3 2 2 3 0 0 0
Berdasarkan Tabel 4.1 menunjukkan bahwa pada percobaan pengujian akurasi penyortiran warna buah apel dapat dilihat hasil dari 10 percobaan yang dibuat menghasilkan hasil yang sama, yaitu 2 buah apel berwarna merah, 2 buah apel berwarna hijau, dan 3 buah apel berwarna bukan merah dan hijau. Dari hasil pengujian diatas, terdapatkan kesalahan 5 kali dari 70 buah apel, jadi dapat disimpulkan akurasi pada percobaan pengujian diatas berhasil dengan baik, dimana dapat disimpulkan pula bahwa percobaan yang penulis lakukan yaitu
“Sistem penyortiran buah apel Menggunakan Sensor Warna TCS3200 Dan Mikrokontroler Berbasis Android” telah berhasil diimplementasikan dengan baik.
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Berdasarkan pembahasan dan hasil dari penelitian yang dilakukan, maka diperoleh beberapa kesimpulan sebagai berikut:
1. Berdasarkan dari rumusan masalah yang dibuat dapat diambil kesimpulan bahwa percobaan mengelompokkan buah apel dengan cara lebih efisien berdasarkan warna buah menggunakan alat penyortiran dan sensor warna berhasil dengan baik.
2. Akurasi pada percobaan pengujian penyortiran yang dilakukan dengan 7 jumlah buah apel dengan 3 warna yang berbeda, yaitu merah, hijau, dan warna bukan merah dan hijau menghasilkan akurasi yang sangat baik hingga mencapai 90%.
5.2. Saran
Adapun saran-saran yang dapat dipertimbangkan dari hasil penelitian ini agar penelitian ini dapat dikembangkan lebih lanjut yaitu:
1. Diharapkan untuk penelitian selanjutnya dapat menggunakan objek lain selain buah apel.
2. Seharusnya untuk penelitian selanjutnya dapat dikembangkan kedalam skala yang lebih besar.
3. Untuk penelitian selanjutnya diharapkan dapat melakukan percobaan dengan jenis warna yang lebih banyak, dan juga mendeteksi dimana buah itu busuk atau tidak.
37
DAFTAR PUSTAKA
Abdul Haris, Dine Tiara Kusuma, Rifki Nugraha Pratama.
Sistem Penyortiran Buah Apel Manalagi Menggunakan Sensor Loadcell Dan Tcs3200 Berdasarkan Berat Dan Warna Berbasis Arduino Uno.Jurnal Petir Vol.11, No.1 Maret 2018
Ardhi Istiadi.
Rancang Bangun Alat Penyortir Buah Tomat Berbasis Metode Jaringan Syaraf Tiruan Menggunakan Nodemcu Versi 1.0.2018.
Eka Syahputra
Pengisian Air Minum Isi Ulang Pada depot Menggunakan Sensor Load Cell dan Arduino Uno Berbasis Android Untuk Mengontrol Volume Air Pada Galon Air. Agustus 2018.
Febyan Dimas Pramanta, Lazuardi Widya Susilo, M. Rizal Fahmi.
Sistem Cerdas Penyortir Apel Berdasarkan Warna Dan Ukuran Berbasis Mikrokontroler Arduino.Prosiding Sentrinov Vol 3,No 3, 2017.
Leo Louis
Working Principle Of Arduino And Using It As A Tool For Study And Research. International Journal of Control, Automation, Communication and Systems (IJCACS), Vol.1, No.2, April 2016
Mohammad Fauzin Amin, Sabriansyah Rizqika Akbar, Edita Rosana Widasari.
Rancang Bangun Sistem Sortir Buah Apel Menggunakan Sensor Warna Dan Sensor Suhu. Jurnal Pengembangan Teknologi Informasi Dan Ilmu Komputer Vol.1,No.3, Maret 2017.
Saiful Nur Budiman, Handayani Tjandrasa.
Sistem Pengukuran Mutu Buah Mangga Berdasarkan Kematangan Ukuran Dan Area Bercak Menggunakan Fuzzy Inference System.Vol.7, Nomor 1, Juni 2017
William Ramadhan, Hizriani.
Perancangan Alat Penyortir Permen Perbedaan Warna Menggunakan Sensor RGB LED Berbasis Mikrokontroler Arduino Uno.Jurnal
Manajemen Informatika Dan Teknik Komputer Vol 2,No.1,April 2017.
Yusuf Abdullahi Badamasi.
The Working Principle Of An Arduino. Jurnal. Nigeria Turkish Nile University. Abuja. Nigeria. 2014.
Zulkarnain Shiddiq
Pengembangan Robot pada Mikrokontroller Arduino Uno Berbasis Android untuk Mendeteksi Kelayakan Air Bersih. Januari 2018.
A-1
LISTING PROGRAM Main.kt
package com.misiharian.yayas import android.app.Dialog
import android.bluetooth.BluetoothAdapter import android.bluetooth.BluetoothDevice import android.graphics.Color
import android.graphics.drawable.ColorDrawable import android.os.Bundle
import android.os.Handler import android.view.View
import android.widget.AdapterView import android.widget.ArrayAdapter import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.github.douglasjunior.bluetoothclassiclibrary.*
import kotlinx.android.synthetic.main.dial_pilih.*
import kotlinx.android.synthetic.main.dial_proses.*
import kotlinx.android.synthetic.main.main.*
import org.json.JSONArray import java.util.*
class Main : AppCompatActivity() {
private lateinit var bluetoothAdapter : BluetoothAdapter
private lateinit var bluetoothDevice:
MutableList<BluetoothDevice>
private lateinit var bluetoothName:
MutableList<String>
private lateinit var bluetoothConfiguration:
BluetoothConfiguration
private lateinit var bluetoothService:
BluetoothService
private lateinit var bluetoothWriter: BluetoothWriter private lateinit var dialProses: Dialog
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState)
setContentView(R.layout.main) init()
}
private fun init() {
bluetoothAdapter =
BluetoothAdapter.getDefaultAdapter() if(!bluetoothAdapter.isEnabled) bluetoothAdapter.enable()
bluetoothConfiguration = BluetoothConfiguration() bluetoothConfiguration.context =
applicationContext
bluetoothConfiguration.bluetoothServiceClass = BluetoothClassicService::class.java
bluetoothConfiguration.bufferSize = 1024
bluetoothConfiguration.characterDelimiter = '\n' bluetoothConfiguration.deviceName =
resources.getString(R.string.app_name)
bluetoothConfiguration.callListenersInMainThread
= true
bluetoothConfiguration.uuid =
UUID.fromString("00001101-0000-1000-8000-00805f9b34fb") BluetoothService.init(bluetoothConfiguration) bluetoothService =
BluetoothService.getDefaultInstance()
bluetoothService.setOnScanCallback(bluetoothScanCallback) bluetoothService.setOnEventCallback(bluetoothEventCallbac k)
bluetoothWriter =
BluetoothWriter(bluetoothService)
main_btn_koneksi.setOnClickListener { dialProses = Dialog(this,
R.style.ThemeOverlay_AppCompat_Dialog_Alert)
dialProses.window!!.setBackgroundDrawable(ColorDrawable(C olor.TRANSPARENT))
dialProses.setContentView(R.layout.dial_proses);
dialProses.setCancelable(false); dialProses.show() dialProses.dp.text = ("Search for devices") Handler().postDelayed({
bluetoothService.startScan() }, 500) }
A-3
main_btn_sensor.visibility = View.GONE
main_btn_sensor.setOnClickListener {
if (main_btn_sensor.text == "Start") { dialProses = Dialog(this,
R.style.ThemeOverlay_AppCompat_Dialog_Alert)
dialProses.window!!.setBackgroundDrawable(ColorDrawable(C olor.TRANSPARENT))
dialProses.setContentView(R.layout.dial_proses);
dialProses.setCancelable(false); dialProses.show()
dialProses.dp.text = ("Sending commands") Handler().postDelayed({
bluetoothWriter.writeln("START") bluetoothWriter.writeln("STATUS") }, 500)
}
if (main_btn_sensor.text == "Stop") { dialProses = Dialog(this,
R.style.ThemeOverlay_AppCompat_Dialog_Alert)
dialProses.window!!.setBackgroundDrawable(ColorDrawable(C olor.TRANSPARENT))
dialProses.setContentView(R.layout.dial_proses);
dialProses.setCancelable(false); dialProses.show()
dialProses.dp.text = ("Sending commands") Handler().postDelayed({
bluetoothWriter.writeln("STOP") bluetoothWriter.writeln("STATUS") }, 500)
} } }
private var timeBack: Long = 0 override fun onBackPressed() {
if (timeBack + 2000 > System.currentTimeMillis()) super.onBackPressed()
else Toast.makeText(this, "Press once again to exit", Toast.LENGTH_SHORT).show()
timeBack = System.currentTimeMillis() }
private val bluetoothScanCallback :
BluetoothService.OnBluetoothScanCallback = object : BluetoothService.OnBluetoothScanCallback {
override fun onStartScan() {
bluetoothDevice = mutableListOf() bluetoothName = mutableListOf() }
override fun onStopScan() { dialProses.dismiss() pilihBluetooth() }
override fun onDeviceDiscovered(device:
BluetoothDevice?, rssi: Int) {
bluetoothDevice.add(device!!)
bluetoothName.add(device.name + "\n" + device.address)
} }
private val bluetoothEventCallback :
BluetoothService.OnBluetoothEventCallback = object : BluetoothService.OnBluetoothEventCallback {
override fun onDeviceName(deviceName: String) { } override fun onToast(message: String) { }
override fun onDataWrite(buffer: ByteArray) { } override fun onDataRead(buffer: ByteArray, length: Int) {
val data = buffer.toString(charset("UTF-8")) if (data.contains("ON")) {
main_btn_sensor.text = ("Stop") main_sensor.text = ("Active") dialProses.dismiss()
}
if (data.contains("OFF")) {
main_btn_sensor.text = ("Start") main_sensor.text = ("Not Active") dialProses.dismiss()
}
if (data.contains("]")) { val temp = JSONArray(data) parsingWarna(temp)
} }
A-5
override fun onStatusChange(status: BluetoothStatus) { if (status.name == "NONE") {
main_koneksi.text = ("Not connected") main_btn_koneksi.visibility =
View.VISIBLE }
main_btn_sensor.visibility = View.GONE if (status.name == "CONNECTING") {
main_koneksi.text = ("Connecting") main_btn_koneksi.visibility = View.GONE main_btn_sensor.visibility = View.GONE }
if (status.name == "CONNECTED") { main_koneksi.text = ("Connected")
main_btn_koneksi.visibility = View.GONE main_btn_sensor.visibility = View.VISIBLE bluetoothWriter.writeln("STATUS")
} } }
private fun pilihBluetooth() { val dd = Dialog(this,
R.style.ThemeOverlay_AppCompat_Dialog_Alert)
dd.window!!.setBackgroundDrawable(ColorDrawable(Color.TRA NSPARENT))
dd.setContentView(R.layout.dial_pilih); dd.show() dd.dp_judul.text = (dd.dp_judul.text.toString() +
"Bluetooth")
dd.dp_list.adapter = ArrayAdapter(this, android.R.layout.simple_list_item_single_choice, bluetoothName)
dd.dp_list.onItemClickListener =
AdapterView.OnItemClickListener { _, _, position, _ ->
dd.dismiss()
bluetoothService.connect(bluetoothDevice[position]) }
}
private fun parsingWarna(warna: JSONArray) { main_r.text = warna[0].toString()
main_g.text = warna[1].toString() main_b.text = warna[2].toString() }
}
A-7 SplashScreen.kt
package com.misiharian.yayas import android.Manifest
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity import android.os.Bundle
import android.os.Handler
import com.karumi.dexter.Dexter
import com.karumi.dexter.MultiplePermissionsReport import com.karumi.dexter.PermissionToken
import
com.karumi.dexter.listener.multi.MultiplePermissionsListe ner
import kotlinx.android.synthetic.main.splash_screen.*
class SplashScreen : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState)
setContentView(R.layout.splash_screen) ss_versi.text =
packageManager.getPackageInfo(packageName, 0).versionName Handler().postDelayed({ cekPermissions() }, 100) }
private fun cekPermissions() {
Dexter.withActivity(this).withPermissions(
Manifest.permission.INTERNET, Manifest.permission.BLUETOOTH,
Manifest.permission.BLUETOOTH_ADMIN,
Manifest.permission.ACCESS_COARSE_LOCATION ).withListener(object : MultiplePermissionsListener {
override fun onPermissionsChecked(report:
MultiplePermissionsReport?) {
if (report!!.areAllPermissionsGranted()) {
Handler().postDelayed({
startActivity(Intent(this@SplashScreen, Main::class.java)); finish() },500)
} else cekPermissions() }
override fun
onPermissionRationaleShouldBeShown(permissions:
MutableList<com.karumi.dexter.listener.PermissionRequest>
?, token: PermissionToken?) {
token!!.continuePermissionRequest() }
}).check() }
A-7
Arduino.ino
#include <SoftwareSerial.h>
#include <Servo.h>
#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define SK 8
SoftwareSerial BLT(3, 2);
Servo SAt, SBa, SPi;
String Data = "";
int R = 0, G = 0, B = 0;
int TR = 0, TG = 0, TB = 0;
int JR = 0, JG = 0, JB = 0;
boolean Status = false;
void setup() {
Serial.begin(9600); BLT.begin(9600);
SAt.attach(A0); SAt.write(90);
SBa.attach(A1); SBa.write(45);
SPi.attach(A2); SPi.write(90);
delay(100);
pinMode(S0, OUTPUT); pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT); pinMode(S3, OUTPUT);
pinMode(SK, INPUT); delay(100);
digitalWrite(S0, HIGH); digitalWrite(S1, LOW);
}
void loop() {
while (BLT.available() > 0) { char c = BLT.read();
if (c == '\n') {
Serial.println(Data);
if(Data == "START") { delay(2000);
Status = true;
SAt.write(90); delay(50);
SBa.write(45); delay(50);
SPi.write(20); delay(200); SPi.write(90);
JR = 0; JG = 0; JB = 0;
}
if(Data == "STOP") { Status = false;
SAt.write(90); delay(50);
SBa.write(45); delay(50);
JR = 0; JG = 0; JB = 0;
}
if(Data == "STATUS") {
if(Status) BLT.println("ON");
else BLT.println("OFF");
}
Data = "";
} else if (c != '\r') Data += c;
}
if(Status) ProsesWarna();
}
void ProsesWarna() { CekWarna();
if(TR > 50) { ApelMerah(); TR = 0; TG = 0; TB = 0; } if(TG > 50) { ApelHijau(); TR = 0; TG = 0; TB = 0; } if(TB > 500) { ApelLain(); TR = 0; TG = 0; TB = 0; } }
void CekWarna() {
digitalWrite(S2, LOW); digitalWrite(S3, LOW);
while(digitalRead(SK)){};
R = pulseIn(SK, LOW); //R = map(R, 25, 72, 255, 0);
digitalWrite(S2, HIGH); digitalWrite(S3, HIGH);
while(digitalRead(SK)){};
G = pulseIn(SK, LOW); //G = map(G, 30, 90, 255, 0);
digitalWrite(S2, LOW); digitalWrite(S3, HIGH);
while(digitalRead(SK)){};
B = pulseIn(SK, LOW); //B = map(B, 25, 70, 255, 0);
if (R < 0) R = 0; if (G < 0) G = 0; if (B < 0) B = 0;
if (R > 255) R = 255; if (G > 255) G = 255; if (B >
255) B = 255;
if(R >=27 && R <= 42 && G >= 84 && G <= 115 && B >= 74 &&
B <= 101) TR++;
else if(R >= 57 && R <= 80 && G >= 47 && G <= 65 && B
>= 60 && B <= 90) TG++;
else if(R < 200 && G < 200 && B < 200) TB++;
A-8
//Serial.print("R = "); Serial.print(R);
//Serial.print(" G = "); Serial.print(G);
//Serial.print(" B = "); Serial.print(B);
//Serial.println(); delay(1000);
}
void ApelMerah() {
SBa.write(90); delay(200); SAt.write(135); delay(1000);
SBa.write(45); delay(200); SAt.write(90); delay(1000);
JR++; KirimData();
}
void ApelHijau() {
SBa.write(10); delay(200); SAt.write(135); delay(1000);
SBa.write(45); delay(200); SAt.write(90); delay(1000);
JG++; KirimData();
}
void ApelLain() {
SAt.write(45); delay(1000); SAt.write(90); delay(1000);
JB++; KirimData();
}
void KirimData() {
String Send = "[" + String(JR) + "," + String(JG) + ","
+ String(JB) + "]";
BLT.println(Send);
SPi.write(20); delay(200); SPi.write(90);
}
A-9
DAFTAR RIWAYAT HIDUP
CURRICULUM VITAE
DATA PRIBADI / Personal Identification
Nama Lengkap : Muhammad Hamyasa Jalaluddin Tempat/ Tgl. Lahir : Lhokseumawe/ 20 Juli 1996 Jenis Kelamin : Laki-laki
Agama : Islam
Kewarnageraan : Indonesia
Alamat : Jl. Kasuari, Komplek Kasuari Residence No.10, Medan Sunggal, Kota Medan
Telepon 082184522901
Email : [email protected]
KEMAMPUAN / Capabilities
Bahasa : Bahasa Indonesia, Bahasa Inggris.
Bahasa Pemrograman : C#, C++, C, PHP.
Database : MySQL.
Lainnya : Ms. Word, Ms. Excel, Ms. Power Point, Video Editing
PENDIDIKAN FORMAL / Formal Education
[2014 – 2020] S1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
[2011 – 2014] SMA Al-Khor International School of Qatar.
[2008 – 2011] SMP Al-Khor International School of Qatar.
[2002 – 2008] SD Al-Khor International School of Qatar.
B-2
PELATIHAN DAN SEMINAR / Trainings and Workshop
Peserta Seminar Nasional Literasi Informasi (SENARAI) Fasilkom-TI Universitas Sumatera Utara [2014].
Peserta Seminar Nasional "WHAT WILL YOU BE" Universitas Sumatera Utara [2015].
Praktik Kerja Lapangan (PKL) PT. Perkebunan Nusantara IV Medan [2017]
PENGALAMAN ORGANISASI
Ikatan Mahasiswa Ilmu Komputer [IMILKOM].
[2016-2017]Ikatan Pemuda Tahan Rencong[IPTR].
[2015]Anggota Panitia „Sahabat Beasiswa Untuk Negeri‟[SABUN].
[2015-2017]Anggota Panitia „Pekan Olah Raga Dan Seni‟[PORSENI].