File
Pendahuluan File merupakan unit standar penyimpanan data yang menggunakan konsep stream dalam pengaksesannya. Stream merupakan penghubung antara programmer dengan file. Sebuah stream terhubung dengan file melalui operasi open dan terputus dari file melalui operasi close. Dalam bahasa pemrograman C, terdapat dua jenis stream: teks (ASCII) dan binari. Minggu ini, FILE dan stream jenis teks akan dibahas.
Objektif Memperkenalkan struktur data file Menjelaskan cara membuka, mengakses, dan menutup file Membaca dan menulis data dalam file tipe teks
Bahan Bacaan Buku pegangan atau bahan-bahan lain yang menjelaskan tentang FILE dalam bahasa pemrograman C.
Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala – http://www.informatika.unsyiah.ac.id
1
File Stream terhubung dengan file melalui operasi open dan terputus dari file melalui operasi close. Perintah membuka file dilakukan dengan fungsi fopen (library stdio.h) dan perintah menutup file dilakukan dengan fungsi fclose. Prototipe kedua fungsi ini berada dalam stdio.h FILE * fopen(char * nama_file, char * mode) FILE * fclose(FILE * pfile) Mode merupakan cara pengaksesan file. Berikut daftar mode yang dapat digunakan: Mode
Arti
r w a rb wb ab r+ w+ a+ r+b atau rb+ w+b atau wb+ a+b atau ab+
Membuka file teks untuk dibaca saja (read only) Membuat sebuah file teks untuk kemudian ditulisi Menambah (append) data ke dalam sebuah file teks tanpa menimpa yang ada Membuka sebuah file binary untuk dibaca saja (read only) Membuat sebuah file teks untuk kemudian ditulisi Menambah (append) data ke dalam sebuah file binari tanpa menimpa yang ada 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
Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala – http://www.informatika.unsyiah.ac.id
2
Contoh Manipulasi File Membuka/Membuat File FILE
*ifp, *ofp;
ifp = fopen("input_file","r"); ofp = fopen("output_file","w"); : :
ifp dan ofp adalah pointer ke FILE ifp tunjuk ke file ’input_file’ dan file ini hanya dapat dibaca saja (read-only), tidak untuk ditulisi ofp tunjuk ke file ’output_file’. File ini akan dibuat bila sebelumnya tidak ada dan akan ditimpa bila sebelumnya sudah ada dalam direktori
Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala – http://www.informatika.unsyiah.ac.id
3
Contoh Manipulasi File #include
#include <stdio.h> #include <stdlib.h> int main (void){ int c; FILE *fp; char *filename = "data.txt"; if((fp = fopen(filename, "r"))==NULL){ printf("Error reading file...\n"); return EXIT_FAILURE; } while((c=fgetc(fp)) != EOF){ putchar(toupper(c)); } fclose(fp); return EXIT_SUCCESS; }
Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala – http://www.informatika.unsyiah.ac.id
4
Contoh Manipulasi File Fungsi fscanf dan fprintf int fscanf ( FILE * stream, const char * format, ... ); int fprintf ( FILE * stream, const char * format, ... );
Contoh #include <stdio.h> int main (void){ int a, sum = 0; FILE *ifp, *ofp; ifp = fopen("input_file.txt", "r"); ofp = fopen("output_file.txt", "w"); while (fscanf(ifp,"%d",&a)==1){ sum += a; } fprintf(ofp, "Jumlah = %d\n",sum); fclose(ifp); fclose(ofp); return 1; }
Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala – http://www.informatika.unsyiah.ac.id
5
Contoh Manipulasi File (Lanjutan) #include #include <stdio.h> #include <stdlib.h> int main(void){ FILE *fp; int ch; fp = fopen("output_file.txt", "w"); fprintf(fp, "%s", "Program Studi Informatika\n"); fprintf(fp, "%s", "Universitas Syiah Kuala, Banda Aceh 23111\n\n\n"); fclose(fp); if((fp = fopen("output_file.txt", "r"))==NULL) { printf("Error reading file...\n"); return EXIT_FAILURE; } while ((ch=fgetc(fp))!=EOF) { putchar(tolower(ch)); } fclose(fp); return EXIT_SUCCESS; }
Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala – http://www.informatika.unsyiah.ac.id
6