Senin, 08 Oktober 2012

Program Hello World Pada Cobol

Listing dibawah adalah listing untuk mencetak hello world pada bahasa pemrograman cobol

Listing Program

    IDENTIFICATION DIVISION.
    PROGRAM-ID. HELLO.
    ENVIRONMENT DIVISION.
    DATA DIVISION.
           PROCEDURE DIVISION.
    MULAI.
        DISPLAY 'Hello World'.
    SELESAI.
               STOP RUN.


Output Program 

Pertama kita mengcompile program dengan cara mengetik cobol nama file.cob
 kedua running program dengan cara mengetik runcobolnama file

 

Konsep Dasar Pemrograman Cobol

Pendahuluan

COBOL (Common Business Oriented Language) adalah suatu bahasa komputer awam
(High Level Language) yang berorientasi langsung pada permasalahan bisnis. COBOL hampir
dapat digunakan pada semua komputer bila terdapat compiler COBOL-nya. Diciptakan pada
tahun 1959 dan dikembangkan oleh suatu grup bernama CODASYL (Conference on Data
System Language).
Diperkenalkan pertama kali secara formal pada bulan Januari 1960. COBOL mempunyai
banyak versi, sehingga untuk mempermudah penggunanya COBOL terus dikembangkan dan
distandarisasi pada tahun 1968 dan 1974, diberi nama ANSI COBOL (American National
Standard Institute COBOL)

Struktur Program COBOL
Program COBOL dibagi kedalam 4 bagian yang disebut dengan Division. Masingmasing
divisi dimulai dengan judul divisi deengan urutan sbb :
IDENTIFICATION DIVISION
ENVIRONMENT DIVISION
DATA DIVISION
PROCEDURE DIVISION


Masing-masing divisi dapat terdiri dari urutan-urutan susunan bagian. Tersusun secara hirarki,
yang secara umum sbb :
Division
Region
Section
Paragraph
Sentence/Entry
Statement/Clause
Phrase/Option

Istilah Region, sentence, statement dan phrase/option digunakan pada PROCEDURE
DIVISION, sedangkan istilah Entry dan clause digunakan pada ke-3 divisi lainnya.
1. Division, merupakan bagian utama dari suatu program COBOL dan selalu di awali dengan judul
    divisi.
2. Region, merupakan suatu kumpulan bagian tertentu dalam PROCEDURE DIVISION.
3. Section, merupakan suatu kumpulan dari paragraph atau entry dan selalu diawali denga
    judul seksi.
4. Paragraph, merupakan suatu grup dari kalimat (sentences) didalam PROCEDURE
    DIVISION dan selalu diawali dengan nama/ judul Paragraph.
5. Entry, merupakan sesuatu yang harus dituliskan pada tempat-tempat tertentu didalam
    program COBOL. Suatu entry dapat juga dikatakan sebagai suatu set (kumpulan) dari
    clause (anak kalimat) yang diakhiri dengan titik
6. Sentence, merupakan kumpulan dari satu atau lebih statement, dan harus diakhiri
    dengan tanda titik.
7. Clause, merupakan kumpulan dari kata yang membentuk suatu arti. Clause adalah
     bagian dari entry.
8. Statement, merupakan perintah pengerjaan untuk komputer. Statement dalam bentuk
    kata kerja yang merupakan COBOL Reserved Words.
9. Phrase, suatu group kata yang merupakan bagian dari statement atau clause.
10. Option, kebanyakan Phrase adalah optional (boleh disertakan/tidak) maka, sering
      disebut dengan Option.

User Defined Word
Programmer dapat membentuk kata-kata untuk membuat dan mendefinisikan tersendiri
untuk pemberian nama pada :
1. Nama-program (program-name) adalah suatu nama yang diberikan untuk menunjukkan
    identitas dari program yang dibuat, dituliskan pada paragraph PROGRAM-ID dalam
    IDENTIFICATION DIVISION.
2. Nama-alat (mnemonic-name) adalah nama yang dibuat oleh programmer untuk
    menunjukkan suatu alat tertentu. Dibentuk pada paragraph SPECIAL-NAMES dalam
    ENVIRONMENTDIVISION.
3. Nama-file (file-name) adalah nama yang dibuat untuk menunjukkan suatu file tertentu yang
    dipergunakan dalam program. Dibentuk pada paragraph FD (File Description) dalam DATA
    DIVISION atau pada statement CLOSE< OPEN< READ dalam PROCEDURE DIVISION.
4. Nama-record, pada COBOL, record harus diberi nama-record (Record-name) pada DATA
    RECORD clause dan pada record description entry dalam DATA DIVISION.
5. Nama-data (data-name) adalah nama yang dibuat untuk menunjukkan suatu data item yang
    dipergunakan dalam program. Dibentuk pada FILE SECTION di record description entry
    dalam DATA DIVISION dan pada WORKING-STORAGE SECTION.
