Langsung ke konten utama

Pelajaran 2: Ringkasan Pasca-Proyek

Blok [If then else] digunakan agar Robot VR dapat mengambil keputusan. Jika kondisi Boolean bernilai TRUE, maka blok kode di dalam cabang 'If Then' akan dijalankan. Jika kondisi Boolean bernilai FALSE, maka blok kode di dalam cabang 'Else' akan dijalankan.

Diagram yang menunjukkan alur proyek dari blok if then else di dalam loop forever. Saat proyek dimulai, kondisi Sensor Jarak diperiksa. Jika suatu objek ditemukan, kondisi tersebut benar, maka blok "Drive forward" akan dieksekusi. Jika tidak ada objek yang ditemukan, kondisi tersebut dilaporkan salah, jika ada, blok belok kanan akan dieksekusi. Semua ini diulang terus-menerus di dalam lingkaran Forever.

Dalam proyek ini, Robot VR bergerak menuju sebuah bangunan ketika Sensor Jarak mendeteksi sebuah objek dan blok <Distance found object> dilaporkan sebagai TRUE. Ini menginstruksikan cabang 'If Then' dari proyek untuk dijalankan. Cabang ini mencakup blok [Drive]. Robot VR kemudian melewati cabang 'Else' dari proyek tersebut.

Proyek tersebut berada di sebelah kiri dengan sorotan hijau yang menunjukkan alur proyek dari cabang if then yang sedang dieksekusi. Di sebelah kanan ditampilkan tampilan dari atas area bermain, dengan panah dan kotak merah yang menyoroti kastil, atau objek, yang terdeteksi oleh Sensor Jarak dalam hal ini.

Karena blok [If then else] ditempatkan di dalam blok [Forever], proyek akan kembali ke bagian atas blok [Forever] untuk memeriksa kondisi blok [If then else]. Perulangan ini akan terus berlanjut selamanya, menginstruksikan Robot VR untuk terus memeriksa kondisi [Jika maka else] ratusan kali per detik.

Perhatikan bahwa blok [Drive] dan [Turn] di dalam blok [If then else] adalah blok yang tidak menunggu. Blok non-tunggu tidak menghentikan alur proyek saat sedang berjalan.  Perilaku tanpa menunggu yang dieksekusi dalam blok [Jika maka else] (seperti maju jika objek terdeteksi) akan berlanjut selama kondisi diperiksa, dan hanya akan berubah ketika kondisi berubah.

Proyek VEXcode VR yang sama dengan panah yang bergerak dari bagian bawah blok Forever kembali ke atas untuk menunjukkan alur proyek kembali ke bagian atas loop Forever untuk mengulangi semua perintah di dalamnya.

Jika blok <Distance found object> melaporkan FALSE, maka cabang 'Else' dari proyek akan dieksekusi. Cabang 'Else' mencakup blok [Turn].

Proyek tersebut berada di sebelah kiri dengan sorotan merah yang menunjukkan alur proyek dari cabang else yang sedang dieksekusi. Di sebelah kanan ditampilkan tampilan dari atas area bermain, dengan panah melengkung di sekitar Robot VR yang menunjukkan arah putaran untuk mendeteksi objek, karena tidak ada objek yang berada tepat di depan Sensor Jarak.

Untuk Informasi Anda

Blok [If then else] digunakan untuk memastikan bahwa hanya satu cabang dalam proyek yang dijalankan ketika kondisi diperiksa. Hanya satu kejadian atau kondisi yang dapat benar pada satu waktu. Hal ini membuat proyek menjadi lebih efisien.

Diagram yang menunjukkan alur proyek dari blok if then else di dalam loop forever. Saat proyek dimulai, kondisi Sensor Jarak diperiksa. Jika suatu objek ditemukan, kondisi tersebut benar, maka blok "Drive forward" akan dieksekusi. Jika tidak ada objek yang ditemukan, kondisi tersebut dilaporkan salah, jika ada, blok belok kanan akan dieksekusi. Semua ini diulang terus-menerus di dalam lingkaran Forever.

Bandingkan proyek saat ini dengan proyek yang dibuat di Unit 7.  Proyek Unit 7 menggunakan empat blok [Jika maka].

Diagram alur proyek dari contoh proyek Unit 7 dengan empat blok "Jika maka" secara berurutan. Dalam setiap kasus, parameter If menggunakan Sensor Mata Depan untuk mendeteksi warna tertentu, dan melakukan perilaku berdasarkan warna yang terdeteksi. Jika warna terdeteksi, maka pernyataan "Jika maka" akan benar, dan blok kode di dalamnya akan dijalankan, dan ini akan terjadi berulang kali untuk setiap bagian kode.

Saat menjalankan proyek dengan beberapa blok [If then], ada kemungkinan beberapa kondisi akan melaporkan TRUE dan proyek menjalankan perintah di blok [Forever]. Dalam proyek ini, kedua kondisi tersebut dapat melaporkan TRUE selama loop [Selamanya] yang sama. Konflik seperti ini dapat menyebabkan proyek berhenti berjalan atau berjalan lebih lambat.

Diagram alur proyek dari dua blok If then yang berurutan di dalam sebuah loop selamanya. Saat dijalankan, proyek akan terlebih dahulu memeriksa kondisi 1, yaitu parameter dari blok if then pertama. Jika itu benar, maka belokan kanan untuk blok 90 di dalamnya akan terjadi. Jika kondisi tersebut salah, proyek akan beralih ke blok if then berikutnya untuk memeriksa kondisi 2. Jika kondisi 2 benar, penggerak maju untuk blok 200mm di dalamnya akan berjalan. Jika bernilai salah, proyek akan kembali ke awal loop tanpa akhir untuk mengulangi prosesnya lagi.

Menggunakan blok [If then else] akan menghindari bug seperti ini karena hanya satu kondisi yang dapat bernilai TRUE pada saat tertentu dengan blok ini.

Diagram alur proyek menggunakan blok if then else di dalam loop selamanya. Saat dijalankan, kondisi cabang if then akan diperiksa. Jika benar, dan penggerak sedang bergerak, maka blok di dalam cabang If akan berjalan, dan robot akan berbelok ke kiri 90 derajat; jika tidak, robot akan bergerak maju sejauh 200 mm. Keputusan untuk memeriksa satu kondisi ini akan terus-menerus dibuat karena proyek tersebut berada dalam lingkaran tak berujung.

Pertanyaan

Silakan pilih tautan di bawah ini untuk mengakses kuis pelajaran.

Google Doc / .docx / .pdf