IMPLEMENTASI ALGORITME A*
PADA PROTOTIPE ROBOT TEMPAT SAMPAH
SKRIPSI
diajukan sebagai salah satu syarat untuk memperoleh gelar Sarjana Teknik
SYAEFUDIN
1303030011
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS TEKNIK DAN SAINS
IMPLEMENTASI ALGORITME A*
PADA PROTOTIPE ROBOT TEMPAT SAMPAH
SKRIPSI
diajukan sebagai salah satu syarat untuk memperoleh gelar Sarjana Teknik
SYAEFUDIN 1303030011
MOTTO
“Keberhasilan adalah buah dari kerja keras dan pantang menyerah, Bukan dari sekedar mimpi”
“Tidak ada hal yang percuma jika kamu melakukannya dengan niat yang baik”
PERSEMBAHAN
Skripsi ini penulis persembahkan untuk :
1. Kedua orang tua penulis bapak Zaenal Abidin dan Ibu Toifah, yang telah
banyak berkorban serta tulus dan ikhlas memberikan kasih sayang, doa serta
motivasinya sehingga penulis dapat menyelesaikan skripsi ini tepat pada
waktunya.
2. Kedua adikku tercinta Hilda Nurul Aeni dan Wahyu Hidayat. Terima kasih atas
doa dan dorongan semangatnya, mari kita berjuang bersama memberikan yang
terbaik untuk orang tua kita.
3. Alif Mulyaning Setiani yang selalu menghiburku di saat terpuruk dan selalu
membantuku saat dibutuhkan.
KATA PENGANTAR
Puji syukur penulis panjatkan kehadirat Allah SWT yang telah
melimpahkan rahmat, hidayah serta inayah-Nya, sehingga penulis dapat
menyelesaikan skripsi yang berjudul “Implementasi Algoritme A* pada Prototipe Robot Tempat Sampah” ini sesuai dengan yang ditentukan. Tidak lupa shalawat serta salam penulis panjatkan kepada junjungan agung Nabi Muhammad SAW serta
kepada para sahabat, keluarga serta para umatnya hingga di akhir zaman.
Selama penelitian maupun penyusunan skripsi ini, penulis banyak
mendapatkan ilmu pengetahuan, pengalaman, bantuan, serta dukungan yang luar
biasa. Untuk itu pada kesempatan ini penulis ingin menyampaikan ucapan terima
kasih kepada semua pihak atas segala bantuan, bimbingan dan pengarahan yang
telah diberikan kepada penulis. Ucapan terima kasih ini penulis tujukan kepada:
(1) Bapak DR. H. Syamsuhadi Irsyad, M.H. selaku Rektor Universitas
Muhammadiyah Purwokerto.
(2) Bapak M.Taufiq Tamam, S.T., M.T. selaku Dekan Fakultas Teknik dan
Sains Universitas Muhammadiyah Purwokerto serta Dosen pembimbing II
yang telah berkenan membimbing, mengarahkan, memberi petunjuk dalam
penyelesaian skripsi ini.
(3) Bapak Winarso, S.T., M.Eng. selaku Ketua Program Studi Teknik Elektro
Universitas Muhammadiyah Purwokerto.
(4) Bapak wahyu Dwiono, S.T., M.T. selaku Dosen pembimbing I yang telah
berkenan membimbing serta membantu dalam menyelesaikan skripsi ini
hingga selesai.
(5) Bapak Latiful Hayat, S.T., M.T yang selalu sabar membimbing,
memberikan petunjuk serta pengarahan penulis dalam pengerjaan skripsi
ini.
(6) Bapak/Ibu dosen Teknik Elektro Universitas Muhammadiyah Purwokerto.
(7) Kedua orang tua yang selalu memotivasi untuk terus maju dan pantang
(8) Semua pihak yang tidak dapat disebutkan satu per satu yang telah membantu
penulis hingga penulis dapat menyelesaikan skripsi ini.
Skripsi ini memang masih jauh dari kata sempurna dan masih banyak
kekurangannya. Oleh karena itu, kritik dan saran yang membangun sangat penulis
harapkan agar dapat menjadi lebih baik. Akhirnya penulis berharap semoga skripsi
ini dapat bermanfaat bagi orang lain dan menambah wawasan bagi penulis maupun
yang membaca skripsi ini.
Purwokerto, 5 Januari 2018
DAFTAR ISI
HALAMAN JUDUL ... i
HALAMAN PERSETUJUAN ... ii
HALAMAN PERNYATAAN ORISINALITAS ... iii
HALAMAN PENGESAHAN ... iv
HALAMAN PERSETUJUAN PUBLIKASI SKRIPSI ... v
MOTTO ... vi
PERSEMBAHAN ... vii
KATA PENGANTAR ... viii
DAFTAR ISI ... x
2.1 Hasil Penelitian Terdahulu ... 6
2.2 Landasan Teori ... 8
2.2.1 Robot ... 8
2.2.2 Algoritme A*... 9
2.2.3 Android... 11
2.2.4 Arduino Mega 2560 ... 14
2.2.5 Driver Motor L298N ... 20
2.2.6 Mikrokontroler ATMega 328 ... 25
2.2.7 Modul GPS U-blox Neo 6m ... 31
2.2.8 Modul Bluetooth HC-05... 34
2.2.9 Sensor Ultrasonik HC-SR04 ... 36
2.2.11 Motor DC ... 39
BAB III METODE PENELITIAN... 40
3.1 Gambaran Umum ... 40
3.2 Perancangan Sistem ... 41
3.2.1 Alat dan bahan yang digunakan ... 41
3.2.2 Persiapan awal ... 42
3.2.3 Perancangan perangkat keras ... 43
3.2.4 Perancangan peranngkat lunak... 48
3.3 Pembuatan Program Pada Arduino ... 52
3.4 Pembuatan Aplikasi Android ... 58
3.5 Implementasi Algoritme A*... 65
3.6 Mengatur (Setting) Modul Bluetooth HC-05 ... 68
3.7 Mengatur (Setting) Modul GPS U-Blox Neo 6m ... 73
BAB 4. HASIL DAN PEMBAHASAN... 78
4.1 Analisa Program Perangkat Lunak ... 78
4.1.1 Program kendali prototipe robot tempat sampah ... 78
4.1.2 Program prototipe robot tempat sampah ...104
4.2 Hasil Pengujian Sistem ...140
4.2.1 Pengujian sensor ultrasonik HC-SR04 ...140
4.2.2 Pengujian respon modul bluetooth HC-05 ...141
4.2.3 Pengujian daya tahan baterai ...144
4.2.4 Pengujian koordinat GPS antara modul GPS U-blox neo dengan smartphone android ...146
4.2.5 Pengujian sistem prototipe robot tempat sampah...148
BAB 5. PENUTUP ...152
5.1 Kesimpulan ...152
5.2 Saran ...153
DAFTAR GAMBAR
Gambar 2.1 Arduino Mega 2560 ... 15
Gambar 2.2 Modul driver motor DC L298N ... 21
Gambar 2.3 Konfigurasi pin driver motor L298N ... 22
Gambar 2.4 Diagram blok driver motor L298N ... 23
Gambar 2.5 Bentuk fisik Mikrokontroler ATMega 328 ... 26
Gambar 2.6 Konfigurasi pin ATMega 328 ... 27
Gambar 2.7 Konfigurasi orbit satelit GPS ... 32
Gambar 2.8 Modul GPS U-blox Neo 6m ... 34
Gambar 2.9 Bentuk fisik modul bluetooth HC-05 ... 35
Gambar 2.10 Sensor ultrasonik HC-SR04 ... 37
Gambar 2.11 Bentuk fisik motor servo ... 38
Gambar 3.1 Diagram alir penelitian ... 40
Gambar 3.2 Rangkaian power supply sistem ... 44
Gambar 3.3 Diagram blok sistem kendali prototipe robot tempat sampah ... 46
Gambar 3.4 Diagram grafis secara fisik sistem kendali prototipe robot tempat sampah ... 47
Gambar 3.5 Diagram alir sistem kendali penutup tempat sampah... 48
Gambar 3.6 Diagram alir sistem kerja kendali robot tempat sampah ... 49
Gambar 3.7 Icon Arduino IDE ... 53
Gambar 3.8 Tampilan awal atau sketch program aplikasi arduino IDE ... 53
Gambar 3.9 Tahapan memasukan library komponen yang digunakan... 54
Gambar 3.10 Fungsi verify/compile pada arduino IDE ... 55
Gambar 3.11 Pesan error pada saat proses compiling program ... 55
Gambar 3.12 Port arduino uno pada device manager ... 56
Gambar 3.13 Menghubungkan port arduino uno dengan arduino IDE ... 56
Gambar 3.14 Menghubungkan board arduino uno dengan arduino IDE... 57
Gambar 3.15 Fungsi upload pada arduino IDE ... 57
Gambar 3.16 Upload kode program berhasil ... 58
Gambar 3.17 Icon android studio pada menu start-apps laptop ... 59
Gambar 3.18 Membuat project baru pada android studio... 59
Gambar 3.19 Mengisi nama serta lokasi penyimpanan project baru ... 60
Gambar 3.20 Menentukan platform dan android SDK yang digunakan ... 60
Gambar 3.21 Memilih layout awal pada lembar activity ... 61
Gambar 3.22 Memberikan nama dari lembar activity yang dipilih ... 61
Gambar 3.23 Tampilan awal setelah membuat project baru... 62
Gambar 3.24 Proses membuat layout baru pada android studio ... 62
Gambar 3.25 Memberikan nama layout baru pada android studio ... 63
Gambar 3.27 Memberikan nama class baru pada android studio ... 64
Gambar 3.28 Android monitor pada android studio ... 64
Gambar 3.29 Tombol run pada android studio ... 65
Gambar 3.30 Proses running aplikasi yang dibuat pada android studio ... 65
Gambar 3.31 Cara penyambungan modul bluetooth HC-05 dengan arduino uno 68 Gambar 3.32 Masuk serial monitor pada arduino IDE ... 69
Gambar 3.33 Serial Monitor pada arduino IDE ... 70
Gambar 3.34 Memberikan perintah AT pada serial monitor ... 71
Gambar 3.35 Mengganti nama modul bluetooth HC-05 ... 71
Gambar 3.36 Mengecek pasword modul bluetooth HC-05 ... 72
Gambar 3.37 Mengatur baudrate modul bluetooth HC-05 ... 73
Gambar 3.38 Cara penyambungan modul GPS U-blox Neo 6m dengan arduino uno ... 74
Gambar 3.39 Aplikasi U-Center ... 74
Gambar 3.40 Menghubungkan U-Center dengan port arduino ... 75
Gambar 3.41 Memilih baudrate yang digunakan ... 75
Gambar 3.42 Halaman untuk konfigurasi modul GPS U-blox neo 6m ... 76
Gambar 3.43 Mengganti baudrate yang digunakan ... 77
Gambar 3.44 Menyimpan konfigurasi parameter yang dibuat ... 77
Gambar 4.1 Aplikasi Kontrol RTS... 79
Gambar 4.2 Mendeklarasikan variabel button yang digunakan ... 80
Gambar 4.3 Menghubungkan activity_main.xml dengan MainActivity.java ... 80
Gambar 4.4 Mengatur layout activity_main pada posisi landscape ... 81
Gambar 4.5 Menghubungkan variabel button dengan layout ID button ... 81
Gambar 4.6 Menghubungkan tombol menu dengan layout lembar2.xml ... 81
Gambar 4.7 Menampilkan kotak pesan saat tombol petunjuk ditekan ... 82
Gambar 4.8 Menampilkan kotak pesan saat tombol kredit ditekan ... 83
Gambar 4.9 Tampilan menu utama Kontrol RTS ... 84
Gambar 4.10 Mendeklarasikan variabel dari ImageButton... 84
Gambar 4.11 Menghubungkan lembar2.xml dengan Halaman2.java... 85
Gambar 4.12 Mengatur layout lembar2 pada posisi landscape ... 85
Gambar 4.13 Menghubungkan variabel ImageButton dengan layout ID ImageButton ... 85
Gambar 4.14 Menghubungkan tombol menu dan petunjuk dengan layout kendalimenu.xml dan petunjuk1.xml ... 86
Gambar 4.15 Tampilan kontrol robot tempat sampah ... 87
Gambar 4.16 Mendeklarasikan variabel ImageButton dan ListView ... 87
Gambar 4.17 Mendeklarasikan variabel untuk komunikasi menggunakan bluetooth ... 88
Gambar 4.21 Membuat perintah pada ImageButoon maju, mundur, kanan, kiri,
dan stop ... 90
Gambar 4.22 Mengirimkan koordinat GPS ke robot tempat sampah ... 91
Gambar 4.23 Mencari bluetooth adapter pada smartphone android ... 91
Gambar 4.24 Pengecekan ulang bluetooth pada smartphone android ... 92
Gambar 4.25 Mencari perangkat bluetooth yang aktif dengan tombol cariBT... 92
Gambar 4.26 Menyimpan daftar perangkat bluetooth yang aktif ... 93
Gambar 4.27 Menerima informasi perangkat bluetooth yang aktif ... 94
Gambar 4.28 Mengakses layanan berbasis lokasi pada smartphone android ... 94
Gambar 4.29 Membuat variabel criteria untuk memilih lokasi provider ... 94
Gambar 4.30 Mengecek lokasi GPS smartphone ... 95
Gambar 4.31 Mengecek informasi lokasi dari provider ... 95
Gambar 4.32 Membuat BroadcastReceiver ... 96
Gambar 4.33 Membuat fungsi sendData() ... 97
Gambar 4.34 Pairing dengan perangkat bluetooth ... 97
Gambar 4.35 Meminta pembaharuan saat startup ... 99
Gambar 4.36 Menghentikan pembaharuan saat activity tidak digunakan ... 99
Gambar 4.37 Fungsi onLocationChanged() ... 100
Gambar 4.38 Fungsi onStatusChanged() ... 100
Gambar 4.39 Fungsi onProviderEnabled() ... 101
Gambar 4.40 Fungsi onProviderDisabled() ... 101
Gambar 4.41 Tampilan petunjuk kontrol menu ... 101
Gambar 4.42 Class Halaman_petunjuk1.java ... 102
Gambar 4.43 Uses permission untuk mengakses bluetooth dan GPS ... 103
Gambar 4.44 Mendeskripsikan Activity setiap class yang dibuat ... 103
Gambar 4.45 Library komponen pada program kendali penutup tempat sampah ... 104
Gambar 4.46 Mendefinisikan pin yang digunakan ... 105
Gambar 4.47 Mendeklarasikan motor servo dengan nama myservo ... 105
Gambar 4.48 Fungsi void setup pada program kendali penutup tempat sampah 106 Gambar 4.49 Fungsi void loop pada program kendali penutup tempat sampah . 107 Gambar 4.50 Variabel duration dan jarak dalam integrer ... 108
Gambar 4.51 Program kerja pin trigger sensor ultrasonik HC-SR04 ... 108
Gambar 4.52 Kode program menghitung jarak pada sensor ultrasonik HC-SR04 ... 109
Gambar 4.53 Menampilkan nilai jarak pada komunikasi serial ... 110
Gambar 4.54 Perintah IF ELSE untuk menggerakan motor servo ... 110
Gambar 4.55 Library komponen kendali robot tempat sampah ... 112
Gambar 4.56 Mendeklarasikan LCD 16x4 dengan modul I2C... 112
Gambar 4.57 Mendeklarasikan pin arduino Mega 2560 yang digunakan ... 113
Gambar 4.58 Membuat variabel atau objek dari komponen yang digunakan ... 113
Gambar 4.59 Mendeklarasikan variabel yang digunakan ... 114
Gambar 4.61 Mendeklarasikan variabel jarak dan waktu ... 115
Gambar 4.62 Mendeklarasikan variabel bertipe data string ... 116
Gambar 4.63 Variabel untuk kontrol gerak motor DC ... 116
Gambar 4.64 Variabel untuk mengatur kecepatan berputar motor DC ... 117
Gambar 4.65 Fungsi void setup() kendali robot tempat sampah ... 118
Gambar 4.66 Fungsi void getAndroid() ... 119
Gambar 4.67 Fungsi void printAndroid() ... 121
Gambar 4.68 Fungsi void ambilGPSawal() ... 122
Gambar 4.69 Fungsi void printGPS() ... 123
Gambar 4.70 Fungsi void hwtan1() ... 124
Gambar 4.71 Fungsi void cariHalangan() ... 127
Gambar 4.72 Fungsi void ambilGPSterbaru() ... 128
Gambar 4.73 Fungsi void printGPSbaru() ... 129
Gambar 4.74 Fungsi void hntan2() ... 129
Gambar 4.75 Fungsi void maju() ... 130
Gambar 4.76 Fungsi void mundur() ... 132
Gambar 4.77 Fungsi void belokKiri() ... 133
Gambar 4.78 Fungsi void belokKanan() ... 134
Gambar 4.79 Fungsi void berhenti() ... 134
Gambar 4.80 Fungsi void loop() kendali robot tempat sampah ... 135
DAFTAR TABEL
Tabel 2.1 Spesifikasi arduino mega 2560 ... 15
Tabel 2.2 Logika kontrol motor dc dengan driver motor L298N ... 25
Tabel 2.3 Konfigurasi pin Port B ... 28
Tabel 2.4 Konfigurasi pin Port C ... 29
Tabel 2.5 Konfigurasi pin Port D ... 31
Tabel 4.1 Hasil pengukuran jarak dengan sensor ultrasonik HC-SR04 ... 140
Tabel 4.2 Hasil pengujian tanpa halangan ... 142
Tabel 4.3 Hasil pengujian dengan halangan ... 142
Tabel 4.4 Hasil pengujian di Lapangan UMP ... 142
Tabel 4.5 Pengukuran arus pada prototipe robot tempat sampah ... 144
Tabel 4.6 Hasil pengujian koordinat GPS antara modul GPS U-blox Neo 6m dengan smartphone android ... 147
Tabel 4.7 Hasil perhitungan perbedaan pembacaan koordinat GPS ... 148
DAFTAR SINGKATAN
CISC = Completed Instruction Set Computer
DC = Direct Current
DFU = Device Firmware Update EDR = Enchanced Data Rate
EEPROM = Electrically Erasable Programmable Read Only
GND = Ground
GPS = Global Positioning System
GSM = Global System For Mobile Communications I2C = Inter Intergrated Circuit
ICSP = In Circuit Serial Programming
ID = Identity
IDE = Integrated Development Circuit
INT = Interrupt
IO = Input Output
ISM = Industrial, Scientific, and Medical ISP = Internet Serrvice Provider
JDK = Java Development Kit
LCD = Liquid Crystal Display MISO = Master Input Slave Output MOSI = Master Input Slave Output
PC = Personal Computer
PCB = Printed Circuit Board PCINT = Pin Change Interrupt PWM = Pulse Wide Modulation
RISC = Reduce Instruction Set Computer
RTS = Robot Tempat Sampah
RX = Receiver
SDK = Standard Development Kit SMS = Short Message Service SPI = Serial Peripheral Interface SRAM = Static Random Access Memory
SS = Slave Select
T = Timer
TOSC = Timer Osilator
TTL = Transistor Transistor Logic
TX = Transmitter
UART = Universal Asyncronous Receiver/Transmitter
USART = Universal Syncronous and Asyncronous Serial and Transmitter USB = Universal Serial Bus
UUID = Universally Unique Identifier XCK = External Clock
IMPLEMENTASI ALGORITME A* PADA PROTOTIPE ROBOT TEMPAT SAMPAH
INTISARI
Prototipe robot tempat sampah merupakan sebuah robot tempat sampah yang menerapkan algoritme A* dalam sistem kendalinya. Terdapat 2 buah sistem kendali yang ada pada prototipe robot tempat sampah. Pertama sistem kendali robot tempat sampah yang berbasis arduino mega 2560 yang didalamnya diimplementasikan algortima A* untuk dapat bergerak secara otomatis berdasarkan koordinat GPS yang dikirimkan dari smartphone android dibandingkan dengan koordinat GPS pada modul GPS U-blox Ne0 6m. Modul bluetooth HC-05 digunakan sebagai perantara komunikasi antara smartphone android dengan arduino mega 2560. Selain dapat bergerak secara otomatis, juga dapat dikendalikan secara manual dimana smartphone android sebagai remote controlnya. Sistem yang kedua, adalah sistem kendali tempat sampah yang berbasis ATMega 328, dimana di dalam sistem ini terdapat sensor ultrasonik HC-SR05 sebagai input untuk membuka penutup tempat sampah yang digerakan dengan motor servo. Penelitian ini bertujuan sebagai bentuk inovasi dari tempat sampah yang mampu berjalan sendiri menuju seseorang yang ingin membuang sampah. Sehingga rasa malas untuk membuang sampah pada tempatnya dapat berkurang serta dapat menjaga kebersihan lingkungannya. Dalam pengujian yang dilakukan selisih jarak rata – rata dari pengujian yang dilakukan robot berhenti antara di dalam ruangan adalah 7,1 m dan di luar ruangan adalah 4.07 m. Kemudian untuk pembacaan Sensor ultrasonik HC-SR05 memiliki nilai akurat dan presisi yang tepat pada jarak 3 cm sampai 50 cm. Jika lebih dari 50 cm maka ada sedikit kesalahan pembacaan sebesar 1 sampai 2 cm.
IMPLEMENTATION OF A* ALGORITHM ON TRASH BIN ROBOT PROTOTYPE
ABSTRACT
The robot trash bin prototype is a robot trash bin that implements the A * algorithm in its control system. There are two control systems in the robot trash prototype. The first arduino mega 2560 dump truck-based robot control system in which the A * algortima is implemented to move automatically based on GPS coordinates sent from android smartphone compared to GPS coordinates on the U-blox Ne0 6m GPS module. HC-05 bluetooth module is used as an intermediary for the communication between the smartphone android and arduino mega 2560. In addition to moving automatically, can also be controlled manually where android smartphone as remote controlnya. The second system, which is an ATMega 328 based trash-control system. In this system there is an ultrasonic sensor HC-SR05 as input to open the trash bin cover lid driven by a servo motor. The purpose of this research as a form of innovation from trash bin walk alone to someone who wants to take out the trash. So the sense of laziness to dispose of waste in place can be reduced and can maintain cleanliness of the environment. In the test performed the difference in mean distance from the test by the robot stops between indoors is 7.1 m and outdoors is 4.07 m. Then for readings Ultrasonic sensors HC-SR05 has accurate values and precise precision at a distance of 3 cm to 50 cm. If more than 50 cm there is a slight error reading of 1 to 2 cm.
Keywords: A * Algorithm, smartphone android, Trash bin,