IDENTIFICATION DIVISION.
Program-id. MATRIK. *identitas program
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 I PIC 9. *variabel I bertipe data Numerik
77 J PIC 9. *variabel J bertipe data Numerik
01 CETAK.
02 M1 PIC Z9.
02 M2 PIC Z9.
02 T PIC ZZ9.
01 TOTAL.
02 TOTAL-BARIS OCCURS 2 TIMES.
03 TM OCCURS 2 TIMES PIC 999.
01 DATA1.
02 BARIS1 OCCURS 2 TIMES.
03 MATRIK1 OCCURS 2 TIMES PIC 999.
01 DATA2.
02 BARIS2 OCCURS 2 TIMES.
03 MATRIK2 OCCURS 2 TIMES PIC 99.
SCREEN SECTION.
01 HAPUS-LAYAR.
02 BLANK SCREEN.
01 TANDA.
02 LINE 3 COLUMN 16 VALUE '+' HIGHLIGHT.
02 LINE 3 COLUMN 31 VALUE '=' HIGHLIGHT.
PROCEDURE DIVISION.
MULAI.
MOVE 3 TO LIN.
DISPLAY HAPUS-LAYAR.
*menampilkan user devined dari Screen section dengan nama Hapus-Layar yang berisi Syntax Blank-Screen.
PERFORM ISI1 VARYING I FROM 1 BY 1
*memanggil prosedur 1 dengan memvariasikan variabel I secara satu-satu
UNTIL I>2 AFTER J FROM 1 BY 1 UNTIL J>2.
*sebelum I lebih besar dari 2 sesudah J secara satu satu sebelum J lebih besar dari 2.
Jadi maksudnya terjadi proses looping dimana setelah looping I=I+1 begitu juga dengan J
COMPUTE LIN= 10.
PERFORM ISI2 VARYING I FROM 1 BY 1
UNTIL I>2 AFTER J FROM 1 BY 1 UNTIL J>2.
PERFORM PROSES VARYING I FROM 1 BY 1
UNTIL I>2 AFTER J FROM 1 BY 1 UNTIL J>2.
DISPLAY HAPUS-LAYAR.
DISPLAY ( 1 , 6 ) 'MATRIK A + MATRIK B'.
DISPLAY TANDA.
PERFORM HASIL VARYING I FROM 1 BY 1
UNTIL I>2 AFTER J FROM 1 BY 1 UNTIL J>2.
STOP RUN.
ISI1.
DISPLAY ( 3 , 2 ) 'MATRIK A'.
COMPUTE LIN = LIN + 1.
DISPLAY ( LIN , 2 ) 'ELEMEN BARIS KE-' , I ,
' KOLOM KE-' , J , ':'.
ACCEPT MATRIK1 ( I , J ).
ISI2.
DISPLAY ( 10 , 2 ) 'MATRIK B'.
COMPUTE LIN = LIN + 1.
DISPLAY ( LIN , 2 ) 'ELEMEN BARIS KE-' , I ,
' KOLOM KE-' , J , ':'.
ACCEPT MATRIK2 ( I , J ).
PROSES.
COMPUTE TM ( I , J ) = MATRIK1 ( I , J ) + MATRIK2 ( I , J ).
HASIL. *Prosedure HasiL
MOVE I TO LIN. Memindahkan I sebagai baris
MOVE J TO COL. Memindahkan J sebagai Colom
MOVE MATRIK1 ( I , J ) TO M1.
MOVE MATRIK2 ( I , J ) TO M2.
MOVE TM ( I , J ) TO T.
COMPUTE LIN = LIN * 2. Melakukan proses penghitungan untuk LIN=LIN*2
COMPUTE COL = COL * 4. Melakukan proses penghitungan untuk COL=COL*4
DISPLAY ( LIN , COL + 1 ) M1.
DISPLAY ( LIN , COL + 16 ) M2.
DISPLAY ( LIN , COL + 30 ) T.
ISI1, ISI2,PROSES dan HASIL adalah Divisi lain yang user defined yang akan dipanggil sebagai procedure pada procedure division dengan Syntax Perform
Setelah itu simpan Matrik.COB pada folder yang sama dengan tempat software cobol berada,
Lalu Compile.
>Cobol Matrik.COB
Memasukkan semua input bertype data numeric untuk Proses dan hasil.
Setelah melakukan perform “prosedur Hasil” semua elemen pada baris dan kolom matrik A dan matrik B dijumlah.
Maka hasil Output akhirnya sebagai berikut :