6. Nama-indek dan nama-data-indek, digunakan untuk data pada tabel yang di-indek.
    Dibentuk secara implisit dengan OCCURS dan INDEXED BY clause. Nama-data-indek
    didefinisikan dengan mengunakan USAGE IS INDEX dalam DATA DIVISION.
7. Nama-kondisi (condition-name) adalah nama data yang dihubungkan dengan suatu nilai
    tertentu. Didefinisikan dalam DATA DIVISION dengan level number 88 dan dioperasikan
    dalam PROCEDURE DIVISION pada statement IF.
8. Nama-prosedur (procedure-name) atau nama-paragraph (paragraph-name) adalah nama
    yang menunjukkan suatu paragraph dalam PROCEDURE DIVISION. Nama-paragraph
    diperlukan bila proses akan melompat ke paragraph tertentu dengan menggunakan
    statement GO TO dan PERFORM dalam PROCEDURE DIVISION.
9. Nama-seksi , pada PROCEDURE DIVISION, dapat dibuat menjadi beberapa seksi dan tiap
    seksi dapat dibentuk dengan dimulai judul seksinya yang disebut dengan Section-name.
10. Nama-kualifikasi bila nama-data atau nama-kondisi tidak unik (ada yang sama satu dengan
      yang lain), untuk menentukan yang mana yang akan digunakan, dapat digunakan qualifier.

Syarat Pemberian nama :
1. Gabungan dari huruf A-Z atau a-z, angka 0-9, Hypen (-).
2. Panjang maksimum 30 karakter.
3. Paling sedikit harus mengandung 1 huruf.
4. tidak boleh mengandung karakter khusus kecuali hypen yang diletakkan ditengahtengah,
tidak boleh diawal atau diakhir.
5. Tidak boleh mengandung COBOL reserved word.
6. Tidak boleh ada blank atau spasi.

Bentuk data
Dibagi menjadi 2 : 1. Data Variabel
                               2. Konstanta

Data variabel
             Data variabel adalah data yang nilainya dapat berubah didalam program. Nilai data ini
akan selalu berubah bila dibaca nilai data yang lain dengan nama data yang sama.

Konstanta
Konstanta atau data konstanta adalah bentuk dari data yang dibutuhkan untuk
pengolahan dimana nilai datanya tidak tergantung dari input yang dibaca. Ada 3 bentuk dari
konstanta yang dapat dipakai dalam PROCEDURE DIVISION pada program COBOL, yaitu
Numeric Literal, Non Numeric Literal, dan Figurative Constant.

Numeric Literal
1. Aturan penggunaan literal numerik :
1. Panjang maksimum 18 digit.
2. Boleh ada tanda plus atau minus yang letaknya pada posisi terkiri tanpa ada spasi
dengan angka pertama.Bila tidak bertanda berarti bernilai positif.
3. Boleh ada titik desimal dimana saja kecuali pada posisi terkanan.

Non Numeric Literal
Adalah konstanta yang digunakan bukan untuk operasi arithmatika. Aturan penggunaan
literal bukan numerik :
1. Panjang maksimum 120 karakter
2. Boleh terdiri dari kumpulan karakter (Character set) kecuali karakter petik.
3. Dibatasi tanda petik pada awal dan akhir.

Figurative Constant
Figurative constant termasuk dalam COBOL reserved word yang mempunyai maksud
tertentu yang namanya sudah dikenal oleh compiler. Contoh :
            ZERO, ZEROS, ZEROES         berarti nilai nol
            SPACE,SPACES                        berarti nilai 1 blank atau spasi
            QUOTE, QUOTES                    berarti tanda petik








ungkapan arithmatika adalah kombinasi dari literal numerik, nama data, operator aritmatika,
kurung buka dan kurung tutup. Penulisan ungkapan aritmatika harus dipisahkan paling sedikit
dengan sebuah blank atau spasi.

Aturan Penulisan Source Program
Kolom yang tersedia untuk menuliskan program COBOL adal kolom 1- 80, dengan ketentuan :
Kolom 1 – 6 : Digunakan untuk nomor urut bilamana diperlukan, sifatnya optional, dan
                       nomor yang diberikan harus urut ascending.
Kolom 7 : a. Tanda baris sambung dari baris sebelumnya dengan memberikan tanda                             hypen (-), baris sambungannya dimulai dari Area B.
                 b. Bila kolom ini di isi dengan karakter “*” , maka apa yang ditulis pada baris
                     ini akan dianggap sebagai komentar.
                 c. Bila kolom ini di isi dengan slash (/), maka baris yang ada tanda ini
                     dianggap sebagai komentar dan akan dicetak mulai halaman baru teratas,
                     bila source program dicetak di printer.
                 d. Bila kolom ini di isi dengan karakter “D” , baris ini juga dianggap sebagai
                     komentar, tetapi bila pada ENVIRONMENT DIVISION dalam paragraph
                     SOURCE-COMPUTER disebutkan WITH DEBUGGING MODE, maka
                     akan berguna untuk tujuan debugging.
