Routin-routin Konversi File OPERASI FILE

410 Direktorat Pembinaan SMK | 2008 ios::boolalpha Gunakan versi karakter yang benar dan salah untuk input dan output. ios::dec Output dalam dasar angka 10, format desimal. ios::oct Keluaran angka dengan format 8 angka oktal. ios::hex Output dalam format angka 16, heksadesimal. ios::showbase Mencetak indikator inti pada setiap awal nomor. Misalnya, angka heksadesimal yang diawali dengan 0x. ios::showpoint Menunjukkan titik desimal untuk semua angka floating‐point apakah ia dibutuhkan. ios::uppercase Ketika konversi heksadesimal angka, menunjukkan angka AF sebagai huruf besar. ios::showpos Menempatkan tanda positif sebelum semua nomor. ios::scientific Mengkonversi semua angka floating‐point untuk notasi ilmiah pada output. ios::fixed Mengkonversi semua floating‐point nomor ke titik tetap pada output. ios::unitbuf Buffer output. Jika pada saat mnulis program menginginkan keluaran berupa format bilangan hexadesimal, maka yang harus dikerjakan adalah menambah dengan menulis potongan program dibawah ini: number = 0x3FF ; cout Dec: number \n; cout.setf ios::hex; cout Hex: number \n; cout.setf ios::dec; ketika di”run”, maka pprogram akan menghasilkan keluaran sebagai berikut: Dec: 1023 Hex: 3ff Ketika konversi angka ke karakter dilakukan, maka fungsi keanggotaannya ditulis: int file_var.widthint size; suatu saat output harus ditentukan sesuai dengan jumlah karakter yang digunakan. Sebagai contoh misalnya sejumlah 3 angka, secara umum dikonversi menjadi karakter string “3”. Jika diatur sampai empat, maka hasilnya menjadi dimana menunjukan satu ruang karakter. Perhatikan fungsi dibawah ini: int file_var.precisionint digits; pernyataan program diatas digunakan untuk mengatur berapa banyak angkat yang akan dimunculkan setelah tanda koma ,. Dan kemudian menuliskan fungsi seperti dibawah ini: char file_var.fillchar pad; 2008 | Direktorat Pembinaan SMK 411 program diatas digunakan untuk menentukan karakter, dimana karakter digunakan sebagai penambah angka ketika angka terlalu kecil. Fungsi-fungsi tersebut dapat disebut dengan pengarah, atau programer dapat menggunakan IO manipulator. Sebuah IO manipulator adalah sebuah fungsi khusus yang digunakan dalam pernyataan IO untuk mengubah format. Jika dipikirkan sebuah manipulator dapat dianalogikan seperti halnya peluru ajaib, dimana ketika ditembakan melaluimasuk atau setelah keluar dari sebuah file, akan mengubah kondisi sebuah file tersebut. Manipulator tidak menyebabkan beberapa keluaran tetapi hanya mengubah kondisinya saja. Sebagai contoh pada manipulator hex hanya melakukan konversi keluaran menjadi hexadesimal. include iostream number = 0x3FF; cout Number is hex number dec \n; sebuah file header iostream mendefinisikan kumpulan dasar dari sebuah menipulator yang dapat dilihat pada tabel dibawah ini: Tabel 12.4. IO manipulator MANIPULATOR DESKRIPSI dec Keluaran angka dalam format desimal. hex Keluaranangka dalam format hexadesimal. oct Keluaran angka dalam format oktal. ws Loncati space pada masukan. endl Keluaran pada end‐of‐line ends Keluaran pada end‐of‐string `\0. flush Lakukan pembufferan keluaran out. Selain tebal diatas ada juga manipulator yang didefinisikan ole file header iomanip dapat dilihat pada tabel dibawah ini: Tabel 12.5. Fungsi IO manipulator pada C MANIPULATOR DESKRIPSI setiosflagslong flags Atur pemilih flag konversi. resetiosflagslong flags Reset flag terpilih. setbaseint base Atur konersi dasar menuju 8, 10, atau 16. Urutkan secara umum dec, hex, oct. setwint width Atur lebar keluaran. setprecisionint precision Atur presisi dari keluaran floating‐point. setfillchar ch Atur karakter yang di blokditandai. 412 Direktorat Pembinaan SMK | 2008 Untuk lebih jelasnya perhatikan penggunaan IO manipulator pada program dibawah ini. program 12.3 includeconio.h include iostream include iomanip using namespace std; int main { int number = 12 ; angka untuk keluarkan float real = 12.34 ; angka yang nyata cout 123456789012345678901234567890\n ; ruler keluaran cout number ‐\n ; cout setw 5 number ‐\n ; cout setw 5 setfill number ‐\n ; cout setiosflags ios::showpos| ios::left setw 5 number ‐\n ; cout real ‐\n ; cout setprecision 1 setiosflags ios::fixed real ‐\n ; cout setiosflags ios::scientific real ‐\n ; getch; return ; } Keluaran dari program diatas setelah di compile adalah: 123456789012345678901234567890 12 ‐ 12‐ 12 ‐ +12 ‐ 12.34 ‐ 12.3 ‐ 1e+01 ‐

12.7. File Binary dan ASCII

American Standard Code for Information Interchange ASCII merupakan kode yang terdiri dari 95 kode karakter dan 33 kode kendali lihat lampiran 1. Dengan kode ASCII memungkinkan manusia 2008 | Direktorat Pembinaan SMK 413 pengguna komputer dapat mengerti karena ACSII merupakan pengkodean yang mengacu pada bahasa manusia. Misalnya ketika programer menulis file dengan nama prog.cc secara otomatis file tersebut berupa kode ASCII. Sebuah terminal seperti keyboard, printer berhubungan dengan data karakter. Ketika sesorang menulis angka seperti 1234 yang kemudian muncul pada layar monitor, angka tersebut harus dikonversi menjadi empat karakter “1”, “2”, “3”, dan “4” . Hal yang sama juga ketika seseorang membaca angka dari keyboard, sebuah data harus dikonversi dari data karakter menjadi data integer. Hal ini dikerjakan oleh operator . Karater ASCII “0” mempunyai nilai 48, “1” mempunyai nilai 49 dan seterusnya seperti terlihat pada lampiran kode ASCII. Ketika sesorang akan mengubah digit tunggal dari kode ASCII menjadi integer akan sama halnya anda mengubah menjadi data 48. Perhatikan program dibawah ini: int integer; char ch; ch = 5; integer = ch ‐ 48; cout Integer integer \n; Daripada mengingat karakter “0” yang lebih sulit dingat dengan 48, lebih baik mengkonversi menjadi karakter ‘0’. Perhatikan program dibawah ini: integer = ch ‐ 0; komputer bekerja dengan data biner. Ketika komputer membaca dari file ASCII, program pada komputer memproses data karakter melalui routine konversi seperti routine konversi integer yang telah didefinisikan. Operasi ini akan menjadi lebih mahal dikarenakan membutuhkan ruang memori dan waktu. Sebuah file biner tidak membutuhkan konversi. File-file tersebut umumnya memakai ruang yang kecil dibandingkan file kode ASCII. Kelemahan pada file biner adalah tidak bisa dicetak secara langsung pada terminal atau printer. Jika file biner dicetak pada printer secara langsung tanpa adanya konversi yang terjadi adalah data cetak tidak sesuai seperti terlihat “AaAAJHCX. Tentunya apa yang akan terjadi jika dicoba mencetak file biner. File ASCII marupakan file portbel karena banyak dipakai. File ini dapat dipindah dari satu mesin ke mesin yang lain dengan sedikit kesalahan. File biner bisa dikatakan pasti tidak portabel. File mana yang harus digunakan? Dalam beberapa kasus ASCII sangat baik. Alasan ini dikemukakan jika mempunyai data dengan jumlah kecil atau medium waktu konversi tidak begitu mempengaruhi unjuk kerja program yang telah dibuat. Selain itu file ASCII juga membuat dalam melakukan verifikasi data. Hanya ketika menggunakan sejumlah data yang besar saja akan memakan ruang dan mempengaruhi unjuk kerja sehingga diperlukan data dalam format biner.