PUSTAKA I/O PADA C / C++ DAN MACAM-MACAMNYA
A. Pustaka stream
Fasilitas I/O tidak merupakan bagian dari bahasa C++, tetapi diiplementasikan sebagai suatu library alam C++. Pada bab ini akan dibahas pustaka iostream yang sering digunakan dalam pemrograman C++. Pada level paling bawah, suatu file diinterpretasikan sebagai suatu barisan atau stream dari bytes. Pada level ini konsep tipe data tidak ada. Sedangkan pada level user, suatu file terdiri dari suatu barisan data dari satu atau lebih tipe karakter karakter, nilai-nilai numerik, dan obyek-obyek kelas. Pustaka iostream menyadiakan sejumlah operasi untuk menangani baca dan tulis tipe- tipe data baku. Pemrograman dapat memperluas operasi-operasi itu untuk menangani tipe tipe kelas yang dibuatnya. Operasi input dan output didukung oleh kelas istream (input stream ) dan kelas ostream (output stream). Operasi output dilakukan oleh operator leftshift atau operator insertion (<<), sedangkan operasi input dilakukan oleh operator rightshift atau operator extraction (>>).
Empat objek stream tersedia bagi pengguna:
1. cin, suatu objek dari kelas istream yang dikaitkan dengan standard-input.
2. cout, suatu objek dari kelas ostream yang dikaitkan dengan standard-output.
3. cerr, suatu objek dari kelas ostream yang dikaitkan dengan standard-error dengan
unbuffered output
4. clog, suatu objek dari kelas ostream yang dikaitkan dengan standard-error dengan
buffered output
Program yang memakai pustaka iostream harus meng-include file iostream.h. Pengguna dapat mengaitkan suatu file tertentu ke program dengan mendefinisikan suatu objek dari
salah satu kelas berikut ini:
1. ifstream
- turunan dari istream.
- mengaitkan suatu file ke program untuk input.
2. ofstream
- turunan dari ostream
- mengaitkan suatu file ke program untuk output.
3. fstream
- turunan dari iostream
- mengaitkan suatu file ke program untuk input dan output.
Pustaka iostream juga mendukung pengaturan array karakter. Ada dua kelas untuk itu,yaitu:
1. istrstream
- turunan dari ostream
- menyimpan karakter ke suatu array.
2. ostrstream
- turunan dari ostream
- menyimpan karakter ke suatu array.
Metode output secara umum adalah menerapkan operator << ke dalam cout. Operator << sudah di-overload untuk menangani tipe-tipe data built-in dan pointer (address objek). Secara otomatis, pointer ditampilkan dalam notasi heksadesimal. Untuk tampilan dalam notasi desimal harus dilakukan dengan cast eksplisit ke tipe long (unsigned). Metode input dilakukan dengan menerapkan operator >> ke dalam cin. Seperti halnya dengan operator <<, operator >> dapat dikonkatenasikan.
Metode yang lebih umum untuk membaca dari input-stream adalah membuat operasi input sebagai kondisi dari suatu while loop seperti pada contoh berikut:
char ch;
while(cin >> ch) ….
yang membaca karakter satu persatu dari standar input_output. Apabila ketemu end-
offile,
kondisi (cin >> ch) bernilai false dan loop akan terhenti.
Karakter-karakter:
a b c
d e
diperlakukan oleh operator >> sebagai barisan 5 karakter ‘a’,’b’,’c’,’d’,’e’. Whitespace( spasi, newline,tab) berlaku sebagai pemisah nilai, tidak di baca sebagai karakter.
Gunakan member-functions: get(),getline() dan read() kalau yang ingin dibaca termasuk white-space.
Operator input “>>” dapat juga dipakai untuk membaca suatu barisan sring dari inputstream.
Menurut operator >>, string adalah barisan karakter yang dibatasi oleh whitespace.
Manipulator setw() dapat dipakai untuk mencegah overflow pada array karakter input.
Setw(ukuran) membagi suatu string yang sama atau lebih panjang dari ukuran menjadi
dua atau lebih string dengan panjang maksimum ukuran –1.
I/O member-functions terdiri dari:
1. put(char ch), mengoutput karakter ch ke output-stream dan mengembalikan objek kelas ostream yang menginvokasinya.
2. get(char & ch), mengambil satu karakter dari input-stream dam menyimpannya di ch, serta mengembalikan obyek kelas iostream yang menginvokasinya. Contoh:
#include <iostream.h>
main()
{
char ch;
while(cin.get(ch)) cout.put(ch);
return 0;
}
3. get(), mengambil dan mengembalikan satu nilai dari input-stream, termasuk nilai
endof
file EOF yang didefinisikan di iostream.h. Contoh:
#include<iostream.h>
main()
{
int ch;
while( (ch = cin.get()) != EOF)
cout.put(ch);
return 0;
}
4. write(const char *str, int length): menghasilkan sebuah string ke output stream dan mengembalikan object stream yang menginvokasinya, dan length menentukan jumlahkarakter yang ditampilkan, mulai dari karakter yang ditunjuk dalah str.
5. getline(char *Buf, int Limit, char Delim = ‘\n’): mengambil satu blok karakter dan menyimpannya dalam array Buf’, jumlah karakter yang diambil ≤ (Limit –1), karakter null dicantolkan ke akhir Buf, jumlah karakter yang diambil <(Limit –1) apabila ditemukan EOF atau karakter yang dikandung Delim, dan karakter yang dikandung Delim tidak ditaruh dalam Buf.
6. gcount(), memberikan jumlah karakter ynag diambil oleh invokasi getline() yang terakhir.
7. read(char *addr, int size): mengambil sebanyak size bytes berturutan dari inputstream dan menaruh mereka mulai pada alamat addr, dan gcount() juga mengembalikan jumlah bytes yang diambil oleh invokasi read() yang terakhir.
8. putback(char c), menaruh kembali karakter c ke input stream.
9. peek(), memberitahu karekter berikutnya (atom EOF) tetapi tidak mengambilnya.
10. ignore(int Limit = 1, int Delim = EOF): membuang karakter sebanyak <= Limit, dan stop jika ketemu karakter yang dikandung Delim.
B. Pustaka stdio
Operasi output standar
• e.g. putchar(),putch(),puts(),printf()
• Format output
• Operasi input standar
• e.g. getchar(),getch(),getche(),gets(),scanf()
1. Format output
Dipakai untuk menampilkan nilai data ke peralatan output sebagai data keluaran. Beberapa fungsi (standard library function) yang terdapat pada bahasa pemrograman C dapat: menampilkan data tidak terformat
Operasi Output
• putchar();
• putch();
• puts();
menampilkan data terformat
• printf();
2. Fungsi putchar
Fungsi: Menampilkan karakter ke layar monitor pada cursor, kemudian (setelah karakter tampil) cursor bergerak ke posisi berikutnya. Mengembalikan EOF jika error, atau mengembalikan karakter yang ditampilkan jika sukses
Fungsi putchar()
• Header file: stdio.h
• Contoh:
char ch=’A’;
putchar(ch);
3. Fungsi putch()
Fungsi :
• Seperti putchar(ch) untuk menampilkan karakter ASCII dari ch di layar monitor.
• Header file: conio.h
• Tersedia dalam Borland C++ library, tetapi tidak dalam ANSI C dan ANSI
C++
Fungsi putch() Mengembalikan EOF jika error, atau mengembalikan karakter yang ditampilkan jika sukses.
Contoh:
char ch=’b’;
putch(ch);
4. Fungsi puts()
Fungsi: Menampilkan string ke layar monitor dan memindahkan kursor ke baris baru.
• Header file: stdio.h
• Mengembalikan nilai non-negative jika sukses atau EOF
Fungsi puts() jika ada error.
Contoh:
puts(”Selamat Datang”);
puts(”Di Bahasa Pemrograman C”);
Baca Juga :