Membuat Segitiga Bintang Siku Kanan dengan COBOL

LISTING PROGRAM

        IDENTIFICATION DIVISION.
        PROGRAM-ID AAA.
        ENVIRONMENT DIVISION.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        77 TINGGI PIC 99.
        77 JJ PIC 99.
        77 SPAS PIC 99.
        SCREEN SECTION.
        01 CLS.
            02 BLANK SCREEN.
        PROCEDURE DIVISION.
        MULAI.
            DISPLAY CLS.
            DISPLAY ( , )"MASUKKAN ANGKA : ".
            ACCEPT TINGGI.
            COMPUTE JJ = TINGGI.
            COMPUTE SPAS = 1.
        MULAI2.
            IF JJ NOT< 1 GO TO ULANG.
            STOP RUN.
        ULANG.
            PERFORM BINTANG JJ TIMES.
            PERFORM KOSONG SPAS TIMES.
            DISPLAY SPACE.
            COMPUTE SPAS = SPAS + 1.
            COMPUTE JJ = JJ - 1.
            GO TO MULAI2.
        BINTANG.
            DISPLAY ( , ) "*".
        KOSONG.
            DISPLAY ( , ) " ".

LOGIKA PROGRAM


        IDENTIFICATION DIVISION.
        PROGRAM-ID AAA.
        ENVIRONMENT DIVISION.

Untuk mengawali pembuatan program harus memulai menulis sintak pada kolom ke-8 ( 8 spasi).Identification Division yang berfungsi untuk memberi identitas program, seperti judul program, nama pembuat, dan lain-lain. Program-ID merupakan penamaan judul program. Dalam hal ini judulnya adalah LA3. Dalam program ini kita tidak menggunakan Environment Division namun kita harus tetap menuliskan divisinya.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        77 TINGGI PIC 99.
        77 JJ PIC 99.

        77 SPAS PIC 99.
Selanjutnya mendeklarasikan variabel. Data division adalah tempat untuk mendeklarasikan variabel di program cobol. Kemudian ada Working-Storage Section yang merupakan bagian dari Data Division yang berfungsi untuk mengidentifikasi variabel dalam program. Variabel yang dideklarasikan sebagai berikut :
  • ·         TINGGI dengan picture clause 99 yang artinya variabel TINGGI akan diisi dengan dengan data numeric  sebanyak 2 karakter.
  • ·         JJ dengan picture clause 99 yang artinya variabel JJ akan diisi dengan dengan data numeric  sebanyak 2 karakter.
  • ·         SPAS dengan picture clause  99 yang artinya variabel SPAS akan diisi dengan dengan data numeric  sebanyak 2 karakter.

                  SCREEN SECTION.
                  01 CLS.
                       02 BLANK SCREEN.


           Di dalam SCREEN SECTION terdapat CLS . Di dalam CLS  terdapat blank screen yang berfungsi untuk menghapus layar yang ada pada comand line.

         PROCEDURE DIVISION.
            MULAI.
            DISPLAY CLS.
            DISPLAY ( , )"MASUKKAN ANGKA : ".
            ACCEPT TINGGI.
            COMPUTE JJ = TINGGI.
            COMPUTE SPAS = 1.

PROCEDURE DIVISION merupakan inti dari program yang akan kita buat karena seluruh sintaks dari inputan sampai dengan menghasilkan output terdapat dalam divisi ini. Pada program ini terdapat tiga prosedur yaitu prosedur MULAI, MULAI2, ULANG, BINTANG, KOSONG.
Pada prosedur MULAI pertama mencetak CLS yang berfungsi menghapus layar di command line, lalu mencetak “MASUKKAN ANGKA : “ hasil inputan dimasukkan kedalam variabel TINGGI, kemudian nilai dari variabel JJ dibuat sama dengan nilai dari variabel TINGGI. Dan variabel SPAS diberi nilai awal 1.

          MULAI2.
            IF JJ NOT< 1 GO TO ULANG.
            STOP RUN.
        ULANG.
            PERFORM BINTANG JJ TIMES.
            PERFORM KOSONG SPAS TIMES.
            DISPLAY SPACE.
            COMPUTE SPAS = SPAS + 1.
            COMPUTE JJ = JJ - 1.
            GO TO MULAI2.

Pada procedure MULAI2 terdapat percabangan if dengan kondisi jika nilai variabel JJ lebih kecil atau sama dengan 1 maka akan menjalankan procedure ULANG. Lalu program berhenti.
Pada procedure ULANG, terdapat perulangan perform, yang akan menjalankan procedure BINTANG sebanyak nilai dari variabel JJ. Lalu menjalankan procedure KOSONG sebanyak nilai dari variabel SPAS. Lalu mencetak kosong. Kemudian nilai dari variabel SPAS akan di tambah 1 dan variabel JJ dikurang 1. Lalu menjalankan procedure MULAI2.

          BINTANG.
            DISPLAY ( , ) "*".
        KOSONG.
            DISPLAY ( , ) " ".

Pada procedure BINTANG hanya mencetak kosong, lalu pada procedure KOSONG hanya mencetak “*”.

OUTPUT PROGRAM



EmoticonEmoticon