Anda di halaman 1dari 29

Modul VII File

MODUL VII
FILE (BERKAS)

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

B. Dasar Teori
Dalam pemrograman, operasi-operasi yang dapat dilakukan pada file adalah
input/output file dan manipulasi file. Operasi I/O (input/output) melibatkan pembacaan
file (input) dari file atau perekaman (output) ke file. Manipulasi file melibatkan operasi
terhadap suatu file tanpa melakukan proes input atau output, misalnya mengecek
keberadaan file di disk, mengganti nama file, menghapus file, dan sebagainya.

1. Pengertian File
File adalah sebuah organisasi dari sejumlah record. Masing-masing
record bisa terdiri dari satu atau beberapa field. Setiap file terdiri dari satu atau
beberapa byte. Jenis file terdiri dari dua macam yaitu file teks dan file biner :
a) File teks
File teks adalah file yang berisikan kumpulan karakter ASCII yang disusun
menjadi beberapa baris.
b) 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 :
r : menyatakan file hanya dapat dibaca (file harus sudah ada)
w : menyatakan file baru akan dibuat/diciptakan (file yang sudah ada akan
dihapus)

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 1


Modul VII File

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 input file digunakan objek ifstream dan untuk
operasi output file digunakan objek ofstream. Kedua objek tersebut berada pada
header file fstream.h.
Operasi dasar pada file pada dasarnya terbagi menjadi tiga tahap yaitu :
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_obyek;
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);

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;

contoh penulisan pada program :


simpan<<” belajar file C++ ”<<endl;

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 2


Modul VII File

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

Script diatas 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”);

Script diatas merupakan operasi untuk membuka file dengan modus keluaran.
Artinya, bila pernyataan ini dieksekusi maka :
- isi file akan dihapus jika file sudah ada
- file akan diciptakan jika belum ada

Pada suatu waktu mungkin Anda memerlukan cara supaya file yang Anda
buka dapat dipergunakan untuk membaca dan menulis sekaligus, atau isi file
yang sudah ada tidak dihapus jika Anda ingin menambah isi file yang baru.
Untuk keperluan itu, Anda harus memformat modus pembukaan file.
Adapun modus pembukaan file yang disediakan oleh C++ adalah sebagai
berikut

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 3


Modul VII File

Adapun contoh penggunaan dari modus – modus pembukaan file diatas


adalah sebagai berikut :
fstream file_objek (“nama_file”,ios::in | ios::out);
#include <fstream>
#include <iostream>

using namespace std;

int main()
{
char FirstName[30], LastName[30];
int Age; char FileName[20];
cout << "Enter First Name: "; cin >> FirstName;
cout << "Enter Last Name: "; cin >> LastName;
cout << "Enter Age: "; cin >> Age;
cout << "\nEnter the name of the file you want to
create: ";
cin >> FileName;
ofstream Students(FileName, ios::out);
Students << FirstName << "\n" << LastName << "\n"

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 4


Modul VII File

<< Age;
cout << "\n\n";
return 0;
}

Pernyataan diatas adalah dekalarasi file nama_file dengan sehingga


nama_file dapat dibaca dan ditulisi. Contoh:
#include <fstream>
#include <iostream>

using namespace std;

int main()
{
char FirstName[30], LastName[30];
int Age; char FileName[20];
cout << "Enter First Name: ";cin >> FirstName;
cout << "Enter Last Name: "; cin >> LastName;
cout << "Enter Age: "; cin >> Age;
cout << "\nEnter the name of the file you want to
create: ";
cin >> FileName;
ofstream Students(FileName, ios::out);
Students << FirstName << "\n" << LastName << "\n"
<< Age;
cout << "\n\n";
return 0;
}

d. Penunjuk File
Setiap obyek file memiliki penunjuk file tersendiri. Penunjuk file bertindak
sebagai penunjuk posisi di dalam file terhadap perekaman ataupun
pembacaan. 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);

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 5


