pengelolaan file operasi file pada c++ fileoperasi file pada c++ pada prinsipnya operasi yang...

12
PENGELOLAAN FILE Operasi File pada C++ Pada prinsipnya operasi yang dilakukan pada file terdiri dari 3 tahapan : 1. Membuka file 2. Melakukan pemrosesan pada file 3. Menutup file Dalam melakukan operasi file dibutuhkan fungsi-fungsi yang berhubungan dengan operasi file yang terdapat pada file fstream.h. Oleh sebab itu, untuk dapat melakukan operasi file, maka preprocessor directive berikut ditambahkan: #include <fstream.h> MEMBUKA FILE Pembukaan dari suatu file mempunyai 2 tujuan, yaitu : 1. Membuka file untuk ditulis/direkam 2. Membuka file untuk dibaca Membuka file untuk ditulis : ofstream file_objek; Setelah objek_output diciptakan, maka file dibuka dengan cara : file_objek.open (“nama_file”); Kedua pernyataan di atas dapat disederhanakan : ofstream file_objek (“nama_file”); Membuka file untuk dibaca : ifstream file_objek; Setelah objek_input diciptakan, maka file dibuka dengan cara : file_objek.open (“nama_file”); Kedua pernyataan di atas dapat disederhanakan : ifstream file_objek (“nama_file”); MENUTUP FILE Setelah pemrosesan file berakhir, maka file perlu ditutup. Langkah ini dilakukan dengan cara : file_objek.close(); Pemakaian fungsi close() sifatnya optional. Bila digunakan fungsi ini maka compiler tidak akan mengeluarkan pesan error.

Upload: hoangnhi

Post on 05-May-2019

1.739 views

Category:

Documents


84 download

TRANSCRIPT

Page 1: PENGELOLAAN FILE Operasi File pada C++ fileOperasi File pada C++ Pada prinsipnya operasi yang dilakukan pada file terdiri dari 3 tahapan : 1. Membuka file 2. Melakukan pemrosesan pada

PENGELOLAAN FILE

Operasi File pada C++

Pada prinsipnya operasi yang dilakukan pada file terdiri dari 3 tahapan :

1. Membuka file

2. Melakukan pemrosesan pada file

3. Menutup file

Dalam melakukan operasi file dibutuhkan fungsi-fungsi yang berhubungan dengan operasi

file yang terdapat pada file fstream.h. Oleh sebab itu, untuk dapat melakukan operasi file,

maka preprocessor directive berikut ditambahkan:

#include <fstream.h>

MEMBUKA FILE

Pembukaan dari suatu file mempunyai 2 tujuan, yaitu :

1. Membuka file untuk ditulis/direkam

2. Membuka file untuk dibaca

Membuka file untuk ditulis :

ofstream file_objek;

Setelah objek_output diciptakan, maka file dibuka dengan cara :

file_objek.open (“nama_file”);

Kedua pernyataan di atas dapat disederhanakan :

ofstream file_objek (“nama_file”);

Membuka file untuk dibaca :

ifstream file_objek;

Setelah objek_input diciptakan, maka file dibuka dengan cara :

file_objek.open (“nama_file”);

Kedua pernyataan di atas dapat disederhanakan :

ifstream file_objek (“nama_file”);

MENUTUP FILE

Setelah pemrosesan file berakhir, maka file perlu ditutup. Langkah ini dilakukan dengan cara

:

file_objek.close();

Pemakaian fungsi close() sifatnya optional. Bila digunakan fungsi ini maka compiler tidak

akan mengeluarkan pesan error.

Page 2: PENGELOLAAN FILE Operasi File pada C++ fileOperasi File pada C++ Pada prinsipnya operasi yang dilakukan pada file terdiri dari 3 tahapan : 1. Membuka file 2. Melakukan pemrosesan pada

FILE TEKS

Contoh :

Buat program C++ untuk menulis kalimat “Belajar File” sebanyak 10 kali dan disimpan

dengan nama file “datateks.txt” dan file objek latihan. Berdasarkan data yang tersimpan

dalam “datatext.txt”tsb, tampilkan isi filenya melalui program input.

PROGRAM C++ :

A. MENULIS / MEREKAM DATA TEKS

// Merekam atau menulis File Text

#include <iostream.h>

#include <conio.h>

#include <fstream.h>

void main()

{

clrscr();

cout << “Latihan Merekam data ke file\n”;

ofstream latihan (“datateks.txt”);

for (int i=1; i<=10; i++)

{

latihan << “Belajar File” << endl;

}

cout << “Data telah selesai direkam….”<< endl;

latihan.close();

getch();

}

