INTERAKSI MANUSIA DAN ROBOT BERBASIS GUI
(Graphical User Interface)
Tugas Akhir
Oleh
Rahmat Fauzi Siregar
20130120154
FAKULTAS TEKNIK
INTERAKSI MANUSIA DAN ROBOT BERBASIS GUI
(Graphical User Interface)
Tugas Akhir
Diajukan Guna Memenuhi Persyaratan untuk Memperoleh Gelar Sarjana pada Fakultas Teknik Program Studi Teknik
Elektro Universitas Muhammadiyah Yogyakarta
Oleh
Rahmat Fauzi Siregar
20130120154
FAKULTAS TEKNIK
PERNYATAAN
ii Dengan ini saya,
Nama : Rahmat Fauzi Siregar
Nomor mahasiswa : 20130120154
Menyatakan bahwa skripsi ini dengan judul: “ INTERAKSI MANUSIA
DAN ROBOT BERBASIS GUI (Graphical User Interface) ” tidak terdapat
karya yang pernah diajukan untuk memperoleh gelar kesarjanaan di suatu
Perguruan Tinggi, dan sepanjang pengetahuan saya juga tidak terdapat karya atau
pendapat yang pernah ditulis atau diterbitkan oleh orang lain, kecuali yang secara
tertulis diacu dalam naskah ini dan disebutkan dalam Daftar Pustaka. Apabila
ternyata dalam skripsi ini diketahui terdapat karya atau pendapat yang pernah
ditulis atau diterbitkan oleh orang lain maka saya bersedia karya tersebut
dibatalkan
Yogyakarta, 20 Maret 2017
iii
MOTTO
ALLAH selalu memberikan senyum dibalik kesedihan dan selalu memberikan harapan dibalik keputus-asaan.
Bila ingin mendapatkan sesuatu, belajarlah dengan memberi sesuatu.
Kesungguhan dalam hidup kita dengan berpegang teguh pada keyakinan akan membawa kita kepada kesuksesan.
Ilmu tanpa adanya agama adalah sesuatu kecacatan, dan agama tanpa ilmu merupakan kebutaan.
Keraguan bukan merupakan lawan dari keyakinan, namun keraguan adalah bagian dari keyakinan.
Untuk mencapai tujuan akhirmu, kamu harus bersabar.
Aku tidak khawatir akan jadi apa aku di masa depan nanti, apa aku akan berhasil atau gagal. Tapi yang pasti apa yang
aku lakukan sekarang akan membentukku di masa depan nanti.
PERSEMBAHAN
iv Pertama-tama, penulis mengucapkan terima kasih kepada Allah swt, yang
telah memberikan anugerah dan kesehatan sehingga penulis bisa menyelesaikan
skripsi ini.
Terselesaikannya skripsi ini tidak terlepas dari dukungan, semangat, kritik,
saran dan doa dari berbagai pihak, oleh karena itu penulis mengucapkan
terimakasih kepada:
1. Dr. Ramadhoni Syaputra S.T., M.T., sebagai pembimbing I, yang telah
mengarahkan penulis dalam menyusun skripsi ini;
2. M. Yusvin Mustar, S.T., M.Eng., sebagai pembimbing II, yang juga telah
mengarahkan penulis dalam menyusun skripsi ini.
3. Seluruh keluarga besar Mekar dan Balakka, yang selalu memberi dorongan
dan bantuan.
4. Ibu, yang selalu memberikan doa dan semangat.
5. Teman-teman terhebat Andri Pradana Siregar, Hartono Lubis, Yoga
Himawan, Fachreza N.B, Adi Nugroho, teman-teman Teknik Elektro D,
dan seluruh rekan-rekan seangkatan yang turut memberi masukan.
6. Seluruh Staf dan Karyawan Teknik Elektro UMY
7. Semua pihak yang tak mungkin penulis sebut satu persatu, yang telah
memberikan bantuan.
Akhir kata, penulis berharap agar skripsi ini memberikan manfaat terutama
bagi penulis dan pembaca.
Yogyakarta, 20 Maret 2017
Penulis
v
DAFTAR ISI
LEMBAR PENGESAHAN ... i
PERNYATAAN ... ii
MOTTO ... iii
PERSEMBAHAN ... iv
DAFTAR ISI ... v
INTISARI ... viii
BAB I ... 1
PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Perumusan Masalah ... 2
1.3 Tujuan Penelitian ... 2
1.4 Manfaat Penelitian ... 3
BAB II ... 4
TINJAUAN PUSTAKA DAN LANDASAN TEORI ... 4
2.1 Tinjauan Pustaka ... 4
2.2 Landasan Teori ... 6
2.2.1 Interaksi Manusia Dan Robot ... 6
2.2.2 Sisterm Kendali Robot ... 7
2.2.3 Java NetBeans IDE (Versi 8.2) ... 10
2.2.4 Arduino Mega 2560 ... 14
2.2.5 Library RxTx (Version 2.2) ... 21
vi
2.2.7 L298 Dual H-Bridge Driver ... 23
2.2.8 Komunikasi Data ... 24
2.2.9 RCTimer Radio Telemetry Kit 433MHz ... 28
2.3 Hipotesis ... 30
BAB III ... 31
METODE PENELITIAN ... 31
3.1 Bahan Penelitian ... 31
3.2 Alat Penelitian ... 31
BAB IV ... 41
HASIL DAN PEMBAHASAN ... 41
4.1 Hasil Penelitian ... 41
4.1.1 Tampilan Program ... 41
4.1.2 Tampilan Kit Robot Mobil Pintar 4WD ... 45
4.2 Pembahasan ... 46
4.2.1 Source Code Pada GUI ... 46
4.2.1.1 Penjelasan Source Code GUI ... 55
4.2.2 Source Code Pada Arduino Mega 2560 ... 66
4.2.2.1 Penjelasan source code pada Arduino IDE ... 67
4.2.3 Perancangan dan Wiring Kit Robot Mobil Pintar 4WD ... 71
4.3 Cara Kerja Alat ... 73
4.4 Pengujian ... 74
4.4.1 Prinsip Kerja GUI ... 74
4.4.2 Prinsip Kerja Tombol Koneksi ... 75
4.4.3 Prinsip Kerja Tombol Navigasi ... 78
vii
4.4.5 Judul , Nama Universitas, Logo dan Versi ... 86
4.4.6 Jarak jangkauan Transmisi ... 87
BAB V ... 88
KESIMPULAN DAN SARAN ... 88
5.1 Kesimpulan ... 88
5.2 Saran ... 89
DAFTAR PUSTAKA ... 90
INTISARI
Perkembangan teknologi interaksi pada umumnya, tidak lepas dari pesatnya
perkembangan teknologi interaksi manusia dan komputer saat ini, sehingga
mendukung user untuk dapat mengembangkan berbagai model interaksi, khususnya
interaksi manusia dan robot. Penelitian ini mengusulkan sebuah perancangan dan
pembuatan model interaksi manusia dan robot, dalam bentuk tampilan visual
pengontrolan gerak robot pada komputer. Objek interaksi yang digunakan pada
penelitian ini adalah kit mobil pintar 4 WD. Beberapa tools digunakan untuk
membangun sebuah sistem pengontrolan robot pada saat melakukan interaksi,
diantaranya Netbeans IDE dan Arduino. Algoritma kontrol diterapkan untuk
membangun sebuah sistem pengontrolan yang optimal dalam memodelkan sebuah
interaksi manusia dan robot. Model interaksi manusia dan robot sepenuhnya
dilakukan oleh user dalam mengontrol gerak robot. Model interaksi yang
diusulkan dapat diimplementasikan secara riil, dalam merancang dan membuat
sebuah pemodelan interaksi manusia dan robot.
1
BAB I
PENDAHULUAN
1.1Latar Belakang
Interaksi manusia dan komputer (IMK) adalah sebuah disiplin ilmu
yang mempelajari perancangan, implementasi, dan evaluasi sistem
komputasi interaktif berbagai aspek terkait, dalam perkembangannya
teknologi interaksi saat ini sangat begitu pesat, khususnya pada interaksi
manusia dan robot, dapat dilihat dari banyaknya produsen electronics dan
software, yang menawarkan berbagai jenis tools yang dapat digunakan
untuk merancang dan membuat sebuah model interaksi yang lebih praktis
dan efisien. Model interaksi membantu manusia untuk mengerti apa yang
terjadi diantara pengguna dan sistem, menerjemahkan tujuan, antara apa
yang diinginkan user dan apa yang harus dikerjakan sistem.
Robot yang digunakan sebagai media objek interaksi manusia dan
robot adalah kit robot mobil pintar 4 WD (4 wheel drive robot smart car
kit). Robot kit mobil pintar memiliki fungsi gerak yang dapat bergerak
maju, mundur, belok kanan, maupun belok kiri. Setiap pergerakan robot
digerakkan menggunakan motor DC yang telah terpasang pada tiap-tiap
roda robot, gambar 1.1 memperlihatkan kit robot mobil pintar dengan 4
buah roda penggerak.
2 Algoritma dan pengontrolan robot di buat dan diterapkan untuk
membangun sistem pengontrolan yang optimal dalam melakukan interaksi
pada robot. Beberapa tools diperlukan untuk membuat sistem pengontrolan,
diantaranya penggunaan software Netbeans IDE sebagai pemrosesan data
pengontrolan pergerakan robot, dan pemodelan visual interaksi, sedangkan
Arduino yang menggunakan mikrokontroler, berfungsi sebagai sistem
pengontrol motor DC untuk menghasilkan gerakan robot. Sistem yang
dibangun diharapkan mampu menghasilkan sebuah pemodelan interaksi
manusia dan robot, serta dapat diimplementasikan secara riil, sehingga
mampu memberikan nuansa baru dalam berinteraksi dengan robot.
1.2Perumusan Masalah
Saat ini model interaksi manusia dan robot, banyak dimodelkan
dalam bentuk pengontrolan berupa tombol (button) ON/OFF dan remote
control baik itu secara wireless maupun menggunakan cable, berbeda
halnya dengan interaksi manusia dan robot yang dikerjakan pada penelitian
ini. Interaksi manusia dan robot yang dilakukan pada penelitian ini
dimodelkan dalam bentuk tampilan visual pada komputer dalam melakukan
pengontrolan gerakan robot. User menjadi operator sepenuhnya dalam
melakukan pengendalian interaksi, sehingga dengan adanya pemodelan
interaksi ini, dapat menambahkan model interaksi manusia dan robot, yang
telah ada sebelumnya. Tampilan visual dirancang dalam GUI (Grapchical
User Interface) dibangun di atas software NetBeans IDE.
1.3Tujuan Penelitian
Merancang dan mengimplementasikan model interaksi manusia dan
robot, dalam bentuk GUI (Graphical User Interface) dalam melakukan
3
1.4Manfaat Penelitian
Kegiatan penelitian ini diharapkan dapat memberikan manfaat sebagai
berikut:
1. GUI (Grapchical User Interface) dapat dirancang sesuai dengan
kebutuhan.
2. Pengontrolan robot dengan cable atau wireless yang memakai sistem
remote memerlukan komponen tambahan dan biaya yang lebih mahal,
sehingga dapat digantikan dengan memakai sistem visual.
3. Bagi akademisi, penelitian ini dapat dikembangkan sehingga nantinya
dapat diaplikasikan pada bidang lain yang akan memberikan manfaat
4
BAB II
TINJAUAN PUSTAKA DAN LANDASAN TEORI
2.1Tinjauan Pustaka
Beberapa penelitian yang berhubungan dengan Interaksi
Manusia-Robot (Human – Robot Interaction) dan Graphical User Interface (GUI)
diantaranya :
Interaksi manusia-robot memungkinkan pertukaran informasi antara pengguna manusia dengan berbagai jenis mesin, komputer dan perangkat elektronik lainnya. Interaksi dengan perangkat modern ini paling sering dilakukan melalui visual, auditori atau taktil antarmuka pengguna (Jaka Sodnik dan Saso Tomazic, 2015).
Pengujian software secara umum dan Graphical User Interface
(GUI) khususnya adalah salah satu tantangan utama dalam siklus hidup dari
setiap sistem perangkat lunak. Pengujian GUI secara inheren lebih sulit
daripada pengujian antarmuka tradisional (remote control) dan
command-line. Beberapa faktor yang membuat pengujian GUI berbeda dari pengujian
perangkat lunak tradisional dan secara signifikan lebih sulit adalah: sejumlah besar objek, tampilan yang berbeda dan nuansa objek, banyak parameter yang terkait dengan setiap objek, pengungkapan progresif, input
yang kompleks dari berbagai sumber, dan output grafis. Teknik – teknik
pengujian yang sudah ada perlu disesuaikan / ditingkatkan untuk GUI, dan teknik pengujian baru yang diinginkan bertujuan untuk menciptakan sesuatu yang lebih efesien dan efektif (Zafar Singhera, Ellis Horowitz dan Abad Shah, 2009).
Graphical User Interface (GUI) adalah bagian penting dari setiap aplikasi perangkat lunak bagi pengguna pada saat ini dan GUI juga harus
memenuhi kriteria berikut : significant design, development, dan testing
activities (Zafar Singhera, Ellis Horowitz dan Abad Shah, 2009).
5 hirarki pilihan dan hanya menyajikan pilihan yang masuk akal sesuai
dengan konteks. GUI mengatur tindakan standar pengguna dan paradigma bekerja ke berbagai komponen yang disajikan secara grafis untuk pengguna kedalam berbagai bentuk penggunaan dan konteks aplikasi. GUI meningkatkan kegunaan dari aplikasi secara signifikan, tetapi juga membuat pengembangan aplikasi, pengujian dan pemeliharaan yang secara signifikan lebih sulit (Zafar Singhera, Ellis Horowitz dan Abad Shah, 2009).
Dalam pengaplikasiannya GUI mempunyai beberapa sifat diantaranya : menggunakan modus asynchronous dalam pengoperasiannya,
menggunakan input dan output non – tradisional, dan mempunyai struktur
6
2.2Landasan Teori
2.2.1 Interaksi Manusia Dan Robot
Kehadiran robot dalam kehidpan manusia makin hari
disadari makin banyak manfaatnya. Robotic tidak lagi dipandang
sebagai ilmu yang berkembang hanya dalam konteks teknologi
(fisik) saja, namun semakin hari semakin banyak masalah yang
berkaitan dengan lingkungan hidup manusia yang perlu juga diambil
perhatian (Yusvin, Santosa dan Rudy, 2014).
Tujuan mendasar dari interaksi manusia dan robot adalah
untuk mengembangkan prinsip-prinsip dan algoritma pada sistem
robot yang membuatnya mampu berinteraksi secara langsung
dengan aman dan efektif pada manusia, interaksi manusia-robot
(HRI) dapat dipandang juga sebagai proses komunikasi untuk
mencapai tujuan pengguna, komunikasi dapat dilakukan dalam
modalitas yang beragam termasuk dialog suara, gerak tubuh,
manipulasi langsung, dan ekspresi wajah. Interaksi antara manusia
dan robot didefinisikan, membutuhkan komunikasi antara robot dan
manusia, komunikasi antara manusia dan robot dapat diambil dalam
beberapa bentuk, tetapi bentuk-bentuk tersebut sebagian besar
dipengaruhi oleh apakah manusia dan robot berada pada ruang
lingkup yang berdekatan satu sama lain atau tidak (Yusvin 2014).
Interaksi antara manusia dengan robot atau mesin
(human-machine interactions) dapat dinyatakan dalam 3 tingkatan, yaitu:
Manusia sebagai kontroler robot sepenuhnya,
Manusia sebagai manager dari operasi robot, dan
Manusia dan robot berada dalam kesetaraan.
Seperti kebanyakan artefak teknologi lainnya, robot
memerlukan antarmuka pengguna untuk berinteraksi dengan
orang-orang atau manusia. Pada awalnya paradigma interaksi
7 menekan tombol (button) untuk menyelesaikan sebuah tugas,
gambar 2.1 memperlihatkan paradigma tradisional sebuah interaksi
manusia dengan robot atau mesin (Yusvin 2014).
Gambar 2.1. Paradigma tradisional interaksi manusia
dengan robot atau mesin
2.2.2 Sisterm Kendali Robot
Sistem kendali dapat dikatakan sebagai hubungan antara
komponen yang membentuk sebuah konfigurasi sistem, yang akan
menghasilkan tanggapan sistem yang diharapkan. Jadi harus ada
yang dikendalikan, yang merupakan suatu sistem fisis, yang biasa
disebut dengan kendalian (plant).
Pada dasarnya sistem kendali terdiri atas beberapa
komponen dasar, yaitu berupa masukan, proses pengendalian, dan
keluaran. Masukan dan keluaran merupakan variabel atau besaran
fisis. Keluaran merupakan hal yang dihasilkan oleh kendalian,
artinya yang dikendalikan. Masukan adalah yang mempengaruhi
kendalian, yang mengatur keluaran. Kedua dimensi masukan dan
keluaran tidak harus sama (Rinda Hedwig, 2004).
Menurut (Rinda Hedwig, 2004) Secara umum, tujuan sistem
kendali adalah untuk mengendalikan keluaran dari berbagai
masukan tertentu melalui unsur-unsur sistem kendali. Secara garis
8 kendali terbuka (open loop system) dan sistem kendali tertutup
(close loop system).
a. Sistem Kendali Terbuka (Open Loop System)
Sistem kendali terbuka (open loop system) adalah suatu
sistem yang keluarannya tidak mempunyai pengaruh terhadap aksi
kontrol. Artinya, sistem kendali terbuka keluarannya tidak dapat
digunakan sebagai umpan balik dalam masukan.
Gambar 2.2. Diagram blok sistem kendali terbuka
Dari gambar 2.2 di atas dapat diketahui persamaan untuk
sistem kendali terbuka :
Dalam suatu sistem kendali terbuka, keluaran tidak dapat
dibandingkan dengan masukan acuan. Jadi, untuk setiap masukan
acuan berhubungan dengan operasi tertentu, sebagai akibat
ketetapan dari sistem tergantung kalibrasi. Dengan adanya
gangguan, open loop system tidak dapat melaksanakan tugas sesuai
yang diharapkan. Open loop system dapat digunakan hanya jika
hubungan antara masukan dan keluaran diketahui dan tidak terdapat
gangguan internal maupun eksternal.
Sistem kendali terbuka (feed-forward control) adalah suatu
sistem kontrol yang keluarannya tidak diperhitungkan ulang pada
kontroler.
C(s) = R(s).Gc(s).G(s)...(2.2.a)
� �
9 b. Sistem Kendali Tertutup (Close Loop System)
Sistem kendali tertutup (Close Loop System) adalah sistem
kontrol yang sinyal keluarannya mempunyai pengaruh langsung
pada aksi pengontrolan, sistem kendali tertutup juga merupakan
sistem kontrol berumpan balik. Sinyal kesalahan penggerak, yang
merupakan selisih antara sinyal masukan dan sinyal umpan balik
(yang dapat berupa sinyal keluaran atau suatu fungsi sinyal keluaran
atau turunannya, diumpankan ke kontroler untuk memperkecil
kesalahan dan membuat agar keluaran sistem mendekati harga yang
diinginkan. Dengan kata lain, istilah “Close Loop System” berarti
menggunakan aksi umpan – balik untuk memperkecil kesalahan
sistem.
Gambar 2.3. Diagram blok Sistem Kendali Tertutup
Dari gambar 2.3 di atas dapat diketahui persamaan yang
digunakan dalam sistem kendali tertutup :
Pada Gambar 2.3 menunjukkan hubungan masukan dan
keluaran dari sistem kendali tertutup. Jika dalam hal ini manusia
bekerja sebagai operator, maka manusia ini akan menjaga sistem
agar tetap pada keadaan yang diinginkan, ketika terjadi perubahan
pada sistem maka manusia akan melakukan langkah – langkah awal
pengaturan sehingga sistem kembali bekerja pada keadaan yang
diinginkan.
10 2.2.3 Java NetBeans IDE (Versi 8.2)
a. Awal Sejarah NetBeans IDE
(NetBeans, 25-Des-2016), Netbeans dimulai pada tahun
1996 sebagai Xelfi (kata bermain pada Delphi ), Java IDE proyek
mahasiswa di bawah bimbingan Fakultas Matematika dan Fisika di
Charles University di Praha. Pada tahun 1997 Staněk Romawi
membentuk perusahaan sekitar proyek tersebut dan menghasilkan
versi komersial NetBeans IDE hingga kemudian dibeli oleh Sun
Microsystems pada tahun 1999. Komunitas NetBeans sejak terus
tumbuh, berkat individu dan perusahaan yang menggunakan dan
berkontribusi dalam proyek ini.
b. Pengertian Java dan JDK (Java Development Kit)
(Oracle, 25-Des-2016), Java adalah sebuah teknologi yang
diperkenalkan oleh Sun Microsysytems pada pertengahan tahun
1990. Menurut definisi Sun, Java adalah nama untuk sekumpulan
teknologi untuk membuat dan menjalankan perangkat lunak pada
computer standalone ataupun pada lingkungan jaringan. Kita lebih
menyukai Java sebagai sebuah teknologi dibanding hanya sebuah
bahasa pemrograman, karena Java lebih lengkap karena Java lebih
lengkap dibanding sebuah bahasa pemrograman konvensional.
Teknologi Java memiliki tiga komponen penting, yaitu:
Programming-language specification
Application-programming interface
Virtual-machine specification JDK (Java Development Kit)
Java Development Kit (JDK) adalah produk dari Sun
Microsystems yang ditujukan untuk pengembang Java. Sejak
diperkenalkannya Java, telah jauh SDK Java yang paling banyak
digunakan. Pada tanggal 17 November 2006, Sun mengumumkan
11 sehingga membuat perangkat lunak bebas. JRL (Java Research
License) ini dibuat khusus untuk universitas dan peneliti yang ingin
menggunakan teknologi Java sebagai subyek pembelajaran dan
penelitian.
c. Karakteristik Java
Bahasa pemograman java adalah pengembangan dari bahasa
pemograman C/C++, sehingga dengan mereka yang sudah terbiasa
dengan C/C++ tidak akan mengalami kesulitan mempelajari bahasa
pemograman Java.
Java adalah bahasa pemrograman yang sederhana dan
tangguh. Berikut ini adalah beberapa karakteristik dari Java sesuai
dengan white paper dari SUN :
Berorientasi Object, Java telah menerapkan konsep
pemograman berorientasi object yang modern dalam
implementasinya.
Java mendorong pemograman yang bebas dengan
kesalahan yang bersifat strongly typed dan memiliki
run time checking.
Portable, pemograman Java berjalan pada sistem
operasi apapun yang memiliki Java Virtual Machine.
Multithreding, Java mendukung pemograman multithreding dan terintegrasi secara langsung dalam
bahasa Java.
Dinamis, program Java dapat melakukan sesuatu
tindakan yang ditentukan pada saat eksekusi program
dan pada saat kompilasi.
Sederhana, Java menggunakan bahasa yang sederhana dan mudah dipelajari.
Terdistribusi, Java didesain untuk berjalan pada
12
Aman, aplikasi yang dibuat dengan bahasa Java lebih
dapat dijamin keamanannya terutama untul aplikasi
internet.
Netral secara arsitektur, Java tidak terkait pada suatu
mesin atau mesin operasi tertentu.
Interpreted, aplikasi java bisa dieksekusi pada platform yang berbeda-beda karena melakukan
interpretasi pada bytecode.
Berkinerja tinggi, bytecode Java telah teroptimasi
dengan baik sehingga eksekusi program dapat
dilakukan dengan cepat.
d. Pengertian NetBeans IDE
NetBeans adalah Integrated Development Environment
(IDE) berbasiskan Java dari Sun Microsystems yang berjalan di atas
Swing. Swing adalah sebuah teknologi Java untuk pengembangan
aplikasi desktop yang dapat bejalan di berbagai macam platforms
seperti Windows, Linux, Mac OS X dan Solaris (Heiko Bock, 2009).
Suatu IDE adalah lingkup pemrograman yang diintegrasikan
kedalam suatu aplikasi perangkat lunak yang menyediakan
pembangun Graphic User Interface (GUI), suatu text atau kode
editor, suatu compiler atau interpreter dan suatu debugger.
NetBeans merupakan software development yang Open Source,
dengan kata lain software ini di bawah pengembangan bersama dan
bebas biaya. NetBeans merupakan sebuah proyek kode terbuka yang
sukses dengan pengguna yang sangat luas, komunitas yang terus
tumbuh, dan memiliki hampir 100 mitra. Sun Microsystems
mendirikan proyek kode terbuka NetBeans pada bulan Juni 2000 dan
terus menjadi sponsor utama. Saat ini terdapat dua produk :
13 NetBeans IDE adalah sebuah lingkungan pengembangan
sebuah tools untuk pemrogram menulis, mengompilasi, mencari
kesalahan dan menyebarkan program. NetBeans IDE ditulis dalam
Java, namun dapat mendukung bahasa pemrograman lain. Terdapat
banyak modul untuk memperluas Netbeans IDE (Heiko Bock,
2009).
Menurut (Heiko Bock, 2009) NetBeans IDE adalah sebuah
produk bebas dengan tanpa batasan bagaimana digunakan. Tersedia
juga Netbeans Platform sebuah fondasi yang modular dan dapat
diperluas yang dapat digunakan sebagai perangkat lunak dasar untuk
membuat aplikasi desktop yang besar. Mitra ISV menyediakan
plug-in bernilai tambah yang dapat dengan mudah diplug-integrasikan ke
dalam platform dan dapat juga digunakan untuk membuat tools dan
solusi sendiri. Produk ini merupakan kode terbuka (open source) dan
bebas (free) untuk penggunaan komersial dan non komersial. Kode
sumber tersedia untuk guna ulang dengan lisensi Common
Development and Distribution License (CDDL), gambar 2.4
memperlihatkan tampilan NetBeans IDE.
14 2.2.4 Arduino Mega 2560
Arduino dikenal sebagai platform computing fisik atau
embedded, yang berarti sistem interaktif yang dapat berinteraksi
dengan lingkungannya melalui penggunaan perangkat keras dan
perangkat lunak. Arduino dapat merasakan lingkungan dengan
menerima masukan (input) dari berbagai sensor serta dapat
mempengaruhi sekitarnya dan mampu mengendalikan sebuah
lampu, motor, aktuator, dan lainnya. Mikrokontroler pada papan
(board) rangkaiannya dapat diprogram menggunakan bahasa
pemrograman Arduino (berdasarkan Wiring) dan lingkungan
pengembangan Arduino (berdasarkan Processing). Proyek Arduino
dapat berdiri sendiri atau dapat berkomunikasi dengan perangkat
lunak yang berjalan pada komputer. Halaman web Arduino dapa
dilihat pada http://www.arduino.cc/, begitupun forum diskusi antara
sesama pengguna Arduino dapat dilihat pada
http://forum.arduino.cc/ (Yusvin 2014).
Untuk meng-compile, menulis dan men-download program
Arduino dibutuhkan software yang bernama Arduino IDE atau biasa
disebut dengan sketch, gambar 2.5 memperlihatkan tampilan dari
Arduino IDE.
15 Tipe Arduino yang digunakan pada penelitian ini adalah
Arduino Mega 2560, (Arduino Genuino, 2016), Arduino Mega
2560 adalah tipe jenis Arduino yang cukup populer digunakan.
Selain memiliki pin masukan dan keluaran yang banyak, Arduino
jenis ini memiliki kapasitas memori yang lebih besar dibandingkan
dengan beberapa jenis Arduino lainnya. Untuk ukuran dimensi
perangkatnya, Arduino Mega 2560 termasuk jenis Arduino dengan
ukuran board yang besar. Gambar 2.6 menunjukkan bentuk fisik
Arduino Mega 2560. Adapun Spesifikasi singkat mengenai Arduino
Mega 2560 adalah sebagai berikut :
Mikrokontroler : ATmega2560 Tegangan Operasional : 5V
Tegangan Masukan (direkomendasi) : 7-12V Tegangan Masukan (batas) : 6-20V
Pin Digital I/O : 54 ( 14 pin untuk
keluaran PWM)
Analog Input Pins : 16 Arus DC per I/O Pin : 40 mA Arus DC for 3.3V Pin : 50 mA
Memori Flash :256 KB(8 KB
digunakan untuk bootloader)
SRAM : 8 KB
EEPROM : 4 KB
Clock Speed : 16 MHz
16 a. Mikrokontroler Arduino Mega 2560
Mikrokontroler yang digunakan pada Arduino Mega 2560 ini
adalah Mikrokontroler ATMega 2560. Mikrokontroler ini menjadi
komponen utama dari sistem minimum Arduino Mega 2560. Setiap
pin mikrokontroler ATMega 2560 dipetakan sesuai dengan
kebutuhan standar Arduino pada umumnya. Pemetaan pin (pin
mapping) ATMega 2560 dapat dilihat pada gambar 2.7.
Gambar 2.7. Mikrokontroler Atmega 2560
b. Memori Program
Arduino Mega 2560 memiliki 250 Kbyte On-chip In-System
Reprogrammable Flash Memory sebagai tempat menyimpan
program. Memori flash ini dibagi kedalam dua bagian, yaitu bagian
program bootloader dan aplikasi. Bootloader adalah program kecil
yang dieksekusi saat setelah pertama kali sistem dinyalakan.
Bootloader ini bekerja sebagai perantara antara memori program
dengan software compiler Arduino. Bootloader akan menerima file
hasil kompilasi yang telah di upload ke Arduino dan akan
menyimpannya ke memori program kemudian Arduino akan
langsung mengeksekusi program tersebut. Peta memori program
17
Gambar 2.8. Peta Memori Program
c. Memori Data
Memori data pada Arduino Mega 2560 terbagi atas SRAM
dan EEPROM. SRAM bersifat volatile atau dengan kata lain tidak
memiliki kemampuan untuk menyimpan data secara konsisten
setelah catu daya dimatikan sedangkan EEPROM nonvalatile.
SRAM yang dimiliki Arduino Mega 2560 berukuran 8 KB dan
EEPROM berukuran 4 KB. Ukuran EEPROM yang dimiliki
Arduino jenis ini adalah ukuruan EEPROM yang paling besar
diantara beberapa jenis Arduino lainnya sehingga EEPROM yang
dimiliki Arduino jenis ini dapat dimanfaatkan untuk kebutuhan
sistem dengan memori data yang besar.
d. Pin Input / Output
Arduino Mega 2560 memiliki 54 pin digital yang dapat
digunakan sebagai masukan atau keluaran menggunakan fungsi
pinMode(), dan menentukan proses penulisan atau pembacaan data
I/O menggunakan fungsi digitalWrite() dan digitalRead(). Setiap pin
beroperasi pada tegangan 5 volt, mampu menerima atau
menghasilkan arus maksimum sebesar 40 mA dan memiliki 20 - 50
Kohm resistor pull-up internal (diputus secara default).
Pin digital ini selain berfungsi sebagai masukan dan keluaran
digital namun juga dapat berfungsi sebagai pin dengan fungsi khusus
seperti untuk komunikasi UART (pin 0 sebagai RX dan pin 1
sebagai TX), komunikasi SPI, komunikasi I2C, external interrupt
18 dengan fungsi khusus, maka register yang terkait dengan fungsi
khusus tersebut harus dikonfigurasi terlebih dahulu. Konfigurasi
register - register tersebut telah disediakan di pustaka (library)
Arduino. Selain fitur pin digital, Arduino Mega 2560 juga memiliki
16 pin analog yaitu pin A0 sampai A15 dan setiap pin menyediakan
resolusi sebesar 10 bit.
e. Catu Daya
Arduino dapat diberikan catu daya melalui koneksi USB atau
catu daya dari luar non-USB seperti melalui Adaptor AC to DC dan
baterai. Jangkauan tegangan yang dapat disuplai ke Arduino sebesar
4 – 20 Volt. Namun tegangan yang direkomendasikan yaitu dari 7 –
12 Volt.
f. Komunikasi Serial
Komunikasi serial merupakan metode pengiriman data
berurut bit demi bit melalui sebuah saluran transmisi. Komunikasi
serialmemiliki kelebihan diantaranya adalah transimisi data yang
dapat dilakukan hanya dengan melalui sebuah saluran sehingga
mengurangi cost yang dikeluarkan untuk kebutuhan saluran
transmisi. Karena hanya membutuhkan satu saluran, maka cara
komunikasi ini selalu digunakan untuk komunikasi jarak jauh.
Walaupun jarak dekat, komunikasi ini juga sering digunakan dalam
komunikasi jarak dekat yang tidak membutuhkan kecepatan tinggi.
Namun saat ini teknologi yang digunakan pada perkembangan
komunikasi serial semakin canggih sehingga masalah kecepatan
transmisi sudah cukup teratasi.
Komunikasi serial dapat dilakukan dengan dua cara yaitu
sinkron atau asinkron. Dikatakan sinkron ketika sisi pengirim dan
sisi penerima menggunakan clock bersama. Dikatakan asinkron
masing-19 masing (tersendiri) dan dengan frekuensi clock yang hampir sama.
Arduino menyediakan kedua jenis komunikasi serial tersebut baik
sinkron ataupun asinkron. Jenis komunikasi serial asinkron yang
disediakan oleh Arduino adalah UART (TTL logic) sedangkanjenis
komunikasi serial sinkron salah satunya adalah SPI.
UART (Universal Asynchronous Receiver/Transmitter)
merupakan perangkat komunikasi serial yang bekerja dengan
metode asinkron. Pada komunikasi serial ini setiap pengiriman 1
byte data akan diawali dengan pengiriman bit pertama berupa start
bit yang berlogika 0 (low) dan diakhiri dengan stop bit yang
berlogika 1 (high). Sehingga setiap pengiriman 1 byte data
setidaknya dibutuhkan dibutuhkan 10 bit data untuk satu kali
pengiriman. Selain itu untuk penambahan fungsi pengecekan eror
dengan menggunakan bit paritas (parity bit) dapat dilakukan
dengan menyisipkan bit tersebut pada akhir frame sebelum stop bit.
Format data UART dapat dilihat pada gambar 2.9.
Gambar 2.9. Format data UART
UART memiliki beberapa fitur yang digunakan dalam
melakukan komunikasi diantaranya seperti: receive/transmit buffer,
shift register,clock generator, parity generator, parity checker.
Sebelum melakukan pengiriman atau penerimaan data, clock
generator akan bekerja dengan membangkitkan clock lokal milik
pengirim/penerima. Setiap data yang akan dikirim akan dimuati ke
20 dikirim ke penerima. Sama seperti pada proses pengiriman data, data
yang diterima akan dimuati shift register PISO kemudian data
tersebut dimuati ke receive buffer. Pengaturan format data,
pengaturan baudrate serta beberapa pengaturan fitur-fitur perangkat
UART lainnya diatur pada register-register khusus UART.
Pada Arduino Mega 2560 terdapat pin TX dan RX yang
digunakan sebagai saluran transmit dan receive bagi perangkat
komunikasi serial UART. Pada Arduino, inisialisasi komunikasi seri
serial UART dilakukan dengan memanfaatkan fungsi
Serial.begin(n) dengan (n) adalah nilai baudrate. Inisialisasi ini
melakukan penentuan baudrate, penentuan format datadan
memampukan perangkat UART sebagai receiver atau transmitter.
Selanjutnya dengan menggunakan fungsi Serial.print(), Arduino
dapat mengirimkan serangkaian karakter-karakter dengan tipe data
char (char array/string) ke komputer. Data yang diterima atau
dikirim oleh Arduino dapat dimonitor menggunakan serial terminal
yang telah disediakan di IDE Arduino.
Salah satu jenis komunikasi serial sinkron yang dimiliki oleh
Arduino adalah SPI (Serial Peripheral Interface). Komunikasi
antara dua perangkat yang menggunakan SPI berlandaskan
hubungan master (induk) dan slave (budak). Master dapat berupa
mikrokontroler sedangkan slave (budak) dapat berupa
mikrokontroler atau perangkat selain mikrokontroler. Pin yang
diperlukan dalam komunikasi SPI umumnya menggunakan empat
pin yaitu pin MOSI (Master Out Serial In) atau dalam istilah lain
SDO (Serial Data Out), pin MISO (Master Out Serial In) atau dalam
istilah lain SDO (Serial Data Out), pin SCK (Serial Clock), SS
(Slave Select). Perangkat yang dikonfigurasi sebagai master selain
bertindak sebagai sumber clock bersama melalui pin SCK. juga
21 Konfigurasi fungsi SPI dapat dilihat pada gambar dibawah pada
gambar 2.10.
Gambar 2.10. Konfigurasi pin SPI
Pada komunikasi antara Arduino dengan komputer,
digunakan chip ATMega8U2 yang telah diprogram oleh pabrikan
Arduino sebagai serial to USB converter on board. Chip
ATMega8U2 ini mengantarai komunikasi Antara ATMega 2560
(main processor) dengan komputer.
2.2.5 Library RxTx (Version 2.2)
Bahasa pemrograman Java juga mendukung komunikasi
serial yang melalui serial port. Untuk dapat melakukan komunikasi
serial tersebut bisa menggunakan/memanfaatkan salah satu library
yaitu RxTx.
Library tersebut mendukung komunikasi serial yang
diterapkan pada sebuah program berbasis Java. Library ini juga bisa
digunakan dibeberapa platform seperti Linux, Solaris dan windows.
Pada penelitian ini penulis menggunakan Library RxTx versi 2.2
sebagai komunikasi serial antara Arduino dengan Netbeans yang
memiliki kemampuan lebih baik dari versi sebelumnya.
2.2.6 Motor DC (Dirrect Current)
(C. T. Leondes, 1972) Motor DC adalah piranti elektronik
yang mengubah energi listrik menjadi energi mekanik berupa gerak
rotasi. Pada motor DC terdapat jangkar dengan satu atau lebih
kumparan terpisah. Tiap kumparan berujung pada cincin belah
22 belah dapat berperan sebagai saklar kutub ganda (double pole,
double throw switch). Motor DC bekerja berdasarkan prinsip gaya
Lorentz, yang menyatakan ketika sebuah konduktor beraliran arus
diletakkan dalam medan magnet, maka sebuah gaya (yang dikenal
dengan gaya Lorentz) akan tercipta secara ortogonal diantara arah
medan magnet dan arah aliran arus. Mekanisme ini diperlihatkan
pada Gambar 2.11.
Gambar 2.11. Bagan mekanisme motor DC
Motor DC yang digunakan pada robot beroda umumnya
adalah motor DC dengan magnet permanen. Motor DC jenis ini
memiliki dua buah magnet permanen sehingga timbul medan
magnet di antara kedua magnet tersebut. Di dalam medan magnet
inilah jangkar (rotor) berputar. Jangkar yang terletak di tengah
motor memiliki jumlah kutub yang ganjil dan pada setiap kutubnya
terdapat lilitan. Lilitan ini terhubung ke area kontak yang disebut
komutator. Sikat (brushes) yang terhubung ke kutub positif dan
negatif motor memberikan daya ke lilitan sedemikian rupa sehingga
kutub yang satu akan ditolak oleh magnet permanen yang berada di
dekatnya, sedangkan lilitan lain akan ditarik ke magnet permanen
yang lain sehingga menyebabkan jangkar berputar. Ketika jangkar
berputar, komutator mengubah lilitan yang mendapat pengaruh
23
N =
���− �� ���� ...(5.1)
Keterangan:
��� : Tegangan Terminal
�� : Arus Jangkar Motor
�� : Hambatan Jangkar Motor
K : Konstanta Motor � : Fluks Magnet
kutub positif dan negatif motor diberi daya. Kecepatan putar motor
DC (N) dirumuskan dengan Persamaan berikut :
Pengendalian kecepatan putar motor DC dapat dilakukan
dengan mengatur besar tegangan terminal motor VTM. Metode lain
yang biasa digunakan untuk mengendalikan kecepatan motor DC
adalah dengan teknik modulasi lebar pulsa atau Pulse Width
Modulation (PWM).
2.2.7 L298 Dual H-Bridge Driver
(L298 Dual H – Bridge Driver, 25-Des-2016) IC L298
adalah IC Dual Full Bridge Driver yang beroperasi sampai tegangan
46 V dan arus DC 4 A, yang didesain untuk menerima logic
level TTL standar. IC ini berfungsi untuk men-drive induksi beban
seperti relai, solenoida, motor DC dan motor steper. Gambar 2.12 di
bawah ini adalah blok diagram IC L298 :
24 L298 mempunyai 2 output power stage yaitu A dan B pada
gambar 4.1. Output power stage adalah sebuah konfigurasi bridge,
dimana output-nya dapat men-drive sebuah induktif beban secara
mode umum atau diferensial, tergantung pada input state-nya. Arus
yang mengalir keluar dari rangkaian bridge keluar melalui pin
output sense, dimana sense output dihubungkan dengan resistor
external RsA dan RsB. Dengan adanya resistor RsA dan RsB dapat
diketahui intensitas arusnya.
IC L298 sudah dikemas dalam bentuk modul. Modul ini
sudah banyak di jual dipasaran, gambar 2.13 Berikut menunjukkan
konfigurasi pin pada modul L298 Dual H-Bridge Driver :
Gambar 2.13. Konfigurasi pin L298 Dual H-Bridge Driver
2.2.8 Komunikasi Data
(Behrouz A. Forouzan, 2012) Komunikasi merupakan suatu
kata yang dapat diartikan sebagai cara untuk menyampaikan atau
menyebarluaskan data dan informasi. Komunikasi data adalah
bagian dari komunikasi yang secara khusus berkenaan dengan
transmisi atau pemindahan data dan informasi diantara
komputer-komputer dan piranti-piranti yang lain dalam bentuk digital yang
dikirim melalui media komunikasi data. Data berarti informasi yang
25 a. Komponen Komunikasi Data
Sebuah komunikasi data terdapat data, transmitter,
media transmisi, receiver dan tujuan. Keterangan untuk
masing-masing fungsinya Sebagaimana yang ditunjukkan Gambar 2.14
dibawah ini adalah sebagai berikut :
Gambar 2.14. Diagram blok komunikasi data
Data / Sumber (Source) : Merupakan komponen yang
bertugas mengirimkan informasi.
Transmitter : berfungsi untuk mengubah data /
informasi yang akan dikirim menjadi bentuk yang
sesuai dengan media transmisi.
Media Transmisi : Merupakan jalur transmisi tunggal
atau jaringan transmisi kompleks yang
menghubungkan sistem sumber dengan sistem
tujuan. Media transmisi dapat disebut pembawa
(carrier).
Receiver : berfungsi mengubah informasi yang
diterima dari pengirim melalui media transmisi.
Tujuan (Destination) : Merupakan tujuan
pengeriman data.
b. Metode Transmisi
Berdasarkan aliran datanya komunikasi data terbagi
menjadi tiga kategori, yaitu sebagai berikut :
1. Metode Simplex : Merupakan salah satu jenis
komunikasi data yang mengirimkan informasi hanya
dalam satu arah, gambar 2.15 menunjukkan aliran data
26 Gambar 2.15. Komunikasi simplex
2. Metode Half Duplex : Pada sistem half duplex pesan
dapat dikirimkan dalam dua arah. Jenis komunikasi half
duplex terjadi ketika data dapat mengalir dalam dua arah,
namun hanya satu arah pada satu waktu, gambar 2.16
menunjukkan aliran data dari metode half duplex.
Gambar 2.16. Komunikasi half duplex
3. Metode Full Duplex : Pada jenis komunikasi Full duplex,
komunikasi dapat terjadi dalam dua arah secara
bersamaan, karena jalur pengiriman dan penerimaan
data berbeda, gambar 2.17 menunjukkan aliran data dari
metode full duplex.
Gambar 2.17. Komunikasi full duplex
c. Universal Asynchronous Receiver Transmitter (UART)
Universal Asynchronous Receiver Transmitter atau biasa
27 menerjemahkan antara bit-bit paralel data dan bit-bit serial.
UART biasanya berupa sirkuit terintegrasi yang digunakan
untuk komunikasi serial pada komputer atau port serial
perangkat periperal. UART sekarang ini termasuk di dalam
beberapa mikrokontroler. Keping UART biasanya terdiri dari :
Penyangga (buffer) Transmit/Receive
Pengendali (control) Transmit/Receive
Penyangga Bus Data
Logika Kendali Read/Write
Kendali Modem
Universal Asynchronous Receiver Transmitter adalah
protokol komunikasi yang umum digunakan dalam pengiriman
data serial antara device satu dengan yang lainnya. Sebagai
contoh komunikasi antara sesama mikrokontroler atau
mikrokontroler ke PC. Dalam pengiriman data, clock antara
pengirim dan penerima harus sama karena paket data dikirim
tiap bit mengandalkan clock tersebut. Inilah salah satu
keuntungan model asynchronous dalam pengiriman data karena
dengan hanya satu kabel transmisi maka data dapat dikirimkan,
seperti yang ditunjukkan pada gambar 2.18.
Gambar 2.18. Format data UART
Pada Gambar 2.18 terdapat beberapa parameter yang
28 ini harus sama antara pengirim dan penerima karena jika tidak
maka data tidak akan diterima. Data yang dikirim adalah data
berukuran 8 bit atau 1 byte. Jika ditambah dengan 3 parameter
diatas maka total bit data yang dikirim adalah 11 bit. Dari format
data inilah setiap data yang terbaca dapat diterjemahkan menjadi
bit-bit yang merepresentasikan data tertentu.
Sebenarnya tidak semua terdapat error dalam pengiriman
data UART. Terjadinya error hanya terjadi ketika kita
menggunakan clock mikrokontroler untuk nilai tertentu saja.
Pada paket data UART, clock yang dikirimkan bergantung dari
nilai baud rate. Karena protokol ini universal, maka baud rate
yang ada adalah nilai-nilai tetap yang tidak bisa diubah ubah dari
kisaran nilai 110 sampai 11059200 bps (bit per second) atau
lebih. Semakin cepat clock yang digunakan maka baud rate akan
semakin cepat juga.
2.2.9 RCTimer Radio Telemetry Kit 433MHz
Perangkat radio telemetri ini dibuat berbasis 3DR Radio
System dan 100% kompatibel. Di desain sebagai open source
telemetri sebagai pilihan lain dari Xbee. Dapat berkomunikasi dari
jarak jauh sekitar 1 Mil. Sistem pada telemetri ini menggunakan
komunikasi full-duplex menggunakan modul HopeRF HM - TRP
yang telah dikostumisasi dengan firmware open source. Interface
perangkat ini mengggunakan TTL serial standar 5V atau USB FTDI
Serial. Untuk memperbarui dan mengatur pengaturan modul ini
dapat menggunakan APM Mission Planner. Konfigurasi juga dapat
dilakukan dengan 3DR Radio Configurator ataupun AT Command,
gambar 2.19 menunjukkan bentuk fisik dari RCTimer Radio
Telemetry Kit 433 MHz (Data Sheet RCTimer Radio Telemetry Kit
29
Gambar 2.19. RCTimer Radio Telemetry Kit 433 MHz
Beberapa spesifikasi dari modul ini adalah sebagai berikut :
Menggunakan frekuensi 433 MHz
Sensitifitas penerima sampai -121 dBm
Transmit power sampai 20dBm (100mW)
Menggunakan komunikasi serial
Air rate sampai 250 Kbps
Paket Protokol MAVLink dan status laporan
Frequency Hopping Spread Spectrum (FHSS)
Adaptive Time Division Multiplexing (TDM)
Mendukung LBT dan AFA
30
2.3Hipotesis
Penelitian ini mempunyai hipotesis apakah Graphical User
Interface (GUI) sesuai dengan kebutuhan user dan apakah software mampu
mengontrol object yaitu kit mobil pintar 4 WD, baik itu maju, mundur, belok
31
BAB III
METODE PENELITIAN
3.1Bahan Penelitian
Penelitian ini menggunakan bahan – bahan berupa dokumen yang
berbentuk hardcopy seperti buku, publikasi, dan jurnal, maupun dokumen
yang softcopy seperti ebook atau PDF. Penelitian ini juga menggunakan
perangkat lunak (software) seperti driver perangkat keras (hardware),
library yang dibutuhkan perangkat lunak atau fungsi – fungsi yang tersedia
pada sistem operasi. Software yang digunakan diantaranya NetBeans IDE
8.2 dan Arduino IDE 1.6.13, untuk hardware menggunakan laptop dengan
processor core i5, RAM 4GB, sistem operasi Windows 10 64 bit dan
Arduino Mega 2560, dan untuk library menggunakan RxTx.
3.2Alat Penelitian
Penelitian ini menggunakan alat – alat sebagai berikut :
1. Seperangkat laptop Sony Vaio VPCEG18FG dengan spesifikasi
Intel Core I5 2410M (2.30 GHz dengan Turbo Boost Up To 2.90
GHz Sandy Bridge), HDD 500 GB (SATA III), RAM 4 GB, VGA
NVIDIA Geforce 410M (512 MB Total With Shared 2.3 GB),
display 14 Inch, dengan sistem operasi Windows 10 64 bit.
2. Arduino Mega 2560 dengan spesifikasi memiliki 54 digital pin input
/ output (yang 15 dapat digunakan sebagai output PWM), 16 analog
input, 4 UART (hardware port serial), 16 MHz osilator kristal,
koneksi USB, jack listrik, header ICSP, dan tombol reset.
3. Software NetBeans IDE 8.2 beserta library RxTx.
4. Software Arduino IDE 1.6.13.
5. Modul RCTimer Radio Telemetry Kit 433 MHz.
6. 1 set kit robot mobil pintar dan kabel jumper male to male.
32
3.3 Cara Penelitian
Penilitian ini dilakukan dengan beberapa tahapan seperti yang
ditunjukkan oleh gambar 3.1 sebagai berikut :
Gambar 3.1. Diagram blok tahapan penelitian
1. Menelusuri informasi – informasi dari literature – literature,
internet, maupun dari dosen pembimbing.
2. Melakukan instalasi – instalasi software seperti NetBeans IDE 8.2
beserta library RxTx, Arduino IDE 1.6.13, dan driver RCTimer
Radio Telemetry.
3. Melakukan pemodelan tentang proses dari perangkat lunak yang
akan dikembangkan. Pemodelan ini disertai dengan kebutuhan
fungsi, user requirement, dan perkiraan penyelesaian dalam bentuk
33 4. Membuat diagram blok atau flowchart tentang bagaiman perangkat
lunak berjalan.
5. Melakukan penulisan bahasa pemrograman.
6. Melakukan evaluasi dan perbaikan.
Penelitian ini menggunakan metode waterfall model (model air
terjun) yaitu sebuah metode yang bertujuan untuk membantu mengatasi
kerumitan yang terjadi akibat proyek – proyek pengembangan perangkat
lunak. Model ini memungkinkan pemecahan misi pengembangan yang
rumit menjadi beberapa langkah logis (kebutuhan, spesifikasi, desain, kode,
unit tes, pengujian, dan pemeliharaan) dengan beberapa langkah yang pada
akhirnya akan menjadi produk akhir yang siap pakai. Untuk memastikan
bahwa sistem bisa dijalankan, setiap langkah membutuhkan validasi,
masukan, dan kriteria yang ada. Gambar 3.2 memperlihatkan diagram dari
metode waterfall model.
34 Langkah awal pada pendekatan metode waterfall adalah
pengumpulan dan penganalisisan kebutuhan user. Ketika kebutuhan telah
ditetapkan, desain dan pengembangan akan dapat dikerjakan. Model ini
mengasumsikan bahwa kebutuhan sudah diketahui dan apabila sudah
ditetapkan, mereka tidak akan berubah atau segala perubahan menjadi tidak
berarti. Kondisi ini menjadi kasus untuk pengembangan sistem dengan
arsitektur dan tujuan sistem yang secara menyeluruh telah diinvestigasi.
Bagaimanapun, jika terjadi perubahan kebutuhan yang signifikan pada saat
spesifikasi sistem sudah final dan produk sudah selesai dikembangkan,
model tersebut bukanlah model yang terbaik untuk mengatasi masalah yang
akan timbul. Untuk memenuhi kebutuhan dan kepuasan user dibuatlah
sebuah model pendekatan yang menyediakan sebuah bentuk prototipe dari
sebagian maupun kesuluruhan sistem. Sebuah protipe adalah bagian dari
produk yang mengekspresikan logika maupun fisik antarmuka eksternal
yang ditampilkan. Gambar 3.3 menunjukkan flowchart pendekatan
prototipe pada umumnya.
35 Langkah yang kedua adalah spesifikasi dari perangkat lunak yang
sesuai dengan kebutuhan user, spesifikasi ditetapkan setelah analisis
kebutuhan user telah divalidasi dan sesuai dengan kriteria yang inginkan
oleh user.
Langkah yang ketiga adalah desain, daalam water fall model desain
ada dua, yaitu desain tingkat tinggi (High Level Design [HLD]) dan desain
tingkat rendah (Low Level Design [LLD]).
a. Desain Tingkat Tinggi (High Level Design [HLD])
HLD adalah proses untuk menentukan sisi internal dan
eksternal dari perspektif sebuah komponen. Tujuannya adalah
sebagai berikut :
1. Untuk mengembangkan fungsi eksternal dan
antarmuka , yaitu :
Antarmuka penggunak eksternal.
Antarmuka program aplikasi.
Antarmuka program sistem.
Antarmuka antarkomponen dan struktur
data.
2. Desain struktur komponen internal yang
mencakup antarmuka antarkomponen dan
struktur data.
3. Memastikan bahwa semua kebutuhan fungsi
telah terpenuhi.
4. Memastikan bahwa semua komponen sesuai
dengan struktur produk dan sistem.
5. Memastikan bahwa desain komponen
diselesaikan dengan sempurna.
36 b. Desain Tingkat Rendah (Low Level Design [LLD])
LLD adalah sebuah proses untuk mengubah HLD menjadi
desain yang lebih terperinci dari sudut pandang per bagian
(modules, macros, includes, dan seterusnya). Tujuan LLD
adalah sebagai berikut :
1. Finalisasi desain komponen dan bagaian (modules,
macros, includes) di dalam sistem atau produk.
2. Menyelesaikan seluruh rencana uji komponen.
3. Memberikan umpan balik tentang HLD dan verifikasi
perubahan yang dilakukan pada HLD.
Langkah yang keempat adalah tahap pengodean, bagian
pengodean ini menghasilkan perubahan fungsi dari LLD
menjadi benar – benar terkodekan. Tugasnya adalah membuat
kode untuk setiap bagian (modules, macros, includes),
melakukan pengujian terhadap pengodean yang telah dilakukan,
melakukan verifikasi terhadap perubahan HLD dan LLD.
Langkah yang kelima unit tes, unit tes adalah pengujian
pertama dari modul yang mampu dieksekusi (executable).
Tujuannya adalah sebagai berikut:
1. Memverifikasi kode terhadap desain tingkat tinggi dan
desain tingkat rendah.
2. Mecoba seluruh kode, baik kode baru ataupun lama
untuk memastikan bahwa fungsinya dilakukan ke
seluruh sistem, pembenaran logika, dan verifikasi jalur
data.
3. Melihat kembali seluruh pesan kesalahan (error), kode
kembali, dan reaksi.
4. Memberikan umpan balik mengenai kode , HLD, dan
37 Langkah yang keenam uji komponen, uji komponen
mengevaluasi gabungan dari bagian perangkat lunak setelah
seluruhnya diintegrasikan ke dalam sistem. Tujuannya adalah
sebagai berikut :
1. Uji antarmuka dengan pengguna eksternal terhadap
dokumentasi desain komponen.
2. Uji antarmuka program aplikasi dengan dokumentasi
desain komponen.
3. Uji fungsi terhadap dokumentasi desain komponen.
4. Uji antarmuka antarkomponen (tingkat modul) terhadap
dokumentasi desain komponen.
5. Uji pemulihan kerusakan dan pesan terhadap
dokumentasi desain komponen.
6. Verifikasi komponen sudah selesai dan bisa diterima
dalam batasan kualitas.
7. Uji jalur gabungan (multitasking) dan sumber gabungan
(file, lock, queues, dan seterusnya) terhadap dokumentasi
desain komponen.
8. Uji fungsi yang tidak diubah terhadap dokumentasi
desain komponen.
Perancangan alat harus mempunyai gambaran pembangun GUI dan
objek kendali dan bagaimana alat dapat bekerja. GUI dan objek kendali
mempunyai beberapa komponen sebagai pembangunnya yang digambarkan
dalam bentuk blok diagram maupun flowchart. Pada penelitian ini berikut
38 1. Diagram Blok Pembangun GUI
Gambar 3.3. Diagram blok pembangun GUI
Pada penelitian ini komponen yang dibutuhkan untuk
membangun sebuah GUI adalah laptop, modul radio 3DR
telemetry transmitter dan software NetBeans 8.2. GUI dirancang
di dalam software NetBeans dengan memanfaaatkan Java
application berupa Jframe Form. Jframe Form merupakan tempat
GUI di rancang dan desain. Agar GUI bekerja sesuai dengan
peneltian yang dilakukan dibutuhkan beberapa library seperti JDK
1.8 (Default), absolute layout dan RxTxcomm. Library JDK 1.8
(Default) dan absolute layout berfungsi untuk mendesain GUI
sedangkan library RxTxcomm berfungsi sebagai komunikasi serial.
Gambar 3.3 di atas menunjukkan diagram blok dari pembangun
39
Receivier Transmitter
2. Diagram Blok Sistem
Gambar 3.4. Diagram blok sistem
Pada gambar 3.4 menunjukkan diagram blok sistem
penerima (receiver) dan pengirim (transmitter). Sistem penerima
(receiver) terdiri dari beberapa komponen. Fungsi dari tiap - tiap
komponen sebagai berikut :
a. Arduino Mega 2560 berfungsi sebagai sistem kendali.
b. Battery 3S, 25C, 1800mah berfungsi sebagai sumber
tegangan Arduino Mega 2560 dan Driver L298N Dual
H-Bridge.
c. Driver L298N Dual H-Bridge berfungsi sebagai driver
motor DC.
d. Motor DC berfungsi sebagai penggerak tiap roda pada
mobil kit pintar.
e. Radio 3DR Telemetry 433MHz Receivier berfungsi
40 Sistem pengirim (transmitter) terdiri dari beberapa
komponen. Fungsi dari tiap - tiap komponen sebagai berikut :
a. Radio 3DR Telemetry 433MHz Transmitter berfungsi
sebagai pengirim data.
b. Computer berfungsi sebagai alat pengontrolan robot
melalui perancangan GUI yang berjalan berdasarkan
software NetBeans 8.2.
Pada penelitian ini komunikasi Arduino Mega 2560 dengan
GUI menggunakan metode simplex (satu arah). Gambar 3.4
menunjukkan diagram blok komunikasi antara Arduino Mega 2560
41
BAB IV
HASIL DAN PEMBAHASAN
4.1Hasil Penelitian
4.1.1 Tampilan Program
Sesuai dengan metode penelitian pada bab III B, penelitian
ini menghasilkan 3 buah desain Graphical User Interface (GUI)
seperti yang ditunjukkan oleh gambar 4.1, gambar 4.2, dan gambar
4.3.
Gambar 4.1. Desain GUI version 1.0
42
Gambar 4.3. Desain GUI version 1.2
Desain Graphical User Interface pada gambar 4.1, gambar
4.2, gambar 4.3 diatas dirancang berdasarkan metode kombinasi
warna terbaik dan kombinasi warna terjelek. Kombinasi warna pada
sebuah desain GUI berfungsi untuk menghindari mata dari
kelelahan, terlihat lebih menarik, dan memudahkan user dalam
memahami GUI. Berikut tabel kombinasi warna terbaik dan
kombinasi warna terjelek dalam mendesain GUI yang ditunjukkan
43 .
Gambar 4.4. Kombinasi warna terbaik
Gambar 4.5. Kombinasi warna terjelek
Desain GUI yang digunakan pada penelitian adalah desain
GUI versi 1.2. Desain ini dipilih berdasarkan hasil dari kuisioner
yang dipilih oleh beberapa peserta kuisoner. Pada desain GUI versi
1.0 dua orang memilih sangat buruk, lima orang memilih buruk, dua
belas orang memilih baik dan tujuh orang memilih sangat baik. Pada
44 memilih buruk, delapan belas orang memilih baik dan lima orang
memilih sangat baik. Pada desain GUI versi 1.2 satu orang memilih
sangat buruk, empat orang memilih buruk, sebelas orang memilih
baik dan sepuluh orang memilih sangat baik. Gambar 4.6
menunjukkan hasil kuisioner yang sudah dibuat.
45 4.1.2 Tampilan Kit Robot Mobil Pintar 4WD
Kit robot mobil pintar 4WD ini dirancang dengan beberapa
komponen, seperti yang ditunjukkan oleh gambar 4.7 yaitu :
a. Arduino Mega 2560.
b. Driver L298N dual H-Bridge.
c. 4 buah motor DC.
d. Modul Radio 3DR Telemetry 433MHz Receivier.
e. Battery 3S, 25C, 1800mah.
f. 1 buah switch.
g. Beberapa kabel jumper male to male.
46
package GUI_White;
import gnu.io.CommPortIdentifier; import gnu.io.SerialPort;
import gnu.io.SerialPortEvent;
import gnu.io.SerialPortEventListener; import java.awt.Color;
import static java.awt.image.ImageObserver.ERROR; import java.io.IOException;
import java.io.InputStream; import java.io.OutputStream; import java.util.Enumeration;
import java.util.TooManyListenersException; import java.util.logging.Level;
import java.util.logging.Logger; import javax.swing.ImageIcon; import javax.swing.JOptionPane;
/** *
* @author Sony-Vaio */
public class Frame_GUI extends javax.swing.JFrame
implements SerialPortEventListener {
Rancangan GUI pada penelitian ini dibuat berdasarkan
JFrame Form yang terdapat pada software NetBeans dan source
47 Kit Based GUI with Java Programming. ");
} (CommPortIdentifier) portEnum.nextElement();
if
serialPort.setSerialPortParams(DATA_RATE,
SerialPort.DATABITS_8, SerialPort.STOPBITS_2,
SerialPort.PARITY_NONE);
48 Logger.getLogger(Frame_GUI.class.getName()).log(Lev
el.SEVERE, null, ex); "ERROR", JOptionPane.ERROR_MESSAGE);
49 @SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed"
desc="Generated Code">//GEN-BEGIN:initComponents
setDefaultCloseOperation(javax.swing.WindowConstan ts.EXIT_ON_CLOSE);
org.netbeans.lib.awtextra.AbsoluteLayout());
mundur.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/mun durx.png"))); // NOI18N
mousePressed(java.awt.event.MouseEvent evt) {
mundurMousePressed(evt);
actionPerformed(java.awt.event.ActionEvent evt) {
mundurActionPerformed(evt);
}
});
50 getContentPane().add(mundur, new
org.netbeans.lib.awtextra.AbsoluteConstraints(340,
190, 80, 80));
maju.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/maj ux.png"))); // NOI18N
maju.addMouseListener(new
java.awt.event.MouseAdapter() {
public void
mousePressed(java.awt.event.MouseEvent evt) {
majuMousePressed(evt);
actionPerformed(java.awt.event.ActionEvent evt) {
majuActionPerformed(evt);
}
});
getContentPane().add(maju, new
org.netbeans.lib.awtextra.AbsoluteConstraints(340,
90, 80, 80));
kiri.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/kir ix.png"))); // NOI18N
kiri.addMouseListener(new
java.awt.event.MouseAdapter() {
public void
mousePressed(java.awt.event.MouseEvent evt) {
kiriMousePressed(evt);
actionPerformed(java.awt.event.ActionEvent evt) {
kiriActionPerformed(evt);
}
});
getContentPane().add(kiri, new
org.netbeans.lib.awtextra.AbsoluteConstraints(60,
140, 100, 70));
kanan.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/kan anx.png"))); // NOI18N
kanan.addMouseListener(new
java.awt.event.MouseAdapter() {
public void
mousePressed(java.awt.event.MouseEvent evt) {
kananMousePressed(evt);
}
});
51 kanan.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
kananActionPerformed(evt);
}
});
getContentPane().add(kanan, new
org.netbeans.lib.awtextra.AbsoluteConstraints(170,
140, 100, 70));
butwifi.setBackground(new
java.awt.Color(71, 71, 71));
butwifi.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/ON. png"))); // NOI18N
butwifi.setBorder(javax.swing.BorderFactory.create EmptyBorder(1, 1, 1, 1));
butwifi.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
butwifiActionPerformed(evt);
}
});
getContentPane().add(butwifi, new
org.netbeans.lib.awtextra.AbsoluteConstraints(20,
20, 30, 30));
txtwifi.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/wif i-empty-xxl.png"))); // NOI18N
getContentPane().add(txtwifi, new
org.netbeans.lib.awtextra.AbsoluteConstraints(420,
20, 50, 30));
lblwifi.setFont(new java.awt.Font("Vani",
1, 14)); // NOI18N
lblwifi.setText("Press to Connection");
getContentPane().add(lblwifi, new
org.netbeans.lib.awtextra.AbsoluteConstraints(60,
20, 150, 30));
org.netbeans.lib.awtextra.AbsoluteConstraints(120,
310, 410, 40));