Kolom 8 – 11 : Disebut dengan area A, semua judul divisi,judul seksi, nama paragraph, judul
                         file description (FD), level number 01 dan level number 77 ditulis mulai kolom
                         ke-8.
Kolom 12 – 72: Disebut dengan area B, semua elemen program selain yang ditulis di area A
                          ditulis pada area B.
Kolom 73 – 80: Merupakan kolom yang tidak diproses oleh komputer, jadi jika diisi dengan
                          catatan-catatan apa saja hanya untuk dokumentasi program.

Level Number
Level number atau nomor jenjang adalah suatu nomor yang menunjukkan jenjang dari data item
dalam suatu record. Level number yang digunakan :
  a) 01, digunakan untuk mengawali keterangan dari record (record description).
  b) 02 – 49, digunakan untuk mengawali keterangan dari data item.
  c) 66, digunakan untuk RENAMES.
  d) 77, Digunakan untuk mengawali data item yang berdiri sendiri. Hanya boleh terdapat
             pada WORKING-STORAGE SECTION.
  e) 88, digunakan untuk mengawali suatu nama kondisi.

Picture clause
Picture clause digunakan untuk menerangkan masing-masing data-item yang digunakan,
mengenai ukuran dari field dan memberikan informasi dari nilai data tersebut, juga mengatur
bentuk data dimemori. Macam-macam picture clause :
1. Picture karakter 9
Menunjukkan bahwa posisi sebuah memori hanya dapat mengandung nilai-nilai
numerik saja. Ukuran panjang data-item ditentukan oleh banyaknya karakter 9 yang
digunakan. Bersifat right justified.
2. Picture karakter V
Menunjukkan lengkap anggapan dari titik desimal. Anggapan disini maksudnya
adalah titik desimal tersebut tidak ditulis di memori, sehingga tidak termasuk sebagai
panjang field.
3. Picture karakter P
Digunakan dengan gabungan Picture karakter V, yang digunakan untuk
menimbulkan angka 0.
4. Picture karakter S
Digunakan untuk menyimpan tanda dari nilai data, dan tidak dihitung sebagai
panjang field.
5. Picture karakter A
Digunakan untuk menyimpan nilai data huruf(alphabetic).Bersifat left justified.
6. Picture karakter X
Digunakan untuk menyimpan nilai data alphanumerik, dapat berupa gabungan
angka, huruf, ataupun karakter khusus.

Picture Editing
Berguna untuk perubahan bentuk data dari data yang telah tersimpan distorage
(memori). Dengan adanya editing (perubahan), data yang dicetak pada output akan tampak
lebih mudah dibaca, mudah dimengerti dan mempunyai susunan yang lebih baik dibandingkan
dengan bentuk data asli yang tersimpan di storage. Macam-macam picture editing :

1. Picture editing Z
    Digunakan untuk menggantika angka 0 diawal agar tidak tampak pada waktu
    pencetakan.
2. Picture editing $
    Pada saat pencetakan karakter $ akan tampak pada ujung paling kiri.
3. Picture editing “.”
    Digunakan untuk menunjukkan letak posisi dari titik desimal pada pencetakan, hanya
    boleh dipergunakan 1 saja.
4. Picture editing “,”
    Digunakan untuk memberikan tanda koma pada tempat-tempat tertentu, dan boleh
    digunakan lebih dari 1.
5. Picture editing “-“
    Jika data asli bernilai minus maka penggunaan tanda minus di awal atau diakhir akan
    menyebabkan tanda minus muncul pada saat pencetakan, sedangkan bila data positif
    akan digantikan dengan blank.
6. Picture editing “+”
    Jika tanda plus digunakan diawal atau diakhir data maka akan tampak pada pencetakan
    bila data bernilai positif, jika data negatif akan muncul tanda minus, jika tidak bertanda
    dianggap positif.
7. Picture editing B
    Digunakan untuk mengedit nilai data bukan numerik.Blank akan disisipkan pada posisi
    dinama karakter B ditempatkan.
8. Picture editing “*”
    Digunakan untuk menggantikan nilai nol pada nilai data disebelah kanan dengan tanda *.
9. Picture editing 0(nol)
    Digunakan untuk menyisipkan angka 0 pada posisi dimana karakter 0 ditempatkan.
10. Picture editing “/”
     Digunakan untuk menyisipkan karakter “/” diposisi dimana karakter tersebut ditempatkan.
11. Picture editing DB dan CR
    Sering digunakan pada aplikasi akuntansi. Ditulis mulai ujung sebelah kanan dari picture,
    dan hasilnya hanya tampak pada hasil edit bila nilai datanya negatif.