Lompat ke isi utama

Pelajaran 3: Pernyataan Kondisional

Pada Pelajaran sebelumnya, Anda mempelajari cara menggunakan data dari Sensor Optik dalam suatu proyek untuk mengurutkan Disk berdasarkan warna. Dalam Pelajaran ini, Anda akan mengembangkan apa yang Anda pelajari untuk mengeksplorasi opsi dalam VEXcode yang memungkinkan proyek untuk membuat keputusan apa pun warna yang terdeteksi oleh Sensor Optik. Anda akan belajar tentang: 

  • Mengapa mengoptimalkan pengambilan keputusan penting dalam lingkungan industri.
  • Perbedaan antara blokIf then,If then else, danElse if.

Memeriksa Beberapa Kondisi

Pada Pelajaran sebelumnya Anda membuat proyek yang dapat mengurutkan Disk berdasarkan warna ke palet merah atau palet hijau. Meskipun ini efektif, proyek hanya dapat mengurutkan satu Disk dalam satu waktu. Dalam lingkungan pabrik, banyak objek perlu disortir dan diletakkan di palet berulang kali. Agar dapat melakukan ini secara efektif, Lengan 6-Sumbu harus mampu berulang kali membuat keputusan tentang cara menggerakkan objek, atau apakah campur tangan manusia dibutuhkan. Pertimbangkan Kubus yang Anda pindahkan dalam kursus Pengenalan Lengan 6-Sumbu.Tampilan dekat Lengan 6-Sumbu yang memegang kubus biru di atas sensor optik.

Bagaimana jika ada Cube biru di zona pemuatan? Apa yang akan terjadi dalam proyek dari Pelajaran sebelumnya? Dalam lingkungan industri, semua kondisi yang mungkin perlu dipertimbangkan. Jika suatu benda yang salah tercampur ke dalam benda-benda yang akan disortir, campur tangan manusia kemungkinan besar diperlukan untuk memastikan bahwa sel kerja dan para pekerja di sekitarnya tetap aman dan berfungsi secara efektif.

BerurutanJika makablok

Dalam Pelajaran sebelumnya, Anda menggunakan dua blokJika makasecara berurutan untuk memeriksa dua kondisi terpisah satu demi satu, pada dasarnya mengajukan dua pertanyaan dalam proyek.

Contoh Proyek VEXcode yang akan menyelesaikan tantangan di Pelajaran sebelumnya. Sorotan merah ada pada komentar yang bertuliskan Pindahkan Disk ke palet yang benar dan dua blok Jika maka berikut di bawah komentar tersebut. Blok-blok dalam kotak sorotan merah terbaca sebagai berikut: jika optik 5 mendeteksi warna merah maka gerakkan lengan 10 ke posisi x 169 y 150 z 100, dan jika optik 5 mendeteksi warna hijau maka gerakkan lengan 10 ke posisi x 172 y 1 z 100.

Pertama, Apakah benda tersebut berwarna merah?, lalu, Apakah benda tersebut berwarna hijau?. Setiap kondisi diperiksa setiap kali proyek dijalankan, terlepas dari apa yang terdeteksi oleh Sensor Optik. Meskipun struktur ini memungkinkan Anda mengurutkan satu Disk pada satu waktu secara efektif, ini bukanlah cara yang paling efisien untuk melakukannya. Cakram merah dapat disortir, tetapi Sensor Optik juga dapat mendeteksi warna hijau dari sesuatu yang lain di lingkungan, dan sebaliknya. Tidak ada pula pertimbangan yang diberikan untuk objek yang bukan merah atau hijau, seperti objek tak terduga yang dapat menimbulkan masalah keselamatan.

Gambar Alur Proyek

Sepanjang Pelajaran ini, gambar yang menjelaskan alur proyek VEXcode dibagikan. Anda dapat membuat ulang gambar-gambar ini di buku catatan teknik Anda saat Anda mempelajari Pelajaran. 

