Minggu, 23 November 2014

File Sequential (COBOL)

A.      Apa itu File Sequential?

Sebelumnya saya telah menjelaskan tentang File Index dan File Relatif. Kali ini saya ingin menjelaskan sedikit tentang File Sequential. Berikut ini sedikit penjelasan mengenai File Sequential :

·         Organisasi file secara urut (sequential file) memungkinkan pengaksesan record di file secara berurutan.
·         Urutan data record yang direkamkan di file sama dengan urutan sewaktu data itu direkamkan.
·         Urutan tidak berubah walaupun data baru ditambahkan.
·         Data baru yang direkamkan akan menempati urutan record selanjutnya setelah record terakhir yang telah ada.
·         Ada 2 macam organisasi file secara urut, yaitu :
o   Sequential à mempunyai panjang record yang tetap.
o   Line Sequential à bisa berbeda-beda, setiap record terdapat pembatas berupa carriage return (CR) dan line feed (LF).

B.      Program File Sequential

Setelah mengetahui apa itu File Sequential. Kita akan membuat program pada bahasa pemrograman COBOL yaitu program menu untuk menginput data. Berikut listing programnya :

      IDENTIFICATION DIVISION.
      PROGRAM-ID. FileSequential.
      SECURITY. PROGRAM MEMASUKAN DATA ORGANISASI FILE SEQUENTIAL
           MODE AKSES URUT.
      ENVIRONMENT DIVISION.
      INPUT-OUTPUT SECTION.
      FILE-CONTROL.
            SELECT PEGAWAI ASSIGN TO DISK
            ORGANIZATION IS SEQUENTIAL
            ACCESS MODE IS SEQUENTIAL.
            SELECT CETAK ASSIGN TO PRINTER.
      DATA DIVISION.
      FILE SECTION.
      FD PEGAWAI
            LABEL RECORD IS STANDARD
            VALUE OF FILE-ID IS 'DFTRPEG.DAT'
            DATA RECORD IS REC-PEG.
      01 REC-PEG.
            02 NAMA PIC X(10).
            02 ALAMAT PIC X(20).
            02 UMUR PIC 99.
      FD CETAK
            LABEL RECORD IS OMITTED
            LINAGE IS 52 LINES
            WITH FOOTING AT 48
            LINES AT TOP 7
            LINES AT BOTTOM 7
            DATA RECORD IS BARIS-CETAK.
      01 BARIS-CETAK PIC X(80).
      WORKING-STORAGE SECTION.
      77 NOMER PIC 999 VALUE 0.
      01 SWITCH-BACA-RECORD PIC X VALUE ' '.
            88 HABIS-DIBACA-SEMUA VALUE 'Y'.
      01 JUDUL-1.
            02 FILLER PIC X(18) VALUE SPACES.
            02 FILLER PIC X(15) VALUE 'LAPORAN PEGAWAI'.
      01 JUDUL-2.
            02 FILLER PIC X(6) VALUE 'NOMER'.
            02 FILLER PIC X(10) VALUE 'NAMA'.
            02 FILLER PIC X(20) VALUE 'ALAMAT'.
            02 FILLER PIC X(4) VALUE 'UMUR'.
      01 GARIS PIC X(40) VALUE ALL '-'.
      01 REC-PEG-O.
            02 NOMER-O PIC 999.
            02 NAMA-O PIC X(10).
            02 ALAMAT-O PIC X(20).
            02 UMUR-O PIC 99.
      PROCEDURE DIVISION.
      BUKA-FILE.
            OPEN INPUT PEGAWAI
            OUTPUT CETAK.
      MULAI.
            PERFORM CETAK-JUDUL
            PERFORM CETAK-ISI-TABEL UNTIL HABIS-DIBACA-SEMUA
            PERFORM CETAK-GARIS.
      SELESAI.
            CLOSE PEGAWAI CETAK
            STOP RUN.
      CETAK-JUDUL.
            WRITE BARIS-CETAK FROM JUDUL-1 AFTER ADVANCING PAGE
            WRITE BARIS-CETAK FROM GARIS AFTER ADVANCING 3 LINES
            WRITE BARIS-CETAK FROM JUDUL-2
            WRITE BARIS-CETAK FROM GARIS.
      CETAK-ISI-TABEL.
            PERFORM BACA-DATA
            IF NOT HABIS-DIBACA-SEMUA
            PERFORM CETAK-ISI-TABELNYA
            ELSE
            PERFORM CETAK-TOTAL.
      BACA-DATA.
            READ PEGAWAI
            AT END MOVE 'Y' TO SWITCH-BACA-RECORD.
      CETAK-ISI-TABELNYA.
            ADD 1 TO NOMER
            MOVE NOMER TO NOMER.
            MOVE NAMA TO NAMA.
            MOVE ALAMAT TO ALAMAT.
            MOVE UMUR TO UMUR.
            WRITE BARIS-CETAK FROM REC-PEG.
      CETAK-GARIS.
            WRITE BARIS-CETAK FROM GARIS.
      CETAK-TOTAL.
            WRITE BARIS-CETAK FROM GARIS.
            MOVE SPACE TO NAMA.
            MOVE 'TOTAL JUMLAH PEGAWAI : ' TO ALAMAT.
            MOVE NOMER TO UMUR.
      WRITE BARIS-CETAK FROM REC-PEG-O AFTER 2 LINES.


C.      Output

Compile terlebih dahulu program tersebut (gambar 1.1). Jika tidak terjadi kesalahan atau tidak ada error, kemudian run program :

Gambar 1.1



0 komentar:

Posting Komentar

Copyright © Muhammad Ahsan Fuady | Powered by Blogger