Modul VII File

seekg(offset,posisi_acuan);

 offset menyatakan offset dalam satuan byte berdasarkan


posisi_acuan.
 posisi_acuan dapat berubah salah satu nilai yang tertera pada tabledi
bawah ini:

Nilai Keterangan
ios::beg Posisi dari awal file
ios::cur Posisi berdasarkan letak penunjuk file sekarang
Ios::end Posisi dari akhir file
Sebagai contoh:
file_masukan.seekp(0, ios::end)

Meletakkan penunjuk file perekaman ke akhir file. Sedangkan:


file_masukan.seekg(0, ios::beg)

Menempatkan penunjuk file pembacaan ke awal file.

e. Memeriksa kondisi File


C++ menyediakan sejumlah fungsi yang berguna untuk memeriksa
kondisi-kondisi pada operasi file, sehingga kejadian kesalahan pada saat
eksekusi dapat dikendalikan.

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 6


Modul VII File

f. Jenis Ekstensi File


Selain ekstensi file “.txt”, ekstensi file lain juga dapat digunakan untuk
output dari program. Berikut beberapa ekstensi file yang dapat digunakan
dalam file :
1. .doc / .docx : ekstensi file yang dapat dibuat dengan menggunakan
program Ms. Office Word.
2. .xlsx / .xlsx : ekstensi file yang dapat dibuat dengan menggunakan
program Ms. Office Excel.
3. .ppt / .pptx : ekstensi file yang dapat dibuat dengan menggunakan
program Ms. Office Power Point.
4. .pdf : kepanjangan dari Portable Document Format.
5. .Dat : salah satu ekstensi file untuk jenis video.

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 7


Modul VII File

C. Permasalahan
Buatlah program penjualan pada Toko Komputer dengan menggunakan struct
Barang dan Pembeli. Pada struct Barang terdapat variabel (id, namaBarang, harga,
dan jumlah) dan pada struct Pembeli terdapat variabel (namaPembeli, alamat,
jumlahBarang, dan bayarTotal). Data hasil ditampilkan file “.txt”.

Flowchart dari permasalahan tersebut

Start

Deklarasi Struct Barang


dan Pembeli

jumlahBarang = 0
bayarTotal = 0

input()

output()

Y
Kembali = ‘Y’

End

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 8


Modul VII File

Input jenis input()

i = 0; i<jenis

Input pilih

Y
pilih = 1

T
Y
pilih = 2

T
Y
pilih = 3

T
Y id;
pilih = 4 namaBara Input jumlah
ng; harga
T
Y
pilih = 5

T
Y
pilih = 6

T
bayarTotal += bayar;
jumlahBarang +=
barang.jumlah;

Input nama, alamat

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 9


Modul VII File

output()

i = 0; i<jenis

Menulis data pada file


Data.txt

Input kembali

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 10


Modul VII File

Sourcecode program permasalahan tersebut


#include <iostream>
#include <conio>
#include <string>
#include <iomanip>
#include <fstream>

