Pelajaran 2: Pernyataan Bersyarat If/Else
Dalam pelajaran ini, Anda akan membuat proyek di mana Robot VR merobohkan setidaknya dua bangunan di Dynamic Castle Crasher Playground. Diperlukan algoritma untuk menyelesaikan tantangan menggunakan perulangan dan umpan balik sensor karena tata letak Taman Bermain berubah setiap kali direset.
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.
- Ketahuilah bahwa blok [If then else] biasanya digunakan bersama dengan blok [Repeat] atau [Forever] untuk memeriksa kondisi lebih dari sekali.
- Identifikasi dan jelaskan mengapa blok [If then else] digunakan dengan perulangan.
- Jelaskan apa yang akan menyebabkan cabang [If then else] dijalankan dalam sebuah proyek.
Cara Menggunakan Blok [Jika maka 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 penggerak saja tidak akan cukup untuk membuat Robot VR merobohkan dua bangunan atau lebih karena tata letak Dynamic Castle Crasher Playground yang selalu berubah. Seperangkat perintah Drivetrain mungkin berfungsi di satu Playground, tetapi tidak di Playground lainnya. Diperlukan algoritma yang menggunakan sensor dan seleksi. Blok [If then else] akan digunakan untuk membuat algoritma dengan menambahkan seleksi dengan pernyataan kondisional pada proyek ini.

Ada dua langkah utama bagi Robot VR untuk merobohkan bangunan di Dynamic Castle Crasher Playground.
- Jika Robot VR mendeteksi bangunan kastil, bergeraklah maju ke arahnya untuk merobohkannya.
-
Berbeda dengan semua Playground lainnya, Dynamic Castle Crasher Playground 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 dan periksa kembali keberadaan bangunan kastil.
-
Karena bangunan adalah satu-satunya objek di 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 tersebut Unit9Lesson2.

-
Tambahkan dua blok [Komentar] ke dalam ruang kerja dan isi langkah-langkah yang telah dijelaskan 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 [Jika maka else] bernilai TRUE atau FALSE. Tambahkan blok [Jika maka else] di bawah blok [Komentar].

Untuk Informasi Anda
Blok [If then else] adalah blok C yang menerima blok pelapor Boolean sebagai input. Blok [If then else] adalah pernyataan kondisional yang mengontrol alur suatu proyek. Blok [If then else] akan mengeksekusi serangkaian instruksi tertentu jika kondisi terpenuhi, dan serangkaian instruksi lain jika kondisi TIDAK terpenuhi, sehingga 'mencabang' alur proyek. Hanya satu cabang dalam [If then else] yang akan dieksekusi.

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

Setelah semua blok di dalam salah satu cabang dijalankan, proyek akan beralih 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 [Jika maka else].

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

-
Sekarang setiap cabang dari blok [Jika maka else] perlu didefinisikan menggunakan komentar yang dibuat di awal proyek. Ketika blok <Distance found object> melaporkan TRUE, Robot VR harus bergerak menuju gedung itu untuk merobohkannya. Pindahkan blok [Komentar] itu ke cabang 'Jika Maka' dari proyek.

-
Pindahkan blok [Komentar] lainnya ke cabang 'Else' dari proyek untuk menjelaskan apa yang harus terjadi jika Robot VR TIDAK mendeteksi bangunan.

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

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

-
Sebelum proyek diuji, satu blok lagi perlu ditambahkan. Blok [if then else] hanya akan memeriksa kondisi sebelum beralih ke blok berikutnya di tumpukan. Pada Unit 7, blok [Selamanya] ditambahkan ke proyek untuk menginstruksikan Robot VR agar berulang kali memeriksa kondisi Sensor Mata Bawah. Untuk memastikan kondisi Sensor Jarak diperiksa berulang kali , seret blok [Selamanya] ke ruang kerja di sekitar blok [Jika maka 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 eksekusi proyek, Robot VR akan berputar hingga mendeteksi sebuah bangunan oleh Sensor Jarak, kemudian bergerak menuju bangunan tersebut untuk merobohkannya.

- Selama berlangsungnya proyek, Robot VR mungkin mendorong bagian bangunan hingga ke tepi dan jatuh dari area bermain. Hal ini karena blok <Distance found object> masih melaporkan bahwa ada objek di depan Robot VR. Ketika blok ini melaporkan TRUE, Robot VR akan bergerak maju. Mengarahkan robot VR agar jatuh dari meja.
Pilih tombol Berikutnya untuk melanjutkan ke bagian selanjutnya dari Pelajaran ini.