Anda di halaman 1dari 4

File

Objektif
Membuat program untuk membaca dan menulis file serta menyelesaikan permasalahan file
dengan tepat sesuai dengan kondisi.

Operasi File di Bahasa C:

 Ada 2 tipe file yang dapat dioperasikan pada bahasa C:

1. File Teks
2. File Binary

 Untuk dapat bekerja dengan file, maka perlu mendeklarasikan sebuah variable pointer
dengan tipe data berupa FILE yang diinisialisasi dengan fopen()

FILE *ptr = fopen( const char * filename, const char * mode );

 Mode pembacaan file dibagi atas :


Mode Keterangan
R Membuka file text untuk dibaca
W Membuka atau Membuat file text untuk ditulis
A Membuka atau Membuat file text untuk menambahkan isi file text
r+ Membuka file text untuk dibaca dan ditulis
w+ Membuka atau Membuat file text untuk dibaca dan ditulis
a+ Membuka atau Membuat file text untuk dibaca dan menambahkan isi file text
Rb Membuka file binary untuk dibaca
Wb Membuka atau Membuat file binary untuk ditulis
Ab Membuka atau Membuat file binary untuk menambahkan isi file
rb+ Membuka file binary untuk dibaca dan ditulis
wb+ Membuka atau Membuat file binary untuk dibaca dan ditulis
ab+ Membuka atau Membuat file binary untuk dibaca dan menambahkan isi file

 Beberapa fungsi lain yang dapat digunakan untuk melakukan operasai pada file
adalah :

Fungsi description
fopen() Membuat file baru atau/dan membuka file
fclose() Menutup file
getc() Membaca katakter dalam file
putc() Menuliskan karakter ke dalam file
fscanf() Membaca kumpulan data dalam file
fprintf() Menuliskan kumpulan data ke dalam file
fgets() Membaca sebaris kata dalam file
fputs() Menuliskan sebaris kata ke dalam fiel
fseek() Menggubah lepak posisi kursor dalam file
ftell() Mendapatkan posisi kursor terakhir
rewind() Memindahkan kursor ke bagian awal file

Contoh :
1. Buatlah program untuk menuliskan sebuah file ke dalam sebuah file simpan.txt dan
membaca isi file setelah file ditulis.
Test Case
Masukan:
Saya sedang belajar bahasa c
Keluaran:
Saya sedang belajar bahasa c

Kode program untuk membaca dan menulis file adalah sebagai berikut:

#include<stdio.h>
#include<stdlib.h>

int main()
{
char ch;
FILE *fp;
char buff[255];
fp = fopen("simpan.txt", "w");
while( (ch = getchar()) != EOF) {
putc(ch, fp);
}
fclose(fp);
fp = fopen("simpan.txt", "r");

while(fscanf(fp,"%s",buff)!= EOF){
printf("%s \n",buff);
}
fclose(fp);
return 0;
}
Latihan:
1. Buatlah program untuk menyimpan sebuah file, sesuai inputan nama file dari user.
Buat fungsi untuk mengecek ekstensi file, sehingga nama file harus diakhiri .txt
ataupun .bin. Jika tidak maka program akan menolak untuk menuliskan file. Jika
berhasil, maka program akan menuliskan data sesuai dengan ekstensi file.

Test Case
Masukan :
NewFile.jpg
Saya mencoba membuat file jpg
Keluaran :
Gagal membuat file (Ekstensi file harus *.txt atau *.bin)

Test Case
Masukan :
NewFile.txt
Saya mencoba membuat file text
Keluaran :
File text Berhasil disimpan
Saya mencoba membuat file text

Test Case
Masukan :
NewFile.bin
Saya mencoba membuat file binary
Keluaran :
File Binary Berhasil disimpan
Saya mencoba membuat binary

2. Buatlah program untuk mengecek keberadaan sebuah nama file teks yang diinput oleh
user. Jika file text ditemukan, maka ubah isi file menjadi file Binary. (File txt silakan
diambil melalui cloudlab)
Test Case
Masukan :
Program.txt
Keluaran :
File tidak ditemukan

Test Case
Masukan :
Baca.txt
Keluaran :
File Ditemukan
File telah diubah menjadi file binary dengan nama Baca.bin

3. Diberikan sebuah binary file BData.bin yang menyimpan sebuah array struct dengan 3
buah nilai integer (int R, int G, int B). Baca isi file binary menggunakan array struct
terebut. Hitung rata-rata nilai 3 buah angka dalam array ((R+G+B)/3). Jika rata-rata
nilai dibawah 128, maka print 1, jika nilai rata-rata diatas 128 maka print 0.
Test Case
Masukan :-
Keluaran :
000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000
011111111110000000000000000001111111011011101100000000000000110011110
000111100110000000000100000111100001111000011000000010000000111000011
100000000000000100000000000000000000000010000010000000000000000000000
000100000100000000000000000000000001000000000000000000000000000000010
000001000000000000000000000000100000000000111011000011011100010000000
001001111111001111111001000000000001111111111111111111000000000000000
111111111111111000000000000000000000011111100000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000

Anda mungkin juga menyukai