struct Barang
{
string id[6], namaBarang[6];
double harga[6], jumlah[6];
};
struct Pembeli
{
char nama[30], alamat[30];
double jumlahBarang, bayarTotal, uang, kembalian;
};
Barang barang;
Pembeli pembeli;
int pilih, jenis, i;
double bayar(double a, double b);
double kembalian(double a, double b);
void input()
{
cout<<" Berapa Jenis barang yang ingin dibeli : ";
cin>>jenis;
cout<<endl;
for(i=0; i<jenis;i++)
{
cout<<" Pilihan Ke-"<<(i+1)<<" : ";cin>>pilih;
switch(pilih)
{
case 1:
barang.id[i] = "B001";
barang.namaBarang[i] = "Mouse";
barang.harga[i] = 35000;
cout<<" Jumlah Barang : ";
cin>>barang.jumlah[i];
break;
case 2:
barang.id[i] = "B002";
barang.namaBarang[i] = "Keyboard";
barang.harga[i] = 50000;
cout<<" Jumlah Barang : ";
cin>>barang.jumlah[i];
break;
case 3:
barang.id[i] = "B003";
barang.namaBarang[i] = "Monitor";
barang.harga[i] = 85000;
cout<<" Jumlah Barang : ";
cin>>barang.jumlah[i];
break;
case 4:
barang.id[i] = "B004";
barang.namaBarang[i] = "Flashdisk";

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 11


Modul VII File

barang.harga[i] = 70000;
cout<<" Jumlah Barang : ";
cin>>barang.jumlah[i];
break;
case 5:
barang.id[i] = "B005";
barang.namaBarang[i] = "Kabel";
barang.harga[i] = 15000;
cout<<" Jumlah Barang : ";
cin>>barang.jumlah[i];
break;
case 6:
barang.id[i] = "B006";
barang.namaBarang[i] = "HUB";
barang.harga[i] = 75000;
cout<<" Jumlah Barang : ";
cin>>barang.jumlah[i];
break;
}
cout<<endl;
pembeli.bayarTotal = pembeli.bayarTotal +
bayar(barang.jumlah[i], barang.harga[i]);
pembeli.jumlahBarang = pembeli.jumlahBarang +
barang.jumlah[i];
}
cout<<"\n\tBiodata Pembeli\n\n";
cout<<" Nama : ";cin>>pembeli.nama;
cout<<" Alamat : ";cin>>pembeli.alamat;
cout<<" Total Pembayaran : Rp.
"<<pembeli.bayarTotal<<endl;
cout<<" Jumlah Uang : Rp. ";cin>>pembeli.uang;
pembeli.kembalian =
kembalian(pembeli.uang,pembeli.bayarTotal);
}
void output()
{
cout<<"\n Struct Pembelian Sudah Di Cetak !!!\n";
cout<<" Terima Kasih :)";
ofstream file;
file.open("Data.txt");
file<<"\n\t\t##### STRUCT PEMBELIAN #####\n\n";
file<<"
+====+======+================+=================+========+\n";
file<<" | "<<setiosflags(ios::left)<<setw(3)<<"No";
file<<"| "<<setiosflags(ios::left)<<setw(5)<<"ID";
file<<"| "<<setiosflags(ios::left)<<setw(15)<<"Nama
Barang";
file<<"| "<<setiosflags(ios::left)<<setw(15)<<"Harga
Barang";
file<<" | "<<setiosflags(ios::left)<<setw(5)<<"Jumlah
|\n";
file<<"
+====+======+================+=================+========+\n";
for(i=0; i<jenis; i++)
{
file<<" | "<<setiosflags(ios::left)<<setw(3)<<(i+1);
file<<"|

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 12


Modul VII File

"<<setiosflags(ios::left)<<setw(5)<<barang.id[i];
file<<"|
"<<setiosflags(ios::left)<<setw(12)<<barang.namaBarang[i];
file<<"|
Rp."<<setiosflags(ios::left)<<setw(3)<<barang.harga[i];
file<<" |
"<<setiosflags(ios::left)<<setw(5)<<barang.jumlah[i]<<" |\n";
}
file<<"
+====+======+================+=================+========+\n";
file<<" | Total Pembayaran | Rp.
"<<setiosflags(ios::right)<<setw(15)<<pembeli.bayarTotal<<"
|\n";
file<<"
+============================+==========================+\n\n
";
file<<" Nama : "<<pembeli.nama<<endl;
file<<" Alamat : "<<pembeli.alamat<<endl;
file<<" Jumlah Barang : "<<pembeli.jumlahBarang<<endl;
file<<" Jumlah Uang : Rp. "<<pembeli.uang<<endl;
file<<" =================================\n";
file<<" Kembalian : Rp. "<<pembeli.kembalian;
file.close();
}
main()
{
char kembali;
pembeli.jumlahBarang = 0;
pembeli.bayarTotal = 0;
do
{
clrscr();
cout<<"\n\t ##### TOKO KOMPUTER #####\n\n";
cout<<"\tData Barang\n\n";
cout<<" [1] Mouse\n [2] Keyboard\n";
cout<<" [3] Monitor\n [4] Flashdisk\n";
cout<<" [5] Kabel\n [6] HUB\n\n";
input();
output();
getch();
cout<<"\n\n Apakah Anda ingin membeli lagi [Y/N] ?
";cin>>kembali;
}while(kembali=='Y' || kembali=='y');
}

