Selasa, 05 Januari 2016

Contoh Program Cobol [ MENU ]

A. LISTING PROGRAM




       IDENTIFICATION DIVISION.
       PROGRAM-ID. AP3.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       DATA DIVISION.
       FILE SECTION.
       WORKING-STORAGE SECTION.
       01 MASUKAN.
           02 PIL PIC 9(2).
           02 HASIL PIC Z(10).
           02 G PIC 9(2).
       01 PESAN-LAGI PIC X.
           88 LAGI VALUE 'Y', 'y'.
           88 TIDAK VALUE 'T', 't'.
       SCREEN SECTION.
       01 HAPUS-LAYAR.
           02 BLANK SCREEN.
       01 MENU.
           02 LINE 2 COLUMN 30 VALUE '.:   MENU MAKANAN   :.'.
           02 LINE 4 COLUMN 30 VALUE '1. Nasi Goreng Aceh'.
           02 LINE 5 COLUMN 30 VALUE '2. Mie Setan'.
           02 LINE 6 COLUMN 30 VALUE '3. Udang Saos Tiram'.
           02 LINE 7 COLUMN 30 VALUE '4. Salad'.
           02 LINE 8 COLUMN 30 VALUE '5. Keluar'.
           02 LINE 9 COLUMN 30 VALUE '--------------'.
           02 LINE 11 COLUMN 30 VALUE 'PILIH : '.
           02 LINE 11 COLUMN 37 PIC 9 TO PIL.
       PROCEDURE DIVISION.
       MULAI.
           DISPLAY HAPUS-LAYAR.
           DISPLAY MENU.
           ACCEPT PIL.
           IF PIL = 1
               GO TO S.
           IF PIL = 2
               GO TO A.
           IF PIL = 3
               GO TO K.
           IF PIL = 4
               GO TO U.
           IF PIL = 5
               GO TO SELESAI.
           ELSE GO TO MULAI.

       SELESAI.
           STOP " ".
           STOP RUN.

       S.
           DISPLAY HAPUS-LAYAR.
           DISPLAY (4,2)'BERAPA BANYAK PESANAN : '.
           ACCEPT , G.
           COMPUTE HASIL = G*15000.
           DISPLAY (5,2) 'TOTAL PEMBAYARAN : ', HASIL.
           GO TO TANYA.

       A.
           DISPLAY HAPUS-LAYAR.
           DISPLAY (4,2)'BERAPA BANYAK PESANAN : '.
           ACCEPT , G.
           COMPUTE HASIL = G*10000.
           DISPLAY (5,2) 'TOTAL PEMBAYARAN : ', HASIL.
           GO TO TANYA.

       K.
           DISPLAY HAPUS-LAYAR.
           DISPLAY (4,2) 'BERAPA BANYAK PESANAN : '.
           ACCEPT , G.
           COMPUTE HASIL = G*20000.
           DISPLAY (5,2) 'TOTAL PEMBAYARAN : ', HASIL.
           GO TO TANYA.

       U.
           DISPLAY HAPUS-LAYAR.
           DISPLAY (4,2) 'BERAPA BANYAK PESANAN : '.
           ACCEPT , G.
           COMPUTE HASIL = G*7000.
           DISPLAY (5,2) 'TOTAL PEMBAYARAN : ', HASIL.
           GO TO TANYA.

       TANYA.
           DISPLAY (7,2)'LAGI [Y/T] :'.
           ACCEPT PESAN-LAGI.
           IF LAGI GO TO MULAI.
           IF TIDAK GO TO SELESAI.
           IF NOT LAGI AND NOT TIDAK
               DISPLAY (9,2) 'Y/y ATAU T/t '
               GO TO TANYA.



B. LOGIKA PROGRAM


WORKING-STORAGE SECTION.
       01 MASUKAN.
           02 PIL PIC 9(2).
           02 HASIL PIC Z(10).
           02 G PIC 9(2).
       01 PESAN-LAGI PIC X.
           88 LAGI VALUE 'Y', 'y'.
           88 TIDAK VALUE 'T', 't'.

