Teknik Pemrograman Terstruktur 1 ( COBOL )

   Qualification

Qualifier untuk membedakan keunikan pada nama – data , yang nantinya akan tampak

pada PROCEDURE DIVISION.Sehingga nama-data +yang telah dipergunakan dapat

dipergunakan lagi untuk nilai yang lain. Bentuk Umumnya : Contoh : Pada DATA DIVISION : 1 MASTER.

  3 JUMLAH PIC 9(3).

  Nama – data OF nama record

  TRANSAKSI * HARGA SATUAN OF BARANG-B OF TRANSAKSI.

Ket : Maksimum jumlah tingkatan qualification untuk nama-data adalah sejumlah 5

tingkat. misalnya : A OF B OF C OF D OF E OF F ATAU : A IN B IN C IN D IN E IN F

  03 HARGA-SATUAN PIC 9(4). Pada PROCEDURE DIVISION : COMPUTE TOTAL-B = JUMLAH OF BARANG-B OF

  3 JUMLAH PIC 9(3).

  2 BARANG-B.

  03 HARGA-SATUAN PIC 9(5).

  2 BARANG-A.

  2 BARANG-A.

  1 TRANSAKSI.

  03 HARGA-SATUAN PIC 9(4).

  3 JUMLAH PIC9(3).

  2 BARANG-B.

  03 HARGA-SATUAN PIC 9(5).

  3 JUMLAH PIC 9(3).

  IN Record data yang jamak (multiple data records) adalah record data yang lebih dari 1 pada file yang sama. Record yang satu dengan record yang Record data jamak ini digunakan untuk data yang direkamkan di file, baik organisasinya secara sequential maupun organisasinya secara indexed.

  Contoh Program Record Data Jamak :

  02 ALAMAT-SUPLIER PIC A(20).

  02 KETERANGAN PIC (20).

  02 KODE-LANGGANAN PIC X(6).

  02 HARGA-SATUAN-JUAL PIC 9(6).

  02 JUMLAH PIC 9(3).

  02 KODE-TRAN PIC 9.

  02 KODE-BARANG PIC 9(4).

  1 PENJUALAN.

  02 NAMA-SUPLIER PIC A(15).

  Ket :Pada program diatas terdapat 2 record yaitu record PEMBELIAN dan record PENJUALAN, direkamkan pada 1 file yaitu STOCK-FILE.

  02 HARGA-SATUAN-BELI PIC 9(5).

  02 JUMLAH PIC 9(5).

  02 KODE-TRAN PIC 9.

  02 KODE-BARANG PIC 9(4).

  1 PEMBELIAN.

  VALUE OF FILE-ID IS “STOCK” DATA RECORDS ARE PEMBELIAN, PENJUALAN.

  DATA DIVISION. FILE SECTION. FD STOCK-FILE RECORD CONTAINS 50 CHARACTERS LABEL RECORD ARE STANDARD

  02 FILLER PIC X(10). Nama kondisi adalah nama yang dibuat oleh programmer yang berada pada DATA DIVISION sebagai fasilitas proses di PROCEDURE DIVISION.

  Bentuk Umumnya :

  VALUE IS LITERAL 1 [LITERAL2]

88 NAMA KONDISI

  THRUGH [ LIT2]

VALUE ARE LITERAL1 THRU

  CONTOH : 1 SEX PIC A.

  88 LAKI VALUE IS ‘L’.

  88 WANITA VALUE IS ‘W’. Didalam PROCEDURE DIVISION dapat dilakukan penyelesaian sebagai berikut :

  IF SEX = ‘L’ GO TO PROSES-L.

  IF SEX = ‘W’ GO TO PROSES-W.

  Dengan dipergunakannya nama-kondisi, bentuk penyeleksian dapat juga langsung berupa :

