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.
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'.
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.
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.
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.
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