Lompati ke konten utama
Modul 2 · Pelajaran 2 dari 24/10 dalam kursus~12 min
Pelajaran modul (2/2)

Keputusan dengan IF dan EVALUATE

Pengambilan keputusan di COBOL dilakukan terutama menggunakan pernyataan kondisional IF dan struktur pemilihan multi-cabang EVALUATE (analog dengan switch atau match dalam bahasa modern).

Pernyataan Bersyarat IF

Sintaks dasar dari pernyataan IF adalah:

COBOL
IF condition
    statements-if-true
ELSE
    statements-if-false
END-IF.

Dalam versi COBOL modern (COBOL-85 dan yang lebih baru), pernyataan harus secara eksplisit diakhiri dengan END-IF. alih-alih hanya mengandalkan periode terakhir ., sehingga secara signifikan mengurangi kesalahan penguraian dan logika.

Kondisi Umum

  • Lebih besar dari: > atau GREATER THAN
  • Kurang dari: < atau LESS THAN
  • Setara dengan: = atau EQUAL TO
  • Lebih besar atau sama dengan: >= atau GREATER THAN OR EQUAL TO
  • Kurang dari atau sama dengan: <= atau LESS THAN OR EQUAL TO
COBOL
IF WS-BALANCE < 0
    DISPLAY "OVERDRAWN"
ELSE
    DISPLAY "ACCOUNT ACTIVE"
END-IF.

Pernyataan EVALUASI

Saat kita perlu membandingkan suatu variabel dengan beberapa nilai diskrit, pernyataan IF yang bertumpuk bisa menjadi rumit. Pernyataan EVALUATE menyelesaikan masalah ini dengan menyusun pilihan dengan cara yang bersih:

COBOL
EVALUATE WS-USER-ROLE
    WHEN "ADMIN"
        DISPLAY "FULL ACCESS"
    WHEN "EDITOR"
        DISPLAY "EDIT ACCESS"
    WHEN OTHER
        DISPLAY "LIMITED ACCESS"
END-EVALUATE.
  • WHEN OTHER: Mengidentifikasi cabang cadangan (setara dengan default atau else terakhir dalam bahasa modern).
  • END-EVALUATE.: Menutup struktur.

Cobalah sendiri

Latihan#cobol.m2.l2.e1
Upaya: 0Memuat…

Tulis blok IF-ELSE-END-IF yang memeriksa apakah variabel WS-USER-AGE lebih besar atau sama dengan 18. Jika benar, cetak 'DEWASA', jika tidak, cetak 'MINOR' menggunakan DISPLAY.

Memuat editor…
Tunjukkan petunjuk

Gunakan >= untuk perbandingan, DISPLAY untuk output, dan END-IF. (dengan titik di ujung blok).

Solusi tersedia setelah 3 upaya

Latihan#cobol.m2.l2.e2
Upaya: 0Memuat…

Lengkapi struktur EVALUATE untuk memeriksa variabel WS-STATUS. Jika nilainya 'A' cetak 'AKTIF', jika 'I' cetak 'INAKTIF', sebaliknya untuk nilai lainnya cetak 'TIDAK DIKETAHUI'.

Memuat editor…
Tunjukkan petunjuk

Tulis setiap cabang WHEN diikuti dengan DISPLAY-nya, dan gunakan WHEN OTHER untuk menangani fallback.

Solusi tersedia setelah 3 upaya