IF LAKI GO TO PROSES-L.

  Keterangan : Nama Kondisi tidak mempunyai PICTURE, karena PICTUREnya mengikuti elemen data yang diikutinya.Sehingga nilai literal yang dimasukkan ke nama- kondisi harus sesuai dengan field dan type data itemnya.

  Contoh : 02 STATUS PIC X .

  02 STATUS PIC X .

  88 KAWIN VALUE 1.

  88 KAWIN VALUE ‘1’.

  88 BELUM VALUE 2.

  88 BELUM VALUE ‘2’. Digunakan untuk memasukkan nilai awal pada storage. Biasanya terdapat pada WORKING-STORAGE SECTION.

  LITERAL

  VALUE IS FIGURATIVE KONSTANT

  Contoh Penggunaan Value Clause : 01 JUDUL PIC A(15) VALUE ‘PROGRAM COBOL’.

  01 FILLER PIC X(15) VALUE SPACES.

  01 TOTAL PIC 9(5) VALUE ZERO.

  01 KETERANGAN VALUE IS ‘LUNAS’ PIC A(15).

  77 COUNTER PIC 99 VALUE 0.

  77 GARIS PIC X(80) VALUE ALL ‘-‘.

   REDEFINES CLAUSE.

  Digunakan untuk menempatkan nama data yang berlainan pada lokasi storage yang sama. Dengan kata lain satu lokasi storage ditempati lebih dari 1 nama data. Contoh Penggunaan Redefines Clause : DATA DIVISION.

