Hirarki class stream OPERASI FILE

2008 | Direktorat Pembinaan SMK 403 Gambar 12.3. Hirarki Class Stream Class-class tersebut diatas digunakan sebagai masukan dan keluaran dan menampilkan pada layar monitor dan keboard dideklarasikan oleh file header IOSTREAM. Class-class yang digunakan secara khusus untuk input atau ouput file pada disk dideklarasikan oleh file header FSTREAM. Gambar diatas menunjukan class-class yang mana didalamnya dapat ditemukan dua file header tersebut. Selain itu juga ditunjukan beberapa manipulator yang dideklarasikan dalam IOMANIP dan dalam memori, class dideklarasikan dalam STRSTREAM. Seperti yang dapat dilihat pada gambar diatas, class ios yang merupakan class dasar pada sebuah hirarky. Class tersebut berisi beberapa konstanta atau keanggotaan fungsi umum sebagai operasi masukan dan keluaran. Class ios juga berisi senuah pointer yang digunakan sebagai class streambuf. Dimana hal tersebut berisi buffer memori aktual pada saat data dibaca atau ditulis. Biasanya programmer tidak memikirkan class streambuf, karena hal tersebut akan ditangani secara otomatis oleh class lain. Class istream dan ostream diturunkan dari ios dan akan digunakan sebagai masukan dan keluaran secara terus-menerus. Class istream berisi seperti fungsi get, getline, read dan operator ekstrasi overloded , sedangkan ostream berisi put dan write serta operator insersi overloaded . Class iostream adalah diturunkan dari dua class istream dan ostream melalui multiple inheritance. Class yang diturunkan tersebut akan digunakan oleh beberapa piranti seperti file pada disk, yang mungkin 404 Direktorat Pembinaan SMK | 2008 akan dibuka sebagai masukan dan keluaran pada saat yang sama. Tiga class istream_withassign, ostream_withassign dan iostream_withassign diwariskan dari istream, ostream dan iostream secara berturut-turut. Class ios adalah kakek dari semua class-class stream dan berisi secara umum dari hal-hal yang penting yang dibutuhkan untuk mengoperasikan stream pada C++. Ada tiga hal penting yaitu pengaturan flag, flag status kesalahan dan file mode operasi. Pengaturan flag merupakan sekumpulan enum yang didefinisikan dalam ios. Hal tersebut merupakan kondisi seperti saklar on atau off yang memilih 12.4. File InputOutput C++ Inputoutput file pada bahasa C++ ditentukan oleh tiga class yaitu class istream untuk menangani masukan file, class ostream untuk menangani keluaran file serta class iostream untuk menangani file masukan atau keluaran. Dalam C++ operasi ini berkenaan bahwa file sebagai stream dan saat itu pula file dianggap sebagai aliran byte data. Empat class variabel akan secara otomatis dibuat ketika program dimulai. Perhatikan tabel dibawah ini: Tabel 12.1. Variabel class IO pada C++ yang dikenal VARIABEL DIGUNAKAN cin Console input standar input cout Console output standar output cerr Console error standar error clog Console log Variabel-variabel tersebut di definisikan dalam file standar include iostream. Pada umumnya cin digunakan oleh keyboard dan cout, ceer dan clog digunakan untuk menampilkan ke screen monitor. Kebanyakan sistem operasi memperbolehkan programer mengubah arah melalui IO. sebagai contoh perintah dibawah ini: my_prog file.in ketika dijalankan program dengan nama my_prog dan tugas yang diberikan cin adalah file.in. ketika sedang mengerjakan operasi file pada disk, diharuskan menggunakan versi file pada class stream. Dalam hal ini ifstream, ofstream dan fstream akan didefinisikan dalam file include fstream. Seandainya programmer ingin membaca 100 angka yang berurutan dari sebuah file dengan nama number.dat misalnya, maka programmer harus mendeklarasikan variabel masukan file sebagai berikut: ifstream data_file; 2008 | Direktorat Pembinaan SMK 405 kemudian yang dibutuhkan adalah C++ mengambil file pada hardisk yang digunakan. Hal ini dikerjakan melalui dengan membuka fungsi keanggotaan sebagai berikut: data_file.openangka.dat; sekarang programmer dpat membaca file mengunakan statement yang sama untuk membaca yaitu dengan cin. Perhatikan program dibawah ini: for i = 0; i 100; ++i { asserti = 0; asserti sizeofdata_array sizeofdata_array[0]; data_file data_array[i]; } Terakhir yang dibutuhkan untuk mengetahui bahwa sistem IO telah mengerjakannya dan kemudian menuliskan sebagai berikut: data_file.close ; instruksi tersebut menutup program yang kemudian dapat menggunakan program lagi. C++ memperbolehkan membuka panggilan yang bervariasi denga construktor, sebagai contoh mengganti pada penulisan ifstream data_file; File dibaca dari data_file.openangka.dat; dapat ditulis dengan ifstream data_fileangka.dat; apalagi sebuah destruktor dengan otomatis memanggil close. Pada kasus tertentu jika sebuah file number.dat hilang, bagaimana dan dimana programer akan memberitahukan permasalahan tersebut?. Maka keanggotaan fungsi akan kembali dengan pesan kesalahan jika pada fungsi tersebut terdapat masalah, atau kesalahan yang mungkin terjadi. Sehigga untuk menguji apakah terdapat kesalahan atau tidak programer perlu menuliskan potongan program dibawah ini: if data_file.bad { cerr Unable to open numbers.dat\n; exit 8; } Program tersebut dibawah ini merupakan program pembacaan angka Program 12.1 includeconio.h include iostream include fstream include cstdlib using namespace std; int main