Membuat deklarasi variabel PIL, HASIL dan G. Deklarasi LAGI dengan nilai ‘Y’ dan ‘y’ dan variabel TIDAK dengan nilai ‘T’ dan ‘t’.
SCREEN SECTION.
       01 HAPUS-LAYAR.
           02 BLANK SCREEN.
       01 MENU.
           02 LINE 2 COLUMN 30 VALUE '.:   MENU MAKANAN   :.'.
           02 LINE 4 COLUMN 30 VALUE '1. Nasi Goreng Aceh'.
           02 LINE 5 COLUMN 30 VALUE '2. Mie Setan'.
           02 LINE 6 COLUMN 30 VALUE '3. Udang Saos Tiram'.
           02 LINE 7 COLUMN 30 VALUE '4. Salad'.
           02 LINE 8 COLUMN 30 VALUE '5. Keluar'.
           02 LINE 9 COLUMN 30 VALUE '--------------'.
           02 LINE 11 COLUMN 30 VALUE 'PILIH : '.
           02 LINE 11 COLUMN 37 PIC 9 TO PIL.

Buat record baru dengan nama HAPUS-LAYAR yang berisi blank screen dan record baru dengan nama MENU, dimana terdapat sejumlah item di dalamnya karna program ini akan membuat tampilan menu pada makanan, dan tentukan format menu pengaturan baris dan kolom.

PROCEDURE DIVISION.
       MULAI.
           DISPLAY HAPUS-LAYAR.
           DISPLAY MENU.
           ACCEPT PIL.
           IF PIL = 1
               GO TO S.
           IF PIL = 2
               GO TO A.
           IF PIL = 3
               GO TO K.
           IF PIL = 4
               GO TO U.
           IF PIL = 5
               GO TO SELESAI.
           ELSE GO TO MULAI.

       SELESAI.
           STOP " ".
           STOP RUN.

Pertama-tama program akan memanggil record menu dan meminta user untuk menginput pilihan menu yang ada. Terdapat perintah percabangan IF – ELSE, jika user memilih 1 maka program akan menuju record S, jika user memilih 2 maka program akan menuju record A dan begitu seterusnya. Jika yang diinput tidak 1-5 maka program akan menuju record MULAI.

S.
           DISPLAY HAPUS-LAYAR.
           DISPLAY (4,2)'BERAPA BANYAK PESANAN : '.
           ACCEPT , G.
           COMPUTE HASIL = G*15000.
           DISPLAY (5,2) 'TOTAL PEMBAYARAN : ', HASIL.
           GO TO TANYA.

       A.
           DISPLAY HAPUS-LAYAR.
           DISPLAY (4,2)'BERAPA BANYAK PESANAN : '.
           ACCEPT , G.
           COMPUTE HASIL = G*10000.
           DISPLAY (5,2) 'TOTAL PEMBAYARAN : ', HASIL.
           GO TO TANYA.

       K.
           DISPLAY HAPUS-LAYAR.
           DISPLAY (4,2) 'BERAPA BANYAK PESANAN : '.
           ACCEPT , G.
           COMPUTE HASIL = G*20000.
           DISPLAY (5,2) 'TOTAL PEMBAYARAN : ', HASIL.
           GO TO TANYA.

       U.
           DISPLAY HAPUS-LAYAR.
           DISPLAY (4,2) 'BERAPA BANYAK PESANAN : '.
           ACCEPT , G.
           COMPUTE HASIL = G*7000.
           DISPLAY (5,2) 'TOTAL PEMBAYARAN : ', HASIL.
           GO TO TANYA.

       TANYA.
           DISPLAY (7,2)'LAGI [Y/T] :'.
           ACCEPT PESAN-LAGI.
           IF LAGI GO TO MULAI.
           IF TIDAK GO TO SELESAI.
           IF NOT LAGI AND NOT TIDAK
               DISPLAY (9,2) 'Y/y ATAU T/t '
               GO TO TANYA.


Pada listing di atas merupakan sebuah record. Pada record S program akan membersihkan layar dan mencetak “BERAPA BANYAK PESANAN : “ dimana user akan menginput jumlah pesanan lalu akan disimpan pada variabel G.
 Compute hasil = G * 15000 merupakan perhitungan dimana hasil perhitungan tersebut akan disimpan dalam variabel hasil. Program akan mencetak “TOTAL PEMBAYARAN : “ dan memanggil variabel hasil. Lalu program akan menuju record TANYA.
Untuk record A, K dan U sama seperti record S hanya saja berbeda kondisi perhitungannya saja.
Record TANYA berfungsi untuk menanyakan user apakah ingin memesan lagi atau tidak. Jika ya maka program akan menuju record mulai tetapi jika tidak maka program menuju record selesai. Tapi jika user tidak memasukkan atau menginput selain Y/T maka program akan mencetak “Y/y atau T/t” dan kembali ke record TANYA.


C. OUTPUT



Tidak ada komentar:

Posting Komentar