Halo! Kali ini saya akan memberikan tutorial mengenai cara membaca data (read), menuliskan data (write), dan mencari data (search) dengan file binary yang terdapat pada C++ maupun C.

Input/Output Dengan Binary File Pada C++ (Write-Read-Search)

Halo! Kali ini saya akan memberikan tutorial mengenai cara membaca data (read), menuliskan data (write), dan mencari data (search) dengan file binary yang terdapat pada C++ maupun C.

Dalam bahasa pemrograman C++ dapat melakukan operasi file dengan menggunakan metode ifstream, ofstream, dan fstream. Metode ifstream adalah kelas file stream yang memiliki fungsionalitas untuk membaca file. Digunakan pada saat file hanya untuk dibaca saja, tidak untuk ditulis. Sedangkan ofstream adalah sebuah kelas file stream yang memiliki fungsionalitas untuk menulis kedalam file. Digunakan pada saat file hanya untuk ditulis saja, tidak untuk dibaca. Dan fstream adalah sebuah kelas file stream yang memiliki fungsionalitas untuk membaca dan menulis kedalam file. Digunakan pada saat file kedua fungsionalitas membaca dan menulis dibutuhkan.

Pada C++ terdapat fungsi-fungsi untuk operasi file:

ios

Ada beberapa hal yang diperlukan dalam pembuatan program ini:

  1. Membuat struct mahasiswa yang digunakan sebagai data input/output.
  2. Write data
  3. Read data 
  4. Search data

Langsung saja kita buat file main.cpp nya

Langkah pertama adalah membuat struct mahasiswa yang digunakan sebagai data input/output.

typedef struct mahasiswa{
    char nim[10], nama[50];
} mahasiswa;

Selanjutnya buat beberapa variabel yang dibutuhkan dalam pembuatan program ini.

    ifstream fi; // membaca
    ofstream fo; // menulis
    mahasiswa mhs; // tipe mahasiswa
    int n;

Kemudian kita akan melakukan penulisan data ke file binary yang bernama mhs.dat.

    /**
    * kode dibawah ini adalah untuk write data ke dalam file.
    */
    cout << "Masukkan jumlah mahasiswa: ";
    cin >> n;
    fo.open("mhs.dat", ios::binary | ios::app);
    for(int i=1; i<=n; i++){
        cout << "\nMahasiswa " << i;
        cout << "\nNIM: ";
        cin >> mhs.nim;
        cout << "Nama: ";
        cin >> mhs.nama;
        fo.write((char *) &mhs, sizeof(mhs)); // menulis ke file
    }
    fo.close();

Selanjutnya kita akan membaca data dari file.

    /**
    * kode dibawah ini adalah untuk read data dari file.
    */
    fi.open("mhs.dat", ios::binary);
    int j = 1;
    while(fi.read((char *) &mhs, sizeof(mhs))){
        cout << "\nMahasiswa: " << j++;
        cout << "\nNIM: " << mhs.nim;
        cout << "\nNama: " << mhs.nama;
    }
    fi.close();

Yang terakhir, kita akan mencoba mencari data mahasiswa di file binary dengan memasukkan NIM yang diketahui.

    /**
    * kode dibawah ini untuk melakukan searching
    */
    cout << "\nMasukkan nim yang mau dicari: ";
    cin >> carinim;
    fi.open("mhs.dat", ios::binary);
    while(fi.read((char *) &mhs, sizeof(mhs)))
    {
        if(strcmp(mhs.nim, carinim) == 0)
        {
            cout << "\nData Ditemukan: ";
            cout << "\nNIM: " << mhs.nim;
            cout << "\nNama: " << mhs.nama;
        }
    }
    fi.close();

 

Ini dia source code secara keseluruhan:

#include <iostream>
#include <fstream>
#include <conio.h>
#include <string.h>

typedef struct mahasiswa
{
    char nim[10], nama[50];
} mahasiswa;

int main()
{
    ifstream fi; // membaca
    ofstream fo; // menulis
    mahasiswa mhs;
    char carinim[10];
    int n;

    /**
    * kode dibawah ini adalah untuk write data ke dalam file.
    */
    cout << "Masukkan jumlah mahasiswa: ";
    cin >> n;
    fo.open("mhs.dat", ios::binary | ios::app);
    for(int i=1; i<=n; i++)
    {
        cout << "\nMahasiswa " << i;
        cout << "\nNIM: ";
        cin >> mhs.nim;
        cout << "Nama: ";
        cin >> mhs.nama;
        fo.write((char *) &mhs, sizeof(mhs)); // menulis ke file
    }
    fo.close();

    /**
    * kode dibawah ini adalah untuk read data dari file.
    */
    fi.open("mhs.dat", ios::binary);
    int j = 1;
    while(fi.read((char *) &mhs, sizeof(mhs)))
    {
        cout << "\nMahasiswa: " << j++;
        cout << "\nNIM: " << mhs.nim;
        cout << "\nNama: " << mhs.nama;
    }
    fi.close();

    /**
    * kode dibawah ini untuk melakukan searching
    */
    cout << "\nMasukkan nim yang mau dicari: ";
    cin >> carinim;
    fi.open("mhs.dat", ios::binary);
    while(fi.read((char *) &mhs, sizeof(mhs)))
    {
        if(strcmp(mhs.nim, carinim) == 0)
        {
            cout << "\nData Ditemukan: ";
            cout << "\nNIM: " << mhs.nim;
            cout << "\nNama: " << mhs.nama;
        }
    }
    fi.close();
    getch();
    return 0;
}

 

Sekian tutorial singkat dari saya, Let's Rock!


About Author

Adnan w Anadrep


Comment & Discussions

  • Febri Vicky Allen
    kalo hapus file gimana ya...

  • Please LOGIN before if you want to give the comment.