Ada kalanya seorang programmer harus berhubungan dengan file. Sebagai contoh
pada saat pembuatan program database, seorang programmer
menyimpan data
pada sebuah file dan pada kemudian waktu data tersebut
dikeluarkan untuk diolah.
Pada prinsipnya operasi yang dilakukan
pada file terdiri dari tiga tahap, yaitu :
1. Membuka file
2.
Melakukan pemrosesan pada file
3. Menutup file
Dalam melakukan
operasi file, programmer membutuhkan fungsi – fungsi yang
berhubungan
dengan operasi file yang terdapat pada file fstream.h. Oleh sebab
itu,
untuk dapat melakukan operasi file, maka prepocessor directive berikut
ditambahkan.
#include
<fstream.h>
MEMBUKA FILE
Pembukaan dari suatu file
mempunyai dua tujuan, yaitu membaca isi file atau untuk menulis ke dalam
file
tersebut. Dalam C++ penanganan pembukaan file untuk membaca atau
menulis ke dalam file
berbeda.
1. Membuka file untuk dibaca
ifstream
file_objek;
Setelah objek_input diciptakan, maka file dibuka dengan
cara
file_objek.open(“nama_file”);
Adapun dua pernyataan diatas
dapat disederhanakan sebagai berikut:
ifstream
file_objek(“nama_file”);
2. Membuka file untuk ditulisi
ofstream
file_objek;
Setelah objek_output diciptakan, maka file dibuka dengan
cara
file_objek.open(“nama_file”);
Adapun dua pernyataan diatas
dapat disederhanakan sebagai berikut:
ofstream
file_objek(“nama_file”);
3. Membuka File dengan Modus Tertentu
Pada
point 1 dan 2 pembukaan file hanya bias dilakukan untuk keperluan
membaca
atau menulis saja, bukan untuk kedua-duanya, dan pada 7.1.2
jika isi dari nama_file
sudah ada, maka isi yang lama akan dihapus
dan digantikan dengan isi yang baru. Pada
suatu waktu mungkin anda
memerlukan cara supaya file yang anda buka dapat
dipergunakan untuk
membaca dan menulis sekaligus, atau isi file yang sudah ada tidak
dihapus
jika anda ingin menambah isi file yang baru. Untuk keperluan itu, anda
harus
memformat modus pembukaan file. Adapun modus pembukaan file
yang disediakan
oleh C++ .
Adapun contoh penggunaan dari modus –
modus pembukaan file adalah
sebagai berikut :
fstream file_objek
(“nama_file”,ios::in | ios::out);
Pernyataan diatas adalah dekalarasi
file nama_file dengan sehinggan nama_file
dapat dibaca dan ditulisi.
PEMROSESAN
FILE
Setelah file dibuka, maka dilakukan pemrosesan pada file yang
telah dibuka tersebut,
antara lain :
1. Menulis ke File
Contoh :
#include<iostream.h>
#include<fstream.h>
void
main()
{
ofstream file_objek;
file_objek.open("latihan.txt");
cout<<"Latihan
menulis ke dalam sebuah file\n";
for(int i=1;i<11;i++)
file_objek<<"Ini
adalah baris ke "<<i<<endl;
file_objek.close();
}
Pada direktori dimana anda men-save file tersebut akan terdapat sebuah
file
bernama latihan.txt
2. Membaca Isi File
Contoh :
#include<fstream.h>
void
main()
{
const int MAX = 80;
char buffer[MAX+1];
ifstream
file_objek;
file_objek.open("latihan.txt");
cout<<"Membaca
isi file latihan.txt\n";
while(file_objek)
{
file_objek.getline(buffer,MAX);
AP-
Algoritma – TEAM Algoritma Halaman: 57
cout<<buffer<<endl;
}
}
Program ini membaca isi file latihan.txt dan menampilkannya ke layar.
File_objek.getline(buffer,MAX)
digunakan untuk membaca teks dari file.
Memeriksa Operasi File
C++
menyediakan sejumlah fungsi yang berguna untuk memeriksa
kondisi-kondisi
pada operasi file, sehingga kejadian kesalahan pada
saat eksekusi dapat
dikendalikan.
Contoh :
/* Program ini
menghasilkan output yang sama dengan program
pada contoh 2 */
#include<fstream.h>
void
main()
{
const int MAX = 80;
char buffer[MAX+1];
ifstream
file_objek;
file_objek.open("latihan.txt");
cout<<"Membaca
isi file latihan.txt\n";
while(!file_objek.eof())
{
file_objek.getline(buffer,MAX);
cout<<buffer<<endl;
}
}
Program pada contoh diatas
sama saja dengan contoh program pada point 2
Perbedaannya hanya pada
while(file_objek)
dan
while(!file_objek.eof())
while(file_objek) jika diartikan
dalam bahasa sehari – hari adalah jika isi dari file_objek
(dalam hal
ini, latihan.txt) masih ada, maka baca satu baris pada file latihan.txt
lalu
pindahkan pointer satu baris ke bawah. Jika isi pada baris
tersebut tidak ada, maka
hentikan loop. Sedangkan pada
while(!file_objek.eof()) dapat diartikan, jika pointer
tidak terdapat
di baris paling akhir dari file_objek, maka lanjutkan loop. Jika tidak,
maka
hentikan loop.
MENUTUP FILE
Setelah pemrosesan file berakhir,
maka file perlu ditutup. Langkah ini dilakukan dengan
cara
file_objek.close();
Pemakaian
fungsi close() sifatnya optional. Bila anda tidak mempergunakannya,
compiler
tidak akan mengeluarkan pesan error.
Dibawah ini diberikan contoh –
contoh penggunaan operasi file pada suatu system
operasi.
Contoh :
1.
Program menyalin suatu file
// Simpan dengan nama cp.cpp
#include <conio.h>
#include
<stdlib.h>
#include <fstream.h>
#include
<string.h>
#define max 80
void main(int argc,char *argv[])
{
char
buffer[max+1];
if (argc!=3)
{
cerr<<"Pemakaian : cp
file_yang_akan_dikopi file_baru\n";
exit(1);
}
AP- Algoritma –
TEAM Algoritma Halaman: 59
strupr(argv[1]);
ifstream
input(argv[1], ios::binary);
ofstream output(argv[2], ios::binary);
if
(!input)
{
cerr<<"File yang akan dikopi tidak ada, periksa
kembali !!!\n";
exit(1);
}
for(;;)
{
input.read(buffer,max);
output.write(buffer,max);
if(input.eof())break;
}
input.close();
output.close();
}
2.
Program Membaca Isi Suatu File
// Simpan dengan nama baca.cpp
#include
<iostream.h>
#include <conio.h>
#include
<fstream.h>
#include <stdlib.h>
#include
<string.h>
void main(int argc,char *argv[])
{
clrscr();
const
int max=84;
char buffer[max+1];
char namafile[64];
if(argc!=2)
{
cerr<<"Penggunaan
: Baca nama_file\n";
exit(1);
}
strcpy(namafile,argv[1]);
strupr(namafile);
ifstream
input;
input.open(namafile);
while(!input)
{
cerr<<"File
Not Found !!!\n";
exit(1);
}
while (!input.eof())
{
input.getline(buffer,max);
cout<<buffer<<endl;
}
input.close();
getch();
}
1 komentar:
hebat...
http://www.dmafia.co.cc
Posting Komentar
Anda dapat menggunakan beberapa tag HTML, seperti <b>, <i>, <a>
Penting: Jika anda tidak memiliki account gmail pilih Name/URL pada form ini