Lompat ke konten Lompat ke sidebar Lompat ke footer

Read dan Write Struktur File Bahasa C

Untuk menulis konten pada file bahasa C, jauh lebih mudah untuk membuat string atau int ke file dengan menggunakan fprintf dan putc, tetapi hal tersebut mungkin akan mengakibatkan suatu kesulitan ketika hal tersebut dilakukan untuk menulis konten dari tipe struct, dan untuk mengatasi hal tersebut maka dapat menggunakan bantuan fwrite dan fread dari suatu blok data.


Sebelum memahami materi tentang Read dan Write Struktur File Bahasa C, terlebih dahulu pelajari materi tentang: Fungsi FSEEK dan REWIND Bahasa C dan PenjelasannyaEOF Bahasa C Menggunakan GETC dan FEOF Beserta Penjelasannya, dan Fungsi FOPEN Bahasa C untuk File dalam Mode Penulisan.

fwrite: Berikut adalah bentuk deklarasi dari fungsi fwrite.

size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)

Keterangan:
  • ptr - adalah pointer ke array dari elemen yang akan dibuat.
  • size - adalah ukuran dalam satuan byte untuk setiap elemen yang akan dibuat.
  • nmemb - adalah angka dari elemen, yang mewakili nilai dari setiap ukuran byte.
  • stream - adalah pointer ke sebuah objek FILE yang menentukan nilai ouput stream.

Contoh:

// Program bahasa C untuk

// membuat struct ke file

#include <stdio.h>

#include <stdlib.h>

#include <string.h>


// Struct untuk read dan write

struct person

{

int id;

char fname[20];

char lname[20];

};


int main ()

{

FILE *outfile;


// open file untuk membuat

// dokumen

outfile = fopen ("person.dat", "w");


if (outfile == NULL)

{

fprintf(stderr, "\nError opened file\n");

exit (1);

}


struct person input1 = {1, "rohan", "sharma"};

struct person input2 = {2, "mahendra", "dhoni"};


// Membuat struct ke file

fwrite (&input1, sizeof(struct person), 1, outfile);


fwrite (&input2, sizeof(struct person), 1, outfile);


if(fwrite != 0)

printf("contents to file

 written successfully !\n");


else

printf("error writing file !\n");


// close file

fclose (outfile);


return 0;

}

Output:
gcc demowrite.c
./a.out
contents to file written successfully!


fread: Berikut adalah deklarasi dari penggunaan fungsi fread.

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)

Keterangan:
  • ptr - adalah pointer ke sebuah blok memori dengan sebuah ukuran minimum dari ukuran byte size*.
  • size - adalah ukuran dalam satuan byte untuk setiap elemen yang akan dibaca.
  • nmemb - adalah angka dari setiap elemen, dimana setiap nilai diwakili dalam ukuran byte.
  • stream - adalah pointer ke sebuah objek FILE yang digunakan untuk menentukan input stream.

Contoh:

// Program bahasa C untuk

// membaca struct dari sebuah

// file

#include <stdio.h>

#include <stdlib.h>


// struct person dengan tiga

// fields

struct person

{

int id;

char fname[20];

char lname[20];

};


// Driver program

int main ()

{

FILE *infile;

struct person input;


// Open person.dat untuk

// membaca file

infile = fopen ("person.dat", "r");


if (infile == NULL)

{

fprintf(stderr, "\nError opening file\n");

exit (1);

}


// Membaca konten file sampai

// bagian akhir dari file

while(fread(&input, sizeof(struct person), 1, infile))


printf ("id = %d name = %s %s\n", input.id,

input.fname, input.lname);


// close file

fclose (infile);


return 0;

}

Output:
gcc demoread.c
./a.out
id = 1 name = rohan sharma
id = 2 name = mahendra dhoni


Bahasa C menawarkan berbagai kemampuan dalam pengolahan file, baik itu untuk membaca (read) maupun menulis (write) data. Kemampuan ini sangat penting, karena dalam banyak aplikasi pemrograman, file digunakan untuk menyimpan data yang perlu diakses atau diproses lebih lanjut. Dalam konteks ini, struktur file menjadi salah satu konsep utama yang sering digunakan. Struktur file memungkinkan pengelolaan data yang lebih terstruktur, sehingga data dapat disimpan, dibaca, dan diproses dengan cara yang efisien dan terorganisir. Artikel ini akan mengulas mengenai proses pembacaan dan penulisan struktur file dalam bahasa C secara mendalam, tanpa menyertakan kode program, namun tetap memberikan gambaran jelas tentang konsep dan penerapannya.

