Pengambilan Keputusan dan Perulangan Kondisional di GvRng

Assalamualaikum wr wb

1.Pengambilan Keputusan

Kecerdasan dimulai dari kemampuan mengambil keputusan. Mesin disebut cerdas jika mampu mengambil keputusan sesuai kondisi yang dihadapi. Semakin banyak kondisi yang bisa dihadapi dan semakin banyak keputusan yang bisa diambil, maka mesin semakin cerdas

Robot Guido mengenal 18 kondisi berikut ini.
Kondisi
Makna
front_is_clear
Lokasi didepan robot tidak ada penghalang
front_is_blocked
Lokasi didepan robot ada penghalang
left_is_clear
Lokasi di kiri robot tidak ada penghalang
left_is_blocked
Lokasi di kiri robot ada penghalang
right_is_clear
Lokasi di kanan robot tidak ada penghalang
right_is_blocked
Lokasi di kanan robot ada penghalang
next_to_a_beeper
Robot berada pada posisi yang sama dengan Beeper (pada koordinat yang sama)
not_next_to_a_beeper
Robot tidak berada pada posisi dekat Beeper
any_beeper_in_beeper_bag
Kantong beeper berisi
no_beeper_in_beeper_bag
Kantong beeper kosong
facing_north
Menghadap utara
not_facing_north
Tidak menghadap utara
facing_south
Menghadap selatan
not_facing_south
Tidak menghadap selatan
facing_east
Menghadap timur
not_facing_east
Tidak menghadap timur
facing_west
Menghadap barat
not_facing_west
Tidak menghadap barat
Untuk membuat keputusan berdasarkan kondisi tertentu, digunakan perintah if dengan cara penulisan sebagai berikut.

if kondisi:
   keputusan

Sebagai contoh, perintah berikut :

if left_is_clear:
   turnleft
   move
   putbeeper
   turnoff

Berarti robot harus memeriksa kondisi apakah di kiri tidak ada penghalang, jika tidak ada penghalang maka robot berbelok ke kiri, maju 1 langkah, meletakkan beeper dan robot akan mati


Lebih banyak keputusan

  Untuk membuat lebih banyak keputusan berdasarkan kondisi tertentu, digunakan gabungan perintah if - else dengan cara penulisan sebagai berikut

if kondisi:
   keputusan
else:
    keputusanlain

Sebagai contoh, perintah berikut :

if front_is_blocked:
   turnleft 
else:
    move

berarti robot harus memeriksa kondisi apakah di depan ada penghalang, jika ada penghalang maka robot menghadap ke kiri dan jika tidak ada penghalang maka robot maju 1 langkah, serta robot sebelumnya berada di koordinat 3 2


Lebih banyak kondisi dan lebih banyak keputusan

  Lebih banyak kondisi dapat diperiksa dengan menggunakan perintah if yang banyak atau gabungan perintah if - elif - else. Perhatikan contoh berikut.

if front_is_clear:
   move
elif left_is_clear:
   turnleft
   move
else:
   turnoff

  Program diatas berarti, robot berada di koordinat 3 2 menghadap ke utara dan akan memeriksa apakah di depan tidak ada penghalang, jika benar maka maju selangkah, jika tidak benar maka diperiksa kondisi lain. Jika di kiri tidak ada penghalang, maka robot berbelok ke kiri dan maju, jika tidak benar, maka robot dimatikan


2.Perulangan Kondisional

Perintah do melakukan perulangan dengan jumlah yang pasti. Jika perulangan tidak diketahui jumlahnya, maka perintah do tidak dapat digunakan. Instruksi yang lebih tepat digunakan adalah while. Cara penggunaanya adalah :

while kondisi:
     instruksi     #instruksi yang akan dikerjakan berulang-ulang
     instruksi     #instruksi yang akan dikerjakan berulang-ulang

yang berarti "selalu uji kondisi, selama kondisi benar, lakukan instruksi

  Sebagai contoh situasi pada gambar di bawah ini


di mana robot diperintahkan menyusuri sebuah garis. Jika jumlah garis tidak diketahui panjangnya, maka bisa menggunakan perintah seperti gambar di atas.
 

Gambar diatas adalah hasil dari perintah sebelumnya

Referensi

buku algoritma dan pemrograman

wassalamualaikum wr wb


EmoticonEmoticon