Anda di halaman 1dari 19

MODUL VII

FILE

A. Tujuan Praktikum
1. Mahasiswa dapat memahami konsep file.
2. Mahasiswa dapat mengetahui dan mengimplemtasikan file dalam program.

B. Dasar Teori

1. Pengertian File
Fileadalah sebuah organisasi dari sejumlah record. Masing-masing record bisa
terdiri dari satu atau beberapa field. Setiap field terdiri dari satu atau beberapa byte. Jenis file
terdiri dari dua macam yaitu fileteks dan filebiner :
 File Teks
Fileteks adalah file yang berisikan kumpulan karakter ASCII yang disusun menjadi
beberapa baris.
 File Biner
File biner adalah file yang berisikan data yang masing-masing elemen berupa data 8 bit
(1 byte).

2. Operasi File
Operasi file adalah proses input / baca dari file dan proses output/ tulis ke file. Jenis-jenis
operasi file :
Mode Keterangan
r: menyatakan file hanya dapat dibaca (file harus sudah ada)
w: menyatakan file baru akan dibuat/diciptakan (file yang sudah ada akan
dihapus)

a: untuk membuka file yang sudah ada dan akan dilakukan proses penambahan
data (jika file belum ada, otomatis akan dibuat).
r+ : untuk membuka file yang sudah ada dan akan dilakukan proses pembacaan
dan penulisan.
w+ : untuk membuka file dengan tujuan untuk pembacaan atau penulisan.
Untuk melakukan operasi inputfile digunakan objek ifstream dan untuk
operasi outputfile digunakan objek ofstream. Kedua objek tersebut berada
pada header file fstream.h
Tabel 7.1 Jenis-jenis Operasi File

a. Membuka File
Sebelum suatu file dapat diproses, file harus dibuka terlebih dahulu. Untuk itu kita
perlu mendefinisikan obyek file. Salah satu bentuk pernyataan yang diperlukan :
ofstream nama_object ;
FILE *nama_object ;

ofstream adalah nama kelas yang disediakan C++ untuk menangani operasi
keluaran file.
Berikut penulisan pada program :
ofstream simpan;

Setelah suatu objek file diciptakan, untuk membuka file dapat dilakukan dengan cara
berikut ini :
Nama_object.open (nama_file);
FILE *fopen(char*nama_file.char*mode);

Berikut penulisan pada program :


simpan.open (“file.txt”);

keterangan :
- File keluaran adalah nama objek file.
- file.TXT adalah nama file yang akan disimpan pada disk.
b. Menulis File
Salah satu jenis pemprosesan pada file adalah menulis atau merekam data ke file.
Nama object<<”statement”<<endl;
fprintf(nama_object,”statement”);
contoh penulisan pada program :
simpan<<” belajar file C++ ”<<endl;

c. Menutup File
Setelah pemrosesan file berakhir, file perlu ditutup. Langkah ini dilakukan dengan
memanggil fungsi anggota bernama close()
Nama_object.close();
fclose(nama_object);

Merupakan pernyataaan untuk menutup file.


Contoh penulisan pada program :
simpan.close();

Berikut ini merupakan contoh lengkap dari opersi file diatas :


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

void main()
{
ofstream simpan;
simpan.open(”file.TXT”);
simpan<<”belajar file pada C++”<<endl;
simpan.close();
}

Modus keluaran
simpan.open(”file.TXT”);

Merupakan operasi untuk membuka file dengan modus keluaran. Artinya, bila
pernyataan ini di eksekusi maka :

Parameter Mode dari Fungsi Open mempunyai beberapa mode yaitu :


Mode Keterangan
ios::app Menyambung data diakhir file sehingga
penulisan data dilakukan setelah akhir file
os::ate Meletakkan penunjuk (pointer) di akhir file
ios::binary Membuka file dalam bentuk biner
ios::in Membuka file untuk operasi input
ios::nocreate Membuka file tanpa menciptakan file baru,
artinya jika file yang dibuka tidak ada
operasi gagal
ios::noreplace Membuka file tanpa mengganti file yang
sudah ada, artinya jika file ada, operasi open
gagal kecuali mode ate atau app di-set
ios::out Membuka file untuk operasi output
Ios::truct Membuang isi file

Tabel 7.2 Parameter Mode dari Fungsi Open

d. Penunjuk File
Setiap obyek file memiliki penunjuk file tersendiri. Penunjuk file bertindak
sebagai penunjuk posisi di dalam file terhadap perekaman ataupun pebacaan. Dalam hal
ini setipa obyek file memiliki dua buah penunjuk file, yaitu penunjuk file untuk keperluan
pembacaan data dan penunjuk file untuk keperluan perekaman data.
Penunjuk file, baik untuk keperluan perekaman ataupun pembacaan, dapat
dipindahkan dengan menggunakan fungsi anggota seekg() dan seekp().
 seekg()Berguna untuk memindahkan penunjuk file yang digunakkan sebagai
penunjuk operasi pembacaan.
 seekp()Berguna untuk memindahkan penunjuk file yang digunakan sebagai penunjuk
operasi perekaman.
Format dari kedua fungsi di atas:
seekp(offset,posisi_acuan);
seekg(offset,posisi_acuan);

offset menyatakan offset dalam satuan byte berdasarkan posisi_acuan :


Nilai Keterangan
ios::beg Posisi dari awal file
ios::cur Posisi berdasarkan letak penunjuk file sekarang
Ios::end Posisi dari akhir file
Tabel 7.3 Nilai posisi pada file
C. Studi Kasus / Permasalahan
1. Membuat program atm tarik tunai sederhana
a. cek saldo
b. tarik tunai
c. setor tunai
minimal terdapat metode STATEMENT CONTROL AND LOOPING dan
FUNCTION di dalam program dan struk ATM di tampilkan dalam bentuk file.txt
D. Hasil (flowchart, script program, hasil program)
a. Flowchart

b. Script program
#include <iostream>
#include <stdio.h>
#include <string>
#include <fstream>
using namespace std;