double bayar(double a, double b)


{
return(a*b);
}
double kembalian(double a, double b)
{
return(a-b);
}

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 13


Modul VII File

Screenshoot program setelah di jalankan.

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 14


Modul VII File

D. Analisa Data
1. Header
#include <iostream>
#include <conio>
#include <string>
#include <iomanip>

Script program diatas merupakan bagian header dari program yang merupakan
bagian library dari program C++ dimana pada bagian header ini dideklarasikan 2
buah header yang mendeklarasikan sejumlah statement yang ada pada program.
Berikut penjelasan masing-masing header :
 #include <iostream>

Merupakan bagian header yang berguna mendeklarasikan statement


"cout" dan "cin" yakni statement yang bertugas sebagai operator input-
an dan keluaran data pada program.
 #include <conio>
Merupakan bagian header yang berguna mendeklarasikan statement
"getch()"yakni statement yang berguna sebagai penunda agar saat
program di compile tidak langsung tertutup.
 #include <string>
Merupakan file header yang berguna untuk pemroresan string.
 #include <iomanip>
Merupakan file header yang umum digunakan untuk mengatur tampilan layar
dengan mendeklarasikan
a. “setw()“ yang berguna untuk mengatur lebar tampilan dilayar dari
suatu nilai variabel. Contoh: setw(4); yang berarti data memiliki lebar
tampilan 4.
b. “setiosflags()” berguna untuk ,engatur sejumlah format keluaran
data. ios::left digunakan untuk mengatur perataan kiri. ios::right
digunakan untuk mengatur perataan kanan.
2. Deklarasi struct
struct Barang
{
string id[6], namaBarang[6];
double harga[6], jumlah[6];
};
struct Pembeli
{
char nama[30], alamat[30];
double jumlahBarang, bayarTotal, uang;

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 15


Modul VII File

};

Script di atas digunakan untuk mendeklarasikan struct dimana struct pertama


untuk Barang. Didalam struct Barang terdapat variabel id dan
namaBarang dengan tipe string. Serta variabel harga dan jumlah yang
bertipe data double. Tiap variable pada struct Barang dideklarasikan
sebagai variable array dengan indeks maksimal 6. Pada tiap struct diakhiri
oleh tanda “;” agar program tersebut dapat berjalan.
Pada struct kedua adalah struct Pembeli, pada struct Pembeli
terdapat nama dan alamat yang bertipe data char dengan panjang karakter
30 serta variabel jumlahBarang, bayarTotal, dan uang dengan tipe data
double.
3. Deklarasi variabel global dan struct
Barang barang;
Pembeli pembeli;
int pilih, jenis, i;

Script diatas digunakan untuk mendeklarasikan variabel sebagai variabel


global dimana penulisannya diletakkan diluar fungsi. Variabel tersebut dapat
digunakan dalam fungsi yang berbeda sehingga tidak perlu di deklarasikan
lagi. Terdapat struct Barang yang di deklarasikan sebagai barang dan struct
Pembeli sebagai pembeli. pilih, jenis dan i yang bertipe data integer.
pilih digunakan sebagai variabel untuk memilih barang, jenis digunakan
untuk memilih jumlah barang, i digunakan sebagai statement awal
perulangan.
4. Pendeklarasian fungsi
double bayar(double a, double b);
double kembalian(double a, double b);

