BAB II LANDASAN TEORI
2.1.
Perkembangan Robot di Indonesia Sebenarnya sejak tahun 1980-an pengembangan dan penggunaan mesin
otomatis di Indonesia telah dilakukan terutama pada kelompok industri strategis, seperti PT Pindad (Perindustrian Angkatan Darat) yang berfokus pada sistem dan peralatan yang menunjang hajat hidup orang banyak. PT LEN Industri yang bergerak pada bidang IT, perangkat lunak, dan energi. PT Bharata dan PT BBI (Boma Bisma Indra) yang bergerak dalam bidang pengecoran presisi untuk membuat bagian-bagian mesin. Selain itu PT DI (Dirgantara Indonesia) dan banyak lagi. Pada tahun 2001, Kementerian Riset dan Teknologi bekerja sama dengan Departemen Pendidikan Nasional telah mempromosikan Kontes Robot Indonesia dalam pameran Ristek tahunan, yaitu RITECH EXPO (Research, Inovation, Technology
Expo)
di
Balai
8
Sidang
Jakarta.
9
Robotika di Indonesia terus berkembang dari zaman ke zaman dengan efek yang sangat bervariasi untuk setiap sisi kehidupan. Perkembangan robotika dalam dunia pendidikan akan mempengaruhi gaya dan proses pembelajaran. Pengaruh ini cukup terlihat dalam dunia ilmu komputer.
2.2.
Perkembangan dan Sejarah LEGO Mindstorm NXT LEGO Mindstorm NXT pertama kali diluncurkan pada musim gugur
tahun 2006, tapi cerita sebenarnya dimulai delapan tahun sebelumnya, pada musim gugur 1998. Ketika LEGO memperkenalkan MINDSTROMS pertama kali adalah The Robotic Invention System (RIS) dengan brick Robotic Control Explorer ( RCX ) yang dapat diprogram, itu merupakan evolusi dari lima dekade teknik konstruksi modular dari LEGO. Beberapa tahun menggunakan dengan metode pendidikan berbasis komputer dari Massachusetts Intitute of Technology ( MIT ).
Gambar 2.1 Robotic Control Explorer (RCX)
10
Lego telah memproduksi mainan konstruksi sejak tahun 1940-an, dimulai dengan membangun blok-blok dan dan berakhir dengan potongan-potongan yang sangat teknis saat ini yang meliputi beams, motor dan gear. Meskipun gaya bangunan telah berubah potongan baru dirancang agar kompatibel dan saling beroperasi dengan yang lama. The Robotic Invention System (RIS) yang berevolusioner karena, untuk pertama kalinya orang dapat dengan mudah berbagi penemuan yang rumit. Setiap orang dapat membangun persis penemuan yang sama tanpa keterampilan tradisional seperti pertukangan, logam, elektronik dan pemrograman. Itu juga merupakan keuntungan bagi lembaga pendidikan dari yang dibutuhkan platform tahan lama dan dapat digunakan kembali untuk laboratorium rekayasa proyek. LEGO Mindstorms NXT adalah perangkat robot edukasional keluaran LEGO. Seri NXT sebagai penerus atau peningkatan dari seri sebelumnya, yaitu RIS (Robotics Invention System) yang sukses di pasaran. Penggunaan Mindstorms NXT membantu mempermudah pembuatan robot. Hal ini dikarenakan Mindstorms NXT menghilangkan kebutuhan untuk menyolder sirkuit dan menghilangkan kesulitan saat pemasangan motor. Robot yang dibuat menggunakan LEGO tidak dapat dianggap sebagai sebuah robot final, tapi dapat dianggap sebagai sebuah model.
11
Gambar 2.2 Lego Mindstroms NXT
2.3.
Robot Lego Mindstorm NXT Seiring dengan perkembangan teknologi yang cukup pesat ini, robot bukan
lagi pada suatu konsep yang sulit seperti yang kita tahu sebelumnya, namun robot merupakan bentuk alat bantu manusia yang dapat diaplikasikan pada kehidupan sehari-hari. Dengan kreatifitas generasi muda dan kalangan professional dalam mendesain dan membuat program pada robot, pemrograman terhadap device robotika dapat dilakukan dengan menggunakan high level language, atau menggunakan drag and drop. Inovasi ini akan menjadi terobosan baru dalam hal pemrograman terhadap peralatan robotika, sehingga teman-teman pelajar akan dipermudah dalam penerapan segi elektriknya dan dapat lebih berkonsentrasi terhadap perintahperintah logikanya. Selain dari kemudahan yang ditawarkan oleh Robot LEGO NXT Mindstorm, perangkat robotika LEGO juga memiliki kelebihan antara lain :
12
•
Dapat dibentuk sesuai dengan imaginasi (mobil, helikopter, robot, mesin, dan lain-lain).
•
NXT Mindstorms dioperasikan dengan program.
•
Program berbasis drag and drop (user friendly).
Robot, kendaraan, dan mesin dibentuk dari NXTBrick. Terdapat satu processor 32-bit untuk menggerakkan motor, berdasarkan input dari sensorsensor. Sensor-sensor yang dapat digunakan dalam perangkat LEGO Mindstorm adalah sensor: cahaya, suara, warna, tekanan, dan ultrasonik. Robot LEGO NXT Mindstorm membuat pekerjaan yang berhubungan dengan elektronika, misalnya kebutuhan menyambungkan beberapa perangkat dengan solder, mengukur tegangan dari peralatan elektrik menjadi tidak ada. Pengguna dapat merkait Robot LEGO NXT Mindstorm layaknya merakit mainan lego, dan melakukan programming dengan cara melakukan drag and drop diatas user interface Robot LEGO NXT Mindstorm.
2.4.
Komponen LEGO Mindstorm NXT Ada beberapa jenis Lego Mindstorm 2.0 yang beredar dipasaran yaitu : •
Lego Mindstorm Retail Kit (Diperuntukkan untuk hobi dan perorangan)
•
Lego Mindstorm Education Base Set (Diperuntukkan untuk kebutuhan lembaga pendidikan).
13
Selain kedua jenis LEGO Mindstorms NXT diatas, LEGO Mindstorms NXT juga menyediakan paket aksesoris yang didalamnya terdapat motor, lego, dan sensor tambahan sebagai pelengkap paket LEGO Mindstorms NXT standard. Paket standard dari robot LEGO Mindstorms NXT memiliki beberapa komponen, antara lain : 2.4.1. Brick
Gambar 2.3 Brick Brick adalah komponen paling penting dari robot NXT, karena berfungsi sebagai pengendali (otak dan sumber tenaga robot NXT). Program yang sudah dibuat dapat di-upload ke NXT Brick untuk di compile. Spesifikasi teknis dari NXT Brick, yaitu : •
32-bit AT91SAM7S256 (ARM7TDNI) main microprocessor @48 MHz (256 KB flash memory, 64 KB RAM)
•
8-bit Atmega48microcontroller @ 4 MHz (4 KB flash memory, 512 Bytes RAM)
•
LCD display 100 x 64 piksel
14
•
Bluetooth
•
Satu port USB 2.0
•
Empat port input : port 1, port 2, port 3, dan port 4
•
Tiga port output : port A, port B, dan port C
•
Speaker terintegrasi untuk mengeluarkan output suara
•
Empat tombol : cancel, OK, left, dan right Penggunaan dua processor membuat Lego Mondstorm NXT dapat
menjalankan lebih dari satu Thread pada program. Hal ini disebabkan oleh adanya 2 (dua) processor yang mengerjakan fungsi yang berbeda pada saat bersamaan. Mikrocontroller ARM7 berfungsi sebagai master controller yang fungsi utamanya mengatur jalur komunikasi. Fungsi dari mikrokontroler (PMW) untuk mengendalikan ketiga motor, serta Analog to Digital Converter(ADC) dari terminal masukan.
15
Gambar 2.4. Diagram blok NXT brick Brick dapat menerima masukan dari 4 sensor, dan menjalankan 3 motor sekaligus, dengan bentuk seperti dibawah ini :
Gambar 2.5. Brick dengan 4 sensor dan 3 motor
16
Tampilan pada layar LCD brick adalah sebagai berikut :
Gambar 2.6. Tampilan pada layar LCD brick Brick dapat kita ibaratkan seperti CPU pada komputer, yang berfungsi untuk mengolah data. Brick berfungsi untuk mengendalikan jalannya robot sesuai dengan program yang kita buat. Pada pembuatan program dengan NXT kita dapat melakukannya dengan 2 cara : •
Membuat program secara langsung pada NXT Brick.
•
Membuat program melalui komputer, selanjutnya kita upload ke NXT Brick. Untuk program-program yang sederhana kita dapat membuatnya secara
langsung pada NXT Brick, sedangkan untuk program-program yang kompleks dan rumit kita dapat membuatnya di komputer terlebih dahulu.
17
Cara membuat program sederhana langsung pada NXT Brick, yaitu :
Gambar 2.7. Cara membuat program pada NXT Brick Contoh pemograman yang bisa dibuat langsung pada brick adalah program untuk robot mini golf. Dimana robot tersebut bergerak seperti orang yang sedang bermain golf. Langkah-langkah untuk membuat robot mini golf tersebut sebagai berikut :
18
Gambar 2.8. Contoh pemograman pada brick 2.4.2. Motor Motor pada Lego Mindstrom NXT berfungsi untuk menggerakkan bagian robot, seperti memutar roda atau menjadi sendi. Satu brick bisa dipasang hingga 3 (tiga) buah motor. Motor pada NXT Mindstorm tidak menggunakan motor DC biasa. Motor DC memiliki keterbatasan dalam hal kemampuan torsi putar, karena motor DC tidak mempunyai umpan balik umpan balik untuk mengadaptasi beban pada motor DC. Pada robot Lego Mindstorm NXT, motor yang dipakai adalah motor DC servo yang dilengkapi dengan sebuah encoder yang berfungsi sebagai umpan balik, sehingga pusat pengendalian dapat memberikan arus yang sesuai dengan beban pada motor. Kecepatan sudut maksimum motor adalah satu putaran per detik. Servo juga dapat digunakan untuk menghitung derajat perputaran atau rotasi. Akurasi dari servo motor mencapai kurang lebih satu derajat. Dalam perkembangannya, motor servo dipadukan dengan susunan gearing tertentu untuk mendapatkan torsi
19
akhir yang lebih besar. Torsi yang besar yang didapat dalam waktu singkat merupakan kelebihan motor servo. Kekurangan motor servo adalah kurangnya akurasi sehingga diperlukan suatu pengendali yang dapat meningkatkan keakurasian. Gambar dibawah ini menunjukkan motor lego mindstorm NXT.
Gambar 2.9. Motor
Gambar 2.10. Konstruksi bagian dalam motor
2.4.3. Sensor Sentuh Sensor sentuh bekerja seperti indera peraba manusia. Sensor sentuh bekerja berdasarkan penekanan dari saklar, seperti yang telihat pada gambar 2.11. Saklar yang digunakan pada sensor ini merupakan saklar normally off, yang
20
artinya jika saklar ditekan, maka akan mengindikasikan logika “1” dan jika dilepas, maka akan berlogika “0”.
Gambar 2.11. Saklar sentuh Guna sensor sentuh ini adalah untuk membuat suatu aksi dari robot yang jika sensor tersebut ditekan, maka robot akan melakukan gerakan/aksi tertentu, tetapi jika sensor tersebut dilepas, maka robot akan melakukan aksi lainnya. Sensor ini dapat kita kombinasikan dengan sensor yang sama atau dengan sensor yang berbeda. Sensor sentuh memungkinkan tidak hanya untuk mendeteksi ada atau tidaknya sentuhan, tetapi juga apakah sentuhan sudah dilepaskan atau belum
21
Gambar 2.12. Sensor Sentuh Pada robot, sensor sentuh juga dapat dimanfaatkan untuk memeriksa apakah sebuah objek sudah digenggam atau belum. Sensor sentuh harus dipasang pada posisi dimana jika ada sebuah objek dalam genggaman, maka sensor sentuh akan tertekan. Jika benda tersebut dilepaskan, maka tekanan yang tadinya dirasakan juga akan hilang.
2.4.4. Sensor Ultrasonik Sensor Ultrasonik adalah sensor yang memanfaatkan gelombang ultrasonik sebagai alat navigasi. Gelombang ultrasonik adalah gelombang yang memiliki frekuensi lebih dari 20 KHz. Beberapa hewan tertentu dapat mendengarkan gelombang ultrasonik, seperti lumba-lumba dan kelelawar. Sensor ultrasonik pada lego mindstrom NXT berbentuk seperti mata. Mata sebelah kanan berungsi sebagai pemancar gelombang (transmitter) dan mata sebelah kiri berfungsi sebagai penerima gelombang (receiver). Pada Lego Mindstorms NXT, sensor ultrasonik merupakan sensor utama untuk navigasi dan penghindaran halangan. Bisa dikatakan pemanfaatan gelombang ultrasonik ini
22
meniru teknik navigasi pada kelelawar atau kapal selam. Sensor ini berbentuk seperti mata. Mata sebelah kanan merupakan pemancar gelombang ultrasonik, dan mata sebelah kiri adalah penerima gelombang ultrasonik.
Gambar 2.13. Sensor Ultrasonik Cara kerja sensor ultrasonik pada Lego Mindstorms NXT mengikuti konsep penggunaan gelombang ultrasonik untuk menentukan jarak. Awalnya mata kanan akan memancarkan gelombang ultrasonik. Setelah beberapa saat mata kiri akan menerima pantulan gelombang ultrasonik yang dipancarkan sebelumnya. Selisih antara waktu gelombang dikirimkan dan pantulannya diterima akan digunakan untuk menentukan posisi benda terdekat. Sensor ultrasonik lego Mindstorms NXT tidak mampu membaca jarak yang lebih kecil dari 3 cm. Berdasarkan penelitian, ada dua kelemahan paling utama pada sensor ini. Kelemahan pertama adalah terjadinya kekacauan untuk
23
perhitungan pada jarak lebih besar dari 255 cm. Hal ini dikarenakan nilai yang didapatkan sensor sudah berada di luar rentang nilai yang dimiliki NXTBrick. Kelemahan kedua adalah untuk benda yang berada pada jarak antara 25 cm – 50 cm, sensor mempunyai probabilitas besar untuk membaca jarak tersebut menjadi 48 cm.
2.4.5. Sensor Cahaya Sensor cahaya adalah sensor yang cara kerjanya yaitu merubah besaran cahaya menjadi besaran listrik. Sensor cahaya digunakan untuk mendeteksi dan mengukur intensitas cahaya atau gelap terang. Sensor cahaya pada lego mindstrom NXT terdiri dari dua komponen, yaitu LED dan phototransistor. Sensor ini dapat membedakan terang dan gelap, serta mengukur intensitas cahaya di suatu ruangan maupun pada permukaan yang berwarna. Sebelum membahas lebih jauh tentang sensor cahaya, akan dijelaskan secara singkat mengenai konsep cahaya. Cahaya adalah radiasi elektromagnetik dari sebuah gelombang yang dapat terlihat oleh manusia (sekitar 400-700 nm). Cahaya memiliki tiga properti utama, yaitu: intensitas , frekuensi, dan polarisasi. Sensor cahaya adalah salah satu jenis sensor yang dapat digunakan untuk mendeteksi dan mengukur intensitas cahaya. Definisi yang lebih sederhana, sensor cahaya akan mengukur gelap atau terangnya suatu sumber cahaya. Sensor ini dapat dilihat pada gambar berikut.
24
Gambar 2.14. Sensor Cahaya. Komponen yang termasuk dalam Sensor cahaya yaitu : - LDR ( Light Dependent Resistor ) LDR adalah sebuah resistor dimana nilai resistansinya akan berubah jikadikenai cahaya. - PhotoDioda PhotoDioda adalah sebuah dioda yang apabila dikenai cahaya akan memancarkan electron sehingga akan menalirkan arus listrik.
25
- Phototransistor Phototransistor adalah sebuah transistor yang apabila dikenai cahaya akan mengalirkan electron sehingga akan terjadi penguatan arus seperti pada sebuah transistor. - Optocoupler Optocoupler adalah sebuah komponen kopling berbasis optik. Sensor cahaya pada lego Mindstorms NXT terdiri dari dua komponen, yaitu: LED (Light Emitting Diode) dan phototransistor. Sensor ini dapat membedakan terang dan gelapnya cahaya, membaca intensitas cahaya di suatu ruangan, serta dapat mengukur intensitas cahaya pada permukaan yang berwarna. Sensor cahaya memperlihatkan bagaimana membedakan warna dengan menggunakan sensor cahaya. Sensor cahaya hanya akan membaca intensitas cahaya yang diterima oleh sensor. Hal ini berarti sensor dapat saja membaca intensitas cahaya yang sama berdasarkan pantulan dari dua warna yang berbeda. Permasalahan ini dapat diatasi dengan memberikan cahaya tambahan atau mengganti sensor dengan sensor yang lebih sensitif.
2.4.6. Sensor Suara Sensor suara adalah sensor yang digunakan untuk mendeteksi adanya suara. Sensor ini disesuaikan dengan kemampuan pendengarkan manusia, yaiut antara 20 Hz samapai 20 KHz. Sensor suara pada lego mindstrom NXT digunakan untuk mengukur intensitas suara lingkungan. Sensor ini dapat mendeteksi suara
26
sampai maksimum 90 desibel (dB). Gambar di bawah ini merupakan sensor suara pada lego mindstorms NXT.
Gambar 2.15. Sensor Suara Sensor suara berfungsi seperti telinga, yaitu untuk menangkap suara. Sensor suara dalam Lego Mindstorms NXT ini mampu untuk mengukur kenyaringan dari lingkungan robot. Dengan menggunakan sensor ini, robot lego mindstorms NXT dapat berpindah atau bergerak ke area yang lebih tinggi atau menurunkan kenyaringan tergantung pada kode NXT-G yang telah dibuat. Sensor suara mengukur tingkat volum pada skala 0 sampai 100, 100 menjadi yang sangat keras, 0 menjadi yang sepenuhnya diam. Sensor suara mampu untuk mengukur kenyaringan berciri sama dengan decibel (dB) dan dBA (frekwensi sekitar 3-6 kHz, yang mana telinga manusia adalah yang paling sensitif).
27
Kerja sensor suara dimulai ketika sensor menerima input suara dari lingkungan. Suara tersebut akan diterima oleh mikrofon yang ada pada sensor. Diafragma dalam mikrofon akan menangkap getaran suara dan ikut bergetar sesuai dengan frekuensi getaran yang ditangkap. Getaran tersebut akan menyebabkan magnet dalam mikrofon bergerak dengan frekuensi yang sama dengan frekuensi suara yang diterima. Magnet kemudian bergerak dalam kumparan yang selanjutnya menghasilkan aliran listrik dengan frekuensi yang sama pula. Aliran listrik inilah yang dikonversi menjadi sinyal yang sesuai agar dapat dibaca NXTBrick. NXTBrick selanjutnya mengkonversi sinyal tersebut dalam persentase antara 0 – 100%. Persentase tersebut dapat diartikan sebagai tingkat kekerasan suara yang diterima oleh sensor.
2.4.7 Sensor Warna Sensor didasarkan pada prinsip yang berbeda. LEGO sensor menggunakan LED RGB, dan berturut-turut bersinar lampu merah, hijau dan biru pada objek. Cahaya yang dipantulkan dukumpulkan oleh sensor peka cahaya dengan panjang gelombang semua. HiTechnic memiliki LED putih, dan sebuah chip warna khusus yang sensitive. Chip ini memiliki tiga daerah sensitive tercakup merah, hijau dan ilter biru. Keuntungan tambahan dari metode HiTechnic dapat mendeteksi warna cahaya yang dikirim di atasnya (dalam mode pasif, dengan Led putih mematikan).
28
Gambar 2.16. Sensor Warna 2.4.8. Konektor Sensor dihubungkan ke NXT brick menggunakan suatu 6-position modular connector yang mengutamakan kedua antarmuka digital dan analog. Antarmuka yang analog adalah backward-compatible (dengan menggunakan suatu adapter) dengan Robotics Invention System yang lama. Antarmuka yang digital mampu untuk kedua komunikasi I2C dan RS-485.
29
Tabel 2.1. NXT sensor interface pin-out.
2.4.9. Komponen Tambahan Selain komponen utama, ada juga komponen tambahan untuk membuat robot lego mindstorms NXT. Komponen-komponen yang terdapat di robot lego mindstorms NXT secara lengkap, yaitu :
Gambar 2.17. Komponen robot NXT.
30
2.5.
Program NXT-G Untuk menjalankan robot NXT, pertama-tama kita harus memprogram
robot tersebut dengan program yang kita inignkan. Ada banyak bahasa pemrograman yang dapat digunakan untuk memprogram NXT, salah satunya adalah NXT-G. NXT-G atau LEGO MINDSTORMS Education NXT adalah software untuk memprogram NXT Brick dari komputer yang dapat dilakukan secara grafikal. Perangkat lunak ini adalah cukup untuk pemrograman dasar, seperti driving motor, membuat sensor sebagai masukan/input, membuat kalkulasi/perhitungan, dan mempelajari struktur program sederhana dan aliran kontrol. MINDSTORMS NXT digunakan untuk menciptakan perangkat lunak yang mengendalikan tindakan dari perangkat keras robot. Software NXT MINDSTORMS adalah suatu sistem instruksi assembling visual/icon. Aliran arah yang pada umumnya bergerak dari kiri ke kanan. Perangkat lunak ini adalah suatu contoh dari suatu program yang di-compile. Program yang dibuat di NXT harus di-compile dan di-download ke NXT Brick sebelum robot melaksanakan program itu.
31
Gambar 2.18. Tampilan awal program NXT-G Gambar di atas merupakan overview dari software NXT-G. Pada bagian yang bernomor 1 (satu) adalah bagian untuk memulai suatu program baru. Sebelum memulai, nama file dapat diubah terlebih dahulu, setelah itu tekan tombol “Go” untuk menuju ke lembar kerja baru. Untuk bagian yang bernomor 2 (dua), jika kita sebelumnya telah memiliki file program, maka dapat kita buka dengan cara memilih nama file yang kita punya terlebihdahulu sebelum menekan tombol “Go”
32
Gambar 2.19. Tampilan lembar kerja baru Gambar di atas adalah gambar saat kita menekan tombol “Go” pada bagian membuat lembar kerja baru. Block function yang dapat digunakan untuk memprogram adalah yang berada di sebelah kiri. Cara untuk memprogramnya cukup dengan klik blok fungsi yang kita inginkan kemudian di-drag menuju awal rangkaian program “star”, kemudian letakkan di tempat yang disediakan.
Gambar 2.20. Memulai program di NXT-G
33
Setelah kita memasang blok, maka panel bagian bawah akan muncul parameter dari blok tersebut (masing-masing blok memiliki parameter sendiri), dari parameter tersebut, dapat kita atur berbagai kondisi yang dapat terjadi sesuai dengan keinginan kita. Berikut ini adalah penjelasan beberapa Block yang akan digunakan untuk program pada project ini. 2.5.1 Move Block
Gambar 2.21. Move block Salah satu block yang dapat kita pakai untuk memprogram robot adalah Move Block. Move Block memiliki fungsi untuk membuat motor pada robot bekerja (maju atau mundur). Jika disesuaikan dengan model robot, kerja motor dapat membuat variasi gerak pada robot. Selain maju dan mundur, robot juga dapat diperintahkan berbelok hanya dengan menggunakan satu blok saja. Biasanya untuk membuat hasil yang baik, untuk melakukan belok digunakan dua buah move block.
Gambar 2.22. Parameter move block
34
Gambar di atas adalah parameter yang terdapat pada Move Block. Pada parameter tersebut, dapat kita atur port motor mana saja yang ingin dijalankan, arah gerak motor, steering pada motor, kecepatan gerak motor, durasi gerak motor, dan perintah sebelum melanjutkan ke block berikutnya.
2.5.2. Switch Block Switch Block merupakan sebuah blok yang memiliki kondisi lebih dari satu. Dalam beberapa bahasa pemograman lain logika dari switch block ini sama dengan logika if…then..else. Switch block ini juga memiliki dua control yang berbeda, yaitu sensor dan value. Pada switch block ini, program yang akan berjalan adalah program pada kondisi yang telah terpenuhi. Jika sudah terpenuhi satu kondisi, maka program itu saja yang akan berjalan sampai switch block menemukan kondisi berikutnya, namun jika hanya 1(satu) kondisi sajayang terpenuhi sampai akhir, maka program yang terdapat pada kondisi lainnya tidak akan berjalan. Berikut adalah gambar kedua switch block tersebut.
Gambar 2.23. Switch block dengan kontrol sensor dan value
35
Untuk switch block yang menggunakan kontrol sensor, parameternya tergantung dari jenis sensor yang digunakan. Untuk blok yang menggunakan kontrol value, parameternya tergantung pada tipe dari value yang digunakan. Berikut adalah masing-masing parameter dari switch block tersebut.
Gambar 2.24. Parameter switch block dengan control sensor
Gambar 2.25. Parameter switch block dengan control value 2.5.3. Loop Block Loop block berfungsi untuk melakukan perulangan pada suatu program. Pada beberapa bahaas pemograman lain, logika loop block sama dengan dengan logika repeat….until. Loop block juga memiliki beberapa kontrol, yaitu forever, sensor, time, count, dan logic. Berikut adalah gambar-gambarnya.
36
Gambar 2.26. Loop block dengan control forever, sensor, time, count, dan logic. Masing-masing loop block tersebut memiliki parameter yang hampir sama, terutama yang memiliki control time dan count. Untuk control logic, syarat yang dapat dimasukkan hanya true dan false saja. Untuk control sensor, parameternya tergantung dari masing-masing jenis sensor-nya. Untuk control forever, program akan diulang selamanya, untuk menghentikannya, kita harus melakukan terminating program langsung pada robot. Berikut adalah parameter loop block dengan control time.
Gambar 2.27. Parameter loop block dengan control time 2.4.4 Kabel Data Kabel Data (data wire) merupakan komponen NXT-G yang digunakan untuk mengalirkan data dari suatu blok ke blok yang lain. Kabel data dapat dianggap sebagai media komunikasi antar blok dalam sebuah program. Terdapat tiga macam kabel data yang merepresentasikan tiga tipe data sebagai berikut:
37
•
Bilangan (numeric integer), termasuk bilangan negatif. Contohnya 10, 0, atau -2.
•
Logika (logic), memiliki dua kemungkinan nilai, yaitu benar (true) atau salah (false).
•
Teks, yaitu karakter alfanumerik. Contohnya Halo, indonesia, Universitas Mercu Buana.
Untuk lebih memahami konsep kabel data, perhatikan potongan program pada Gambar 2.30. Pada Gambar 2.30 terdapat tiga blok utama, yaitu blok sensor ultrasonik, compare block, dan blok move. Algoritma dari potongan program tersebut adalah sebagai berikut: •
Hitung jarak rintangan yang berada di depan robot
•
Bandingkan jarak rintangan tersebut, apakah lebih kecil dari 20 cm?
•
Jika jarak rintangan tersebut kurang dari 20 cm, maka robot akan bergerak maju sejauh lima putaran roda.
38
Gambar 2.28. Contoh Penggunaan Kabel Data pada Program NXT-G
Kabel kuning membaca nilai jarak rintangan terdekat yang dibaca oleh sensor ultrasonik. Jarak yang dibaca diterima dalam satuan sentimeter (cm). Nilai tersebut dikirimkan ke blok perbandingan untuk dibandingkan dengan nilai 20. Satuan nilai 20 ini disesuaikan dengan satuan untuk nilai jarak, yaitu sentimeter. Jika nilai yang masuk kurang dari 20, maka kabel hijau akan mengirimkan nilai benar (true). Sebaliknya, jika nilainya lebih dari atau sama dengan 20, maka kabel hijau akan mengirimkan nilai salah (false). Nilai dari kabel hijau akan diterima oleh blok move. Nilai tersebut akan menentukan gerakan robot. Jika nilainya benar, maka blok move akan bekerja dam robot bergerak maju sejauh lima putaran roda. Jika salah, maka robot tidak akan bergerak.
39
2.5.5 Sumber Data Sumber utama data bilangan adalah blok sensor. Sensor cahaya mengukur intensitas cahaya dalam satuan kandela, sensor ultrasonik mengukur jarak objek dalam satuan sentimeter, sedangkan sensor suara mengukur intensitas suara yang berada di lingkungan dalam satuan desibel. Sumber data bilangan lainnya adalah blok matematika yang berfungsi melakukan operasi matematika, seperti penambahan dan pengurangan. Adapun sumber data logika berasal dari blok perbandingan (compare). Contoh program pada Gambar 2.30 menunjukkan cara kerja blok perbandingan dalam menghasilkan data logika yang kemudian dikirimkan ke blok move. Sedangkan data teks berasal dari blok number-to-text yang berfungsi menerima masukan data bilangan yang ingin diubah menjadi data teks. Penggunaan data yang telah kita lakukan sejauh ini hanya bersifat statis. Pada dunia nyata Anda akan membutuhkan penggunaan data yang bersifat dinamis. Kebutuhan inilah yang membuat peran variabel menjadi penting. Istilah variabel merujuk kepada data yang dapat diubah secara dinamis. Sebagai pasangan dari konsep variable ini ada konsep yang bernama operator. Operator berguna untuk melakukan manipulasi terhadap nilai yang tersimpan dalam variabel-variabel tersebut.
2.5.6. Download, Run, dan Stop Setelah selesai membuat program, maka program tersebut dimasukkan ke dalam brick dengan cara menggunakan ikon di bawah ini. Namun, harus menggunakan kabel data memindahkan program dari komputer ke brick.
40
Gambar 2.29. Ikon untuk memasukkan program ke brick Gambar no 1 di atas merupakan ikon untuk menampilkan NXT window, seperti gambar di bawah ini.
Gambar 2.30. NXT window
41
Gambar no 2 adalah ikon untuk download dan run selected. Ikon ini berfungsi untuk memasukkan program ke dalam brick dan langsung menjalankannya, namun program yang dimaksud adalah program tertentu yang sudah dipilih saja, bukan seluruh program. Gambar no 3 adalah ikon untuk download seluruh program dalam file yang sedang dibuka. Apabila menggunakan ikon ini, robot tidak akan langsung bergerak sesuai program, karena hanya memindahkan file saja. Gambar no 4 adalah ikon stop. Digunakan untuk menghentikan program yang sedang dijalankan. Gambar no 5 adalah ikon download and run. Ikon ini berfungsi untuk menyimpan program yang sudah dibuat dalam satu file ke dalam memory brick dan langsung menjalankan program tersebut.