Pelajaran 2: Pernyataan Kondisional If/Else
Dalam Pelajaran ini, Anda akan membuat proyek di mana Robot VR merobohkan setidaknya dua bangunan di Dynamic Castle Crasher Playground. Suatu algoritma akan dibutuhkan untuk memecahkan tantangan tersebut menggunakan loop dan umpan balik sensor karena tata letak Taman Bermain berubah setiap kali pengaturan ulang.
Contoh Tata Letak Taman Bermain Castle Crasher yang Dinamis:

Hasil belajar
- Identifikasi bahwa blok [If then else] adalah blok C yang menjalankan blok di dalam cabang If atau Else berdasarkan nilai Boolean yang dilaporkan.
- Identifikasi bahwa blok [If then else] biasanya digunakan dengan blok [Repeat] atau [Forever] untuk memeriksa kondisi lebih dari sekali.
- Identifikasi dan jelaskan mengapa blok [If then else] digunakan dengan loop.
- Jelaskan apa yang menyebabkan cabang [If then else] dijalankan dalam suatu proyek.
Cara Menggunakan Blok [If then else]
Tantangan ini berbeda dari tantangan Castle Crasher di Unit 2. Tantangan Unit 2 menggunakan urutan sederhana dan perintah Drivetrain untuk merobohkan bangunan di taman bermain statis.

Perintah drivetrain saja tidak akan cukup untuk membuat Robot VR merobohkan dua atau lebih bangunan karena tata letak Dynamic Castle Crasher Playgroundyang berubah. Seperangkat perintah Drivetrain mungkin berfungsi di satu Playground, tetapi tidak di Playground lain. Suatu algoritma yang menggunakan sensor dan seleksi akan dibutuhkan. Blok [If then else] akan digunakan untuk membuat algoritma dengan menambahkan pilihan dengan pernyataan kondisional ke proyek ini.

Ada dua langkah utama bagi Robot VR untuk merobohkan bangunan di Dynamic Castle Crasher Playground.
- Jika Robot VR mendeteksi bangunan kastil, gerakkan robot ke arah kastil tersebut untuk menjatuhkannya.
-
Tidak seperti Playground lainnya, Playground Dynamic Castle Crasher tidak memiliki dinding. Karena bangunan adalah satu-satunya objek di Dynamic Castle Crasher Playground, Sensor Jarak dapat digunakan untuk mendeteksi bangunan.

-
- Jika Robot VR tidak mendeteksi bangunan kastil, putar balik dan periksa kembali bangunan kastil.
-
Karena bangunan merupakan satu-satunya objek pada Dynamic Castle Crasher Playground, Sensor Jarak dapat digunakan untuk mendeteksi bangunan kastil.

-
Setelah langkah 1 dan 2 selesai, Robot VR dapat kembali ke langkah 1 dan menggunakan Sensor Jarak untuk menemukan bangunan berikutnya yang akan dirobohkan.
-
Mulai proyek baru di VEXcode VR dan beri nama proyek Unit9Lesson2.

-
Tambahkan dua blok [Komentar] ke dalam ruang kerja dan isi langkah-langkah yang diuraikan di atas.

-
Blok [If then else] dapat digunakan untuk memicu setiap tindakan yang diuraikan di atas. Setiap tindakan bergantung pada apakah kondisi Boolean di blok [If then else] melaporkan TRUE atau FALSE. Tambahkan blok [If then else] di bawah blok [Comment].

Untuk Informasi Anda
Blok [If then else] adalah blok C yang menerima blok reporter Boolean sebagai masukan. Blok [If then else] adalah pernyataan kondisional yang mengendalikan aliran suatu proyek. Blok [If then else] akan mengeksekusi serangkaian instruksi tertentu jika kondisinya terpenuhi, dan serangkaian instruksi lain jika kondisinya TIDAK terpenuhi, sehingga aliran proyek menjadi 'cabang'. Hanya satu cabang di [If then else] yang akan dieksekusi.

- Jika kondisi dilaporkan sebagai TRUE, blok di dalam cabang If Then dijalankan.
- Jika kondisi dilaporkan sebagai FALSE, blok di dalam cabang Else dijalankan.

Setelah semua blok di dalam salah satu cabang dijalankan, proyek akan berpindah ke blok berikutnya di luar blok [If then else].
-
Dalam proyek ini, Sensor Jarak dapat digunakan untuk mendeteksi bangunan di Taman Bermain. Tambahkan blok <Distance found object> ke blok [If then else].

Untuk Informasi Anda
Blok <Distance found object> adalah blok reporter Boolean yang melaporkan jika Sensor Jarak telah menemukan objek di depan Robot VR. Blok ini melaporkan BENAR ketika ada objek atau permukaan dalam jarak 3000 milimeter (mm) dari Robot VR.

-
Sekarang setiap cabang blok [If then else] perlu didefinisikan menggunakan komentar yang dibuat di awal proyek. Ketika blok <Distance found object> melaporkan BENAR, Robot VR harus melaju ke arah gedung itu untuk menjatuhkannya. Pindahkan blok [Komentar] ke cabang 'Jika Maka' dalam proyek.

-
Pindahkan blok [Komentar] lainnya ke cabang 'Lainnya' pada proyek untuk mengetahui apa yang akan terjadi jika Robot VR TIDAK mendeteksi adanya bangunan.

-
Tambahkan blok [Drive] ke cabang 'If Then' dari blok [If then else].

-
Ketika blok <Distance found object> melaporkan SALAH, Robot VR perlu berbalik dan mencari bangunan di Taman Bermain. Tambahkan blok [Turn] di bawah blok [Comment] di cabang 'Else' dari blok [If then else].

-
Sebelum proyek diuji, satu blok lagi perlu ditambahkan. Blok [If then else] hanya akan memeriksa kondisi sebelum berpindah ke blok berikutnya dalam tumpukan. Pada Unit 7, blok [Selamanya] ditambahkan ke proyek untuk menginstruksikan Robot VR untuk berulang kali memeriksa kondisi Sensor Mata Bawah. Untuk memastikan kondisi Sensor Jarak diperiksa berulang kali, seret blok [Selamanya] ke dalam ruang kerja di sekitar blok [Jika lalu yang lain].

-
Buka Dynamic Castle Crasher Playground dan jalankan proyeknya.

-
Setelah Robot VR merobohkan setidaknya dua bangunan, muat ulang Playground dan jalankan proyek pada tata letak lain dari Dynamic Castle Crasher Playground.

-
Pada setiap putaran proyek, Robot VR akan berputar hingga sebuah bangunan terdeteksi oleh Sensor Jarak, lalu melaju ke arah bangunan tersebut untuk menjatuhkannya.

- Selama berlangsungnya proyek, Robot VR dapat mendorong bagian bangunan hingga ke tepian dan jatuh dari Taman Bermain. Hal ini karena blok <Distance found object> masih melaporkan bahwa ada objek di depan Robot VR. Bila blok ini melaporkan BENAR, Robot VR melaju maju. Menyebabkan Robot VR jatuh dari meja.
Pilih tombol Berikutnya untuk melanjutkan sisa Pelajaran ini.