BAHASA C : FILE INPUT DAN OUTPUT


FILE INPUT DAN OUTPUT
1.      MEMBUKA DAN MENUTUP 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:
1
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.
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:
1
2
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.
1
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#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;
}

2.     STANDAR FILE
Pada umumnya, dalam baasa C terdapat 3 “file streams” yang telah tersedia:
·         stdin–standard input untuk membaca.
·         stdout–standard output untuk menulis.
  • stderr–standard error untuk menunjukkan pesan yang error.
standard input (stdin) file stream Terhubung ke keyboard
standard output (stdout) dan the standard error (stderr) file streams mengacu pada tampilan di layar.
Ketika kita menjalankan perintah printf, sebenarnya kita mengirim output tersebut ke file stream stdout yang kemudian memunculkannya ke layar.

3.     FUNGSI INPUT DAN OUTPUT
Input adalah sesuatu data yang kita masukan ke dalam program.
Input biasanya diambil dari perangakat inputan seperti keyboard, mouse, kamera, microphone, dll.
Proses adalah langkah-langkah yang harus dilakukan program untuk menghasilkan output.
Output adalah informasi yang dihasilkan setelah dilakukan proses. Output biasanya ditampilkan ke layar komputer.
Pada bahasa pemrograman C++, terdapat beberapa fungsi dasar untuk menampilkan output dan mengambil input.
C++ memiliki empat fungsi dasar untuk menampilkan output:
  1. cout untuk menampilkan teks ke layar;
  2. cerr untuk menampilkan error;
  3. clog untuk menampilkan log;
  4. printf() untuk menampilkan output, fungsi ini dari C;
Kita akan fokus memabahas yang dua saja, yakni cout dan printf().
Soalnya cerr dan clog, cara pakainya sama seperti cout.
Bedanya sih pada konteks penggunaanya, yakni untuk error dan log.

1. Fungsi cout

Fungsi cout adalah fungsi standar pada C++ untuk menampilkan output ke layar.
Berikut ini struktur dasar fungsi cout:
Setelah simbol << kita bisa menuliskan teks yang akan ditampilkan ke layar.
Teks harus diapit dengan tanda petik dan untuk membuat baris baru bisa menggunakan endl atau simbol \n.
Pembuatan baris baru bersifat opsional, terserah kita mau ditambahkan atau tidak.
Contoh:
cout << "Namaku adalah ";
cout << "Petani kode";
Maka outputnya akan ditampilkan dalam satu baris:
Namaku adalah Petani Kode
Sedangkan kalau kita menggunakan endl atau \n.
cout << "Namaku adalah " << endl;
cout << "Petani kode";
Hasilnya akan ditampilkan dalam dua baris:
Namaku adalah
Petani kode
Apapun setelah simbol << akan ditampilkan ke layar. Jika kita ingin menampilkan variabel, kita bisa menulisnya seperti ini:
string nama = "Petani Kode";
cout << "Hello " << nama << endl;
Hasilnya:
Hello Petani Kode
Buatlah program bernama program_output.cpp, kemudian isi dengan kode berikut:
#include <iostream>
using namespace std;
 
int main(){
 
  cout << "=========== PROGRAM OUTPUT ===========" << endl;
  cout << "Progarm ini adalah program untuk\n";
  cout << "Menampilkan output ke layar komputer.\n";
  cout << "Output sangat penting buat menampilkan\n";
  cout << "informasi kepada user.\n";
  cout << "======================================" << endl;
 
  cout << endl;
  cout << "Program ini dibuat oleh Dian" << endl;
 
  return 0;
}
Coba compile dan jalankan, maka hasilnya:

2. Fungsi printf()

Fungsi printf() merupakan fungsi yang aslinya dari bahasa C, tapi bisa juga dipakai pada C++.
Fungsi printf() merupakan fungsi untuk menampilkan output ke layar komputer.
Fungsi ini terdapat pada library <stdio.h> dan juga <iostream>.
Berikut ini struktur dasar fungsi printf():
Perhatikan:
"format" adalah sebuah teks (string) untuk ditampilkan. Lalu tanda ... akan berisi sebuah variabel atau nilai untuk ditampilkan berdasarkan format yang diberikan pada teks "format".
Mari kita lihat contohnya:
Buatlah sebuah program C++ bernama program_output_printf.cpp, lalu isi dengan kode berikut.
#include <iostream>
using namespace std;
 