Script diatas digunakan 2 fungsi yaitu fungsi bayar dengan parameter a dan
parameter b dengan tipe data double pula serta fungsi kembalian dengan
tipe data double. Fungsi bayar() digunakan untuk pembeli agar
mengetahui jumlah uang yang harus dibayarkan. Fungsi kembalian digunakan
untuk mengetahui sisa uang pembeli yang telah dibayarkan untuk membeli
barang. Dari paramater di atas dapat diketahui bila parameter yang digunakan
adalah parameter formal.

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 16


Modul VII File

Fungsi input()
void input()
{
cout<<" Berapa Jenis barang yang ingin dibeli : ";
cin>>jenis;
cout<<endl;

Script diatas merupakan deklarasi untuk fungsi input() tanpa nilai balik. Pada
fungsi input() kita diminta untuk memasukkan nilai pada variabel jenis.
for(i=0; i<jenis;i++)
{
cout<<" Pilihan Ke-"<<(i+1)<<" : ";cin>>pilih;
}

Perulangan di atas digunakan untuk memilih berapa jenis barang yang ingin
dibeli. Program akan melakukan perulangan berdasarkan jumlah jenis
barang yang akan dibeli.
switch(pilih)
{
case 1:
barang.id[i] = "B001";
barang.namaBarang[i] = "Mouse";
barang.harga[i] = 35000;
cout<<" Jumlah Barang : ";
cin>>barang.jumlah[i];
break;
case 2:
barang.id[i] = "B002";
barang.namaBarang[i] = "Keyboard";
barang.harga[i] = 50000;
cout<<" Jumlah Barang : ";
cin>>barang.jumlah[i];
break;
case 3:
barang.id[i] = "B003";
barang.namaBarang[i] = "Monitor";
barang.harga[i] = 85000;
cout<<" Jumlah Barang : ";
cin>>barang.jumlah[i];
break;
case 4:
barang.id[i] = "B004";
barang.namaBarang[i] = "Flashdisk";
barang.harga[i] = 70000;
cout<<" Jumlah Barang : ";
cin>>barang.jumlah[i];
break;
case 5:
barang.id[i] = "B005";
barang.namaBarang[i] = "Kabel";
barang.harga[i] = 15000;
cout<<" Jumlah Barang : ";

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 17


Modul VII File

cin>>barang.jumlah[i];
break;
case 6:
barang.id[i] = "B006";
barang.namaBarang[i] = "HUB";
barang.harga[i] = 75000;
cout<<" Jumlah Barang : ";
cin>>barang.jumlah[i];
break;
}

Script diatas merupakan perintah pengkondisian untuk variabel pilih dimana


jika nilai variabel pilih adalah 1, maka perintah pada case 1 yang akan
dijalankan oleh program dan jika nilai variabel pilih adalah 3, maka perintah
pada case 3 yang akan dijalankan oleh program begitupun selanjutnya untuk
kondisi variabel pilih dari 1 sampai 6.
Pada masing-masing case terdapat perintah untuk memberikan nilai pada
struct barang berdasarkan nilai indeks array. Nilai indeks array ditentukan oleh
perulangan. Contoh, pada case 1 atau kondisi jika variabel pilih bernilai 1 maka
struct barang.id akan bernilai “B001”, barang.namaBarang bernilai “Mouse”, dan
barang.harga bernilai “35000”. Kemudian pembeli diminta untuk menginputkan
nilai pada variabel barang.jumlah. Nilai pada struct barang tergantung kondisi pada
variabel pilih seperti pada script diatas.
pembeli.bayarTotal += bayar(barang.jumlah[i],
barang.harga[i]);
pembeli.jumlahBarang += barang.jumlah[i];
}

