Langsung ke konten utama

Pelajaran 1: Apa itu Algoritma?

Dalam pelajaran ini, Anda akan mempelajari apa itu algoritma dan bagaimana penggunaan algoritma di VEXcode VR Python memungkinkan Anda untuk membuat proyek dengan perilaku yang lebih beragam. Proyek-proyek algoritmik menginstruksikan Robot VR untuk merespons lingkungannya, yang akan diperlukan untuk menyelesaikan Tantangan Penghancur Kastil Dinamis.

Hasil belajar

  • Identifikasi bahwa algoritma terdiri dari urutan, seleksi, dan iterasi (perulangan).
  • Identifikasi bahwa algoritma adalah rangkaian instruksi yang tepat, diimplementasikan menggunakan bahasa pemrograman, untuk proses yang akan dilakukan oleh Robot VR.

Algoritma

Algoritma adalah rangkaian instruksi yang tepat, diimplementasikan menggunakan bahasa pemrograman, seperti VEXcode VR Python, untuk proses yang akan dilakukan oleh Robot VR.

Unsur-unsur dasar suatu algoritma adalah urutan, seleksi, dan iterasi.

  • Urutan - urutan di mana perilaku dan perintah digabungkan dalam sebuah proyek untuk menghasilkan hasil yang diinginkan.     
  • Pilihan - penggunaan pernyataan bersyarat dalam sebuah proyek. Pernyataan bersyarat, seperti jikaatau jika tidakmemengaruhi alur proyek.
  • Iterasi - algoritma sering menggunakan pengulangan untuk mengeksekusi langkah-langkah sejumlah kali tertentu, atau hingga kondisi tertentu terpenuhi. Ini juga dikenal sebagai "perulangan." Iterasi dapat mengubah alur proyek dengan mengulangi suatu perilaku sejumlah kali yang ditentukan atau hingga suatu kondisi terpenuhi.  

Contoh proyek dari tantangan Unit 8 ini adalah contoh dari sebuah algoritma. Ini mencakup kombinasi perulangan, data sensor, dan perintah yang disusun secara berurutan untuk menyelesaikan Tantangan Pemindah Disk.

def main():
	for value in range(3):
		
		for value in range(3):
			# 1. Drive to disk using Down Eye Sensor
			while not down_eye.near_object():
				drivetrain.drive(FORWARD)
				wait(5, MSEC)
			drivetrain.stop()
			
			# 2. Ambil magnet disk
			energi (BOOST)
			
			# 3. Berkendara ke tujuan menggunakan Sensor Jarak
			drivetrain.turn_to_heading(180, DEGREES)
			while front_distance.get_distance(MM) > 200:
				drivetrain.drive(FORWARD)
				wait(5, MSEC)
			drivetrain.stop()
			
			# 4. Jatuhkan disk di tujuan
			magnet.energize(DROP)
			drivetrain.drive_for(REVERSE, 100, MM)
			
			# 5. Putar untuk menghadap disk berikutnya
			drivetrain.turn_to_heading(0, DEGREES)
			wait(5, MSEC)
			
		# 6. Berbelok dan berkendara ke tujuan berikutnya
		drivetrain.turn_to_heading(90, DEGREES)
		drivetrain.drive_for(FORWARD, 800, MM)
		
		# 7. Putar ke disk
		drivetrain.turn_to_heading(0, DEGREES)
		
	wait(5, MSEC)

Urutan

Cara perintah diurutkan dan digabungkan menentukan perilaku Robot VR. Dalam contoh ini, setiap rangkaian perilaku yang dibutuhkan untuk memindahkan cakram dieksekusi tiga kali, kemudian Robot VR berpindah ke rangkaian cakram berikutnya dan mengulangi perilaku tersebut, hingga semua cakram dikembalikan ke tujuan. Diagram alur yang menunjukkan urutan pengumpulan cakram oleh robot. Di sebelah kiri, kode tersebut menampilkan loop utama yang berulang tiga kali. Panah melingkar berwarna merah di sebelah kanan menunjukkan perulangan berkelanjutan yang berjalan hingga kondisi sensor terpenuhi (seperti menemukan atau menggenggam cakram), sedangkan panah hijau menunjukkan transisi antara mengumpulkan cakram, memindahkannya ke tujuan, melepaskannya, dan memposisikannya kembali untuk siklus berikutnya.

Pilihan

Proyek ini juga mencakup seleksi yang menentukan bagian-bagian proyek yang akan dijalankan berdasarkan kondisi sensor. Pertama, Down Eye Sensor digunakan untuk menentukan kapan Robot VR berada di dekat sebuah cakram, sehingga cakram tersebut dapat diambil. Kemudian, Sensor Jarak digunakan untuk menentukan kapan Robot VR berada di atas sasaran, sehingga cakram dapat dijatuhkan.  Cuplikan kode dari Unit 8 mencakup dua kondisi while yang disorot yang mengontrol pergerakan robot berdasarkan pembacaan sensor. Kondisi pertama yang disorot, meskipun bukan down_eye.near_object(), menginstruksikan robot untuk bergerak maju hingga Sensor Mata Bawah mendeteksi objek di dekatnya, sehingga memungkinkan robot mendekati cakram sebelum berhenti. Kondisi kedua yang disorot, yaitu front_distance.get_distance(MM) > 200, mengarahkan robot untuk bergerak maju hingga berada dalam jarak 200 milimeter dari target, menggunakan sensor jarak depan untuk pengukuran kedekatan. Kondisi while ini menciptakan perulangan yang membuat robot berhenti hanya ketika setiap kondisi sensor tertentu terpenuhi.

Pada loopwhilepertama, pemilihan perintah mana yang akan dijalankan didasarkan pada nilai sensor yang dilaporkan oleh Down Eye Sensor.

  • Selama tidak ada objek yang terdeteksi, Robot VR akan bergerak maju.
  • Saat sebuah objek terdeteksi, maka Robot VR akan berhenti.

Pada loop keduawhile , pemilihan perintah mana yang akan dijalankan didasarkan pada nilai sensor yang dilaporkan oleh Sensor Jarak.

  • Meskipun jarak yang dilaporkan lebih besar dari 200 milimeter (mm), Robot VR akan bergerak maju.
  • Jika jarak yang dilaporkan kurang dari 50 milimeter (mm), Robot VR akan berhenti bergerak dan melanjutkan ke bagian proyek berikutnya untuk mengaktifkan Elektromagnet.

Perulangan

Proyek ini menggunakan iterasi, atau "perulangan", untuk mengulang tindakan dan berulang kali memeriksa nilai sensor yang dilaporkan. Proyek ini berisi perulangan bersarang – satu perulangan agar Robot VR dapat mengumpulkan ketiga cakram dengan warna yang sama; dan perulangan kedua untuk mengulangi proses tersebut guna mengumpulkan semua cakram di Taman Bermain. Kode tersebut menggunakan dua loop bersarang untuk mengontrol proses pengumpulan cakram oleh robot. Loop terluar, yang diberi label Loop untuk mengumpulkan cakram dari setiap warna, berulang melalui setiap warna cakram. Di dalamnya, lingkaran bagian dalam, yang diberi label Lingkaran untuk mengumpulkan 3 cakram dengan satu warna, berulang tiga kali untuk mengumpulkan dan menempatkan tiga cakram dengan warna saat ini. Pengaturan ini memastikan robot mengumpulkan tiga cakram dari setiap warna sebelum beralih ke warna berikutnya, dengan setiap iterasi putaran berfokus pada pengumpulan dan penempatan secara sistematis.

Algoritma ini dirancang untuk mengumpulkan dan mengembalikan tiga cakram, sebanyak tiga kali, untuk menyelesaikan Tantangan Pemindah Cakram (Disk Mover Challenge). Logika yang sama yang diterapkan untuk mengumpulkan dan memindahkan cakram berulang kali menggunakan urutan, seleksi, dan iterasi juga dapat diterapkan pada tantangan lain, seperti Tantangan Penghancur Kastil Dinamis.

Pertanyaan

Silakan pilih tautan di bawah ini untuk mengakses kuis pelajaran.

Google Doc / .docx / .pdf