Struktur file merujuk pada cara data disusun dalam sebuah file. File bisa berisi data dalam berbagai format, mulai dari teks biasa hingga data biner yang lebih kompleks. Dalam bahasa C, file diakses dengan menggunakan berbagai fungsi standar yang memungkinkan interaksi dengan file tersebut. Fungsi ini dapat dibagi menjadi dua kategori utama, yaitu fungsi untuk membaca dan menulis data ke dalam file. Pembacaan data dari file sering kali dilakukan untuk memanipulasi data yang telah disimpan sebelumnya, sementara penulisan data digunakan untuk menyimpan hasil pemrosesan atau output yang dihasilkan oleh program.

Proses pembacaan data dari file dalam bahasa C melibatkan beberapa langkah dasar. Pertama-tama, file harus dibuka dengan menggunakan fungsi yang sesuai. Pembukaan file ini memungkinkan program untuk mengakses file tersebut. File dapat dibuka dalam mode tertentu, seperti mode baca, mode tulis, atau mode gabungan (baca dan tulis). Setelah file dibuka, data dapat dibaca dari file dengan menggunakan fungsi yang memungkinkan pembacaan data, baik per karakter, per baris, atau bahkan seluruh isi file sekaligus. Pembacaan file bisa dilakukan dalam bentuk teks atau biner, tergantung pada jenis file yang sedang diproses. Untuk file teks, pembacaan dilakukan berdasarkan karakter, sedangkan untuk file biner, pembacaan dilakukan dalam bentuk blok data yang lebih besar.

Selain itu, penting untuk memperhatikan cara data dibaca. Ketika file dibaca, data akan diproses sesuai dengan format yang telah ditentukan. Misalnya, jika file berisi data angka, pembacaannya perlu disesuaikan dengan tipe data yang sesuai. Dalam hal ini, penggunaan pointer dan alokasi memori yang tepat menjadi kunci agar data dapat diproses dengan benar. Kesalahan dalam pembacaan file bisa menyebabkan data yang salah dibaca atau bahkan kerusakan pada struktur file itu sendiri. Oleh karena itu, penting untuk selalu memeriksa apakah file berhasil dibuka dengan benar dan apakah data yang dibaca sesuai dengan format yang diinginkan.

Setelah data selesai dibaca, file harus ditutup untuk memastikan bahwa sumber daya yang digunakan untuk membuka file tersebut dibebaskan. Proses penutupan file ini juga mencegah kemungkinan terjadinya kerusakan data atau kehilangan data yang belum disimpan. Fungsi penutupan file ini menjadi tahap akhir dalam proses pembacaan file. Dalam aplikasi yang lebih kompleks, setelah data dibaca, bisa saja dilakukan manipulasi atau pengolahan data sebelum akhirnya menyimpan hasilnya ke dalam file baru atau file yang sama.

Di sisi lain, proses penulisan data ke dalam file juga merupakan bagian penting dalam pengolahan file. Penulisan data ke file memungkinkan penyimpanan hasil dari program atau data yang perlu diproses di kemudian hari. Seperti halnya dengan pembacaan file, penulisan file dalam bahasa C juga dimulai dengan membuka file terlebih dahulu. File dapat dibuka dalam mode tulis, yang berarti jika file sudah ada, isinya akan dihapus dan digantikan dengan data baru yang akan ditulis. Jika file belum ada, maka file baru akan dibuat.

Setelah file dibuka dalam mode tulis, program dapat menuliskan data ke dalam file tersebut. Penulisan data ke dalam file dapat dilakukan secara bertahap, baik itu per karakter, per baris, atau dalam bentuk blok data yang lebih besar. Penulisan data dalam bentuk teks atau biner memiliki pendekatan yang berbeda. Untuk file teks, data ditulis dalam bentuk karakter yang dapat dibaca oleh manusia, sementara untuk file biner, data ditulis dalam bentuk blok yang lebih kompleks dan tidak dapat dibaca langsung. Dalam kasus penulisan file biner, sangat penting untuk memperhatikan ukuran dan format data yang akan ditulis, karena kesalahan dalam menulis data biner bisa menyebabkan korupsi file atau kesalahan pemrosesan data di masa depan.

Penting untuk diingat bahwa setelah selesai menulis data ke dalam file, file harus segera ditutup. Penutupan file ini sangat penting karena memastikan bahwa semua data yang telah ditulis disimpan dengan benar dan bahwa file dapat diakses kembali di lain waktu tanpa kehilangan data. Selain itu, penutupan file juga membantu menghindari potensi masalah yang dapat timbul dari sumber daya sistem yang terbuka.