Gunakan alat di Google Slides atau Microsoft PowerPoint seperti panah, kotak, atau diagram alur untuk membantu membuat visualisasi yang paling sesuai untuk Anda di buku catatan Anda.

Kotak peralatan garis di Google Slides terbuka. Kotak peralatan menunjukkan pilihan untuk Garis, Panah, Konektor Siku, Konektor Lengkung, Kurva, Polyline, dan Coretan.

 

Blok berurutanJika maka yang lain

Ada blok berbeda yang dapat digunakan untuk memungkinkan kita memeriksa kondisi merah dan hijau serta memperhitungkan warna yang berbeda. BlokIf then elseadalah blok C yang menjalankan blok di dalam cabangifatau cabangelse, berdasarkan nilai Boolean yang dilaporkan.

Potongan kode menggunakan blok if then else dengan panah merah dan hijau untuk menunjukkan alur proyek. Proyek tersebut berbunyi: pindahkan cakram ke palet yang benar, jika optik 5 mendeteksi warna merah maka pindahkan lengan 10 ke posisi x 169 y 150 z 100, jika tidak, atur menara sinyal 6 ke biru dan berkedip, atur lengan 10 ke penghentian terkendali. Perhatikan bahwa dua perintah setelah else semuanya berada dalam cabang else dari blok if then else. Panah hijau dan teks bertuliskan Optik mendeteksi titik merah sebenarnya dari blok Jika maka hingga pindah ke posisi. Panah merah dengan teks yang terbaca optik mendeteksi titik-titik merah yang salah dari blok menara sinyal if then ke set di awal cabang else.

Setelah menjalankan cabang jikaatau cabang jika tidak, proyek akan berpindah ke blok berikutnya dalam tumpukan. Alur proyek blokIf then elsejuga dapat ditampilkan untuk membuat cabangnya lebih terlihat.

Alur proyek yang sama seperti sebelumnya, tetapi dengan cabang if dan cabang else dipisahkan demi kejelasan. Di sebelah kiri terdapat teks merah yang bertuliskan merah tidak terdeteksi salah, jika tidak, dengan tanda panah yang menunjuk ke menara sinyal yang ditetapkan dan blok pemberhentian terkendali yang ditetapkan. Di sebelah kanan adalah teks merah yang terdeteksi benar lalu dengan panah yang menunjuk ke blok pindah posisi. Baik yang kiri maupun yang kanan memiliki tanda panah oranye di bawah yang menunjukkan mereka akan melanjutkan proyek di bawah blok if then else.

Perhatikan bahwa dalam contoh ini, cabang elsedigunakan untuk menangani kondisi suatu objek yang bukan merah maupun hijau. Dalam kasus tersebut, campur tangan manusia akan dibutuhkan. Sebelumnya Anda mempelajari bahwa lampu biru di Menara Sinyal digunakan untuk menunjukkan perlunya campur tangan manusia. Selain itu, penghentian terkendali akan menghentikan gerakan Lengan 6-Sumbu guna menjaga keselamatan manusia dan mesin. Blok menara sinyal Setdan blok penghenti kontrolSetdapat ditambahkan ke cabangelse, sehingga objek yang tidak berwarna merah atau tidak berwarna hijau akan memicu fitur keselamatan ini.

Isi cabang else dari blok If then else dipanggil dengan kotak merah. Ini termasuk blok menara sinyal dan blok penghenti yang dikendalikan lengan.

Gambar sejauh ini hanya menunjukkan cara menangani kondisi objek yang berwarna merah. lainnya Jika tidak,diperlukan untuk memeriksa kondisi objek yang berwarna hijau.

Proyek vexcode yang sama dengan blok if then else kedua ditambahkan langsung setelah yang pertama. Blok ini dan blok-blok yang ada di dalamnya berbunyi: jika optik 5 mendeteksi warna hijau maka gerakkan lengan 10 ke posisi x 172 y 1 z 100 jika tidak atur menara sinyal 6 ke warna biru dan berkedip, atur lengan 10 ke kontrol berhenti.

