Lompat ke isi utama

Pelajaran 2: Menggunakan Operator Perbandingan

Dalam Pelajaran ini, Anda akan mempelajari operator perbandingan, dan menggunakannya dalam proyek dengan data dari Sensor Jarak. Kemudian Anda akan membuat proyek yang menavigasi Robot VR ke huruf 'A' menggunakan Sensor Jarak dengan loop sementara dan operator lebih besar dari (>). Dalam tantangan mini, Anda akan menerapkan keterampilan ini untuk menavigasi dari awal Wall Maze hingga angka '1.'

Tampilan atas ke bawah Wall Maze Playground dengan Robot VR di lokasi awal di bagian tengah bawah Playground. Huruf A berada tepat di sebelah kiri robot, dipisahkan oleh dinding pendek. Angka 1 berada di sudut kanan robot, dipisahkan oleh dinding vertikal dan horizontal.

Hasil belajar

  • Identifikasi bahwa lebih besar dari (>), lebih kecil dari (<), dan sama dengan (==) adalah operator perbandingan yang membandingkan dua nilai, yang dikenal sebagai operan.  
  • Identifikasi bahwa operator lebih besar dari (>) membandingkan dua nilai dan melaporkan Benar jika nilai kiri lebih besar dari nilai kanan.
  • Identifikasi bahwa operator kurang dari (<) membandingkan dua nilai dan melaporkan Benar jika nilai kiri lebih kecil dari nilai kanan.
  • Identifikasi bahwa operator lebih besar dari (>) atau kurang dari (<) melaporkan nilai Benar atau Salah ketika digunakan sebagai kondisi dalam loop while.
  • Jelaskan cara membuat proyek yang memiliki Robot VR yang bergerak maju hingga nilai Sensor Jarak kurang dari jumlah tertentu.

Operator Perbandingan

Operator kurang dari (<), lebih besar dari (>), dan sama dengan (==) membandingkan dua nilai, yang juga dikenal sebagai operan. Nilai di sebelah kiri operator adalah operan pertama, dan nilai di sebelah kanan adalah operan kedua. Operator melaporkan nilai Boolean dan mengembalikan nilai True ketika perbandingannya benar, dan False ketika perbandingannya TIDAKbenar.

  • Dalam contoh ini menggunakan operator kurang dari (<), jika pernyataan tersebut benar secara numerik, maka akan melaporkan Benar.Untuk baris operator kurang dari - baris teratas terbaca 50 kurang dari 25 dan diberi label 'laporan salah'. Baris paling bawah terbaca 25 kurang dari 50 dan diberi label 'laporan benar'.
  • Demikian pula, dalam contoh-contoh ini menggunakan operator lebih besar dari (>), pernyataan yang secara numerik benar akan melaporkan Benar.Untuk baris operator lebih besar dari - baris teratas terbaca 50 lebih besar dari 25 dan diberi label 'dilaporkan benar'. Baris paling bawah terbaca 25 lebih besar dari 50 dan diberi label 'laporan salah'.
  • Operator sama dengan (==) melaporkan True ketika kedua nilai tersebut persis sama, dan False ketika keduanya tidak sama.Ke baris operator sama dengan - baris teratas terbaca 50 = = 50 dan diberi label 'melaporkan benar'. Baris paling bawah terbaca 25 = = 50 dan diberi label 'laporan salah'.
    • Perhatikan bahwa tanda sama dengan ganda berarti "sama dengan," dan membandingkan kedua nilai tersebut. Tanda sama dengan tunggal adalah operator penugasan yang menetapkan nilai ke suatu variabel.

Operator perbandingan dapat membandingkan desimal, bilangan bulat, atau perintah pelaporan numerik.

Menggunakan Operator Perbandingan dengan Data Sensor Jarak

Operator perbandingan sangat berguna saat Anda menggunakan data numerik dari sensor, seperti Sensor Jarak, untuk membuat Robot VR mengambil keputusan. Pada Unit sebelumnya, data dari Bumper Sensor digunakan untuk membuat Robot VR berputar saat Bumper Sensor ditekan. Namun, dengan operator perbandingan, kita dapat menggunakan data dari Sensor Jarak untuk membuat Robot VR berputar di lokasi yang lebih tepat. Hal ini berguna untuk menghindari menabrak tembok, atau untuk membuat Robot VR menavigasi ke tempat tertentu di Taman Bermain. 

Data dari Sensor Jarak dapat digunakan sebagai salah satu nilai dalam operator perbandingan.

jarak_depan.dapatkan_jarak(MM) > 50

Misalnya, jika kita ingin Robot VR melaju menuju suatu objek, seperti dinding, lalu berhenti saat sudah dekat dengan objek tersebut, kita dapat melakukannya dengan menggunakan operator perbandingan dan fungsi get _distance. Pada dasarnya, kami meminta Robot VR untuk melaju saat jarak antara robot dan objek lebih besar dari nilai ambang batas, seperti 50 milimeter (mm).Tampilan dekat bagian tengah bawah Wall Maze Playground, dengan Robot VR di kotak awal. Panah hijau memanjang dari bagian depan robot hingga sekitar 50 mm dari dinding pertama di seberangnya, menggambarkan di mana jarak yang lebih besar dari 50 mm dilaporkan sebagai benar. Panah merah memanjang dari depan panah hijau ke dinding, menggambarkan di mana jarak yang lebih besar dari 50mm dilaporkan sebagai salah.

Ketika Sensor Jarak melaporkan bahwa jaraknyalebih jauhdari 50 milimeter (mm), atau nilainyalebih besar dari(>) 50, Robot VR dapat bergerak bebas. Ketika Sensor Jarak melaporkan bahwa jaraknyalebih dekatdari 50 milimeter (mm), atau nilainyabukanlebih besar dari (>) 50, Robot VR perlu berhenti atau berputar sebelum bertabrakan dengan dinding. 

Untuk Informasi Anda

Memilih operator perbandingan mana yang akan digunakan dapat menjadi pilihan gaya. Operator lebih besar dari (>) digunakan dalam contoh di atas untuk membuat proyek sejelas dan semudah mungkin dibaca. Saat Robot VR berada pada jarak lebih dari 50 milimeter, maju terus. Anda dapat mencapai tujuan yang sama dengan membalik urutan nilai dalam operator, dan dengan menggunakan operator kurang dari (<).

sementara 50 > front_distance.get_distance(MM):

Di sini, Robot VR akan melaju sementara 50 milimeter lebih besar dari nilai yang dilaporkan oleh Sensor Jarak. Robot VR akan melakukan perilaku yang sama, namun proyeknya sedikit kurang jelas dan mudah dibaca. 

Bergantung pada data sensor yang Anda gunakan, operator sama dengan (==) mungkin tidak membuat Robot VR berfungsi seperti yang Anda inginkan. Misalnya, jika tujuannya adalah agar Robot VR berhenti 50 milimeter dari suatu objek, Anda mungkin berpikir untuk menggunakan operator sama dengan (==).

sementara jarak_depan.dapatkan_jarak(MM) == 50:

Akan tetapi, di Wall Maze misalnya, menggunakan operator sama dengan (==) dengan Sensor Jarak akan memerlukan pembacaan yang sangat presisi dari sensor, menjaditepat50 milimeter, sehingga kecepatan Robot VR akan membuatnya hampir mustahil untuk mendapatkan tingkat presisi tersebut secara real time. Dengan demikian, Robot VR kemungkinan akan terus melaju melewati ambang batas karena baik saat melaporkan nilai 100 milimeter atau 25 milimeter, keduanya tidak bernilai sama dengan50 mm, sehingga operator tidak pernah melaporkan sebagai Benar. 

Operator Perbandingan dan Masalah Labirin Dinding

Perulangan while dapat digunakan dengan operator perbandingan dan Sensor Jarak, sehingga Robot VR terus-menerus memeriksa data sensor dan mengevaluasi perbandingan. Hal ini dapat memungkinkan Robot VR untuk melakukan perilaku sementara nilai berada di atas atau di bawah ambang batas tertentu. Dalam Labirin Dinding, hasil yang diharapkan adalah agar Robot VR melaju majusementaraSensor Jarak lebih besar dari 50 milimeter (mm) dari dinding. Kemudian, ia harus berhenti atau berputar untuk meneruskan perjalanannya melalui labirin.

def main():
    sementara jarak_depan.dapatkan_jarak(MM) > 50:
        drivetrain.berkendara(MAJU)
        tunggu(5, MSEC)
    drivetrain.berhenti()

Dalam contoh klip video ini, loop sementaradalam proyek yang ditunjukkan di sebelah kiri akan membuat Robot VR terus melaju maju dari lokasi awal, selama kondisinya terpenuhi, dan jarak antara Robot VR dan objek terdekat (dinding pertama di seberangnya) dilaporkan lebih besar dari 50 milimeter (mm). Robot kemudian berhenti ketika mendekati dinding pertama dan jarak yang dilaporkan kurang dari 50mm.

Berkas video

Gambar ini menjelaskan alur proyek di atas:

  • Ketika Sensor Jarak lebih besar dari 50 milimeter (mm) dari dinding, operator melaporkan Benar dan tetap berada di loop sementara
  • Bila jaraknya kurang dari 50 milimeter (mm) dari dinding, operator melaporkan Salah, dan keluar dari loopsementara.

Diagram alur proyek while loop dalam proyek di atas. Perulangan while akan terus berjalan ketika jarak dari dinding lebih besar dari 50mm, dan kondisi tersebut melaporkan true, yang menyebabkan robot melaju maju. Bila jarak dari dinding tidak lebih dari 50, kondisi melaporkan salah, dan proyek keluar dari loop while, menyebabkan robot berhenti melaju.

Pilih tombol Berikutnya untuk melanjutkan sisa Pelajaran ini.