Anda di halaman 1dari 3

:: OPERASI FILE ::

KONSEP DASAR
Bahasa C mendukung penyimpanan dan pembacaan data dari sebuah file.
File: sembarang sumber untuk penyimpanan/pembacaan data, mencakup keyboard,
layar/monitor, printer, file pada disk, dsb.
Pengaksesan file pada C menggunakan konsep stream. Stream merupakan penghubung
antara programmer dengan file.
Sebuah stream terhubung dengan file melalui operasi open dan terputus dari file melalui
operasi close.
Ada dua tipe stream: text (untuk tipe data karakter) dan biner (untuk sembarang tipe
data).
PERINTAH MEMBUKA FILE DAN MENGHUBUNGKANNYA DENGAN STREAM dengan
fopen (library stdio.h) DAN MENUTUPNYA DENGAN fclose
FILE *fopen(char *nama_file, char *mode)
FILE *fclose(FILE *pointer_file)
Mode merupakan cara pengaksesan file. Berikut daftar mode yang dapat digunakan:
Mode
r
w
a
rb
wb
ab
r+
w+
a+
r+b atau rb+
w+b atau wb+
a+b atau ab+

Arti
Membuka sebuah file teks untuk pembacaan
Membuat sebuah file teks untuk penulisan
Menambahkan data ke sebuah file teks
Membuka sebuah file binary untuk pembacaan
Membuat sebuah file binary untuk penulisan
Menambahkan data ke sebuah file binary
Membuka sebuah file teks untuk pembacaan/penulisan
Membuat sebuah file teks untuk pembacaan/penulisan
Menambahkan data/membuat file teks untuk pembacaan/penulisan
Membuka sebuah file binary untuk pembacaan/penulisan
Membuat sebuah file binary untuk pembacaan/penulisan
Menambahkan data ke file binary untuk pembacaan/penulisan

Jika operasi open berhasil, fopen() mengembalikan sebuah file pointer yang valid.
Jika operasi gagal, maka fopen()mengembalikan sebuah null pointer, sehingga harus
selalu dicek pada saat pembukaan file. Contoh:
FILE *fp;
if((fp=fopen(fileku.txt,r)==NULL) {
printf(Error dalam pembukaan file\n);
exit(1);
}
fclose(fp);
//menutup stream file

FUNGSI UNTUK OPERASI FILE TEKS


fgetc() dan fputc()
Sintaks:
int fgetc(FILE *fp);
int fputc(int ch, FILE *fp);

Contoh:
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fp;
int i;
int ch;
fp = fopen("foo.abc", "w");//buka file foo.abc untuk ditulisi
for (i=0;i<10;i++) {
//loop untuk meletakkan karakter2
fputc('A',fp);
//menuliskan karakter A
fputc('\n',fp);
//menuliskan pergantian baris
}
fclose(fp);
if((fp = fopen("foo.abc", "r"))==NULL) {
printf("Error reading file...\n");
exit(1);
}
while (ch!=EOF) {
//baca file sampai tanda EOF (End of File)
ch=fgetc(fp); //ambil satu karakter
putchar(ch);
//menampilkan karakter ke layar
}
fclose(fp);
}

fgets() dan fputs()


Sintaks:
int fputs(char *str, FILE *fp);
char *fgets(char *str, int num, FILE *fp);
Contoh:
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fp;
char ch[14];
fp = fopen("foo.abc", "w");//buka file foo.abc untuk ditulisi
fputs("String Contoh",fp);//menuliskan string
fclose(fp);
if((fp = fopen("foo.abc", "r"))==NULL) {
printf("Error reading file...\n");
exit(1);
}
puts(fgets(ch,sizeof(ch),fp));//cetak string di foo ke layar
fclose(fp);
}

fscanf() dan fprintf()


Mirip dengan sintaks scanf() dan printf()
Dapat digunakan untuk sembarang file (tidak hanya monitor/layar)
Dapat menggunakan format data
Sintaks:
int fprintf(FILE *fp, const char *format, );
int fscanf(FILE *fp, const char *format, );
Contoh:
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fp;
int i;
char x[100];
fp = fopen("foo.abc", "w"); //buka file foo.abc untuk ditulisi
fprintf(fp, "\nSample Code\n\n"); //menuliskan sesuatu
for (i = 1; i <= 10 ; i++) {
fprintf(fp, "i = %d\n", i);
}
fclose(fp);
if((fp=fopen("foo.abc","r"))==NULL) {
printf("Error membuka file\n");
exit(1);
}
while(!feof(fp)) {
fscanf(fp,"%s",&x);
puts(x);
}
fclose(fp);
}

fread() dan fwrite()


Untuk membaca dan menulis blok data (mis. Karakter, integer, structure, dll)
Untuk dapat menggunakan fwrite(), file harus dibuka dengan tambahan opsi b
(binary)
Sintaks: fwrite(void *buffer, int b_byte, int c, file *fp);
fread(void *buffer, int b_byte, int c, file *fp);
Keterangan:
buffer
: pointer ke area di memori yang menampung data yg akan dibaca ke file
b_byte : banyaknya byte data yang akan dibaca/tulis (dapat menggunakan
sizeof(buffer))
c
: banyaknya blok data yang akan dibaca/ditulis
fp
: pointer ke file

Anda mungkin juga menyukai