Mari kita pikirkan alur proyek dengan struktur ini. Setiap kali proyek dijalankan, beberapa cabang akan dijalankan, tidak peduli warna apa yang terdeteksi oleh Sensor Optik.

Gambar alur proyek untuk dua blok if then else. Setengah bagian atas memperlihatkan alur proyek yang sama dari sebelumnya, kemudian panah oranye terlihat bergerak dari blok if then else pertama ke blok kedua. Blok if then else kedua mempunyai tanda panah hijau dan teks di sampingnya yang berbunyi: optik mendeteksi hijau benar. Panah menunjuk dari jika maka ke blok pindah ke posisi dalam cabang jika maka. Dimulai dari titik yang sama terdapat teks merah dan panah merah yang bertuliskan: Optik mendeteksi hijau salah. Panah menunjuk dari blok menara sinyal "if then" ke cabang "set signal tower block" di cabang "else".

Mari kita pikirkan ini dengan Disk merah sebagai contoh. Jika Sensor Optik mendeteksi warna merah, kondisi blokJika maka yang lainpertama akan melaporkan sebagai benar. Blok di dalam cabangjikaakan berjalan, menggerakkan Lengan 6-Sumbu di atas palet merah. Akan tetapi, kondisi di dalam blokIf then elsekedua akan dilaporkan sebagai salah. Artinya blok di dalam cabangatauakan berjalan, yang membuat Lengan 6-Sumbu berhenti secara terkendali dan menyalakan lampu biru di Menara Sinyal. Karena Lengan 6-Sumbu akan berada dalam kondisi berhenti terkendali, tidak ada blok lain dalam proyek yang dapat berjalan, dan itu akan menghentikan semua operasi hingga masalah tersebut teratasi. 

Alur proyek berjalan melalui contoh sensor optik yang mendeteksi warna merah. Catatan dan tanda panah pada sisi proyek bertuliskan optik mendeteksi merah benar, kemudian perpindahan ke posisi blok di cabang pertama jika maka akan berjalan. Teks di bawah yang berbunyi: cabang else tidak akan berjalan karena cabang if then dijalankan. Panah menunjuk ke blok if then else kedua. Teks di sampingnya berbunyi: optik mendeteksi hijau salah dan mengarahkan panah merah ke cabang else dari blok if then else kedua. panah oranye menunjuk dari lengan yang diatur untuk mengontrol blok penghenti ke Ketika lengan 10 mengontrol blok penghenti ke samping. Teks di bawah ini berbunyi kontrol berhenti akan dipicu untuk menghentikan semua blok kecuali yang melekat pada blok topi saat kontrol berhenti.

Meskipun sekarang kita dapat memperhitungkan objek yang tidak terduga (seperti Kubus biru), tetapi Lengan 6-Sumbu tidak akan pernah mencapai titik dalam proyek pelepasan Cakram ke palet. Daripada memeriksa kondisi merah dan hijau satu demi satu, ada cara untuk memeriksa apakah suatu objek berwarna hijauhanyajika objek tersebut tidak berwarna merah.   

Blok bersarangJika maka yang lain 

Masing-masing cabang blokIf then elsedapat menerima blok C lainnya di dalamnya. Ini disebut 'bersarang'. Artinya blokIf then elseyang kedua dapat disarangkan dalam cabangelseyang pertama, seperti ini.Proyek yang sama seperti di atas, tetapi dengan blok if then else kedua di dalam cabang else dari blok if then else pertama. Kotak merah berada di sekitar if then else kedua yang bersarang di cabang else dari blok if then else pertama.

Sekarang kondisi Sensor Optik yang mendeteksi warna hijau hanya akan diperiksa jika kondisi sebelumnya (Sensor Optik mendeteksi warna merah) melaporkan sebagai salah. Jadi ketika Sensor Optik mendeteksi warna merah, hanya cabangpertama jikayang akan berjalan, menggerakkan Disk di atas palet merah. 

Tampilan dekat proyek dengan pemindahan ke blok posisi di cabang if then dari blok if then else pertama yang dipanggil dengan kotak merah.