int saldo=1000000,use;
FILE *data;
char menu[5][15]={" ","Cek Saldo","Tarik Tunai","Setor
Tunai","Keluar"};
void keluar(){
data=fopen("Struk.txt","a");
fprintf(data,"\nSaldo Akhir\t\t%i",saldo);
fclose(data);
cout<<"------------------------------------------------------";
cout<<"\n Terimakasih telah menggunakan layanan kami."<<endl;
cout<<"\n Sisa Saldo Anda Saat Ini Adalah Rp."<<saldo<<endl;
cout<<"\n Pastikan tidak ada barang yang tertinggal."<<endl;
cout<<"------------------------------------------------------
"<<endl;
}

void saldoi()
{
cout<<"Sisa saldo anda: "<<saldo;
}
int penarikan(){
uang:
cout<<"Masukkan nominal yang anda ingin tarik: ";
cin>>use;
if((use<=saldo)&&(use&50000)){
saldo=saldo-use;
cout<<"Anda menarik uang senilai "<<use<<endl;
cout<<"Sisa saldo anda "<<saldo<<"\n\n";
}
else if(use>saldo){
cout<<"Maaf saldo anda kurang";
goto uang;
}return 0;
}
int nabung(){
cout<<"Masukkan Nominal yang Anda Setor = Rp. ";
cin>>use;
saldo=saldo+use;
cout<<"Jumlah Saldo Anda Saat Ini Adalah = Rp.
"<<saldo<<endl;return 0;
}
void struk(int pilih,int use){
data=fopen("Struk.txt","a");
fprintf(data,"-> %s\t\t%i\n",menu[pilih],use);
fclose(data);
}

int main(){
string tanya;
int pilih;
data=fopen("Struk.txt","w+");
fprintf(data,"BANK uWWU\n");
fprintf(data,"----------------------------------\n\n\n");
fprintf(data,"Saldo Awal\t\t%i\n\n",saldo);
fprintf(data,"Daftar Transaksi:\n\n");
fclose(data);

cout<<"\n\tSELAMAT DATANG DI ATM KAMI";


cout<<"\n\t BANK uWWu";
cout<<"\n\t--------------------------";
awal:
cout<<"\n\n\tMENU:"<<endl;
for(int i=0;i<4;i++){
cout<<(i+1)<<". "<<menu[i+1]<<endl;
}
cout<<"\nPilih yang anda inginkan: ";
cin>>pilih;
cout<<"\n\n";
switch (pilih){
case 1:
system ("cls");
saldoi();
cout<<"\n\nApakah anda ingin melakukan transaksi lain
(y/n): ";
cin>>tanya;
if (tanya=="y"){
system ("cls");
goto awal;}
else{
keluar();}
break;

case 2:
system ("cls");
penarikan();
struk(pilih,use);
cout<<"\n\nApakah anda ingin melakukan transaksi lain
(y/n): ";
cin>>tanya;
if (tanya=="y"){
system ("cls");
goto awal;}
else{
keluar();}
break;

case 3:
system ("cls");
nabung ();
struk(pilih,use);
cout<<"\n\nApakah anda ingin melakukan transaksi lain
(y/n): ";
cin>>tanya;
if (tanya=="y"){
system ("cls");
goto awal;}
else{
keluar();}
break;

case 4:
system ("cls");
keluar ();}
}

c. Hasil program
Gambar 1.1 Tampilan cmd awal menu

Gambar 1.2 Tampilan cmd cek saldo

Gambar 1.3 Tampilan cmd tarik tunai

Gambar 1.4 Tampilan cmd setor tunai


Gambar 1.5 Tampilan cmd keluar

Gambar 1.6 Tampilan filetxt struk


E. Analisa

#include <iostream>
#include <stdio.h>
#include <string>
#include <fstream>
using namespace std;

Pertama, ada 5 header yang digunakan dengan fungsinya masing-masing, yaitu


„#include <iostream>‟ disini sebagai operasi input output yang ada pada program ini,
„#include <stdio.h>‟ merupakan standar input output header, sebagai operasi input
output juga dalam program ini contohnya : printf,scanf,gets,puts. Lalu „#include
<string>‟ yang fungsinya untuk memanipulasi string. „#include <fstream>‟ yang
merupakan stream class untuk menulis dan membaca dari dan ke file. Dalam standar
penulisan program C++, kita tetap menggunakan using namespace std, fungsinya di
program ini untuk menyajikan perintah atau deklarasi kepada compiler yang menyatakan
bahwa kita akan menggunakan seluruh berkas/file,class,fungsi dari namespace std.

int saldo=1000000,use;
FILE *data;
char menu[5][15]={" ","Cek Saldo","Tarik Tunai","Setor
Tunai","Keluar"};

Selanjutnya, kita deklarasikan ‘saldo’ dengan nilai 1000000, „use‟ juga


dideklarasikan disini yang menjadi variabel jumlah pemakaian dari saldo . Lalu membuat
file dengan pointer data , disini ada 5 menu yang dideklarasikan dengan fungsinya
masing-masing, khusus untuk string kosong, fungsinya disini sebagai masukan dinamis
yang dimana kita memilih pilihan menu dengan menuliskan angka di string yang kosong
tersebut.

void keluar(){
data=fopen("Struk.txt","a");
fprintf(data,"\nSaldo Akhir\t\t%i",saldo);
fclose(data);
cout<<"------------------------------------------------------";
cout<<"\n Terimakasih telah menggunakan layanan kami."<<endl;
cout<<"\n Sisa Saldo Anda Saat Ini Adalah Rp."<<saldo<<endl;
cout<<"\n Pastikan tidak ada barang yang tertinggal."<<endl;
cout<<"------------------------------------------------------
"<<endl;
}

Lanjut ke fungsi void, void sering disebut juga prosedur,disebut void karena
fungsi tersebut tidak mengembalikan suatu nilai keluaran yang didapat dari hasil proses
fungsi tersebut.Dalam program ini, kita menggunakan tipe data integer (int), cin(cin>>)
sebagai input/masukan, cout(cout<<) sebagai output/keluaran. Lalu pada
data=fopen("Struk.txt","a"); membuka file sebelum ditulis, setelah itu kita tulis file
yang kita buka tadi dengan „(data,"\nSaldo Akhir\t\t%i",saldo);‟, dan kita tutup
file tersebut menggunakan „fclose(data);‟. Karena ini prosedur untuk pilihan „Keluar‟
maka ditampilkan keluaran-keluaran seperti diatas dan juga disini mengeluarkan sisa
saldo yang kita punya.

void saldoi()
{
cout<<"Sisa saldo anda: "<<saldo;
}

Lalu pada cout<<"Sisa saldo anda: "<<saldo; adalah prosedur untuk


melihat sisa saldo , dan keluaran jumlah saldo yang ada.

int penarikan(){
uang:
cout<<"Masukkan nominal yang anda ingin tarik: ";
cin>>use;
if((use<=saldo)&&(use&50000)){
saldo=saldo-use;
cout<<"Anda menarik uang senilai "<<use<<endl;
cout<<"Sisa saldo anda "<<saldo<<"\n\n";
}
else if(use>saldo){
cout<<"Maaf saldo anda kurang";
goto uang;
}return 0;
}

Fungsiint penarikan()ini bertujuan menarik uang/saldo yang berarti


mengurangi saldo yang ada. Pertama, program akan menampilkan tampilan output
cout<<"\n\nMasukkan Nominal yang Anda Tarik = "; yang mengharuskan kita
untuk memasukan nominal/angka yang akan ditarik/ambil. Disini „saldo=saldo-use;‟
adalah proses untuk mengurangi saldo, lalu setelah angka dimasukan dan diproses maka,
program akan menampilkan keluaran „cout<<"Anda menarik uang senilai

"<<use<<endl;‟,„cout<<"Sisa saldo anda "<<saldo<<"\n\n";‟, dan jika jumlah


yang ingin ditarik melebihi saldo yang ada maka adan muncul keluaran "Maaf saldo
anda kurang" dan program akan mengulang, atau akan tertutup.

int nabung(){
cout<<"Masukkan Nominal yang Anda Setor = Rp. ";
cin>>use;
saldo=saldo+use;
cout<<"Jumlah Saldo Anda Saat Ini Adalah = Rp.
"<<saldo<<endl;return 0;
}

Fungsiint nabung()ini bertujuan menambah uang/saldo. Pertama, program akan


menampilkan tampilan output cout<<"Masukkan Nominal yang Anda Setor = Rp.
";yang mengharuskan kita untuk memasukan nominal/angka yang akan
ditambah/masukan,.Disini „saldo=saldo+use;‟ adalah proses untuk menambah saldo,
setelah memasukan saldo maka akan ditampilan keluaran „cout<<"Jumlah Saldo Anda
Saat Ini Adalah = Rp. "<<saldo<<endl;return 0;‟ dan program akan tertutup.

void struk(int pilih,int use){


data=fopen("Struk.txt","a");
fprintf(data,"-> %s\t\t%i\n",menu[pilih],use);
fclose(data);
}

Di prosedur struk ini pertama kita membuka file


dengandata=fopen("Struk.txt","a");, lalu kita lanjutkan dengan memproses bagian
fprintf(data,"-> %s\t\t%i\n",menu[pilih],use); sebagai isi filestruk yang sudah
ada tadi, yang merupakan hasil dari 4 menu utama, yang nanti isinya adalah hasil
transaksi yang telah dilakukan dalam program, dan „fclose(data);‟ untuk menutup
penulisan file.

int main(){
string tanya;
int pilih;
data=fopen("Struk.txt","w+");
fprintf(data,"BANK uWWU\n");
fprintf(data,"----------------------------------\n\n\n");
fprintf(data,"Saldo Awal\t\t%i\n\n",saldo);
fprintf(data,"Daftar Transaksi:\n\n");
fclose(data);

cout<<"\n\tSELAMAT DATANG DI ATM KAMI";


cout<<"\n\t BANK uWWu";
cout<<"\n\t--------------------------";
awal:
cout<<"\n\n\tMENU:"<<endl;
for(int i=0;i<4;i++){

cout<<(i+1)<<". "<<menu[i+1]<<endl;

cout<<"\nPilih yang anda inginkan: ";

cin>>pilih;

cout<<"\n\n";

Masuk ke program utama, disini adalah tempat untuk memproses keluaran


dinamis yang dimasukan tadi, pertama ada „string tanya;‟ untuk menanyakan
pilihan/prosedur mana yang akan dipilih/masukan, lalu mendeklarasikan variabel „pilih‟
untuk menginisialisasi keluaran dinamis, kemudian membuka file untuk ditulis dengan
data-data dan keluaran yang ada di tampilan, kemudian file ditutup. Lalu ditampilan
runakan muncul keluaran seperti ucapan selamat datang dan keluaran dinamis untuk
memasukan angka yang mewakili menu yang ada, dan masuk menjadi nilai dari variabel
„pilih‟.

switch (pilih){
case 1:
system ("cls");
saldoi();
cout<<"\n\nApakah anda ingin melakukan transaksi lain
(y/n): ";
cin>>tanya;
if (tanya=="y"){
system ("cls");
goto awal;}
else{
keluar();}
break;

case 2:
system ("cls");
penarikan();
struk(pilih,use);
cout<<"\n\nApakah anda ingin melakukan transaksi lain
(y/n): ";
cin>>tanya;
if (tanya=="y"){
system ("cls");
goto awal;}
else{
keluar();}
break;

case 3:
system ("cls");
nabung ();
struk(pilih,use);
cout<<"\n\nApakah anda ingin melakukan transaksi lain
(y/n): ";
cin>>tanya;
if (tanya=="y"){
system ("cls");
goto awal;}
else{
keluar();}
break;

case 4:
system ("cls");
keluar ();}

Masuk ke program percabangan, jika memilih “cek saldo” dalam tampilan menu,
maka akan menuju ke „case 1:‟, dan program akanmembersikan tampilan run dengan
„system("cls");‟ , dan menuju ke fungsi „saldoi();‟, dan kembali ke menu
awal/utama „goto awal;‟. „break;‟ , menghentikan pernyataan switch atau program akan
tertutup.
Jika memilih “tarik tunai” dalam tampilan menu maka, akan menuju ke „case 2:‟
programakan membersikan tampilan dengan „system("cls");‟ dan menuju ke fungsi
„penarikan();‟,lalu akan muncul keluaran dinamis „Apakah anda ingin melakukan
transaksi lain‟ jika y maka, akan kembali ke menu awal/utama „goto awal;‟.Jika n
maka akan„keluar();‟ untuk menghentikan pernyataan switch atau program akan
tertutup.

Jika kita memilih “setor tunai” dalam tampilan menu maka, akan menuju ke
„case 3:‟ programakan membersikan tampilan dengan „system("cls");‟ dan menuju
fungsi „nabung’,lalu program akan menuliskan nilai keluaran dinamis di file , dan muncul
keluaran pertanyaan „Apakah anda ingin melakukan transaksi lain‟ program
akanmembersikan tampilan dengan „system("cls");‟dan menuju ke fungsi
„setortunai();‟ jika y maka akan kembali ke menu awal/utama „goto awal;‟.
„break;‟ , menghentikan pernyataan switch atau program akan tertutup. Jika ada
pernyataan lain atau pernyataan yang tidak sesuai pilihan maka program akan menuju ke
prosedur keluar.

Terakhir, jika memilih “keluar” dalam tampilan menu maka, akan menuju ke
„case 4:‟ dan menuju fungsi „keluar‟ lalu akan muncul tampilan cout<<"\n
Terimakasih telah menggunakan layanan kami."<<endl;cout<<"\n Sisa
Saldo Anda Saat Ini Adalah Rp."<<saldo<<endl;cout<<"\n Pastikan
tidak ada barang yang tertinggal."<<endl; dan program selesai.
F. Kesimpulan

1. File adalah sebuah organisasi dari sejumlah record. Masing-masing record bisa terdiri
dari satu atau beberapa field.Setiap field terdiri dari satu atau beberapa byte.Dalam bahasa
C++ untuk membuka file menggunakan formatNama_object.open
(nama_file,mode),untuk menulis kalimat pada file menggunakan
formatNama_obyek<<”Kalimat”, untuk menghapus file menggunakan
formatremove(namafile), untuk mengubah nama file menggunakan
formatrename(namafilelama, namafilebaru), sedangkan untuk menutup file
menggunakan formatNama_object.close();

2. Operasi file adalah proses input / baca dari file dan proses output / tulis ke file. Jenis-jenis
operasi file :
r :menyatakan file hanya dapat dibaca (file harus sudah ada)
w :menyatakan file baru akan dibuat/diciptakan (file yang sudah ada akan dihapus)
a :untuk membuka file yang sudah ada dan akan dilakukan proses penambahan
data (jika file belum ada, otomatis akan dibuat).
r+ :untuk membuka file yang sudah ada dan akan dilakukan proses pembacaan
dan penulisan.
w+ :untuk membuka file dengan tujuan untuk pembacaan atau penulisan.

Dalam bahasa C dan C++ terdapat beberapa perbedaan tentang cara


mengimplementasikan file pada program. Pada C++ program harus menggunakanheader
<fstream>. Terdapat berbagai mode pada C++ diantaranya adalah ofstream, ifstream, dan
fstream. Sedangkan pada C tidak perlu menggunakan header<fstream>. Sedangkanuntuk
modenya, C memiliki cukup banyak mode antara lain ‘r’, ‘w’, ‘a’, dll.Terdapat berbagai
macam fungsi yang dapat diterapkan pada file diantaranya adalah Nama_object.open
(nama_file) untuk membuka file, nama_object<<”Kalimat ”; untuk menulis file,
remove(namafile) untuk menghapus file, dan Nama_object.close() untuk menutup file.
DAFTAR PUSTAKA
Anonim.2020.Praktikum Algoritma dan Pemrograman JTE UNRAM 2020.Jurusan Teknik
Elektro.Fakultas Teknik.Universitas Mataram.

Bahctiar, Adam Mukharil.2017.pemrograman C dan C++.Bandung : INFORMATIKA.

Jogiyanto.HM.1993.Konsep Dasar Pemrograman Bahasa C.Yogyakarta :Andi.

Rachmat, Antonius.2010. Algoritma dan Pemrograman dengan Bahasa C.Yogyakarta:


Penerbit Andi.

Anda mungkin juga menyukai