2. FILE: PENYIMPANAN DATA SECARA
PERMANEN
Membahas cara untuk menyimpan data kedalam file, membaca data dari file, dan
mengubah isi file. Data yang disimpan berupa data sderhana maupun objek
Mengapa data perlu disimpan parmanen ?
Jika data disimpan dalam memory melalui perantaraan variabel atau struktur data, data
akan hilang kalau komputer dimatikan. Pada keadaan tertentu, data perlu disimpan
secara parmanen dalam bentuk file sehingga komputer tidak perlu dihidupkan secara
terus-menerus.
3. Operasi penyimpanan data
Sertakan #include <fstream>
Bentuk objek file dengan ofstream
Lakukan penyimpanan
Tutup file
4 langkah menyimpan data ke file:
Langkah kedua yang perlu dilakukan adalah menciptakan file; perintahnya sebagai berikut:
Ofstream berkashasil (“buah.txt”);
4. Lanjutan File
Ofstream adalah kelas yg berguna utk menangani file khusus utk menciptakan file;
Berkashasil adalah obyek yg berkelas ofstream
“buah.txt” adalah nama file yg menyimpan data
Langkah ketiga adalah untuk menyimpan data ke dalam file; sebagai berikut:
Berkashasil <<“ Apel Soe” <<endl;
Langkah ke empat adalah untuk menutup file;
Berkaskeluaran.close();
5. Contoh Kasus
#include <iostream>
#include <fstream>
using namespace std;
int main() {
// Bentuk file
ofstream berkasHasil("buah.txt");
// Simpan ke dalam file
berkasHasil << "apel soe" << endl;
berkasHasil << "belimbing demak" << endl;
berkasHasil << "duku condet" << endl;
berkasHasil << "mangga harum manis" << endl;
// Tutup file
berkasHasil.close();
cout << "Data telah disimpan" << endl;
return 0;
}
Penyimpana file bisa diarahkan ke lokasi yang
diinginkan :
“D:foldersubfolderbuah.txt”
6. Menampilkan isi file melalui C++
#include <iostream>
#include <fstream>
using namespace std;
int main() {
// Bentuk objek dan buka file
ifstream berkasBuah("buah.txt");
// Baca isi file sampai semua data terbaca
string data;
while (!berkasBuah.eof()) {
getline(berkasBuah, data);
cout << data << endl;
}
// Tutup file
berkasBuah.close();
return 0;
}
7. Membuat isi file melalui C++
#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 << "nn";
return 0;
}
Input nama file dan
extention nya
8. Menampilkan isi file melalui C++
#include <fstream>
#include <iostream>
using namespace std;
int main() {
char FirstName[30], LastName[30];
int Age; char FileName[20];
cout << "Enter the name of the file you want to open: ";
cin >> FileName;
ifstream Students(FileName);
Students >> FirstName >> LastName >> Age;
cout << "nFirst Name: " << FirstName;
cout << "nLast Name: " << LastName;
cout << "nEnter Age: " << Age;
cout << "nn";
return 0;
}
Input nama file dan
extention nya
9. Apa yang terjadi apabila file yang dibaca melalui ifstream ternyata tidak tersedia di
disk
#include <iostream>
#include <fstream>
using namespace std;
int main() {
char namaFile[255];
cout << "Nama file: ";
cin.getline (namaFile, 255);
// Bentuk objek dan buka file
ifstream berkasData(namaFile);
// Periksa keberhasilan pembukaan file
if (berkasData.fail()) {
cout << "File " << namaFile
<< " tidak dapat dibuka" << endl;
return -1; // Akhiri eksekusi dengan nilai balik
// berupa -1
}
// Baca isi file sampai semua data terbaca
string data;
while (!berkasData.eof()) {
getline(berkasData, data);
cout << data << endl;
}
// Tutup file
berkasData.close();
return 0;
}
10. Apakah isi file bisa ditambah data baru ? Bisa; dengan menggunakan ios::app
ofstream berkasbuah (“buah.txt”, ios ::app)
#include <iostream>
#include <fstream>
using namespace std;
int main() {
// Bentuk file
ofstream berkasBuah("buah.txt", ios::app);
// tambahkan ke dalam file
berkasBuah << "kelengkeng diamond" << endl;
berkasBuah << "sirkaya ratu" << endl;
// Tutup file
berkasBuah.close();
cout << "Data telah ditambahkan" << endl;
return 0;
}
12. int main() {
// Bentuk file
ofstream berkasKar("karakter.txt");
// Simpan ke dalam file
berkasKar.put('A');
berkasKar.put('B');
berkasKar.put('C');
berkasKar.put('D');
berkasKar.put('1');
berkasKar.put('2');
berkasKar.put('3');
berkasKar.put('n'); // Pindah baris
// Tutup file
berkasKar.close();
cout << "Data telah disimpan" << endl;
return 0;
}
Merekam karakter per karakter dengan menggunakan << yg
terdapat fungsi put()
13. Baca karakter
#include <iostream>
#include <fstream>
using namespace std;
int main() {
// Bentuk objek dan buka file
ifstream berkasKar("karakter.txt");
// Baca isi file sampai semua data terbaca
char kar;
while (!berkasKar.eof()) {
kar = berkasKar.get();
cout << kar;
}
// Tutup file
berkasKar.close();
return 0;
}
14. Menyimpan data dengan format biner;
ofstream berkasbiner (‘namafile’, ios::binary);
int main() {
// Data yang akan disimpan
float data[] = {34.5, 12345.67, 56789.7, 12, 99.887766};
// Bentuk file
ofstream berkasBiner("bilangan.dat", ios::binary);
// Simpan ke dalam file
for (int i = 0; i < sizeof(data) / sizeof(float); i++ ) {
berkasBiner.write((char *)&data[i], sizeof(float));
cout << i << endl;
}
// Tutup file
berkasBiner.close();
cout << "Data telah disimpan" << endl;
return 0;
}
15. Baca data biner
int main() {
// Bentuk objek dan buka file
ifstream berkasBiner("bilangan.dat", ios::binary);
// Baca isi file sampai semua data terbaca
float bilangan;
while (!berkasBiner.eof()) {
berkasBiner.read((char *)&bilangan, sizeof(float));
if (berkasBiner)
cout << bilangan << endl;
}
// Tutup file
berkasBiner.close();
return 0;
}
16. Objek
class Mobil {
private:
char jenis[35];
char noPolisi[10];
int harga;
public:
Mobil();
Mobil(char jenis[], char noPolisi[], int harga);
};
Mobil::Mobil() {
strcpy(Mobil::jenis, "");
strcpy(Mobil::noPolisi, "");
Mobil::harga = 0;
}
Mobil::Mobil(char jenis[], char noPolisi[], int harga) {
strcpy(Mobil::jenis, jenis);
strcpy(Mobil::noPolisi, noPolisi);
Mobil::harga = harga;
}
17. Contoh
int main() {
// Buat objek
Mobil mobilA("Honda Jazz", "AB7777ABC", 180);
Mobil mobilB("Daihatsu Xenia", "AB1234XYZ", 105);
Mobil mobilC("Toyota Rush", "AD4545DDC", 145);
// Bentuk file
ofstream berkasObjek("mobil.dat", ios::binary);
// Simpan ke dalam file
berkasObjek.write((char *)&mobilA, sizeof(mobilA));
berkasObjek.write((char *)&mobilB, sizeof(mobilB));
berkasObjek.write((char *)&mobilC, sizeof(mobilC));
// Tutup file
berkasObjek.close();
cout << "Data telah disimpan" << endl;
return 0;
}
19. Contoh
int main() {
// Bentuk objek dan buka file
ifstream berkasObjek("mobil.dat", ios::binary);
// Baca isi file sampai semua data terbaca
while (!berkasObjek.eof()) {
Mobil mob;
berkasObjek.read((char *)&mob, sizeof(mob));
if (berkasObjek)
mob.info();
}
// Tutup file
berkasObjek.close();
return 0;
}