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
Kondisi luar diperiksa: 75 lebih besar atau sama dengan 80? Tidak.
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.