Lompat ke konten Lompat ke sidebar Lompat ke footer

File Handling Bahasa C dan Penjelasannya

Sejauh ini operasi yang menggunakan program bahasa C dapat diselesaikan dengan bantuan proses prompt atau terminal yang hasilnya tidak disimpan pada direktori manapun pada komputer. Namun pada industri perangkat lunak, sebagian besar program bahasa C telah ditulis digunakan untuk menyimpan informasi yang berasal dari suatu program. Salah satu cara untuk menyimpan informasi tersebut adalah dengan menggunakan program pengolah file atau dokumen.


File Handling Bahasa C dan Penjelasannya
File Handling Bahasa C dan Penjelasannya

Sebelum memahami lebih dalam materi tentang File Handling Bahasa C dan Penjelasannya, terlebih dahulu pelajari materi tentang: Fungsi FGETS dan GETS Bahasa C dan Penjelasannya [klik], Read dan Write Struktur File Bahasa C [klik], dan Fungsi FOPEN Bahasa C untuk File dalam Mode Penulisan [klik].

Berikut akan ditampilkan beberapa cara operasi file dengan menggunakan bahasa pemrograman C:
  • Menciptakan file baru, dengan menggunakan fungsi fopen yang disertai atribut "a", "a+", "w", atau "w++".
  • Membuka file yang sudah ada, dengan menggunakan fungsi fopen.
  • Membaca data yang terdapat dalam file, dengan menggunaakn fungsi fscanf atau fungsi fgets.
  • Menulis data ke sebuah file, dengan menggunakan fungsi fprintf atau fputs.
  • Bergerak ke lokasi spesifik dalam sebuah file, dengan menggunakan fungsi fseek atau fungsi rewind.
  • Menutup sebuah file, dengan menggunakan fungsi fclose.

Catatan: Teks yang terdapat dalam tanda kurung menunjukkan fungsi yang digunakan untuk melakukan operasi file pada bahasa C.


Fungsi untuk Membuka dan Menciptakan File
Untuk membuka sebuah file, fungsi fopen digunakan untuk mengakses mode tersebut. Beberapa bentuk atribut yang biasa digunakan bersamaan dengan fungsi fopen adalah sebagai berikut.

Mode File opening Bahasa C:
  • "r" – Melakukan pencarian file; dimana jika sebuah file terlah berhasil dibuka dengan menggunakan fungsi fopen(), maka file tersebut akan ditunjuk menggunakan pointer ke dalam lokasi memorinya, dan pointer tersebut akan mengarah pada karakter pertama yang terdapat di dalam file. Jika file yang dituju tidak dapat dibuka menggunakan fungsi fopen(), maka akan mengembalikan nilai NULL.
  • "rb" – Melakukan mode pembacaan data biner pada file. Jika file yang dicari tidak ada, maka fungsi fopen() akan mengembalikan nilai NULL.
  • "w" – Melakukan pencarian file, dimana jika file yang dicari telah ditemukan, maka konten pada file tersebut akan dilakukan overwritten. Namun, jika file yang dicari tidak ditemukan, maka sebuah file baru akan diciptakan. JIka file yang telah diciptakan atau ditemukan tersebut tidak dapat dibuka, maka akan dikembalikan nilai NULL.
  • "wb" – Membuka file untuk menulis konten biner. Jika file yang dibuka ditemukan, selanjutnya akan dilakukan overwritten pada konten file. Namun, jika file tidak ditemukan, maka file baru akan diciptakan.
  • "a" – Melakukan pencarian file. Jika file berhasil dibuka menggunakan fungsi fopen(), maka akan dilakukan loading ke dalam memori, dan akan diberikan pointer yang akan menuju ke karakter terakhir dari konten yang terdapat dalam file tersebut. Jika file yang dicari tidak ditemukan, maka sebuah file baru akan diciptakan. Jika file yang telah dicari atau diciptakan tidak dapat dibuka, maka fungsi akan mengembalikan nilai NULL.
  • "ab" – Membuka file untuk melakuka penambahan data dalam mode biner. Data akan ditambahkan ke bagian akhir dari konten file. Jika file yang akan dilakukan penambahan tidak ditemukan, maka file baru akan diciptakan pada bagian direktori penyimpanan komputer.
  • "r+" – Memcari file dalam direktori penyimpanan atau komputer. Jika file yang dicari telah berhasil ditemukan menggunakan fungsi fopen(), maka akan diciptakan pointer yang akan menunjuk ke karakter pertama pada konten file tersbeut. Jika file yang dibuka tersebut tidak ditemuka, maka akan dikembalikan nilai NULL oleh fungsi fopen().
  • "rb+" – Membukan file untuk mode reading dan writing data biner. Jika file yang akan dibuka tidak ditemukan, maka fungsi fopen() akan mengembalikan nilai NULL.
  • "w+" – Melakukan pencarian file. Jika file yang dicari telah ditemukan, maka konten akan dilakukan overwritten. Namun, jika file yang dicari tidak ditemukan, maka file baru akan diciptakan, dan akan mengembalikan nilai NULL, jika file yang telah dicari atau diciptakan tersebut tidak dapat dibuka isi kontennya.
  • "wb+" – Membuka file untuk mode reading dan writing data biner. Jika file yang dicari telah ditemukan, maka konten file tersebut akan dilakukan overwritten. Jika file yang dicari tidak ditemukan, maka akan diciptakan file baru.
  • "a+" – Melakukan pencarian file. Jika file yang dicari telah berhasil dibuka menggunakan fungsi fopen(), maka file tersebut akan ditunjuk menggunakan pointer ke bagian karakter akhir dari konten file tersebut. Jika file yang dicari tidak ditemukan, maka sebuah file baru akan diciptakan, dimana selanjutnya akan dikembalikan nilai NULL, jika file yang telah dicari atau diciptakan tersebut tidak dapat dibuka isi kontennya.
  • "ab+" – Buka file dalam mode reading dan appending data biner. Jika file yang dibuka atau dicari tersebut tidak ditemukan, maka file baru akan diciptakan pada direktori penyimpanan komputer.

