Rutin-Rutin pada C++ OPERASI FILE

2008 | Direktorat Pembinaan SMK 421 file. Hal ini dapat dilihat pada daftar dibawah ini: Table 12.8. File Standard FILE DESCRIPTION stdin Standar masukan membuka untuk dibaca. Pada bahasa C++ ekivalen dengan cin. stdout Standard keluaran membuka untuk ditulis. Pada bahasa C++ ekivalen dengan cout. stderr Standard salah membuka untuk ditulis. Pada bahasa C++ ekivalalen dengan cerr. dalam bahasa C tidak ada sedangkan dalam bahasa C++ ekivalen dengan clog. Fungsi fgetc akan membaca sebuah karakter dari suatu file. Jika tidak ada lebih banyak data di dalam file, fungsi kembali secara konstan ke EOF EOF dideskkripsikan pada cstdio. Yang perlu dicatat bahwa fgetc kembalikan satu bilangan bulat, bukan suatu karakter. Ini diperlukan karena EOF flag harus mempunyai nilai bukan karakter. Program 12.5. include cstdio include cstdlib File standar ANSI C include iostream using namespace std; const char FILE_NAME[] = input.txt ; nama file masukan int main { int count = ; jumlah karakter FILE in_file; masukan file int ch; karakter atau EOF flag dari masukan in_file = fopenFILE_NAME, rb ; if in_file == NULL { cerr tidak bisa membuka File FILE_NAME \n; exit 8 ; } while true { 422 Direktorat Pembinaan SMK | 2008 ch = fgetcin_file; if ch == EOF break; ++count; } cout jumlah karakter FILE_NAME adalah count \n; fclosein_file; return ; }

12.11. File sekuensial

Sequential file Arsip sekuensial adalah sekumpulan rekaman yang disimpan dalam media penyimpanan sekunder komputer, yang dapat diakses secara sekuensial mulai dari rekaman pertama sampai dengan rekaman yang terakhir, rekaman per rekaman secara searah. File sekuensial berisi rekord-rekord data yang tidak mengenal posisi baris atau nomor rekord pada saat aksesnya, dan setiap record dapat mempunyai lebar yang berbeda-beda. Akses terhadapnya selalu dimulai dari awal file dan berjalan satu persatu menuju akhir dari file. Dengan demikian, penambahan file hanya dapat dilakukan terhadap akhir file, dan akses terhadap baris tertentu harus dimulai dari awal file. Fungsi baku yang terkait dengan file sekuensial ini antara lain adalah fprintf, fscanf, dan rewind . Program berikut menyajikan penanganan file sekuensial tentang data nasabah yang berisi tiga field, yaitu nomor identitas account, nama name, dan posisi tabungannya balance untuk 1 menyajikan yang tabungannya bernilai nol, 2 berstatus kredit, dan 3 berstatus debet. Misalny sebuah file data tersimpan dengan nama klien.dat. Rekaman terakhir adalah rekaman fiktif, yang menandai akhir dari arsip. Pada beberapa implementasi, rekaman fiktif ini disebut sebagai EOF End Of File. Arsip sekuensial berasal dari hasil perekaman penulisan yang juga dilakukan rekaman per rekaman. Setiap rekaman boleh berisi type dasar ataupun type terstruktur yang telah didefinisikan, setiap rekaman strukturnya sama. Elemen dari rekaman disebut sebagai field, ada field atau juga sekumpulan field rekaman yang disebut sebagai key karena kekhususannya dalam proses. Jika key dari setiap rekaman tidak ada yang sama unik, maka key menjadi identitas rekaman, dan disebut primary key. Setiap rekaman dapat diakses dan dikonsultasi dibaca menurut urutannya dengan pemanggilan primitif akses yang tersedia. Perekaman dapat dilakukan melalui primitif penulisan. Perhatikan bahwa suatu arsip sekuensial hanya dapat disiapkan hanya pada salah satu modus operasi: diaksesdibaca, atau ditulis. 2008 | Direktorat Pembinaan SMK 423 Dalam definisi arsip sekuensial, tidak pernah sebuah arsip diproses untuk kedua modus: dibaca dan sekaligus ditulis. Primitif-primitif tsb, akan didefinisikan kemudian. Gambar 12.3. Operasi File skuensial Program 12.6 include stdio.h using namespace std; void main { int request, account; float balance; char name[ 25 ]; FILE cfPtr; if cfPtr = fopen klien.dat , r+ == NULL printf File could not be opened\n ; else { printf Enter request\n 1 ‐ List accounts with zero balances\n 2 ‐ List accounts with credit balances\n 3 ‐ List accounts with debit balances\n 4 ‐ End of run\n? ; scanf d , request ;