Salah satu aspek yang tidak kalah penting dalam membaca dan menulis file adalah pengelolaan kesalahan. Pembacaan atau penulisan file bisa gagal karena berbagai alasan, seperti file yang tidak ditemukan, kesalahan izin akses, atau masalah perangkat keras. Oleh karena itu, sangat penting untuk memeriksa apakah file berhasil dibuka atau tidak. Selain itu, fungsi yang digunakan untuk membaca dan menulis file biasanya mengembalikan nilai yang dapat digunakan untuk memeriksa apakah operasi tersebut berhasil atau gagal. Dengan menggunakan mekanisme pengecekan kesalahan ini, program dapat menangani situasi yang tidak terduga dengan lebih baik dan memberikan umpan balik yang sesuai kepada pengguna atau sistem yang lebih besar.

Pengelolaan file dalam bahasa C juga mencakup penggunaan pointer dan buffer untuk membaca dan menulis data. Buffering digunakan untuk meningkatkan kinerja operasi baca dan tulis, karena memungkinkan data dibaca atau ditulis dalam blok yang lebih besar. Tanpa buffering, setiap operasi baca atau tulis akan dilakukan satu per satu, yang bisa sangat lambat terutama untuk file besar. Oleh karena itu, banyak program menggunakan teknik buffering untuk mengoptimalkan kinerja ketika bekerja dengan file, baik dalam operasi baca maupun tulis.

Selain itu, dalam aplikasi yang lebih kompleks, sering kali diperlukan penggunaan struktur data yang lebih kompleks untuk menyimpan data yang dibaca atau ditulis dari file. Dalam hal ini, pointer dan alokasi memori dinamis menjadi sangat penting. Menggunakan struktur data yang tepat untuk menyimpan data dari file tidak hanya membantu mengorganisir data dengan lebih baik, tetapi juga mengurangi kemungkinan terjadinya kesalahan dalam pengolahan data tersebut.

Bekerja dengan file dalam bahasa C juga menuntut pemahaman tentang tipe data yang digunakan untuk menyimpan informasi terkait file. Struktur file itu sendiri bisa berbeda-beda tergantung pada jenis file yang sedang diakses. File teks biasanya hanya berisi karakter atau string, sedangkan file biner bisa berisi data dalam berbagai format yang lebih kompleks. Oleh karena itu, pemahaman yang baik tentang tipe data dan bagaimana data tersebut disusun dalam file sangat penting untuk proses pembacaan dan penulisan yang efektif.

Secara keseluruhan, kemampuan untuk membaca dan menulis struktur file dengan bahasa C memberikan fleksibilitas dan kekuatan besar dalam pengelolaan data. Dari aplikasi sederhana hingga sistem yang lebih kompleks, pengelolaan file menjadi bagian integral dari pemrograman dalam bahasa C. Dengan memahami konsep dasar seperti pembukaan dan penutupan file, proses pembacaan dan penulisan data, serta pengelolaan kesalahan, program yang dibuat bisa lebih andal dan efisien. Oleh karena itu, penguasaan teknik ini sangat penting bagi siapa pun yang bekerja dengan data dalam bahasa C.

Artikel ini akan dibaca oleh: Iva Rahma NurfadillaIzyar AfrizaJaler Cahya FairuzJessica Juliana Patenu, dan Juan Zerlinda Elvarettha.

6 komentar untuk "Read dan Write Struktur File Bahasa C"

  1. Apa yang dimaksud dengan fungsi fprintf() pada Bahasa C?

    BalasHapus
    Balasan
    1. Fungsi fprintf() pada Bahasa C adalah fungsi yang dikenal sebagai fungsi cetak format.

      Hapus
    2. Fungsi fprintf() merupakan fungsi yang digunakan untuk menulis dan memformat output ke dalam suatu stream.

      Hapus
    3. Fungsi fprintf() digunakan untuk mencetak sebuah pesan tetapi pesant tersebut tidak terdapat pada konsol absolut.

      Hapus
  2. Apa yang dimaksud dengan fungsi putc() pada Bahasa C?

    BalasHapus
    Balasan
    1. Fungsi putc() pada Bahasa C adalah fungsi yang digunakan untuk mengonversi C menjadi unsigned char dan kemudian menulis c tersebut ke dalam suatu stream output pada posisi saat ini.

      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 -