Setelah program ini dijalankan, maka terbentuk file “datateks.txt” . File ini tersimpan dalam

folder yang sama dengan program ditulis.

Untuk melihat isi file “datateks.txt” dapat menggunakan Notepad:

Page 3: PENGELOLAAN FILE Operasi File pada C++ fileOperasi File pada C++ Pada prinsipnya operasi yang dilakukan pada file terdiri dari 3 tahapan : 1. Membuka file 2. Melakukan pemrosesan pada

B. MEMBACA ISI FILE

// Membaca/Menampilkan data file text

#include <iostream.h>

#include <conio.h>

#include <fstream.h>

void main()

{

const int MAX=80;

char buffer[MAX+1];

clrscr();

cout << “Latihan Menampilkan Isi file\n”;

ifstream latihan (“datateks.txt”);

while (latihan)

{

latihan.getline(buffer,MAX);

cout << buffer << endl;

}

latihan.close();

getch();

}

Hasil Eksekusi program :

Page 4: PENGELOLAAN FILE Operasi File pada C++ fileOperasi File pada C++ Pada prinsipnya operasi yang dilakukan pada file terdiri dari 3 tahapan : 1. Membuka file 2. Melakukan pemrosesan pada

Latihan :

1. Rekam 5 data nama mahasiswa yang diinputkan dengan nama file objek mhs dan nama

file teks “nama_mhs.txt”

// Merekam atau menulis File Text

#include <iostream.h>

#include <conio.h>

#include <stdio.h>

#include <fstream.h>

void main()

{

clrscr();

char nama[30];

cout << “Latihan Merekam data ke file\n”;

ofstream mhs(“nama_mhs.txt”);

for (int i=1; i<=5; i++)

{

cout<<” nama mahasiswa = “; gets(nama);

mhs<<nama << endl;

}

cout << “Data telah selesai direkam….”<< endl;

mhs.close();

getch();

}

// Membaca/Menampilkan data file text

#include <iostream.h>

#include <conio.h>

#include <fstream.h>

void main()

{

const int MAX=80;

char buffer[MAX+1];

clrscr();

cout << “Latihan Menampilkan Isi file\n”;

ifstream mhs(“nama_mhs.txt”);

while (mhs)

{

mhs.getline(buffer,MAX);

cout << buffer << endl;

}

mhs.close();

getch();

}

Page 5: PENGELOLAAN FILE Operasi File pada C++ fileOperasi File pada C++ Pada prinsipnya operasi yang dilakukan pada file terdiri dari 3 tahapan : 1. Membuka file 2. Melakukan pemrosesan pada

FILE DENGAN AKSES SECARA SEQUENTIAL

ios::in sebagai input (membaca data yang direkam/ditulis)

ios::out sebagai output (merekam/menulis data)

ios::ate menuliskan pada akhir file untuk file baru.

ios::app meletakkan keluaran atau output pada akhir file

ios::trunk akan menghapus file jika ada

ios::nocreate tanpa membuat file baru (file harus ada sebelumnya)

ios::noreplace membuat file baru (file belum ada sebelumnya, jika ada maka fungsi

tidak berjalan)

ios::binary membuat file biner (bukan text)

Contoh : Buatlah pemrograman C++ untuk menulis/merekam data mahasiswa yang terdiri

dari npm, nama mahasiswa dan ipk. Data tsb disimpan dengan nama file objek mhsFile dan

nama file data “datamhs.dat”.

CARA 1 :

A. Menulis / Merekam

#include <iostream.h>

#include <fstream.h>

#include <stdlib.h> // exit

#include <conio.h>

main()

{

ofstream mhsFile ("datamhs.dat", ios::app);

if (!mhsFile)

{

cerr<<"File could not be opened"<<endl;

exit(1);

}

cout<<"Enter the npm, nama, dan ipk"<<endl;

cout<<"Enter EOF to end input."<<endl<<"?";

char npm[10];

char nama[20];

float ipk;

while (cin>>npm>>nama>>ipk)

{

mhsFile<<npm<<' '<<nama<<' '<<ipk<<endl;

cout<<"?";

}

getch();

}

Page 6: PENGELOLAAN FILE Operasi File pada C++ fileOperasi File pada C++ Pada prinsipnya operasi yang dilakukan pada file terdiri dari 3 tahapan : 1. Membuka file 2. Melakukan pemrosesan pada

Kelemahan cara ini : nama mahasiswa tidak dapat diisikan lebih dari 1 suku kata karena

untuk input datanya menggunakan statement cin.

Setelah program ini dijalankan, maka terbentuk file “datamhs.dat” . File ini tersimpan dalam

folder yang sama dengan program ditulis.

Untuk melihat isi file “datamhs.dat” dapat menggunakan Notepad:

B. Membaca Isi File

#include <iostream.h>

#include <fstream.h>

#include <stdlib.h>

#include <conio.h>

#include <iomanip.h>

void infoMhs (int, char*, char*, float, char*);

main()

{

ifstream inMhsFile ("datamhs.dat", ios::in);

if (!inMhsFile)

{

cerr<<"File could not be opened"<<endl;

exit(1);

}

char npm[10];

char nama[20];

float ipk;

int no=0;

char pre[20];

cout<<"-----------------------------------------------------------"<<endl;

cout<<setiosflags(ios::left)<<setw(5) << "No."

<<setw(10)<<"NPM" <<setw(20)<<"Nama Mahasiswa"

<<setw(7) <<"IPK"<<setw(20)<<"Prediket"<<endl;

cout<<"-----------------------------------------------------------"<<endl;

while (inMhsFile>>npm>>nama>>ipk)

{

no++;

infoMhs (no,npm,nama,ipk,pre);

}

Page 7: PENGELOLAAN FILE Operasi File pada C++ fileOperasi File pada C++ Pada prinsipnya operasi yang dilakukan pada file terdiri dari 3 tahapan : 1. Membuka file 2. Melakukan pemrosesan pada

cout<<"-----------------------------------------------------------"<<endl;

getch();

}

void infoMhs (int no,char*npm, char*nama, float ipk,char* pre)

{

if (ipk>=3.00)

strcpy(pre,"Sangat Memuaskan");

else

if (ipk>=2.50)

strcpy(pre,"Memuaskan");

else

if (ipk>=2.00)

strcpy(pre,"Cukup");

cout<<setiosflags(ios::left)<<setw(5)<<no

<<setw(10)<<npm<<setw(20)<<nama<<setw(7)

<<setprecision(3) <<ipk <<setiosflags(ios::showpoint | ios::left)

<<setw(20)<<pre<<endl;

}

Hasil eksekusi program :

CARA 2 :

A. Menulis/Merekam data

#include <iostream.h>

#include <fstream.h>

#include <stdlib.h>

#include <conio.h>

#include <stdio.h>

#include <string.h>

struct datamhs

{

char npm[10];

char nama[20];

float ipk;

} mhs;

Page 8: PENGELOLAAN FILE Operasi File pada C++ fileOperasi File pada C++ Pada prinsipnya operasi yang dilakukan pada file terdiri dari 3 tahapan : 1. Membuka file 2. Melakukan pemrosesan pada

main()

{

ofstream file_mhs ("datamhs.dat", ios::app);

if (!file_mhs)

{

cerr<<"File could not be opened"<<endl;

exit(1); // prototype in stdlib.h

}

char jwb='Y';

cout<<"Input Data Mahasiswa"<<endl;

while (jwb=='Y')

{

cout << endl;

cout << "NPM = "; gets(mhs.npm);

cout << "Nama = "; gets(mhs.nama);

cout << "IPK = "; cin>>mhs.ipk;

file_mhs.write((char*)&mhs, sizeof(mhs));

cout << "Ada Data Lagi [Y/T] = ";

cin >> jwb;

}

file_mhs.close();

}

B. Membaca Isi File

#include <iostream.h>

#include <fstream.h>

#include <stdlib.h>

#include <conio.h>

#include <stdio.h>

#include <string.h>

#include <iomanip.h>

void infoMhs();

struct datamhs

{

char npm[10];

char nama[20];

float ipk;

} mhs;

main()

{

ifstream file_mhs ("datamhs.dat", ios::in);

if (!file_mhs)

Page 9: PENGELOLAAN FILE Operasi File pada C++ fileOperasi File pada C++ Pada prinsipnya operasi yang dilakukan pada file terdiri dari 3 tahapan : 1. Membuka file 2. Melakukan pemrosesan pada

{

cerr<<"File could not be opened"<<endl;

exit(1);

}

cout<<"-----------------------------------------------------------"<<endl;

cout <<setiosflags(ios::left)<<setw(5)<<"No."

<<setw(10)<<"NPM"

<<setw(20)<<"Nama"<<setw(5) <<"IPK"

<<setw(20)<<"Prediket"<<endl;

cout<<"-----------------------------------------------------------"<<endl;

file_mhs.read((char *)&mhs,sizeof(mhs));

while (!file_mhs.eof())

{

infoMhs();

file_mhs.read((char*)&mhs, sizeof(mhs));

}

cout<<"-----------------------------------------------------------"<<endl;

file_mhs.close();

getch();

}