Script di atas termasuk dalam perulangan, dimana pembeli.bayarTotal


merupakan Total uang yang harus dibayarkan oleh pembeli dengan
mengkalikan harga barang yang dibeli dengan jumlah barang kemudian
hasilnya akan dijumlahkan dengan fungsi bayar .
pembeli.jumlahBarang merupakan nilai pembeli.jumlahBarang awal yaitu 0

dijumlahkan dengan jumlah barang yang dibeli.


cout<<"\n\tBiodata Pembeli\n\n";
cout<<" Nama : ";cin>>pembeli.nama;
cout<<" Alamat : ";cin>>pembeli.alamat;
cout<<" Total Pembayaran : Rp.
"<<pembeli.bayarTotal<<endl;
cout<<" Jumlah Uang : Rp. ";cin>>pembeli.uang;
pembeli.kembalian =
kembalian(pembeli.uang,pembeli.bayarTotal);
}

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 18


Modul VII File

Script di atas digunakan untuk memasukkan biodata pembeli yaitu nama


pembeli, alamat pembeli, dan jumlah uang pembeli dimana nilai yang
dimasukkan akan menjadi nilai pada struct pembeli.
Fungsi output()
void output()
{
cout<<"\n Struct Pembelian Sudah Di Cetak !!!\n";
cout<<" Terima Kasih :)";
ofstream file;
file.open("Data.txt");

Script diatas merupakan deklarasi untuk fungsi output() tanpa nilai balik. Pada
fungsi output() terdapat Script untuk membuka file “Data.txt” dengan objek
bernama file.
file<<"\n\t\t##### STRUCT PEMBELIAN #####\n\n";
file<<"
+====+======+================+=================+========
+\n";
file<<" | "<<setiosflags(ios::left)<<setw(3)<<"No";
file<<"| "<<setiosflags(ios::left)<<setw(5)<<"ID";
file<<"| "<<setiosflags(ios::left)<<setw(15)<<"Nama
Barang";
file<<"| "<<setiosflags(ios::left)<<setw(15)<<"Harga
Barang";
file<<" | "<<setiosflags(ios::left)<<setw(5)<<"Jumlah
|\n";
file<<"
+====+======+================+=================+========
+\n";
for(i=0; i<jenis; i++)
{
file<<" | "<<setiosflags(ios::left)<<setw(3)<<(i+1);
file<<"|
"<<setiosflags(ios::left)<<setw(5)<<barang.id[i];
file<<"|
"<<setiosflags(ios::left)<<setw(12)<<barang.namaBarang[i
];
file<<"|
Rp."<<setiosflags(ios::left)<<setw(3)<<barang.harga[i];
file<<" |
"<<setiosflags(ios::left)<<setw(5)<<barang.jumlah[i]<<"
|\n";
}
file<<"
+====+======+================+=================+========
+\n";
file<<" | Total Pembayaran | Rp.
"<<setiosflags(ios::right)<<setw(15)<<pembeli.bayarTotal
<<" |\n";
file<<"
+============================+==========================
+\n\n";

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 19


Modul VII File

file<<" Nama : "<<pembeli.nama<<endl;


file<<" Alamat : "<<pembeli.alamat<<endl;
file<<" Jumlah Barang : "<<pembeli.jumlahBarang<<endl;
file<<" Jumlah Uang : Rp. "<<pembeli.uang<<endl;
file<<" =================================\n";
file<<" Kembalian : Rp. "<<pembeli.kembalian;
file.close();

Script di atas merupakan output yang akan ditampilkan dengan mengatur


lebar tampilan data menggunakan perintah setw() dan perataan
menggunakan perintah setiosflags(ios::left). Serta pemanggilan
nilai array berdasarkan indeks ditandai dengan perintah (contoh)
<<barang.id[i]; dimana nilai i akan bertambah sesuai perulangan.
Pendeklarasian fungsi dengan pernyataan return ()
double bayar(double a, double b)
{
return(a*b);
}
double kembalian(double a, double b)
{
return(a-b);
}

