9. Eksperimen dengan Pengambilan Keputusan
Bab ini akan membahas secara details penggunaan blok if dan if/else untuk melakukan pengambilan keputusan dan sekaligus memperkenalkan sejumlah operator yang digunakan pada perintah pengambilan keputusan.
9.1 Ekspresi Boolean
Ekspresi boolean adalah segala ekspresi yang menghasilkan nilai true atau false Eksprvsi seperti sangat penting di dalam pengarnbilan keputusan yang mengharusk untuk menganlbil salah satu tindakan berdasarkan dua kemungkinan.
Ekspresi boolean dapat berupa ekspresi pembandingan ataupun ekspresi logika Kedua ekspresi inilah yang dibahas di awal bab ini sebelum membicarakan perintah perintah yang digunakan untuk tnelakukan pengambilan keputusan.
9.2 Ekspresi Pembandingan
ArduBlock menyediakan sejumlah blok yang digunakan untuk menanganj ekspresi pembandingan, baik untuk bilangan maupun tipe karakter dan digital. pada Tabel 9.1 mencantumkan keseluruhan blok untuk keperluan itu, yang terletak di laci
Tabel 9.1 Ekspresi pembandingan
9.3 Ekspresi Logika
Ekspresi logika dikenakan pada ekspresi boolean untuk melaksanakan suatu operasi yang hasilnya berupa true atau false. ArduBlock menyediakan tiga blok untuk menangani hal ini, yakni berupa:
Ketiga blok ini terdapat pada laci Tests Blokand dan or memerlukan dua operand. Hasil operasi dengan and berupa true kalau kedua operand bernilai true, sedangkan hasil operasi dengan or berupa true kalau terdapat operand yang bernilai true. Tabel 9.2 memberikan detail kemungkinan nilai pada operand dan hasil untuk operasi dengan and dan or.
Blok not hanya melibatkan satu operand. Nilai baliknya berupa true sekiranya argumennya bernilai false. Sebaliknya, nilai baliknya berupa false kalau argumennya bernilai true. Contoh penggunaan not dapat dilihat pada Sub bab 7.3.
9.4 Blok if
Blok if, yang terdapat di laci
Slot test berisi ekspresi boolean dan slot then berisi perintah-perintah yang akan dijalankan sekiranya ekspresi boolean pada slot test bernilai true.
Untuk mempraktikkan if, silakan untuk menyusun rangkaian seperti yang tercanturn pada Gambar 9.1. Dengan menggunakan rangkaian ini, LED dapat dihidupkan dengan mengetikkan 1 pada Serial Monitor. Untuk mematikan LED, maka angka 0 perlu dimasukkan dari Serial Monitor.
Gambar 9.1 Rangkaian pengendalian LED melalui data dari Serial Monitor
Untuk mengendalikan LED tersebut, proyek baru bernama led Seria1. abp perlu I dibuat terlebih dahulu. Kemudian, susunlah blok seperti terlihat pada Gambar 9.2.
Gambar 9.2 Blok untuk mengendalikan LED melalui perintah dari Serial Monitor
Pada proyek inii pemeriksaan terhadap keberadaan data yang berasal dari Serial Monitor dilakukan melalui:
Sebagaimana diketahui, blok serial data available memberikan nilai yang menyatakan jumlah byte data di port serial yang belum dibaca. Dengan demikian,
Ekpresi
Blok berikut digunakan untuk membaca satu karakter yang berada di port serial:
Hasilnya diletakkan di variabel bernama karakter. Selanjutnya, karakter yang tersimpan di variabel karakter diperiksa. Pemeriksaan yang pertama ditangani dengan:
Blok inilah yang membuat pin 3 dibuat HIGH, kalau isi karakter berupa 1. Adapun blok yang digunakan untuk mematikan LED:
Gambar 9.3 menunjukkan setelah angka 1 diketik pada Serial Monitor. Setel tombol Send diklik, LED pun akan menyala.
Gambar 9.3 Angka 1 diketikkan pada Serial Monitor
9.5 Blok if/else
Blok if/else berguna untuk menjalankan suatu perintah sekiranya suatu kondis bernilai true. Sebaliknya, pada saat kondisi tersebut bernilai false, maka perintah lain dijalankan. Bentuknya seperti berikut:
Blok ini pun terletak di laci
Gambar 9.4 Blok untuk mengendalikan LED dengan menggunakan blok if / eIse
Secara prinsip, hasil yang diperoleh dari proyek ledSeria1. abp maupun edSeria12. abp sama saja. Hal yang membedakan, kalau if/else tidak digunakan, ungkapan
9.6 Penggunaan Sensor Sentuh
Sensor sentuh adalah sensor yang berfungsi sebagai saklar jari tangan menyentuh bagian sensor. Gambar 9.5 akan memperlihatkan contoh modul saklar sentuh. Bagian yang bergambar lingkaran menyatakan bagian yang perlu disentuh dengan jari tangan.
Gambar 9.5 Modul saklar sentuh keluaran YwRobot
Sensor sentuh ini memiliki tiga pin, dengan fungsi masing-masing sebagai berikut:
- SIG:Pin ini menghasilkan nilai digital berupa LoWatau HIGH.NilaiHIGH menyatakn sensor disentuh dan HIGH menyatakan sensor tidak disentuh.
- VCC:Pin ini hubungkan ke tegangan 3,3V hingga 5V.
- GND:Pin ini dihubungkan ke ground.
Jika Anda menggunakan modul sensor sentuh keluaran vendor lain, barangkali susunan pin berbeda. Begitu juga untuk makna untuk HIGH atau LOW.
Gambar 9.6 memperlihatkan contoh untuk menguji sensor sentuh. Resistor 220n dan LED akan digunakan kemudian.
Gambar 9.6 Rangkaian untuk menguji sensor sentuh
ArduBlock menyediakan blok berikut untuk menangani sensor sentuh:
Untuk mempraktikkannya, silakan untuk membuat proyek baru bernama sentuh. abp. Lalu, susunlah blok seperti terlihat pada Gambar 9.7.
Gambar 9.7 Blok untuk menguji sensor sentuh
Pada proyek ini, mula-mula variabel bertipe digital bernama statusSensor diisi dengan nilai dari blok Touch Sensor. Kemudian, isi variabel ini ditampilkan di Serial Monitor.
Contoh hasil pengujian sensor sentuh ditunjukkan pada Gambar 9.8. Angka 1 menyatakan keadaan ketika sensor tidak disentuh dan 0 menyatakan keadaan ketika sensor disentuh.
Gambar 9.8 Hasil pengujian sensor sentuh
Nah, sekarang akan dibahas cara menjadikan sensor sentuh yang dapat digunakan untuk mematikan atau menyalakan LED secara bergantian ketika sensor disentuh.
Untuk mempraktikkannya, silakan untuk membuat proyek baru bernama sentuh2 abr. Lalu susunlah blok seperti terlihat pada Gambar 9.9.
Gambar 9.9 Blok untuk mengendalikan LED dengan sentuhan jari tangan
Pada proyek ini, mula-mula variabel bertipe digital bernama statusSensor diisi dengan nilai dari blok Touch Sensor. Kemudian, isi variabel ini diperiksa melalui if, Kalau nilainya berupa konstanta FALSE (yang berarti sensor disentuh), nilai logika variabel statusLED dibalik. Kalau semula statusLED bernilai true, nilainya diubah menjadi false. Sebaliknya, kalau semula statusLED bernilai false, maka nilainya berubah menjadi true. Kemudian, nilai di pin 5 diatur sesuai dengan nilai statusLED. Blok delay digunakan untuk menunda pengujian berikutnya setelah 2 detik.