int no=0;

char pre[20];

void infoMhs()

{

no++;

if (mhs.ipk>=3.00)

strcpy(pre,"Sangat Memuaskan");

else

if (mhs.ipk>=2.50)

strcpy(pre,"Memuaskan");

else

if (mhs.ipk>=2.00)

strcpy(pre,"Cukup");

cout <<setiosflags(ios::left)<<no<<". "

<<setw(10)<<mhs.npm

<<setw(20)<<mhs.nama

<<setw(5) <<setprecision(3)<<setiosflags(ios::showpoint | ios::right)

<<setiosflags(ios::left)<<mhs.ipk<<setw(20)<<pre<<endl;

}

Hasil eksekusi program :

Page 10: PENGELOLAAN FILE Operasi File pada C++ fileOperasi File pada C++ Pada prinsipnya operasi yang dilakukan pada file terdiri dari 3 tahapan : 1. Membuka file 2. Melakukan pemrosesan pada

Contoh : Buatlah pemrograman C++ untuk menulis/merekam data mahasiswa yang terdiri

dari npm, nama mahasiswa dan ipk. Data tsb disimpan dengan nama file objek mhsFile dan

nama file data “datamhs.dat”.

A. Menulis/Merekam data

#include <iostream.h> // cin, cout

#include <fstream.h> // file

#include <stdlib.h> // exit

#include <conio.h> // clrscr, getch

#include <stdio.h> // gets

struct datamhs

{

char npm[10];

char nama[20];

float ipk;

} mhs;

main()

{

ofstream mhsFile ("datamhs.dat", ios::app);

if (!mhsFile)

{

cerr<<"File could not be opened"<<endl;

exit(1); // prototype in stdlib.h

}

char jwb='Y';

cout<<"Input Data Mahasiswa"<<endl;

while (jwb=='Y')

{

cout << endl;

cout << "NPM = "; gets(mhs.npm);

cout << "Nama = "; gets(mhs.nama);

cout << "IPK = "; cin>>mhs.ipk;

mhsFile.write((char*)&mhs, sizeof(mhs));

cout << "Ada Data Lagi [Y/T] = "; cin >> jwb;

Page 11: PENGELOLAAN FILE Operasi File pada C++ fileOperasi File pada C++ Pada prinsipnya operasi yang dilakukan pada file terdiri dari 3 tahapan : 1. Membuka file 2. Melakukan pemrosesan pada

}

mhsFile.close();

}

Membaca Isi File

#include <iostream.h>

#include <fstream.h> // file

#include <stdlib.h> // exit

#include <conio.h>

#include <string.h> // strcpy

#include <iomanip.h> // setiosflag, setw

void infoMhs(); // prototype fungsi

struct datamhs

{

char npm[10];

char nama[20];

float ipk;

} mhs;

main()

{

ifstream mhsFile ("datamhs.dat", ios::in);

if (!mhsFile)

{

cerr<<"File could not be opened"<<endl;

exit(1);

}

cout<<"-----------------------------------------------------------"<<endl;

cout <<setiosflags(ios::left)<<setw(5)<<"No."

<<setw(10)<<"NPM"

<<setw(20)<<"Nama"<<setw(5) <<"IPK"

<<setw(20)<<"Prediket"<<endl;

cout<<"-----------------------------------------------------------"<<endl;

mhsFile.read((char *)&mhs,sizeof(mhs));

while (!mhsFile.eof())

{

infoMhs();

mhsFile.read((char*)&mhs, sizeof(mhs));

}

cout<<"-----------------------------------------------------------"<<endl;

mhsFile.close();

getch();

}

int no=0;

char pre[20];

Page 12: PENGELOLAAN FILE Operasi File pada C++ fileOperasi File pada C++ Pada prinsipnya operasi yang dilakukan pada file terdiri dari 3 tahapan : 1. Membuka file 2. Melakukan pemrosesan pada

void infoMhs()

{

no++;

if (mhs.ipk>=3.00)

strcpy(pre,"Sangat Memuaskan");

else

if (mhs.ipk>=2.50)

strcpy(pre,"Memuaskan");

else

if (mhs.ipk>=2.00)

strcpy(pre,"Cukup");

cout <<setiosflags(ios::left)<<no<<". "

<<setw(10)<<mhs.npm

<<setw(20)<<mhs.nama

<<setw(5) <<setprecision(3)<<setiosflags(ios::showpoint | ios::right)

<< mhs.ipk<< setiosflags(ios::left)<<setw(20)<<pre<<endl;

}

Hasil eksekusi program :