Seperti yang telah dijelaskan sebelumnya, jika ingin dilakukan suatu bentuk operasi file dalam mode biner, maka user harus melakukan append 'b' pada bagian akhir dari isi konten. Contoh, ketimbang melakuka operasi "w" pada file, user dapat langsung melakukan operasi "wb". Tidak hanya itu, ketimbang melakukan operasi "a+" pada file, user dapat melakukan operasi "a+b" pada file. Untuk melakukan jenis operasi tertentu pada file, maka sebuah pointer khusus akan dipanggil dan digunakan dalam proses deklarasinya.

FILE *filePointer;

Jadi, sebuah file dapat dibuka dengan sintak sebagai berikut:
filePointer = fopen("fileName.txt", "w")

Catatan: parameter kedua pada sintak ("w") dapat diganti dengan atribut lain yang terdapat pada operasi fungsi fopen().

Mode Reading File Bahasa C:
Operasi read atau baca file dapat dilakukan pada bahasa C, dengan menggunakan fungsi fscanf atau fgets. Kedua fungsi tersebut, akan menampilkan bentuk operasi yang sama seperti operasi scanf dan gets, namun dengan penambahan parameter dan file pointer. jadi, fungsi baca file adalah fungsi yang bergantung pada keinginan user untuk membaca file baris per baris atau karakter per karakter.

Berikut adalah contoh kutipan kode program untuk membaca file menggunakan program bahasa C:
FILE * filePointer;
filePointer = fopen("fileName.txt", "r");
fscanf(filePointer, "%s %s %s %d", str1, str2, str3, &year);


Mode Writing File Bahasa C:
Mode penulisan atau writing file pada bahasa C dapat dilakukan dengan menggunakan fungsi fprintf dan fputs, yang memiliki kesamaan seperti operasi read.

Berikut adalah contoh kutipan kode program untuk menulis file menggunakan program bahasa C:
FILE *filePointer ;
filePointer = fopen("fileName.txt", "w");
fprintf(filePointer, "%s %s %s %d", "We", "are", "in", 2012);


Mode Close File Bahasa C:
Seteleh semua proses operasi file berhasil dijalankan, maka hal selanjutnya yang harus dilakukan adalah menutup file yang sedang digunakan tersebut. Untuk menutup file, maka dapat dilakukan dengan bantuan fungsi fclose().

Berikut adalah contoh kutipan kode program untuk menutup file menggunakan program bahasa C:
FILE *filePointer ;
filePointer= fopen("fileName.txt", "w");
/* Proses operasi tertentu pada file */
fclose(filePointer);


Contoh: Program untuk membuka sebuah file, dan menutup file bahasa C.

// Program Bahasa C untuk

// membuka file, menulis isi

// koten file, dan menutup

// file.

# include <stdio.h>

# include <string.h>


int main( )