Jika Sensor Optik mendeteksi warna hijau, kondisi cabangjikapertama (Optik mendeteksi merah) akan melaporkan salah, dan cabangjikaakan berjalan. Kondisi blok bersarang Jika maka yang lainakan diperiksa untuk melihat apakah Sensor Optik mendeteksi warna hijau. Kondisi itu akan dilaporkan sebagai benar, jadi blok di dalam cabangjikakedua akan berjalan, memindahkan Disk ke palet hijau. 

Jika baik merah maupun hijau tidak terdeteksi oleh Sensor Optik (seperti kasus Kubus biru yang diambil), kedua kondisi akan melaporkan sebagai salah, sehingga cabangelsedari blok bersarangIf then elseakan berjalan, memicu penghentian terkendali dan memperingatkan pekerja akan perlunya campur tangan manusia. Alur proyek ini juga dapat divisualisasikan sebagai diagram alir, seperti yang terlihat di sini.

Diagram yang menjelaskan aliran suatu proyek. Di bagian atas ada pertanyaan apakah optik mendeteksi warna merah? Garis hijau bercabang ke kiri dan bertuliskan pindah ke atas palet merah, lalu garis oranye turun dari sana bertuliskan letakkan cakram di palet yang benar. Garis merah bercabang dari pertanyaan awal dan bertuliskan salah. Ini diikuti dengan pertanyaan lain: optik mendeteksi warna hijau? Sekali lagi garis hijau di sebelah kanan menyatakan benar dan bergerak di atas palet hijau. Ini terhubung dengan garis oranye ke kotak yang sama dengan garis hijau lainnya yang bertuliskan letakkan cakram pada palet yang benar. Di sebelah kanannya terdapat garis merah yang menyatakan salah dan mengatur menara sinyal menjadi biru berkedip dan memicu penghentian terkendali.

Blok bersarangJika, maka,blokdapat dilihat sebagai daftar pertanyaan yang berjenjang. Berikut pertanyaannya: 

  1. Apakah bendanya berwarna merah? 
    1. Ya? Minggirlah dari palet merah dan berhentilah bertanya.
    2. TIDAK? Ajukan pertanyaan lainnya. 
      1. Apakah benda tersebut berwarna hijau?
        1. Ya? Minggirlah dari palet hijau dan berhentilah bertanya.
        2. TIDAK? Maka objek tersebut tidak berwarna merah atau hijau. Ubah warna Menara Sinyal dan picu pemberhentian terkendali.

Perhatikan bahwa pertanyaan tersebut hanya ditanyakan jika pertanyaan sebelumnya dijawab secara negatif. 

Sementara ini menangani semua kondisi yang ingin kita periksa, ada blok lain yang akan memeriksa kondisi dengan cara yang sama, tetapi lebih mudah dibangun daripada blok bersarang. 

Jika tidakBlok

Blok Else if memungkinkan Anda memeriksa beberapa kondisi dalam blok yang sama. Setiap kondisi dalam blok ini akan diperiksa secara berurutan, hanya jika kondisi sebelumnya dilaporkan salah. Jika semua kondisi Boolean untuk cabang else if salah, blok di dalam bagian else akan dijalankan.

Blok else if di VEXcode. Blok ini membaca if then else if then else dan memiliki ikon plus untuk memperluas dan menambahkan segmen if then else tambahan ke blok tersebut.

Blok ini memiliki alur proyek yang sama dengan blok bersarangIf then else, tetapi lebih mudah dibangun karena tidak perlu menumpuk blok. Anda akan mempelajari lebih lanjut tentang pengkodean dengan blok Else ifdalam Pelajaran berikut.

Periksa Pemahaman Anda

Sebelum melanjutkan ke Pelajaran berikutnya, pastikan Anda memahami konsep dalam Pelajaran ini dengan menjawab pertanyaan berikut di buku catatan teknik Anda.

Pertanyaan Periksa Pemahaman Anda > (Google Doc/ .docx / .pdf)


PilihBerikutnya >untuk menerapkan blok Jika tidakdalam suatu proyek.