BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI 2.1. Tinjauan Pustaka Sistem Pengontrolan Robot menggunakan media nirkabel sudah banyak digunakan karena memiliki keunggulan yaitu lebih praktis daripada menggunakan media kabel. Dari tinjauan pustaka yang telah dilakukan oleh penulis, ditemukan beberapa literatur mengenai realisasi sistem kontrol robot menggunakan media nirkabel antara lain: a. Perancangan dan Implementasi Kendali Robot Jarak Jauh Melalui Media Wireless Fidelity (Wi-Fi) [1]. Merupakan Tugas Akhir yang dibuat Rendy Ariffian dan Elvanno Hatorangan, Mahasiswa Politeknik Negeri Bandung Angkatan 2006 Program Studi D4 Teknik Telekomunikasi Nirkabel. Sistem kontrol yang dibuat adalah menggunakan modul Wi-Fi buatan Wiznet yang dipasang pada robot dan menggunakan Notebook sebagai remote control robot tersebut. b. Monitoring Ruangan dengan Robot Berkamera Melalui Media Wireless LAN [2]. Merupakan Tugas Akhir yang dibuat oleh Teti Agustin, Mahasiswi Politeknik Elektro Negeri Surabaya Program Studi D3 Teknik Telekomunikasi. c. Rancang Bangun Aplikasi Kontrol Robot Ruangan Berbasis Wireless [3]. Makalah yang dibuat oleh Afdhol Dzikri, Tri Ramadani, Iip Iriani, dan Mardiyanto, Mahasiswa Politeknik Negeri Batam. Robot yang dikontrol adalah sebuah robot beroda dengan menggunakan notebook sebagai remote control. d. Wireless Gesture Controlled Tank Toy [4]. Merupakan Tugas Akhir yang dibuat oleh Rick Wong, mahasiswa Cornell University yang berlokasi di New York, Amerika Serikat. Dalam Tugas Akhir tersebut, Rick Wong melakukan pengontrolan robot berbentuk tank menggunakan sensor Gyroscope yang dipasang pada sarung tangan. Dari beberapa informasi yang telah disebutkan di atas, dapat kita simpulkan bahwa pengontrolan robot melalui media nirkabel kebanyakan Rizki Syam Nugroho, 08334024 Laporan Tugas Akhir Tahun 2012 4 BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI dilakukan untuk mengontrol robot beroda dan menggunakan laptop/notebook sebagai alat pengontrolnya. Untuk itu, pada Tugas Akhir ini penulis mencoba untuk membuat sistem pengontrolan robot terbang yaitu quadcopter dengan menggunakan handphone sebagai alat pengontrolnya. Media yang digunakan pada tugas akhir ini adalah jaringan WiFi dengan konfigurasi seperti ditunjukkan pada gambar 1. Gambar 1. Diagram Sistem 2.2. Landasan Teori 2.2.1. Wireless Fidelity (Wi-Fi) Wi-Fi adalah kependekan dari Wireless Fidelity yang memiliki pengertian yaitu kumpulan standar yang digunakan untuk Jaringan Lokal dengan media nirkabel atau Wireless LAN (WAN) [5]. Wi-Fi didasari oleh standar IEEE 802.11. Sejarah Wi-Fi dimulai pada akhir tahun 1970-an. Perusahaan komputer besar di dunia yaitu IBM mengeluarkan hasil percobaan yang mereka lakukan dengan merancang WLAN dengan teknologi IR, perusahaan lain yaitu HP (Hewlett Packard) juga menguji WLAN dengan RF. Produk mereka hanya mampu mencapai data rate sebesar 100kbps dan belum memenuhi standar IEEE 802 untuk jaringan LAN yaitu dengan data rate sebesar 1 Mbps. Oleh karena itu, produk mereka tidak dipasarkan. Kemudian pada tahun 1985, FCC menetapkan band Industrial, Scientific, and Medical (ISM Band) yang dialokasikan pada frekuensi 902-928 MHz, 2.400-2.483,5 MHz, dan 5.725-5.850 MHz yang tidak diberi lisensi, sehingga perkembangan WLAN memasuki tahapan yang pesat. Rizki Syam Nugroho, 08334024 Laporan Tugas Akhir Tahun 2012 5 BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI Akhirnya pada tahun 1990 WLAN dipasarkan dengan produk yang menggunakan teknik Spread Spectrum (SS) pada ISM Band, frekuensi terlisensi 18-19 GHz, dan teknologi IR dengan data rate >1 Mbps. Pada tahun 1997, IEEE membuat standar/spesifikasi pertama untuk WLAN yang diberi kode 802.11. Peralatan yang sesuai dengan standar 802.11 ini dapat bekerja pada frekuensi 2,4 GHz dan memiliki data rate >2 Mbps secara teoritis. Standar inilah yang sampai saat ini dijadikan standar untuk Wi-Fi. Sampai saat ini ada empat variasi dari standar 802.11 yaitu 802.11a, 802.11b, 802.11g, dan 802.11n. Produk pertama dari Wi-Fi adalah 802.11b. a. 802.11a Standar 802.11a dibuat pada saat yang hampir bersamaan dengan standar 802.11b. Keduanya merupakan pengembangan dari standar aslinya yaitu 802.11 namun memiliki perbedaan pada frekuensi kerjanya. Standar 802.11a bekerja pada frekuensi 5,8 Ghz dengan kecepatan transfer data maksimum secara teoritis hingga 54 Mbps. Metode transmisi yang digunakan adalah Orthogonal Frequency Division Multiplexing (OFDM). Jarak jangkauan gelombang pada 802.11a relatif lebih pendek dibandingkan 802.11b dan relatif sukar untuk menembus dinding atau penghalang lainnya. Secara teknis, 802.11a tidak kompatibel dengan 802.11b. b. 802.11b Standar 802.11b adalah produk pertama yang merupakan pengembangan dari standar aslinya yaitu 802.11. Standar ini bertujuan untuk meningkatkan kecepatan transfer data hingga mencapai 11 Mbps. Kecepatan transfer data ini sebanding dengan kecepatan Ethernet IEEE 802.3 yaitu 10 Mbps. Frekuensi yang digunakan pada 802.11b masih sama dengan standar 802.11 yaitu 2,4 GHz. Salah satu kekurangan standar ini adalah kemungkinan terjadinya interferensi dengan cordless phone, microwave oven, atau peralatan lain yang menggunakan frekuensi yang sama dengan frekuensi 802.11b c. 802.11g Standar 802.11g dibuat pada tahun 2002 yang merupakan penggabungan dari kelebihan-kelebihan yang dimiliki oleh 802.11a dan 802.11b. Standar ini bekerja pada frekuensi 2,4 GHz dengan kecepatan transfer data sebesar 54 Mbps. Rizki Syam Nugroho, 08334024 Laporan Tugas Akhir Tahun 2012 6 BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI Peralatan dengan standar 802.11g kompatibel dengan 802.11b sehingga dapat saling dipertukarkan. Misalnya komputer dengan kartu Wi-Fi 802.11g dapat memanfaatkan access point 802.11b dan sebaliknya. d. 802.11n Standar 802.11n dikembangkan pada tahun 2006 dengan menggabungkan teknologi 802.11b dan 802.11g. Teknologi yang diusung dikenal dengan sebutan MIMO (Multiple Input Multiple Output). MIMO dibuat berdasarkan spesifikasi Pre-802.11n. Kata “pre” disini menyatakan “Prestandard version of 802.11n”. tembus MIMO terhadap penghalang lebih baik dan jangkauan sinyalnya Daya juga lebih jauh daripada standar-standar sebelumnya. Access Point MIMO dapat mengenali gelombang yang dipancarkan oleh 802.11a/b/g. Kecepatan transfer data yang dapat dihasilkan mencapai 108 Mbps. Tabel 1. Spesifikasi Wi-Fi No Spesifikasi Kecepatan Frekuensi Kompatibel dengan 1 802.11a 54 Mbps 5,8 GHz a 2 802.11b 11 Mbps 2,4 GHz b 3 802.11g 54 Mbps 2,4 GHz b, g 4 802.11n 108 Mbps 2,4 GHz a, b, g Terdapat dua mode koneksi Wi-Fi yaitu sebagai berikut: a. Ad-hoc Gambar 2. Jaringan Ad-hoc Jaringan Ad-hoc merupakan topologi jaringan yang terdiri dari beberapa node jaringan wireless yang dinamis [6]. Ad-hoc disebut juga koneksi peer to peer. Masing-masing node memiliki interface wireless untuk berkomunikasi dengan node lainnya. Setiap node pada jaringan ad-hoc memiliki kemampuan Rizki Syam Nugroho, 08334024 Laporan Tugas Akhir Tahun 2012 7 BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI untuk menjaga performa traffic paket data dalam jaringan dengan cara rekonfigurasi jaringan. Maksudnya adalah, jika ada sebuah node yang bergeser yang mengakibatkan gangguan berupa putusnya jaringan, maka node yang mengalami gangguan tersebut dapat membentuk rute baru untuk meneruskan pengiriman paket data. Jaringan Ad-hoc memiliki beberapa karakteristik, yaitu: Multiple Wireless Link: setiap node yang memiliki sifat mobility dapat memiliki beberapa interface yang terhubung ke beberapa node lainnya. Dynamic topology: topologi jaringan Ad-hoc dapat berubah secara acak. Akibatnya, routing protocol menjadi masalah yang kompleks dibandingkan dengan jaringan wired atau node yang tetap. Limited resources: jaringan Ad-hoc dibatasi oleh masalah daya dan kapasitas memori. b. Infrastructure Gambar 3. Jaringan Infrastructure Mode koneksi infrastruktur adalah topologi jaringan yang membutuhkan sebuah access point untuk menghubungkan setiap node yang ada pada jaringan. Pengiriman dan lalu lintas paket data diatur oleh access point. Kelemahan yang dimiliki jaringan ini adalah jika access point tersebut mengalami kerusakan maka node-node yang terhubung ke jaringan ini tidak dapat berkomunikasi. Rizki Syam Nugroho, 08334024 Laporan Tugas Akhir Tahun 2012 8 BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI 2.2.2. Arsitektur Android Secara garis besar, arsitektur Android dapat dijelaskan dan digambarkan sebagai berikut [7]: a. Applications dan Widgets Application dan Widget adalah layer dimana kita berhubungan dengan aplikasi saja, dimana biasanya kita download aplikasi kemudian kita melakukan instalasi dan jalankan aplikasi tersebut. Di layer terdapat aplikasi inti termasuk klien email, program SMS, kalender, peta, browser, kontak, dan lain-lain. Semua aplikasi ini ditulis dengan menggunakan bahasa pemrograman Java. b. Applications Frameworks Application Framework adalah layer dimana para pembuat aplikasi melakukan pengembangan/pembuatan aplikasi yang akan dijalankan di sistem operasi Android, karena pada layer inilah aplikasi dapat dirancang dan dibuat, seperti content-providers yang berupa sms dan panggilan telepon. Komponen-komponen yang termasuk di dalam Applications Frameworks adalah sebagai berikut: Views Content Provider Resource Manager Notification Manager Activity Manager c. Libraries Libraries adalah layer tempat fitur-fitur android berada, biasanya para pembuat aplikasi mengakses libraries untuk menjalankan aplikasinya. Berjalan di atas kernel, layer ini meliputi berbagai library C/C++ inti seperti Libe dan SSL, serta: Libraries media untuk pemutaran media audio dan video Libraries untuk manajemen tampilan. Libraries Graphics mencakup SGL dan OpenGL untuk grafis 2D dan 3D. Libraries SQLite untuk dukungan database. Libraries SSL dan Webkit terintegrasi dengan web browser dengan engine embeded web view. Rizki Syam Nugroho, 08334024 Laporan Tugas Akhir Tahun 2012 9 BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI Libraries 3D yang mencakup implementasi OpenGL ES 1.0 API. d. Android Runtime Android Runtime adalah layer yang membuat aplikasi android dapat dijalankan yang dalam prosesnya menggunakan implementasi Linux. Dalvik Virtual Machine merupakan mesin yang membentuk dasar kerangka aplikasi android. Di dalam Android Runtime dibagi menjadi dua bagian yaitu: Core Libraries: Aplikasi Android dibangun dalam bahasa Java, sementara Dalvik sebagai virtual mesinnya bukan Virtual Machine Java, sehingga diperlukan sebuah libraries yang berfungsi untuk menterjemahkan bahasa Java/C yang ditangani oleh Core Libraries. Dalvik Virtual Machine: Virtual mesin berbasis register yang dioptimalkan untuk menjalankan fungsi-fungsi secara efisien, yang merupakan pengembangan yang mampu membuat linux kernel untuk melakukan threading dan manajemen tingkat rendah. e. Linux Kernel Linux Kernel adalah layer inti dari sistem operasi Android. Linux kernel berisi file-file sistem yang mengatur sistem processing memory, resource, drivers, dan sistem-sistem operasi android lainnya. Linux kernel yang digunakan android adalah linux kernel versi 2.6. 2.2.3. Java development kit Java development kit (JDK) adalah sebuah tool dari Oracle Corporation yang dikhususkan untuk para pengembang program Java [8]. Untuk melakukan pembuatan program dengan bahasa pemrograman Java dibutuhkan JDK yang terinstal di dalam komputer. Java development kit meliputi beberapa tools yang ada di dalamnya, yaitu: 1. java java adalah tool yang dibutuhkan untuk menjalankan aplikasi Java. Tool ini sebagai interpreter yang dapat menerjemahkan file class yang dibuat oleh compiler Java. 2. javac javac adalah compiler yang mengubah sourcecode ke dalam Java bytecode Rizki Syam Nugroho, 08334024 Laporan Tugas Akhir Tahun 2012 10 BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI 3. appletviewer tool ini digunakan untuk menjalankan dan melakukan debugging pada Java applets tanpa menggunakan web browser 4. apt apt adalah annotation-processing tool 5. extcheck extcheck merupakan utility yang dapat mendeteksi kesalahan pada file JAR. 6. Idlj Idlj adalah compiler IDL ke Java. Utility ini melakukan generate Java bindings dari file Java IDL. 7. Javadoc Merupakan documentation generator yang secara otomatis melakukan generate documentation dari sourcecode comments. 8. Jar Jar merupakan tool yang mengumpulkan seluruh file class libraries yang berhubungan dengan program Java yang dibuat ke dalam bentuk satu buah file JAR. Tool ini juga membantu dalam memanage file-file JAR. 9. javah javah merupakan C header dan stub generator, digunakan untuk menambahkan native method. 10. javap merupakan disassembler file class 11. javaws adalah Java Web Start launcher untuk aplikasi JNLP. 12. jconsole jconsole adalah Java Monitoring and Management Console. 13. jdb jdb adalah debugger Java. 14. jhat 15. jinfo 16. jmap 17. jps Rizki Syam Nugroho, 08334024 Laporan Tugas Akhir Tahun 2012 11 BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI 18. jrunscript jrunscript adalah Java command-line script shell. 19. jstack jstack adalah utility yang menampilkan Java stack traces dari sebuah thread Java. 20. jstat jstat adalah Java Virtual Machine statistics monitoring tool 21. jstatd 22. policytool policytool merupakan policy creation dan management tool, tool yang dapat menentukan policy untuk suatu Java runtime. 23. VisualVM 24. wsimport wsimport melakukan generate JAX-WS artifacts portabel untuk web service. 25. xjc xjc melakukan generate XML ke dalam class Java. 2.2.4. Eclipse Eclipse adalah sebuah IDE (Integrated Development Environtment) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform, baik Microsoft Windows, Linux, Solaris, AIX, HP-UX, dan Mac OS. Eclipse dikembangkan dengan bahasa pemrograman Java akan tetapi Eclipse juga mendukung bahasa pemrograman lainnya seperti C/C++, Cobol, Python, Perl, PHP, dan sebagainya. Selain sebagai IDE untuk pengembangan aplikasi, Eclipse juga dapat digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti dokumentasi, tes perangkat lunak, pengembangan web, dan lain sebagainya. Eclipse saat ini merupakan salah satu IDE yang favorit karena sifatnya yang open-source, yang berarti setiap orang boleh melihat kode pemrograman perangkat lunak ini. Selain itu kelebihan dari Eclipse adalah kemampuannya untuk dapat dikembangkan dengan komponen lain yang dinamakan plug-in. Rizki Syam Nugroho, 08334024 Laporan Tugas Akhir Tahun 2012 12 BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI Eclipse dapat digunakan untuk membuat aplikasi Android dengan menanamkan sebuah plug-in yang bernama Android development tools (ADT). Hingga saat ini versi Eclipse sudah cukup banyak namun yang mendukung plug-in ADT adalah versi 3.4 keatas. Gambar 4 memperlihatkan contoh tampilan antarmuka Eclipse Galileo (versi 3.5). Gambar 4. Tampilan Antarmuka Eclipse Galileo 2.2.5. Android development tools Android development tools (ADT) adalah sebuah plugin yang dapat diintegrasikan dengan software Eclipse IDE. ADT dapat membantu developer untuk mengakses fitur-fitur pada android sehingga pembuatan program dapat dilakukan dengan cepat. ADT juga memudahkan developer untuk membuat desain dari user interface (UI) sebuah program android. Untuk membuat suatu aplikasi Android dibutuhkan ADT yang diintegrasikan dengan Eclipse IDE karena ADT memiliki beberapa fitur penting yaitu sebagai berikut: a. Android project creation, building, packaging, installation, dan debugging yang terintegrasi. ADT mengintegrasikan proses-proses developing ke dalam Eclipse sehingga memudahkan developer untuk melakukan proses compile, build, debug, serta pengetesan terhadap aplikasi Android yang sedang dibuat. b. Tool SDK yang terintegrasi. Rizki Syam Nugroho, 08334024 Laporan Tugas Akhir Tahun 2012 13 BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI c. XML editor. Dengan adanya ADT memudahkan developer untuk melakukan pembuatan file XML Android. ADT menyediakan editor berbasis GUI sehingga developer dapat membuat desain UI secara drag dan drop. d. Android documentation yang terintegrasi Dengan adanya ADT dapat mengakses documentation dengan cara menggerakkan kursor mouse ke atas sebuah class, method, atau variabel. Android virtual device 2.2.6. Android virtual device (AVD) adalah emulator android untuk dijalankan pada komputer. AVD memiliki semua fungsi dan fitur yang sama seperti yang ada pada handphone android. Dengan menggunakan AVD, kita dapat melakukan uji coba aplikasi yang kita buat sebelum dimasukkan ke handphone. Gambar 5 memperlihatkan tampilan Android virtual device ketika dijalankan di komputer. Gambar 5. Android virtual device Rizki Syam Nugroho, 08334024 Laporan Tugas Akhir Tahun 2012 14