int main(){
    printf("Hello, ini adalah teks output\n");
    printf("Nama saya %s\n", "Dian");
    printf("Usia saya %d\n", 20);
    return 0;
}
Hasilnya:
Ada beberapa hal yang perlu di perhatikan…
Pada fungsi printf() kita menggunakan simbol %s, %d, dan \n untuk format teks.
Mari kita bahas arti dari simbol tersebut:
  • %s adalah simbol untuk menampilkan nilai string;
  • %d adalah simbol untuk menampilkan nilai angka atau bilangan desimal;
  • \n adalah simbol untuk membuat baris baru.
Selain tiga simbol tersebut, masih banyak lagi simbol yang lain.
Simbol
Arti atau Fungsi
%c
untuk menampilkan karakter
%s
untuk menampilkan teks (string)
%d, %i
untuk menampilkan bilangan desimal
%f
untuk menampilkan bilangan pecahan
%o
untuk menampilkan bilangan oktal
%x
untuk menampilkan bilangan heksadesimal
\t
untuk membuat tabs

Fungsi Input pada C++

Sementara untuk mengambil input, C++ memiliki fungsi cin dan bisa juga menggunakan scanf() dari bahasa C.

1. Fungsi cin

Fungsi cin (c input) adalah fungsi untuk mengambil input dari keyboard.
Berikut ini bentuk dasar fungsi cin:
Fungsi cin membutuhkan variabel untuk menyimpan data yang diinputkan.
Buatlah program baru bernama program_input.cpp, kemudian isi dengan kode berikut:
#include <iostream>
using namespace std;
 
int main(){
    string nama;
    cout << "Tuliskan nama: ";
    cin >> nama;
 
    cout << "Hi " << nama;
    cout << " elamat datang di club!" << endl;
 
    return 0;
}
Setelah itu, coba compile dan jalankan.
Maka hasilnya:

2. Fungsi scanf()

Fungsi scanf() sebenarnya dari bahasa C, tapi bisa juga digunakan pada C++.
Fungsi scanf() adalah fungsi untuk mengambil input dari keyboard. Fungsi ini memiliki format seperti fungsi printf().
Format yang diberikan tergantung dari jenis tipe data apa yang ingin kita ambil.
Misalnya mau mengambil angka, maka kita bisa pakai %d atau %i.
Mari kita lihat contohnya:
#include <iostream>
using namepsace std;
 
int main () {
    // membuat variabel
    char name[20], web_address[30];
 
    printf("Nama: ");
    scanf("%s", &name);
 
    printf("Alamat web: ");
    scanf("%s", &web_address);
 
    printf("\n------------------------------\n");
    printf("Nama yang diinputkan: %s\n", name);
    printf("Alamat Web yang diinputkan: %s\n", web_address);
   
    return 0;
}
Hasilnya:
Tapi saat kita menginputkan teks yang mengandung spasi, hasilnya akan dipecah menjadi dua seperti ini:
Untuk mengatasi masalah ini, kita bisa ubah format yang digunakan pada scanf() menjadi seperti ini:
printf("Nama: ");
scanf("%[^\n]s", name);
Maka fungsi scanf() akan menerima spasi.
Dalam menggunakan scanf(), kita dianjurkan menggunakan simbol & sebelum nama variabel.
Contoh:
#include <stdio.h>
 
void main(){
 
    int a, b, c;
 
    printf("Inputkan nilai a: ");
    scanf("%i", &a);
 
    printf("Inputkan nilai b: ");
    scanf("%i", &b);
 
    c = a + b;
 
    printf("Hasil a + b: %i", c);
 
}
Simbol & berfungsi untuk mengambil alamat memori dari sebuah variabel.
Fungsi scanf() membutuhkan tempat untuk menyimpan nilai yang akan diinputkan.
Karena itu kita memberikan simbol & di depan nama variabel untuk menentukan alamat memori yang akan digunakan oleh scanf().



Sumber:


Komentar

Postingan populer dari blog ini

BAHASA PEMROGRAMAN C

Manfaat Kulit Manggis Untuk Kesehatan dan Kecantikan

TARI THENGUL, TARI DAERAH DARI BOJONEGORO