Penggunaan return () diikuti oleh argumen yang berupa nilai perkalian


return(a*b)dari fungsi bayar() dan pengurangan return(a-b)dari

fungsi kembalian().
5. Fungsi Utama
main()
{
char kembali;
pembeli.jumlahBarang = 0;
pembeli.bayarTotal = 0;

Script diatas adalah fungsi main () yang termasuk fungsi utama dimana fungsi
tersebut yang dijalankan pertama kali oleh program. Terdapat variabel
kembali dengan tipe data karakter yang digunakan untuk variabel dalam
perulangan do-while. Pemberian nilai awal pada struct

pembeli.jumlahBarang yang bernilai 0. Pembelian nilai awal juga pada


struct pembeli.bayarTotal dengan nilai 0.

Perulangan Do-While
do
{
while(kembali=='Y' || kembali=='y');

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 20


Modul VII File

Perulangan di atas digunakan apabila pembeli ingin membeli barang lagi


dengan cara menginputkan nilai ‘Y’ atau ‘y’ pada variabel kembali.
input();
output();
getch();

Script diatas digunakan pada fungsi main() untuk memanggil fungsi


input() dan output() dimana perintah yang ada pada kedua fungsi
tersebut akan dijalankan. Terdapat perintah getch() yang digunakan sebagai
penunda agar saat program di jalankan tidak langsung tertutup ketika proses
selesai.

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 21


Modul VII File

E. 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.
2. Untuk dapat mengedit isi dari suatu file terlebih dahulu dibuat file tersebut, setelah
itu file dibuka dengan menggunkan format perintah
nama_object.open(namaFile) dan dilakukan edit file
3. File yang akan diganti diedit isinya akan terhapus data sebelumnya pada file
tersebut kemudian akan diganti dengan data yang baru
4. Untuk melakukan operasi input file digunakan objek ifstream dan untuk operasi
output file digunakan objek ofstream. Kedua objek tersebut berada pada header
file <fstream>
5. Operasi dasar pada file pada dasarnya terbagi menjadi empat tahap yaitu :
 Pendeklarasian object
ofstream nama_object;

 Membuka atau mengaktifkan file


open.nama_object(nama_file);

 Menulis / menyimpan ke file


nama_object<<”statement”<<endl;

 Menutup file
nama_object.close();

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 22


Modul VII File

Tugas Pendahuluan

Membuat program data mahasiswa dan menampilkan data pada dalam bentuk file.
#include <iostream>
#include <conio>
#include <string>
#include <fstream>

struct data
{
string nim[10], nama[30], nilai1[5], nilai2[5];
int banyak;
}mahasiswa;
void main()
{
char kembali;
do
{
clrscr();
cout<<"\n\t Input Data Mahasiswa\n\n";
cout<<" Masukkan jumlah Mahasiswa : ";
cin>>mahasiswa.banyak;
cout<<endl;
for(int a=1;a<=mahasiswa.banyak;a++)
{
cout<<" Masukkan NIM :
";cin>>mahasiswa.nim[a];
cout<<" Masukkan Nama :
";cin>>mahasiswa.nama[a];
cout<<" Masukan Nilai Basprog :
";cin>>mahasiswa.nilai1[a];
cout<<" Masukan Nilai Prak. Basprog :
";cin>>mahasiswa.nilai2[a];
cout<<" ==================================\n";
cout<<endl;
}
ofstream file;
file.open("TPModul7.txt");
file<<"\n\t##### Data Mahasiswa #####\n\n";
for(int a=1;a<=mahasiswa.banyak;a++)
{
file<<" DATA KE "<<a<<":"<<endl;
file<<" NIM : "<<mahasiswa.nim[a]<<endl;
file<<" Nama : "<<mahasiswa.nama[a]<<endl;
file<<" Nilai Basprog :"<<mahasiswa.nilai1[a]<<endl;
file<<" Nilai
Prak.Basprog :"<<mahasiswa.nilai2[a]<<endl<<endl;
}
file.close();
cout<<" Data Telah tersimpan :) !!!\n\n";
getch();
cout<<" Apakah Anda ingin mengulang ? ";
cin>>kembali;
}while(kembali=='Y');
}

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 23


Modul VII File

Tampilan Program

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 24


Modul VII File

Tugas 1
Membuat program dengan operasi file r, w, dan a.
Script program
#include <fstream>
#include <conio>
#include <iostream>

main()
{
int pilih, kelompok;
char nama[30], nim[10], kembali, sesuatu[100];
do
{
clrscr();
cout<<"\n\t ##### PROGRAM FILE #####\n\n";
cout<<" Pilih Operasi\n\n";
cout<<" [1] Read Only\n [2] Rewrite\n [3] Add Contents\n\n";
cout<<" Pilihan : ";cin>>pilih;
if(pilih==1)
{
cout<<" Isi dari file Tugas.txt akan ditampilkan\n\n";
char karakter;
ifstream file;
file.open("Tugas.txt");
while(!file.eof())
{
file.get(karakter);
cout<<karakter;
}
file.close();
}
else if(pilih==2)
{
ofstream file;
file.open("Tugas.txt");
cout<<"\n\t###### PROGRAM FILE ######\n\n";
cout<<" Masukkan Nama : ";cin>>nama;
cout<<" Masukkan NIM : ";cin>>nim;
cout<<" Masukkan Kelompok : ";cin>>kelompok;
cout<<"\n Isi file telah diganti !\n";
file<<"\n\t###### PROGRAM FILE ######\n\n";
file<<nama<<endl;
file<<nim<<endl;
file<<kelompok<<endl;
file.close();
}
else if(pilih==3)
{
ofstream file;
file.open("Tugas.txt", ios::app);
cout<<" Proses Penambahan isi File\n";
cout<<" Masukkan Nama : ";cin>>nama;
cout<<" Masukkan NIM : ";cin>>nim;
cout<<" Masukkan Kelompok : ";cin>>kelompok;
cin>>sesuatu;
file<<nama<<endl;

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 25


Modul VII File

file<<nim<<endl;
file<<kelompok<<endl;
file.close();
}
getch();
cout<<"\n Apakah anda ingin kembali ? ";cin>>kembali;
}while(kembali=='Y' || kembali=='y');
}

Tampilan program

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 26


Modul VII File

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 27


Modul VII File

Tugas 2

Membuat program untuk menampilkan isi file yang sudah disimpan.


#include <fstream>
#include <conio>
#include <iostream>
main()
{
cout<<"\n\tPROGRAM MENAMPILKAN ISI DARI FILE\n\n";
char karakter;
ifstream file;
file.open("latihan.txt");
while(!file.eof())
{
file.get(karakter);
cout<<karakter;
}
file.close();
getch();
}

Tampilan program

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 28


Modul VII File

Daftar Pustaka

Fandi junianto Pratama . 2012 . tipe data struct dalam c++ . html .
http://fandijuniantopratama.blogspot.com/2012/03/tipe-data-struct-structe-dalam-
c.html diakses pada 22 Juni 2015
Utama ,Didit N. & Widayanti, Riya. 2005. Algoritma & Pemrograman dengan Borland C+
+,Graha Ilmu – Yogyakarta.
Kadir, Abdul. 2004. Pemrograman C++, Andi Offset – Yogyakarta.
Frieyadie. 2007. Pemrograman C++ dengan Borland C++ 5.02. Jakarta.

Misbahuddin, 2006. Diktat bahasa pemrograman. Mataram.

Praktikum Algoritma dan Pemrograman 2016 Modul VII - 29

Anda mungkin juga menyukai