Lompati ke konten utama
Modul 5 · Pelajaran 2 dari 210/10 dalam kursus~15 min
Pelajaran modul (2/2)

Operasi I/O File

Setelah file dikaitkan dan dideklarasikan di DATA DIVISION, kita dapat memanipulasinya di dalam PROCEDURE DIVISION. Di COBOL, pengelolaan siklus hidup file mengikuti alur standar dan penting: membuka, melakukan operasi (baca atau tulis), dan tutup.


1. Membuka File: Pernyataan TERBUKA

Sebelum Anda dapat membaca atau menulis ke suatu file, file tersebut harus dibuka dengan menentukan mode akses yang sesuai:

COBOL
       OPEN INPUT SALES-FILE.

Mode utamanya adalah:

  • INPUT: File dibuka dalam mode read-only. File tersebut harus ada di disk, jika tidak, program akan gagal.
  • OUTPUT: File dibuka dalam mode tulis. Jika file sudah ada, konten sebelumnya akan dihapus (ditimpa). Jika tidak ada, maka diciptakan.
  • EXTEND: File dibuka untuk menambahkan data. Catatan baru akan ditulis mulai dari akhir file yang ada.
  • I-O: File dibuka untuk membaca dan menulis (kebanyakan digunakan untuk file akses relatif atau terindeks, bukan file sekuensial linier).

2. Membaca Data: Pernyataan READ

Untuk membaca catatan dari file berurutan, kami menggunakan pernyataan READ. Karena kita tidak mengetahui sebelumnya berapa banyak record yang terdapat dalam file, kita harus selalu menangani kondisi akhir file (EOF) menggunakan klausa AT END:

COBOL
       READ SALES-FILE
           AT END MOVE "Y" TO WS-EOF
       END-READ.
  • READ SALES-FILE: Perhatikan bahwa pernyataan tersebut merujuk pada nama file logis (didefinisikan dalam klausa SELECT dan FD), bukan nama rekaman.
  • AT END: Menentukan instruksi yang akan dijalankan ketika Anda mencoba membaca melewati catatan terakhir yang tersedia. Biasanya, Anda menyetel variabel tanda (seperti WS-EOF) ke "Y".
  • END-READ: Secara eksplisit mengakhiri pernyataan baca.

3. Penulisan Data: Pernyataan TULIS

Untuk memasukkan data ke dalam file, kami menggunakan pernyataan WRITE.

[!PERINGATAN] Di COBOL, Anda membaca file (READ SALES-FILE), tetapi Anda menulis record (WRITE SALES-RECORD). Penulisan WRITE SALES-FILE adalah kesalahan sintaksis umum yang akan mencegah kompilasi.

COBOL
       MOVE 1001 TO EMP-ID.
       MOVE "MARIO ROSSI" TO EMP-NAME.
       WRITE SALES-RECORD.

Sebelum mengeksekusi pernyataan WRITE, bidang bawahan dari struktur catatan FD (dalam hal ini, SALES-RECORD) harus diisi di memori.


4. Menutup File: Pernyataan CLOSE

Ketika pemrosesan selesai, setiap file yang terbuka harus ditutup untuk melepaskan sumber daya sistem dan memastikan semua data ditulis ke disk:

COBOL
       CLOSE SALES-FILE.

Perhatikan bahwa pernyataan CLOSE menggunakan nama file logis sebagai argumennya, bukan nama rekaman.


Cobalah

Latihan#cobol.m5.l2.e1
Upaya: 0Memuat…

Selesaikan DIVISI PROSEDUR dengan membuka SALES-FILE dalam mode INPUT, membaca record pertama, dan mengatur variabel kontrol WS-EOF ke 'Y' ketika akhir file tercapai. Terakhir, ingatlah untuk menutup file sebelum berhenti.

Memuat editor…
Tunjukkan petunjuk

Tulis secara berurutan: BUKA INPUT FILE PENJUALAN. lalu BACA FILE PENJUALAN DI AKHIR PINDAHKAN 'Y' KE WS-EOF END-BACA. lalu TUTUP FILE PENJUALAN. dan akhirnya BERHENTI LARI.

Solusi tersedia setelah 3 upaya

Latihan#cobol.m5.l2.e2
Upaya: 0Memuat…

Selesaikan DIVISI PROSEDUR dengan membuka SALES-FILE pada mode OUTPUT. Pindahkan nilai 1001 ke SALES-ID dan 250,50 ke SALES-AMOUNT, lalu tulis SALES-RECORD ke file tersebut. Terakhir, tutup file sebelum menghentikan program.

Memuat editor…
Tunjukkan petunjuk

Buka file dengan OPEN OUTPUT SALES-FILE., gunakan MOVE untuk menetapkan nilai ke SALES-ID dan SALES-AMOUNT, jalankan WRITE SALES-RECORD. (tulis catatannya, bukan filenya!), tutup dengan CLOSE SALES-FILE. dan diakhiri dengan STOP RUN.

Solusi tersedia setelah 3 upaya