{


// Deklarasi file pointer.

FILE *filePointer;


// Mendapatkan data untuk

// ditulis ke dalam file.

char dataToBeWritten[50]

= "Selamat datang dirumah

 makan nasi pandang.";


// Membuka file yang tersedia

// TeksTest.c menggunakan

// fungsi fopen() dalam mode

// menulis menggunakan atribut

// "w".

filePointer = fopen("TeksTest.c", "w") ;


// Memeriksa apakah

// filePointer bernilai null

// atau tidak, atau mungkin

// saja file yang dicari tidak

// tersedia.

if ( filePointer == NULL )

{

printf( "TeksTest.c file

 failed to open." ) ;

}


else

{

printf("The file is now

 opened.\n") ;


// Menulis dataToBeWritten ke

// dalam file.

if ( strlen ( dataToBeWritten ) > 0 )

{

// Menulis data menggunakan

// fungsi fputs().

fputs(dataToBeWritten, filePointer) ;

fputs("\n", filePointer) ;

}


// Menutup file menggunakan

// fungsi fclose().

fclose(filePointer) ;


printf("Data successfully

 written in file

 TeksTest.c\n");


printf("The file is now

 closed.") ;

}



return 0;

}


Contoh: Program untuk membuka sebuah file, membaca isi file, dan menutup file.

// Program Bahasa C untuk

// membuka file, membaca isi

// file, dan menutup file.

# include <stdio.h>

# include <string.h>


int main( )

{


// Deklarasi file pointer.

FILE *filePointer;


// Deklarasi variabel untuk

// membaca isi data dari suatu

// file.

char dataToBeRead[50];


// Membuka file TeksTest.c

// menggunakan fungsi fopen()

// dalam mode baca dengan

// menggunakan atribut "r".

filePointer = fopen("TeksTest.c", "r") ;


// Memeriksa jika file

// filePointer adalah bernilai

// null, yang mengindikasikan

// bahwa file tidak ada.

if ( filePointer == NULL )

{

printf( "TeksTest.c file

 failed to open." ) ;

}


else

{

printf("The file is now

 opened.\n") ;


// Membaca dataToBeRead dari

// file menggunakan fungsi

// fgets().

while( fgets ( dataToBeRead, 50, filePointer ) != NULL )

{


// Mencetak nilai dataToBeRead

printf( "%s" , dataToBeRead ) ;

}


// Menutup file menggunakan

// fungsi fclose().

fclose(filePointer) ;


printf("Data successfully read

 from file ELFTest.c\n");


printf("The file is now

 closed.") ;

}



return 0;

}


Contoh: Program untuk menulis konten pada file menggunakan fungsi fwrite().

#include <stdio.h>

#include <stdlib.h>


struct threeNum

{

int n1, n2, n3;

};


int main()

{

int n;

struct threeNum num;


FILE *fptr;


if ((fptr = fopen("C:\\program.bin","wb")) == NULL){

printf("Error! opening file");


// Program keluar, jika

// pointer file mengembalikan

// nilai NULL.

exit(1);

}


for(n = 1; n < 5; ++n)

{

num.n1 = n;

num.n2 = 5*n;

num.n3 = 5*n + 1;


fwrite(&num, sizeof(struct threeNum), 1, fptr);

}


fclose(fptr);


return 0;

}


Contoh: Program untuk membaca isi file menggunakan fungsi fread().

#include <stdio.h>

#include <stdlib.h>


struct threeNum

{

int n1, n2, n3;

};


int main()

{

int n;

struct threeNum num;


FILE *fptr;


if ((fptr = fopen("C:\\program.bin","rb")) == NULL){

printf("Error! opening file");


// Program keluar, jika file

// pointer mengembalikan nilai

// NULL.

exit(1);

}


for(n = 1; n < 5; ++n)

{

fread(&num, sizeof(struct threeNum), 1, fptr);


printf("n1: %d\tn2: %d\tn3: %d", num.n1, num.n2, num.n3);

}


fclose(fptr);


return 0;

}


Referensi Tambahan:

Artikel ini didedikasikan kepada: Lovioleta Rifani Putri AzzahraLuqman Nur AlifLutfiatur RohmahMaerena Tia Amanda, dan Maulidya Al-Frida.

6 komentar untuk "File Handling Bahasa C dan Penjelasannya"

  1. Apa yang dimaksud dengan file handling atau penanganan file pada bahasa C?

    BalasHapus
    Balasan
    1. File handling atau penanganan file pada bahasa C adalah proses yang mengacu pada metode penyimpanan data dalam program Bahasa C berbentuk output atau input yang mungkin dihasilkan ketika program bahasa C dijalankan dalam file data, yaitu berupa file biner atau file teks untuk proses analisis dan referensi dimasa yang akan datang.

      Hapus
    2. Penanganan File Bahasa C atau file handling merupakan proses penyimpanan data dalam file menggunakan program bahasa C.

      Hapus
    3. Dalam pemrograman C, program akan menyimpan hasil, dan data program alinnya ke file menggunakan file handling C, tidak hanya itu user juga dapat mengekstrak atau mengambil data dari file untuk digunakan pada program yang sedang dijalankan.

      Hapus
  2. Apa saja proses yang dapat dilakukan pada file handling bahasa C?

    BalasHapus
    Balasan
    1. Beberapa proses yang dapat dilakukan menggunakan file handling bahasa C adalah membuat file baru, membuka file yang sudah ada, menulis data ke file, membaca data dari file yang sudah ada, memindahkan data ke lokasi tertentu pada file, dan menutup file.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -