fopen()

Membuka file dalam C

Fungsi fopen() digunakan untuk membuka file dan mengembalikan pointer ke file (FILE *) yang akan digunakan untuk operasi file selanjutnya.

Sintaks

FILE *fopen(const char *filename, const char *mode);
  • filename âžœ Nama file yang ingin dibuka.

  • mode âžœ Mode akses file (r, w, a, dll.).

  • Mengembalikan FILE * jika berhasil, atau NULL jika gagal.

Mode Akses File

Mode
Keterangan

"r"

Membuka file untuk membaca (harus ada file-nya).

"w"

Membuka file untuk menulis (jika ada, akan dihapus; jika tidak ada, akan dibuat).

"a"

Membuka file untuk menambahkan (append) di akhir (jika tidak ada, dibuat).

"r+"

Membuka file untuk membaca dan menulis tanpa menghapus isinya.

"w+"

Membuka file untuk membaca dan menulis, tetapi menghapus isinya jika ada.

"a+"

Membuka file untuk membaca dan menulis, menulis hanya bisa di akhir file.

Contoh Penggunaan

1. Membuka file untuk membaca ("r")

#include <stdio.h>

int main() {
    FILE *file = fopen("data.txt", "r");

    if (file == NULL) {
        printf("File tidak ditemukan!\n");
        return 1;
    }

    printf("File berhasil dibuka untuk membaca!\n");

    fclose(file);
    return 0;
}

Hasilnya:

# Jika file ditemukan
File berhasil dibuka untuk membaca!

# Jika file tidak ditemukan
File tidak ditemukan!
  • Jika data.txt ada, file dibuka untuk membaca.

  • Jika tidak ada, fopen() mengembalikan NULL, dan program menangani error.

  • fclose(file) menutup file setelah selesai digunakan.

2. Membuka file untuk menulis ("w")

#include <stdio.h>

int main() {
    FILE *file = fopen("data.txt", "w");

    if (file == NULL) {
        printf("Gagal membuka file!\n");
        return 1;
    }

    printf("File berhasil dibuka untuk menulis!\n");

    fclose(file);
    return 0;
}

Hasilnya:

File berhasil dibuka untuk menulis!
  • Jika data.txt sudah ada, isinya akan dihapus.

  • Jika data.txt belum ada, file baru akan dibuat.

3. Membuka file untuk menambahkan ("a")

#include <stdio.h>

int main() {
    FILE *file = fopen("data.txt", "a");

    if (file == NULL) {
        printf("Gagal membuka file!\n");
        return 1;
    }

    printf("File berhasil dibuka untuk menambahkan!\n");

    fclose(file);
    return 0;
}
  • Mode "a" tidak menghapus isi file, tetapi menulis di akhir file.

4. Membuka file untuk membaca dan menulis ("r+", "w+", "a+")

#include <stdio.h>

int main() {
    FILE *file = fopen("data.txt", "r+");

    if (file == NULL) {
        printf("File tidak ditemukan!\n");
        return 1;
    }

    printf("File berhasil dibuka untuk membaca dan menulis!\n");

    fclose(file);
    return 0;
}
  • Mode "r+" membutuhkan file sudah ada. Jika tidak ada, fopen() mengembalikan NULL.

  • Mode "w+" menghapus isi file sebelum menulis ulang.

  • Mode "a+" menulis hanya bisa di akhir file, tetapi tetap bisa membaca.

5. Menangani error saat membuka file

Jika fopen() gagal membuka file, kita harus menangani error agar program tidak crash.

#include <stdio.h>

int main() {
    FILE *file = fopen("tidak_ada.txt", "r");

    if (file == NULL) {
        perror("Error membuka file");
        return 1;
    }

    fclose(file);
    return 0;
}
  • perror("Error membuka file") akan mencetak pesan error standar dari sistem operasi.

Last updated