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.
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! ;)
join back eaaak
BalasHapusMakasih udah share codingan cobol, sukses Mas #lanjutkan : )
BalasHapus