Penjelasan dan Cara Input Output Berbentuk File

Written by: Fajar   |   Updated on: September 29, 2019
Input Output File

Sebelumnya kita sudah sering melakukan input output berupa karakter di layar menggunakan fungsi cout dan cin yang disediakan oleh pustaka iostream. Tapi bukan hanya itu, pada bahasa pemrograman C/C++ juga menyediakan pustaka yang berfungsi untuk melakukan tugas Input dan Output berupa sebuah file, seperti:

  • ofsteam: Merupakan sebuah tipe data output yang memungkinkan kita untuk melakukan pembuatan dan menulis informasi pada file.
  • ifstream: Merupakan sebuah tipe data input yang memungkinkan kita melakukan pembacaan informasi dari file.
  • fstream: Merupakan sebuah tipe data input output file yang memungkinkan kita untuk melakukan kedua hal tersebut, seperti membuat, menulis dan membaca informasi dari file.

Membuka File

Untuk dapat melakukan input output yang diterapkan kepada file fisik, kita membutuhkan pengait, hal itu disebut sebagai “open file” atau membuka file. Untuk memberikan perintah membuka file dengan obyek steam, kita menggunakan function seperti di bawah ini.

Bentuk penulisan:

open(namafile, mode);

Keterangan:

namafile:
merupakan tempat dimana sebuah argumen untuk menuliskan nama dari sebuah file yang akan di buka.
mode:
adalah sebuah tempat dimana kita dapat mengisikan banyak flag sebagai argumen untuk mendefinisikan jenis mode dalam menangani file tersebut.

Di bawah ini adalah macam-macam flag yang dapat digunakan untuk mendefinisikan mode pada operasi sebuah file:

ios::in Untuk mendefinisikan pembukaan file sebagai sebuah operasi pembacaan (input)
ios::out Untuk mendefinisikan pembukaan file sebagai sebuah operasi penulisan (output)
ios::binary membuka file dalam mode binari
ios::ate Membuka sebuah file dan memindahkan kendali input dan output pada akhir dari file, jika tidak maka kendali akan berada pada awal file.
ios::app Mode penambahan, setiap penambahan tulisan akan ditambahkan pada akhir file.
ios::trunc Jika file sudah ada, maka akan digantikan sepenuhnya sebelum proses membuka file.
Baca :   Sejarah Bahasa Pemrograman C++

Dari macam-macam flag yang disebutkan di atas, kita dapat mengkombinasikan lebih dari satu atau bahkan semuanya. Untuk penulisanya setiap flag akan dipisahkan dengan tanda |.

Contoh penulisan:

ofstream fileku;
fileku.open("filenya.txt ", ios::out | ios::in | ios::app | ios::trunc);

Menutup File

Ketika kita selesai dalam melakukan operasi dan berurusan dengan file tersebut, maka disarankan untuk menutupnya. Ketika penutupan file dilakukan maka object dapat digunakan kembali untuk membuka file lainnya dan untuk file yang sudah ditutup maka akan tersedia unuk dibuka pada proses lainnya.

fileku.close();

Menulis ke sebuah file

Untuk melakukan penulisan terhadap sebuah file yang telah kita buka, membutuhkan sebuah operator yang dinamakan Stream Insertion Operator << mirip seperti apa yang kita lakukan saat menggunakan obyek cout, sebagai gantinya kita di sini menggunakan ofstream atau fstream.

Membaca sebuah file

Untuk membaca informasi dari sebuah file yang telah kita buka kedalam program kita, membutuhkan sebuah Sream Extraction Operator >> . Mirip seperti apa yang kita lakukan saat menggunakan obyek cin. Sebagai gantinya kita menggunakan ifstream atau fstream.

Contoh Operasi File (Membuka, Menulis, Membaca dan Menutup File)

Setelah semua penjelasan di atas, saatnya kita melakukan percobaan membuat program untuk melakukan operasi file. Alur operasi sebuah file masih sama seperti penjeasan di atas, dimana kita harus membuka file terlebih dahulu, melakukan operasi seperti menulis dan membaca informasi dan jika sudah selesai kita akan melakukan penutupan file.

Contoh program:

#include <fstream>
#include <iostream>
using namespace std;

int main () {
    string baris;

    // membuka file dalam mode menulis.
    ofstream outfile;
    // menunjuk ke sebuah nama file
    outfile.open("contohfile.txt");

    cout << ">= Menulis file, \'q\' untuk keluar" << endl;

    //unlimited loop untuk menulis
    while(true){
        cout << "- ";
        //mendapatkan setiap karakter dalam satu baris
        getline(cin, baris);
        //loop akan berhenti jika anda memasukan karakter q
        if(baris == "q") break;
        // menulis dan memasukan nilai dari 'baris' ke dalam file
        outfile << baris << endl;
    }
    //selesai dalam menulis sekarang tutup filenya
    outfile.close();

    //Membuka file dalam mode membaca
    ifstream infile;
    //menunjuk ke sebuah file
    infile.open("contohfile.txt");

    cout << endl << ">= Membuka dan membaca file " << endl;
    //jika file ada maka
    if (infile.is_open())
    {
        //melakukan perulangan setiap barus
        while ( getline (infile,baris) )
        {
            //dan tampilkan di sini
            cout << baris << '\n';
        }
        //tutup file tersebut setelah selsai
        infile.close();
    }
    //jika tidak ditemukan file maka akan menampilkan ini
    else cout << "Unable to open file";
    return 0;
}

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *