Cabang di dalam cabang

Dua kondisi berurutan dan dua kondisi bertingkat terlihat mirip, tetapi jalur yang dilaluinya berbeda.

Sebaiknya baca lebih dulu: Benar, salah, dan gabungannya.

Dua pertanyaan, satu urutan

Cabang bertingkat menaruh satu IF di dalam IF yang lain. Kondisi dalam hanya diperiksa ketika kondisi luar sudah benar. Cabang berurutan menaruh dua IF sejajar, dan keduanya selalu diperiksa tanpa peduli hasil yang pertama.

Berurutan, dua pintu sejajar

IF score >= 80
  SET hasil = "lulus"
END
IF attendance >= 90
  SET hasil = "lulus penuh"
END

Bertingkat, pintu kedua di dalam

IF score >= 80
  IF attendance >= 90
    SET hasil = "lulus penuh"
  ELSE
    SET hasil = "lulus"
  END
END

Kolom kiri memberi "lulus penuh" kepada orang berkehadiran tinggi walau nilainya di bawah delapan puluh, sebab pintu kedua tetap diperiksa. Kolom kanan hanya memeriksa kehadiran setelah nilainya lolos. Perhatikan juga bahwa kolom kiri menimpa hasil yang sudah diisi, dan penimpaan itu tidak terlihat dari bentuk tulisannya.

IngatKondisi di dalam IF hanya dijalankan bila kondisi luarnya benar. Kondisi sejajar selalu dijalankan keduanya.

Melihat jalur yang dilalui

IF score >= 80
  IF attendance >= 90
    SET hasil = "lulus penuh"
  ELSE
    SET hasil = "lulus"
  END
ELSE
  SET hasil = "belum lulus"
END
score75
attendance95
hasilbelum ada

Kondisi luar diperiksa: 75 lebih besar atau sama dengan 80? Tidak.

Langkah 1 dari 3
score 75, attendance 95, memakai bentuk bertingkat. Perhatikan baris kondisi dalam tidak pernah disorot.

Angka 95 pada kehadiran tidak salah dan tidak diabaikan karena kelalaian. Ia memang tidak berlaku, sebab aturannya menyatakan kehadiran hanya dinilai setelah nilainya lolos. Bertingkat adalah cara menuliskan urutan penilaian itu.

Batas yang inklusif

Tanda yang dipakai menentukan apakah angka batasnya ikut masuk. Lebih besar atau sama dengan menyertakan angkanya; lebih besar saja tidak. Selisihnya hanya satu karakter, dan akibatnya satu orang tepat di batas mendapat jawaban yang berbeda.

Batas tidak ikut

IF score > 80

Batas ikut

IF score >= 80

Dengan score tepat 80, baris kiri bernilai salah dan baris kanan bernilai benar. Kalau aturannya berbunyi "minimal delapan puluh", yang benar baris kanan. Kesalahan jenis ini tidak pernah muncul pada angka 79 maupun 81, hanya pada 80, jadi ia lolos dari pengujian yang tidak menguji tepat di batasnya.

Periksa pemahaman

Memakai bentuk bertingkat di atas dengan batas inklusif, apa hasil untuk score 80 dan attendance 90?

Ringkasan

  • Bertingkat berarti kondisi dalam hanya diperiksa setelah kondisi luar benar.
  • Dua IF sejajar selalu diperiksa keduanya, dan yang kedua dapat menimpa hasil yang pertama.
  • ELSE milik IF terdekat yang membungkusnya, bukan IF terluar.
  • Tanda lebih besar atau sama dengan menyertakan angka batasnya; lebih besar saja tidak.
  • Uji tepat pada angka batasnya. Nilai di sekitarnya tidak dapat membedakan keduanya.