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 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:
cout
untuk menampilkan teks ke layar;cerr
untuk menampilkan error;clog
untuk menampilkan log;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
Posting Komentar