FILE SECTION.

  FD HUT-PIUT LABEL RECORD IS STANDARD

  VALUE OF FILE –ID IS “HUT-PIUT.DAT”.

  1 HUTANG-PIUTANG.

  2 HUTANG.

  3 KODE-SUPLIER PIC 9(3).

  03 NAMA-SUPLIER PIC X(16).

  03 NILAI-HUTANG PIC 9(4)V99.

  2 PIUTANG REDEFINES HUTANG .

  3 KODE-LANGGANAN PIC 9(4).

  03 NAMA-LANGGANAN PIC X(14).

  03 NILAI-PIUTANG PIC 9(5)V99.

  1. REDEFINES clause dapat digunakan untuk group data item, tetapi tidak boleh digunakan pada level number 01 yang nama recordnya sudah disebut Bila hal ini diinginkan,maka harus digunakan multiple data records, yang mempunyai efek sama dengan REDEFINES.

  2. REDEFINES juga tidak boleh terdapat pada level number 66 atau 88.

  REDEFINES clause tidak dapat digunakan untuk data item individu yang lainnya.

  3. Bila ada Clause yang lain, REDEFINES clause harus merupakan clause yang pertama pada data-description atau pada record-description entry.

  4. REDEFINES clause tidak dapat dipergunakan untuk nama data yang levelnya berbeda. Level disini yang dimaksud bukan level number, tetapi jenjangnya.Level number boleh berbeda,asal level (tingkatan jenjangnya) sama.

  5. Value clause tidak boleh ada bersama-sama dengan REDEFINES clause.  Renames Clause

  Menyediakan programmer kemampuan untuk memberikan tambahan deskripsi tentang penggolongan kembali elemen-elemen data item. Dimulai dengan Level Number 66. Contoh : 1 RECORD-A.

  2 A PIC A(2).

  02 B PIC 9(3).

  02 C PIC 9(4).

  02 D PIC X(2).

  66 RECORD-B RENAMES B THROUGH C. RECORD-B adalah posisi dari storage yang terdiri dari field B dan C, yang juga dimiliki oleh RECORD-A

  1 PERSEDIAAN.

  2 JENIS.

  3 NAMA PIC C(8).

  03 KODE PIC X(3).

  2 HARGA.

  3 BELI PIC 9(5)V99.

  03 JUAL PIC 9(5).

  02 KETERANGAN PIC X.

  66 PERSEDIAAN-OUT RENAMES KODE THRU JUAL.

  1. RENAMES clause hanya dapat dipakai untuk elemen-elemen data item yang berurutan. record ( record description).

  3. Untuk MS-COBOL , RENAMES clause tidak tersedia.  BLANK WHEN ZERO clause

  Dipakai untuk menghilangkan bentuk seperti : -0 atau + atau – saja ( pemakaian pada picture editing). Bentuk tersebut akan memperjelek penampilan output.

  Contoh : Data Picture

  Hasil output

  02 HASIL PIC ++++

  • 000 000

  02 HASIL-OUT PIC ++++ BLANK WHEN ZERO blank  JUSTIFIED RIGHT clause  Digunakan hanya untuk data item alphabetik atau alphanumerik saja.

   Seperti telah kita ketahui data alphabetik dan alphanumerik disimpan di storage dengan posisi rata sebelah kiri.Bila diinginkan posisi yang rata disebelah kanan,maka digunakan clause ini. Contoh : Sebelum : 77 NAMA PIC X(9) VALUE ‘RANI’.

  D E W I Sesudah : 77 NAMA PIC X(9) VALUE ‘ RANI’ JUSTIFIED RIGHT.

  Atau 77 NAMA PIC X(9) VALUE ‘RANI’ JUST RIGHT.

  D E W I Contoh lainnya : 02 JUDUL PIC X(10) JUST RIGHT.

  MOVE ‘ NERACA’ TO JUDUL.

   Digunakan untuk mengalokasikan data secara efektif di storage.  Tidak boleh digunakan pada group data item. sebagai dokumen saja.  Bentuk Umumnya : Contoh : 1 RECORD-A.

  2 FIELD-1 PIC X(4).

  02 FIELD-2 PIC X(3).

  02 FIELD-3 PIC X(5). Statemen berikutnya :

  MOVE ‘AAAA’ TO FIELD-1 MOVE ‘BBB’ TO FIELD-2 MOVE ‘CCCCC’ TO FIELD-3.

  OUTPUTNYA : AAAABB BCCCCC

  1 WORD 1 WORD Contoh pemakaian SYNC : 1 RECORD-A.

  2 FIELD-1 PIC X(4) SYNC LEFT.

  02 FIELD-2 PIC X(3) SYNC LEFT.

  02 FIELD-3 PIC X(5) SYNC RIGHT. OUTPUTNYA:

  AAAA BBB CCCCC

  SYNCHRONIZED LEFT SYNC RIGHT

   Menunjukkan bentuk dari data yang disimpan di memory komputer.  Data numerik dapat ditempatkan pada memori komputer dengan 2

  2 3 8 1000

  CPM-3

  DISPLAY COMPUTATIONAL [USAGE IS] COMP COMPUTATIONAL-3

  2 10 1024 10000000000 Dst Dst dst

  2 9 512 1000000000

  2 8 256 100000000

  2 7 128 10000000

  2 6 64 1000000

  2 5 32 100000

  2 4 16 10000

  2 2 4 100

  1. Mode Karakter (Character mode) dengan DISPLAY

  10

  2

  2 1

  1

  1

  2

  Pangkat Desimal Binary

   COMPUTATIONAL untuk menyimpan data numerik ke dalam kode binary.

  Keterangan :  DISPLAY digunakan untuk menyimpan data yang bentuknya bersifat mode karakter.

  2. Mode Numerik (Numeric mode) dengan COMPUTATIONAL  Bentuk Umum : COMPUTATIONAL dapat disingkat menjadi COMP.

  INDEX Digunakan untuk menyimpan data numerik dalam bentuk mode numerik floating point ketepatan tunggal. Bentuk ini jarang sekali  COMPUTATIONAL-2.

  COMPUTATIONAL-2, sama dengan bentuk COMPUTATIONAL-1 tetapi dengan ketepatan yang lebih kecil. Juiga jarang digunakan dan tidak tersedia pada MS-COBOL.  COMPUTATIONAL-3.

  Digunakan untuk menyimpan data numerik yang digitnya dalam bentuk dipak(packed), yang maksudnya tiap byte tidak berisi dengan 1 digit tetapi dapat berisi 2 digit. Data numerik yang disimpan dalam bentuk ini disebut dengan packed decimal atau internal decimal.  INDEX

  USAGE IS INDEX menunjukkan bahwa data-item akan digunakan sebagai indeks dan akan disimpan dalam bentuk kode binary seperti pada USAGE IS COMPUTATIONAL-0. Kalau USAGE IS INDEX dipergunakan, maka PICTURE clause tidak boleh digunakan.

   SIGN clause Digunakan untuk mengatur tanda operasi yang ada pada data numerik untuk data-item external decimal ( dengan USAGE IS DISPLAY).

  Clause ini digunakan hanya untuk data-item numerik yang mempunyai PICTURE karakter S.

  Bentuk Umum :

  LEADING [; [SIGN IS] [SEPARATE CHARACTER ] ] TRAILING

  1. SIGN IS LEADING

  Tanda operasi (+ atau - ) diletakkan pada posisi paling kiri tanpa adanya Contoh : 02 NILAI PIC S9(4) SIGN IS LEADING.

  2. SIGN IS LEADING SEPARATE CHARACTER.

  Tanda operasi ( + atau -) diletakkan pada posisi paling kiri dengan menambahkan sebuah posisi storage tambahan. Contoh : 02 NILAI PIC S9(4) SIGN IS LEADING SEPARATE.

  3. SIGN IS TRAILING

  Tanda operasi (+ atau - ) diletakkan pada posisi paling kanan tanpa adanya posisi storage tambahan. Contoh :

  02 NILAI PIC S9(4) SIGN IS TRAILING. Atau 02 NIALI PIC S9(4).

  Note :

  Kalau SIGN clause tidak dipergunakan maka dianggap sebagai SIGN IS TRAILING.

  4. SIGN IS TRAILING SEPARATE CHARACTER

  Tanda operasi ( + atau -) diletakkan pada posisi paling kanan dengan menambah sebuah posisi storage tambahan.

  Contoh : 02 NILAI PIC S9(4) SIGN IS TRAILING SEPARATE..

  Penjelasan :

  a. Penggunaan SEPARATE CHARACTER akan menyebabkan bertambahnya ukuran storage dari data item dengan 1 byte karakter, jadi akan lebih boros,dianjurkan untuk tidak menggunakannya.

  b. Penggunaan LEADING akan menyebabkan operasi object program kurang efektif, jadi dianjurkan tidak menggunakannya.

  c. Yang terbaik adalah tidak menggunakan clause ini atau menggunakan SIGN IS TRAILING.

  Digunakan untuk tujuan mengulang data-item didalam suatu record beberapa kali, yang membentuk suatu label.

  [; OCCURS integer TIMES ASCENDING DESCENDING KEY IS nama-data-1 [, nama-data-2] ….

  INDEXED BY nama-index-1 [, nama-index-2]….

  • OCCURS clause tidak boleh digunakan pada level number 01 atau level number 77. Digunakan pada FILE SECTION, WORKING-STORAGE SECTION atau LINKAGE SECTION.
  • Integer TIMES menunjukkan berapa kali data-item akan diulang didalam suatu record.
  • ASCENDING atau DESCENDING, menunjukkan bagaimana data tersebut diatur tergantung dari nilainya, apakah urut dari kecil ke besar ( ASCENDING) atau dari besar ke kecil ( DESCENDING).
  • KEY IS dan INDEXED BY menunjukkan nama kunci yang dipergunakan pada statement SEARCH untuk mencari data yang ada di tabel.

  OCCURS clause digunakan untuk membentuk suatu tabel (table) atau kumpulan (list) dari data-item atau larik (array).

  Tabel (table)adalah sekumpulan nilai data yang membentuk suatu set. Bentuk Tabel sbb :

  1. Tabel beridmensi Satu ( one-dimensional table) 2. Tabel berdimensi dua ( two-dimensional table).

  3. Tabel berdimensi Tiga (three-dimensional table).