* OPERASI ARITMATIKA *
Untuk penulisan suatu operasi aritmatika dalam COBOL dapat
digunakan beberapa pernyataan, antara lain :
· ADD
· SUBSTRACT
· MULTIPLY
· DIVIDE
· COMPUTE
I. ADD
Digunakan untuk melakukan operasi penjumlahan.
Bentuk umum :
1. ADD { nama-data-1/ literal } ... TO { nama-data-n [ROUNDED]} ...
[ ON SIZE ERROR statement-imperatif ]
2. ADD {nama-data-1/ literal-1} {nama-data-2/ literal-2}...
GIVING nama-data-n [ROUNDED]
[ON SIZE ERROR statement-imperatif ]
Contoh :
Misalkan nilai mula-mula dari a = 2, b = 4, c = 1,
x = 22,37 y = 78,12 z = 11,11
ADD a TO c
ADD a, b TO c
ADD 1 TO c
ADD a, b TO c, d
ADD a, b GIVING c
ADD x, y GIVING z ROUNDED
ADD x, y GIVING z ON SIZE ERROR DISPLAY ‘Terjadi overflow’
II. SUBTRACT
Digunakan untuk melakukan operasi pengurangan.
Bentuk umum :
1. SUBTRACT {nama-data-1/ literal-1} ... FROM {nama-data-2 [ROUNDED]} ...
[ON SIZE ERROR statement-imperatif]
2. SUBTRACT {nama-data-1/literal} ... FROM {nama-data-2/literal-2}
GIVING {nama-data-3 [ROUNDED]} ... [ON SIZE ERROR statement-imperatif]
Contoh :
Misalkan nilai mula-mula dari a = 22, b = 50, c = 75, d = 100
w = 90.98 x = 22,37 y = 78,12 z = 11,11
SUBTRACT a FROM b
SUBTRACT 50 FROM b
SUBTRACT a, b FROM c, d
SUBTRACT 25, a FROM b GIVING c
SUBTRACT x, y FROM w GIVING z ROUNDED
III. MULTIPLY
Digunakan untuk melaksanakan operasi perkalian.
Bentuk umum :
1. MULTIPLY {nama-data-1/ literal-1} BY {nama-data-2 [ROUNDED] ...
[ON SIZE ERROR statement-imperatif ]
2. MULTIPLY {nama-data-1/ literal-1} BY {nama-data-2/ literal-2}
GIVING {nama-data-3 [ROUNDED]} ... [ON SIZE ERROR statement-imperatif]
Contoh :
Misalkan nilai mula-mula dari a = 23, b = 02, c = 04,
MULTIPLY a BY b
MULTIPLY a BY b, c
MULTIPLY 15 BY a GIVING b
MULTIPLY 21 BY a GIVING b, c
IV. DIVIDE
Digunakan untuk mendapatkan hasil pembagian, juga digunakan untuk
memperoleh sisa hasil bagi.
Bentuk umum :
1. DIVIDE {nama-data-1/ literal-1} INTO {nama-data-2/ literal-2 [ROUNDED] ...
[ON SIZE ERROR statement-imperatif]
2. DIVIDE {nama-data-1/ literal-1} INTO / BY {nama-data-2/ literal-2}
GIVING {nama-data3 [ROUNDED]} ... [ON SIZE ERROR statement-imperatif]
3. DIVIDE {nama-data-1/ literal-1} INTO / BY {nama-data-2/ literal-2}
GIVING {nama-data-3 [ROUNDED]}... REMAINDER nama-data-4
ON SIZE ERROR statement-imperatif
Contoh :
Misalkan nilai mula-mula dari a = 02, b = 50, c = 04,
x = 75, y = 2
DIVIDE a INTO b
DIVIDE a INTO b GIVING c
DIVIDE b BY a GIVING c
DIVIDE y INTO x GIVING z REMAINDER sisa
V. COMPUTE
Digunakan untuk menuliskan suatu ungkapan/ekspresi aritmatika.
Bentuk umum :
COMPUTE ekspresi-aritmatika
Contoh :
ekspresi aritmatika penulisan
hasil = total + 6 COMPUTE hasil = total + 6
akhir = awal (i+1)n COMPUTE akhir = awal ( i + 1 ) ** n
hasil = nilai + 100 COMPUTE hasil = nilai + 100
Contoh program :
IDENTIFICATION DIVISION.
PROGRAM-ID. contoh.
*---------------------------------------------------------*
* contoh pemakaian statement aritmatika *
*---------------------------------------------------------*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 I PIC 99V99 VALUE 22,37.
77 j PIC 99V99 VALUE 78,12.
77 k PIC 99V99 VALUE 11,11.
77 edit-k PIC 99,99.
77 a PIC 99.
77 b PIC 99.
77 hasil PIC 99 VALUE 0.
77 sisa PIC 99 VALUE 0.
PROCEDURE DIVISION.
program-penjumlahan.
DISPLAY ‘ Penggunaan ON SIZE ERROR ‘
ADD I, j GIVING k ON SIZE ERROR DISPLAY ‘Terjadi overflow ‘
MOVE k TO edit-k
DISPLAY ‘ k = ‘ , edit-k
DISPLAY ‘ Tanpa ON SIZE ERROR ‘
ADD I, j GIVING k
MOVE k TO edit-k
DISPLAY ‘ k = ‘ , edit-k.
program-pembagian.
DISPLAY ( 7, 1) ‘ Masukkan bilangan yang akan dibagi ( b) : ‘
ACCEPT ( , ) b
DISPLAY ( 8, 1) ‘ Masukkan bilangan pembagi ( a) : ‘
ACCEPT ( , ) a
DISPLAY SPACE
DIVIDE a INTO b GIVING hasil REMAINDER sisa
DISPLAY ‘ Sesudah DIVIDE : ‘
DISPLAY ‘ a, b, hasil, sisa = ‘, a, ‘ ’, b,’ , hasil, ‘ ‘, sisa.
selesai.
STOP RUN.
Penggunaan ON SIZE ERROR
Terjadi overflow
k = 11,11
Tanpa ON SIZE ERROR
k = 00,49
Masukkan bilangan yang akan dibagi ( b) : 9
Masukkan bilangan pembagi ( a) : 2
Sesudah DIVIDE :
a, b, hasil, sisa = 09 02 04 01