Monday

Laporan Akhir Cobol, [Perulangan]

IDENTIFICATION DIVISION.
       PROGRAM-ID.
ENVIRONMENT DIVISION.
DATA DIVISION.
       WORKING-STORAGE SECTION.
       77 A PIC 9.
       77 B PIC 9.
PROCEDURE DIVISION.
       MULAI.
           PERFORM CETAK
           VARYING A FROM 1 BY 1 UNTIL A > 5
           AFTER B FROM 1 BY 1 UNTIL B > A
           STOP RUN.
           VARYING A FROM 1 BY 1 UNTIL A >5
           AFTER B FROM 1 BY 1 UNTIL B > A
           Stop run
           CETAK.
           DISPLAY (, ), A.
           IF B = A DISPLAY SPACE.

Sebelum menulis kodingan, COBOL mempunyai aturan penulisan, yaitu setiap kodingan selalu dimulai dengan 7 spasi, dan memulai program pada kolom ke 8. Untuk Display dan Isi dari Item data (level number selain 01) dimulai dengan 11 spasi dan memulai program pada kolom ke 12.
Arti dari statement di atas adalah, Identification Division menjelaskan program yang dibuat.
Arti dari statement diatas adalah untuk informasi keadaan komputer yang dipakai. Disini tidak menggunakan configuration section dan input-output section.
Arti dari statement diatas adalah Data Division untuk informasi mengenai bentuk dan jenis data yang digunakan. Data divisi yang digunakan adalah Working-Storage Section. Kode 77 artinya file yang berdiri sendiri atau independent, nama file yang diberikan adalah A [dengan tipe data numerik, panjang 1 karakter (9 adalah tipe data numerik], B [dengan tipe data number, panjang 1 karakter]
Procedure division adalah tempat seluruh instruksi utama ditempatkan. User define word Mulai artinya untuk menandakan mulainya program. Perform Cetak maksudnya adalah, program cobol akan memanggil kembali sub program dari Cetak untuk kembali ke looping.
VARYING A FROM 1 BY 1 UNTIL A >5 Varying digunakan untuk menyimpan isi dari variabel A, dimana variabel A dimulai dari 1. Kemudian masuk ke dalam kondisi dimana A > 5.
AFTER B FROM 1 BY 1 UNTIL B > A Varying dan After hampir mirip seperti looping For bersarang pada pascal. Variabel B adalah untuk mengetahui banyaknya looping ketika variabel A masih memenuhi kondisi A > 5.
Stop run adalah untuk mengakhiri program looping.
Cetak adalah user define word untuk sub program. Sub program ini berisi; akan menampilkan variabel A. Dan kondisi dimana jika B = A maka program akan membuat baris baru.

1.    A = 1
•    A, selalu dimulai dari 1. B juga bernilai 1.
•    1 > 1, maka akan mencetak 1, karena tidak memenuhi kondisi A > 5
•    Namun, pada saat B = A, dimana 1 = 1, program langsung mencetak baris baru.
2.    A = 2
•    Sekarang A bernilai 2.
•    1 > 2, maka akan mencetak 2, karena perintahnya adalah display A, dan belum memenuhi kondisi A > 5.
•    2 > 2, maka akan mencetak 2 karena belum memenuhi kondisi A > 5.
•    Namun, pada saat B = A, dimana 2 = 2, program langsung mencetak baris baru.
3.    A = 3
•    Sekarang A bernilai 3.
•    1 > 3, maka akan mencetak 3, karena perintahnya adalah display A, dan belum memenuhi kondisi A > 5.
•    2 > 3, maka akan mencetak 3 karena belum memenuhi kondisi A > 5.
•    3 > 3, maka akan mencetak 3 karena belum memenuhi kondisi A > 5.
•    Namun, pada saat B = A, dimana 3 = 3, program langsung mencetak baris baru.
4.    A = 4
•    Sekarang A bernilai 4.
•    1 > 4, maka akan mencetak 4, karena perintahnya adalah display A, dan belum memenuhi kondisi A > 5.
•    2 > 4, maka akan mencetak 4 karena belum memenuhi kondisi A > 5.
•    3 > 4, maka akan mencetak 4 karena belum memenuhi kondisi A > 5.
•    4 > 4, maka akan mencetak 4 karena belum memenuhi kondisi A > 5.
•    Namun, pada saat B = A, dimana 4 = 4, program langsung mencetak baris baru.
5.    A = 5
•    Sekarang A bernilai 5.
•    1 > 5, maka akan mencetak 5, karena perintahnya adalah display A, dan belum memenuhi kondisi A > 5.
•    2 > 5, maka akan mencetak 5 karena belum memenuhi kondisi A > 5.
•    3 > 5, maka akan mencetak 5 karena belum memenuhi kondisi A > 5.
•    4 > 5, maka akan mencetak 5 karena belum memenuhi kondisi A > 5.
•    5 > 5, maka akan mencetak 5 karena belum memenuhi kondisi A > 5.
•    Namun, pada saat B = A, dimana 5 = 5, program langsung mencetak baris baru.

No comments: