Teknik Pemrograman Terstruktur 1 ( COBOL )
Merupakan divisi ke 4 dan yang terakhir dari program COBOL. Semua instruksi-instruksi ditulis pada PROCEDURE DIVISION, sehingga divisi ini merupakan inti dari program COBOL.Statement yang ada di PROCEDURE DIVISION dibentuk dari verb (Kata kerja). MOVE verb
Adalah perintah yang penting didalam program COBOL. Verb ini berguna untuk memindahkan data dari satu field ke lokasi field yang lain, sehingga input data dapat dimanipulasi untuk menghasilkan output. Bentuk dari statement MOVE :
Nama-data-1 MOVE To nama-data-2 [, nama-data-3 ] ….. Literal
Contoh : 1 KIRIM.
2 UNIT PIC 9(3).
02 HARGA PIC 9(5).
1 TERIMA.
2 UNIT-OUT PIC 9(3).
02 HARGA-OUT PIC 9(7). Statement dalam PROCEDURE DIVISION sebagai berikut : MOVE UNIT TO UNIT-OUT.
Akan memindahkan nilai data dari field UNIT ke field UNIT-OUT MOVE KIRIM TO TERIMA. Akan memindahkan 8 karakter dari field group item KIRIM ke 10 karakter secara bersamaan ke field group item TERIMA.Group item yang dipindahkan akan diperlakukan sebagai nilai alphanumerik,tidak memandang bentuk dari PICTURE masing-masing elemen data item.Sehingga bersifat Left-justified.
Bentuk yang khusus dari MOVE verb adalah MOVE CORRSPONDING, dengan bentuk: MOVE CORRESPONDING nama-data-1 TO nama-data-2.
MOVE CORRESPONDING digunakan untuk memindahkan data dari group data item ke group data item yang lain yang bernama sama.
1 Contoh: Pada DATA DIVISION : 01 RECORD-A.
02 A PIC 9(3).
Bentuk data yang dapat dipindahkan :
Nama data ,nama-data DISPLAY
2 DISPLAY nama-layar
Ada 3 bentuk statement DISPLAY : Bentuk Statement DISPLAY ke-1 : Bentuk Statement DISPLAY ke-2 :
DISPLAY verb Dipergunakan untuk menampilkan hasil di layar ataupun di printer.
Alphabetik Bisa Bisa Tidak Alphanumerik Bisa Bisa Bisa Numerik integer Tidak Bisa Bisa Numerik non integer Tidak Tidak Bisa Numerik yang di-edit Tidak Bisa Tidak Keterangan : Bila data mengandung tanda + atau - , maka tanda tersebut akan diabaikan.
Alphabetik Alphanumerik Numerik integer Numerik non integer Numerik yang di-edit
Bentuk data pengirim Bentuk data penerima
Artinya : Akan memindahkan group item RECORD-A ke group data item RECORD-B yang mempunyai nama data yang sama.
02 B PIC X(5).
02 FILLER PIC X(5). Statement : MOVE CORRESPONDING RECORD-A TO RECORD-B.
02 D PIC 9(4).
02 B PIC X(6).
02 FILLER PIC X(5).
2 A PIC 9(3).
1 RECORD-B.
02 D PIC 9(4).
02 C PIC A(9).
…[UPON nama-mnemonik] Literal ,literal
Nama data adalah nama dari data item yang telah disebutkan pada DATA DIVISION, yang panjang nilai datanya tidak boleh lebih dari 1920 karakter. Literal adalah bentuk yang akan ditampilkan, berupa bentuk yang sudah tetap, terletak diantara tanda petik dua (“ “) atau terletak di antara tanda petik tunggal(‘‘). UPON Clause dipergunakan bilamana hasil tidak ingin ditampilkan di layar, tetapi akan dicetak di printer. Nama-mnemonik adalah nama yang dibentuk oleh programmer sebagai penunjuk alat cetakan, yaitu printer.Nama-mnemonik ini harus sudah disebutkan pada CONFIGURATION SECTION dalam SPECIAL NAMES, PRINTER IS nama- mnemonik.
Bentuk Statement DISPLAY ke-3 : Nama-data
DISPLAY [posisi-tampilan] Literal …[UPON nama-mnemonik] ERASE
- Posisi-tampilan merupakan posisi baris dan kolom tertentu dari hasil yang akan ditampilkan di layar di printer. Posisi tampilan ini mempunyai bentuk :
Lin [{ + }] integer-1 COL [{+}] integer-3 Integer-2 , integer-4
LIN and COL adalah register khusus MS-COBOL, yang merupakan COBOL reserved words, jadi tidak disebutkan pada DATA DIVISION. Setelah koma “,” harus diikuti oleh 1 blank untuk memisahkan letak posisi baris dan posisi kolomnya. Contoh : DISPLAY (15, 5) “HALLO SAYA KOMPUTER”.
- ERASE adalah COBOL reserved word, yang kalau dipergunakan dalam DISPLAY dan posisi- tampilan ditentukan,maka mulai dari posisi tampilan tersebut untuk 1 baris akan dihapus dari tampilan sebelumnya. Contoh : DISPLAY (3, 10) ERASE.
3
ACCEPT verb Digunakan untuk memasukkan data lewat layar sewaktu program tersebut dijalankan(pada waktu runtime).
Ada 4 bentuk statement ACCEPT : Bentuk statement ACCEPT ke-1 : Data yang dimasukkan, akan ditempatkan pada nama-data setelah ACCEPT, yang bentuk, jenis dan panjangnya sudah ditentukan dalam DATA DIVISION.
Bentuk Statement ACCEPT ke-2 : Apabila ON ESCAPE diikutsertakan, maka statement-imperative yang mengikutinya akan dikerjakan. Bentuk Statement ACCEPT yang ke-3 : Posisi-layar menunjukkan letak dari posisi data yang akan dimasukkan pada layar.
Posisi-layar ini mempunyai bentuk : ZERO-FILL phrase
Bila posisi-posisi field data-item penerima data tidak diisi dengan data (langsung di tekan tombol RETURN), maka akan terisi dengan nilai nol.
4 ACCEPT nama-data
ZERO – FILL SPACE – FILL LEFT – JUSTIFY RIGHT – JUSTIFY TRAILING – SIGN
ACCEPT [posisi-layar] nama-data WITH PROMPT UPDATE LENGTH – CHECK EMPTY – CHECK AUTO – SKIP NO – ECHO BEEP
Lin [{ + }] integer-1 COL [{+}] integer-3 Integer-2 , integer-4
SPACE FILL phrase Bila posisi-posisi field data-item di layar tidak diisi dengan data (langsung ditekan tombol RETURN), maka akan terisi dengan nilai nol.
LEFT-JUSTIFY phrase Tidak berfungsi dalam MS-COBOL. RIGHT-JUSTIFY phrase
Menyebabkan setelah data dimasukkan, hasil akhir yang tampak dilayar akan rata di sebelah kanan. TRAILING – SIGN phrase Menyebabkan tanda operasi + atau – tampak diposisi paling kanan dari field data input. Biasanya tanda tersebut akan menempati posisi paling kiri.
PROMPT phrase digit,titik untuk decimal point dan spasi untuk tanda operasi + atau -. UPDATE phrase
Menyebabkan tampilan untuk field data-item penerima berbentuk nilai awal dari field penerima tersebut.UPDATE phrase ini berfungsi sama dengan FORM dan TO atau USING clause pada SCREEN SECTION dalam DATA DIVISION. LENGTH-CHECK phrase
Menyebabkan penekanan tombol carriage-return tidak berfungsi kalau semua posisi field penerima belum penuh semua. LENGTH-CHECK phrase berfungsi sama dengan FULL clause pada SCREEN SECTION dalam DATA DIVISION. EMPTY-CHECK phrase
Menyebabkan penekanan tombol carriage-return tidak berfungsi kalau tidak paling sedikit sebuah karakter atau angka yang bukan sifatnya terminator sudah dimasukkan. EMPTY – CHECK phrase berfungsi sama dengan REQUIRED clause pada SCREEN SECTION dalam DATA DIVISION. AUTO-SKIP phrase
Menyebabkan proses pemasukkan data bergeser ke field penerima data lain berikutnya, bila posisi field penerima sudah penuh terisi tanpa harus ditekan tombol carriage-return atau tombol terminator yang lainnya. AUTO-SKIP berfungsi sama dengan AUTO clause pada SCREEN SECTION dalam DATA DIVISION. NO-ECHO phrase Menyebabkan data yang dimasukkan, tidak tampak di layar. NO-ECHO berfungsi sama dengan SECURE clause pada SCREEN SECTION dalam DATA DIVISION.
BEEP phrase Menyebabkan bunyi bel sewaktu data dimasukkan. BEEP berfungsi sama dengan BELL clause pada SCREEN SECTION dalam DATA DIVISION.
5 Bentuk Statement ACCEPT yang ke-4 : DATE, akan mendapatkan 6 digit nilai standard dengan bentuk TTBBHH ( 2 digit untuk tahun. 2 digit untuk bulan dan 2 digit untuk hari) dari system-date. DAY,akan mendapatkan 5 digit nilai “Julian Date” dengan bentuk TTJJJ ( 2 digit untuk tahun dan 3 Digit menunjukkan jumlah hari dalam setahun untuk tanggal tersebut) dari System-date. TIME, akan mendapatkan 8 digit nilai dengan bentuk JJMMDDSS.
MM menunjukkan 2 digit menit, berkisar dari nilai 00 sampai dengan 59. DD menunjukkan 2 digit detik, berkisar dari nilai 00 sampai dengan 59. SS menunjukkan 2 digit seperseratus detik,berkisar dari 00 sampai dengan 99. ESCAPE KEY, akan mendapatkan 2 digit kode yang dihasilkan dari hasil penekanan tombol-tombol terminator.Terminator adalah tombol yang digunakan untuk mengakhiri pengerjaan statement ACCEPT.
Contoh Program Bentuk statement ACCEPT :
6 DATE
DAY ACCEPT nama-data FROM TIME
ESCAPE-KEY IDENTIFICATION DIVISION.
PROGRAM-ID. SISDT. AUTHOR.. RANI. ENVIRONMENT DIVISION. DATA DIVISION.
WORKING-STORAGE SECTION.
1 SISTEM-DATE-TIME.
2 TANGGAL PIC 9(6).
02 JULIAN PIC 9(5).
02 JAM PIC 9(8). PROCEDURE DIVISION. MULAI. ACCEPT TANGGAL FROM DATE ACCEPT JULIAN FROM DAY ACCEPT JAM FROM TIME. TAMPILKAN.
DISPLAY ‘ TANGGAL ADALAH : ‘, TANGGAL. DISPLAY ‘ JULIAN ADALAH : ‘, JULIAN. DISPLAY ‘ JAM ADALAH : ‘, JAM. STOP RUN.
OUTPUT :
TANGGAL ADALAH : 860807 JULIAN ADALAH : 86219 JAM ADALAH : 15305834
STOP verb Digunakan untuk menghentikan program baik secara permanen maupun secara sementara saja, yang kemudian proses program dapat dianjurkan kembali.
Bentuknya : STOP Literal
RUN STOP RUN akan menyebabkan proses program berhenti secara permanen, sedang bentuk STOP yang diikuti oleh literal proses akan berhenti secara permanen. Bila menekan sembarang tombol, maka proses dilanjutkan. Contoh : STOP “ TEKAN SEMBARANG TOMBOL”.
Operasi Arithmatika pada COBOL dikerjakan dengan menggunakan pernyataan : ADD
Digunakan untuk menambahkan 2 atau lebih operand numerik dan menyimpan hasilnya.
Suatu operand adalah suatu data item atau suatu literal numerik (konstanta).Operand
yang digunakan untuk verb ini harus berupa nilai numerik.Ada 2 Bentuk Umum dari Statemen ADD : Bentuk ke-1 dari statement ADD :
Nama-data-1 nama-data-2 ADD literal-1 literal-2 …. TO nama-data-m [ROUNDED]
[; ON SIZE ERROR statement imperative] CONTOH : ADD A TO B B = B + A ADD 30, B TO A A = A + 30 + B ADD A, B TO C C = C + A + B Bentuk ke-2 dari statement ADD :
Nama-data-1 nama-data-2 nama-data-3 ADD
….GIVING nama-data-m [ROUNDED] Literal-1 literal-2 literal-3
[;ON SIZE ERROR statement imperative]
7 CONTOH : ADD A, B GIVING C C = A + B ADD 4,5 GIVING A A = 4 + 5
SUBSTRACT VERB Digunakan untuk membentuk statement operasi arithmatika pengurangan suatu nilai operand numerik.
Bentuk umumnya : CONTOH : SUBSTRACT A FROM B B = B – A SUBSTRACT A, B FROM C C = C – A – B SUBSTRACT A FROM B GIVING C C = B – A SUBSTRACT 20 FROM 80 GIVING C C = 80 – 20 SUBSTRACT 20, 15 FROM 100 GIVING B B = 100 – 20 – 15 = 65
MULTIPLY Digunakan untuk membentuk statement guna instruksi perkalian dua nilai numerik dan menyimpan hasilnya.
Bentuk Umum Statement MULTIPLY ke-1 : Contoh : MULTIPLY A BY B B = B * A Bentuk umum statement MULTIPLY ke-2 :
8 Nama-data-1 nama-data-2
SUBSTRACT literal-1 literal-2 Nama-data-n
FROM literal-n GIVING nama-data-m [ROUNDED] [;ON SIZE ERROR imperative-statement]
Nama-data-1 MULTIPLY literal-1 BY nama-data-2
[;ON SIZE ERROR imperative statement] Nama-data-1 nama-data-2
MULTIPLY literal-1 BY literal-2 GIVING nama-data-3 [ROUNDED] [;ON SIZE ERROR imperative statement] CONTOH : MULTIPLY A BY D GIVING C C = A * D MULTIPLY A BY 25 GIVING C C = A * 25
DIVIDE Digunakan untuk membentuk statement operasi pembagian .
Bentuk Statemen DIVIDE yang ke-1 : DIVIDE A INTO B B = B / A Bentuk Statemen DIVIDE yang ke-2 : CONTOH : DIVIDE A INTO B GIVING C C = B / A Bentuk Statemen DIVIDE yang ke-3 : CONTOH : DIVIDE A BY B GIVING C C = A / B DIVIDE 100 BY 50 GIVING Z Z = 2 Bentuk Statement DIVIDE yang ke-4 :
9 Nama-data-1
DIVIDE literal-1
INTO nama-data-2 [ ROUNDED] [;ON SIZE ERROR imperative statement]
Nama-data-1 nama-data-2 DIVIDE literal-1
INTO literal-2 GIVING nama-data-3 [ROUNDED] [;ON SIZE ERROR imperative statement] Nama-data-1 nama-data-2
DIVIDE literal-1 BY literal-2 GIVING nama-data-3 [ROUNDED] [;ON SIZE ERROR imperative statement] Nama-data-1 nama-data-2
DIVIDE literal-1
INTO literal-2 GIVING nama-data-3 [ROUNDED] REMAINDER nama-data-4 [;ON SIZE ERROR imperative statement] Contoh : DIVIDE A INTO B GIVING HASIL REMAINDER SISA BILA A = 2, B = 5 MAKA HASIL = 2 SISA =1 Bentuk Statemen DIVIDE yang ke-5 :
Nama-data-1 nama-data-2 DIVIDE literal-1 BY literal-2
GIVING nama-data-3 [ROUNDED] REMAINDER nama-data-4 [;ON SIZE ERROR imperative statement]
CONTOH : DIVIDE A BY B GIVING D REMAINDER SISA BILA A = 110 , B = 20 MAKA D = 5 SISA =10
COMPUTE Mempergunakan 4 arithmatika verbs untuk perhitungan arithmatika tunggal dan sederhana.
Bentuk Umum : COMPUTE nama-data-1 [ROUNDED] = ungkapan arithmatika
[;ON SIZE ERROR imperative statement] CONTOH : MULTIPLY A BY D GIVING C COMPUTE C = A * D 5 Y = A COMPUTE Y = A**5
Y = A + B COMPUTE Y = ( A + B ) / C C
ROUNDED : Untuk membulatkan hasil perhitungan yang berbentuk pecahan. ON SIZE ERROR : Digunakan jika hasil perhitungan untuk digit – digit bilangan utuh tidak bisa masuk seluruhnya pada field penerima.
10
OPERATOR ARITHMATIKA Adalah simbol yang digunakan untuk membentuk suatu ungkapan arithmatika,yaitu :
Operator arithmatika Maksud jenjang Pangkat 1 **
Kali 2 * / Bagi
2
- Tambah
3 Kurang 3 - OPERATOR RELATIONAL
Maksud Operational Relational Lebih kecil dari < LESS THAN Lebih besar dari > GREATER THAN Sama dengan = EQUAL TO Lebih kecil atau sama dengan NOT> NOT GREATER THAN Lebih besar atau sama dengan NOT< NOT LESS THAN Tidak sama dengan NOT= NOT EQUAL TO UNGKAPAN ARITHMATIKA
Adalah Kombinasi dari literal numerik, nama-data, operator arithmatika, kurung buka dan kurung tutup. Penulisannya harus dipisahkan paling sedikit dengan sebuah blank antara literal numerik, nama-data dan operator arithmatika. Contoh:
Maksud Penulisan A + B A + B A + B ( A + B ) / ( C + D ) C + D 2 A A * * 2 / ( B + C ) * * 3 3
( B + C ) Ungkapan Arithmatika banyak digunakan pada verb COMPUTE ( lihat bab 12).
11