PEMROSESAN FILE
II-1
[Algoritma dan Struktur Data – Muhamad Fahmi Alwi] II-2
NULL.
“w” Membuat file baru untuk ditulis. Jika file telah ada maka file lama
akan dihapus.
“a” Membuka file yang telah ada untuk ditambah dengan data baru yang
akan diletakkan di akhir file. Jika file belum ada akan dibuat file baru.
“r+” Sama dengan “r” tetapi selain file dapat dibaca juga dapat ditulis.
“w+” Sama dengan “w” tetapi selain file dapat ditulis juga dapat dibaca.
“a+” Sama dengan “a” tetapi selain file dapat ditulis juga dapat dibaca.
Contoh program :
#include <stdio.h>
#include <conio.h>
main()
{
FILE *PF;
PF=fopen("coba.txt","r");
if(PF==NULL){
printf("terdapat kesalahan file tidak dapat dibuka atau tak
ada");
}
Else
{printf("file dapat dibuka");
}
getch();
return 0;
}
Tampilan program :
jangan buat file tersebutdahulu bila sudah pada kesempatan kedua file coba.txt
dihapus. Pada salah satu percobaan akan menghasilkan pencetakan peringatan
bahwa file tidak dapat dibuka atau tidak ada, berarti dapat terlihat operasi fopen()
dapat berjalan dan jika tidak ditemukan file yang diinginkan atau terjadi kesalahan
nilai pointer PF akan bernilai NULL.
Program di atas adalah kelanjutan setelah membuka file biasanya jika file
tidak digunakan lagi maka dilakukan penutupan file yaitu dengan fungsi pustaka
yang ada. Seperti contoh program di atas pada operasi penutupan file dilakukan
pemeriksaan kondisi apakah nilai dari pointer EOF yang bernilai -1 jika “ya”
maka operasi penutupan file tidak dapat dilakukan.
masing-masing data ini fungsi pustaka yang digunakan berbeda yaitu sebagai
berikut :
Tabel 2.2 Fungsi Pustaka
Fungsi Pustaka Penjelasan
fputc() Meletakkan sebuah nilai karakter ke buffer untuk
direkam ke file
fgetc() Membaca sebuah nilai karakter dari file untuk
diletakkan di buffer
putw() Meletakkan sebuah nilai integer ke buffer untuk
direkam ke file
getw() Membaca sebuah nilai integer dari file untuk
diletakkan di buffer
fputs() Meletakkan sebuah nilai string ke buffer untuk
direkam ke file
fgets() Membaca sebuah nilai string dari file untuk diletakkan
di buffer
fprintf() Meletakkan sebuah data terformat di buffer untuk
direkam ke file
fscanf() Membaca sebuah data terformat dari file untuk
diletakkan di buffer
fwrite() Meletakkan sebuah blok data ke buffer untuk direkam
ke file
fread() Membaca sebuah struktur data dari file untuk
diletakkan di buffer
/* filedat.c */
/* membaca dan menulis text file */
/* separator adalah blank */
/* Data berupa string tidak boleh mengandung blank!!! */
#include <stdio.h>
int main()
{/* Kamus */
int n;
char nama[20];
float persen;
int retval;
FILE *fileku;
/* Algoritma */
fileku = fopen ("filedat.txt", "r");
retval = fscanf (fileku, "%d %s %f", &n, nama, &persen);
while (retval != EOF)
{
printf("Data : %d %s %f \n", n, nama, persen);
retval = fscanf(fileku, "%d, %s, %f", &n, nama,
&persen);
}
printf("\n bye....");
fclose(fileku);
return 0;
}
void
[Algoritma dan Struktur Data – Muhamad Fahmi Alwi] II-8
main ()
{
char namafileoutput[]="filedata.txt";
char teks[80];
FILE *fout;
fout=fopen(namafileoutput,"w");
cout<<"Masukkan BIODATA anda "
<<"ke file, akhiri dengan END\n";
while(1) {
gets(teks);
if (strcmp(teks,"END")==0)
break;
strcat(teks,"\n");
fputs(teks,fout);
}
fclose(fout);
cout<<"selesai"<<endl;
getch();
}
Tampilan program :
Gambar diatas merupakan tampilan program ketika di Run, maka kita isi
program tersebut dengan BIODATA, dan diakhiri dengan mengetikan kata END
sebagai akhir dari proses memasukan data ke file “filedata.txt”. (Lihat Gambar
2.3).
[Algoritma dan Struktur Data – Muhamad Fahmi Alwi] II-9
adalah
integer */
#include <stdio.h>
int main()
{ /* Kamus */
int i;
int rek;
int retval;
FILE *fileku;
/* Algoritma */
/* Membuat */
fileku = fopen ("filein.dat", "w");
for (i = 1; i < 5; i++);
{ /* perhatikan format penulisan */
retval = fprintf(fileku, "%d", i);
}
printf("\n Selesai membuat ...");
fclose(fileku);
/* Membaca kembali */
fileku = fopen("fileku.dat", "r");
retval = fscanf(fileku, "%d", &rek); /* harus sama
dengan ketika dibuat */
printf("%d", rek);
while(retval !=EOF)
{
printf("Yang dibaca : %d \n", rek);
retval = fscanf(fileku, "%d", &rek);
}
printf("\n Bye...");
fclose(fileku);
return 0;
}