Jumat, 15 November 2013

Program Menu Pada Cobol




Pada postingan kali ini saya akan berbagi contoh program menu pada COBOL. Di menu tersebut terdapat 4 pilihan yang isinya berupa perhitungan matematika, looping, array serta pilihan menu untuk keluar program.
Pada perhitungan matematika berisi program menghitung luas bangun persegi, pada looping berisi program desain rumah sederhana, pada array berisi program untuk menginput nama.
Berikut adalah kodingan program menu.


       IDENTIFICATION DIVISION.
       PROGRAM-ID. MENU.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 MENU PIC 9(1).
       01 S PIC 9(2).
       01 LUAS PIC Z(3).
       01 ANGKA PIC 99.
       01 AWAL2 PIC 99.
       01 BARIS PIC 99.
       01 KURANG PIC 99.
       01 SATU PIC 99.
       01 AKHIR PIC 99.
       01 KURANG1 PIC 99.
       01 AWAL.
           02 NAMA PIC X(10) OCCURS 10 TIMES.
       77 I PIC 9(2).
       77 N PIC 9(2).
       01 INPUT-LAGI PIC X.
           88 YA VALUE 'Y', 'y'.
           88 TDK VALUE 'T', 't'.
       SCREEN SECTION.
       01 HAPUS.
           02 BLANK SCREEN.
       PROCEDURE DIVISION.
       E.
           DISPLAY HAPUS.
           DISPLAY (3, 20) 'MENU PILIHAN'.
           DISPLAY (5, 20) '1. PERHITUNGAN MATEMATIKA'.
           DISPLAY (6, 20) '2. LOOPING'.
           DISPLAY (7, 20) '3. ARRAY'
           DISPLAY (8, 20) '4. KELUAR'.
           DISPLAY (10, 20) 'MASUKKAN PILIHAN (1/2/3/4) : '.
           ACCEPT MENU.
           IF MENU = '1'
            GO TO A
           ELSE IF MENU = '2'
            GO TO B
           ELSE IF MENU = '3'
            GO TO C
           ELSE IF MENU = '4'
            GO TO D
           ELSE
            GO TO E.
       A.
           DISPLAY HAPUS.
           DISPLAY (3, 20) 'PERHITUNGAN MATEMATIKA'.
           DISPLAY (5, 20) 'INPUT SISI PERSEGI : '.
           ACCEPT S.
           COMPUTE LUAS = S * S
           DISPLAY (7, 20) 'LUASNYA ADALAH ', LUAS.
           DISPLAY SPACE.
           DISPLAY (9, 20) 'INPUT ULANG LAGI (Y/T)? '.
           ACCEPT INPUT-LAGI.
           IF YA
            GO TO A
           ELSE IF TDK
            GO TO E
           ELSE
            GO TO D.
       B.
           DISPLAY HAPUS.
           DISPLAY (3, 20) 'MASUKKAN ANGKA : '.
           ACCEPT ANGKA.
           COMPUTE AWAL2 = 1.
           COMPUTE BARIS = ANGKA.
           COMPUTE KURANG = ANGKA - 2.
           COMPUTE SATU = 1.
           COMPUTE AKHIR = (ANGKA * 2) + ANGKA.
           COMPUTE KURANG1 = ANGKA - 1.
           DISPLAY SPACE.
       OPERASI.
           MOVE 1 TO LIN.
           PERFORM SPASI BARIS TIMES.
           PERFORM BINTANG AWAL2 TIMES.
           PERFORM GENTENG ANGKA TIMES.
           DISPLAY SPACE.
           IF AWAL2 = ANGKA
            GO TO TEMBOK
           ELSE GO TO CEK.
       TEMBOK.
           DISPLAY ( , ) '  *'.
           PERFORM SPASI1 KURANG TIMES.
           DISPLAY ( , ) ' *'.
           PERFORM SPASIPANJANG KURANG1 TIMES.
           DISPLAY ( , ) '   *'.
           DISPLAY SPACE.
           IF SATU = ANGKA
            GO TO PONDASI
           ELSE GO TO CEKTEMBOK.
       CEKTEMBOK.
           COMPUTE SATU = SATU + 1.
           GO TO TEMBOK.
       CEK.
           COMPUTE AWAL2 = AWAL2 + 1.
           COMPUTE BARIS = BARIS - 1.
           GO TO OPERASI.
       SPASI.
           DISPLAY ( , ) ' '.
       SPASI1.
           DISPLAY ( , ) '  '.
       BINTANG.
           DISPLAY ( , ) ' *'.
       GENTENG.
           DISPLAY ( , ) '_\_\'.
       SPASIPANJANG.
           DISPLAY ( , ) '    '.
       PONDASI.
           DISPLAY ( , ) ' '.
           PERFORM LANTAI AKHIR TIMES.
           DISPLAY SPACE.
           COMPUTE COL = 20.
           DISPLAY ( , COL) 'INPUT ULANG LAGI (Y/T)? '.
           ACCEPT INPUT-LAGI.
           IF YA
            GO TO B
           ELSE IF TDK
            GO TO E
           ELSE
            GO TO D.
       LANTAI.
           DISPLAY ( , ) ' ='.
       C.
           DISPLAY HAPUS.
           DISPLAY (3, 20) 'ARRAY'.
           DISPLAY (5, 20) 'INPUT JUMLAH NAMA MAHASISWA/I : '.
           ACCEPT N.
           DISPLAY SPACE.
           COMPUTE LIN = 7.
           COMPUTE COL = 20.
           PERFORM HASIL VARYING I FROM 1 BY 1 UNTIL I = N.
           HASIL.
           DISPLAY (LIN, COL) 'NAMA MAHASISWA/I KE-', I, ': '.
           ACCEPT NAMA(I).
           COMPUTE LIN = LIN + 1.
           HASIL1.
           COMPUTE LIN = LIN + 1.
           COMPUTE COL = 20.
           PERFORM TAMPIL VARYING I FROM 1 BY 1 UNTIL I = N.
       TAMPIL.
           DISPLAY (LIN, COL) 'NO. ', I, ' ', NAMA(I).
           COMPUTE LIN = LIN + 1.
           DISPLAY SPACE.
       ULANG.
           DISPLAY SPACE.
           COMPUTE LIN = LIN + 1.
           DISPLAY (LIN, COL) 'INPUT ULANG LAGI (Y/T)? '.
           ACCEPT INPUT-LAGI.
           IF YA
            GO TO C
           ELSE IF TDK
            GO TO E
           ELSE
            GO TO D.
       D.
           DISPLAY HAPUS.
           DISPLAY (3, 20) 'INGIN KELUAR DARI PROGRAM INI (Y/T)? '.
           ACCEPT INPUT-LAGI.
           IF TDK
            GO TO E
           ELSE IF YA
            STOP RUN
           ELSE
            GO TO D.


Berikut adalah printscreen dari program tersebut.






Moga bermanfaat buat para pembaca ya! ;)

2 komentar: