Baca Tulis File Untuk dapat membaca atau menulis data dari/ke sebuah file maka langkah yang perlu dilakukan adalah: membuka file - mendefinisikan variabel stream - melakukan perintah open() 2. Melakukan pembacaan atau penulisan data - menggunakan operand << atau >> - menggunakan operand read() atau write() perintah read() atau write() -> informasi ukuran data yang akan dibaca atau ditulis sangat penting 3. Menutup file - menggunakan perintah close()
Baca Tulis File 1. membuka file - mendefinisikan variabel stream contoh: ifstream input; // variabel stream untuk input ofstream output; // variabel stream untuk output fstream InpOut; // variabel stream utk input/output - melakukan perintah open() sintak: void ifstream::open(const char * filename, ios::openmode mode=ios::in); void ofstream::open(const char * filename, ios::openmode mode=ios::out | ios::trunc); void fstream::open(const char * filename, ios::openmode mode=ios::in | ios::out );
Baca Tulis File Contoh program membuka dan menutup file: #include <iostream> #include <fstream> using namespace std; void main() { // Mendeklarasikan stream untuk proses input ifstream VarBaca; // membuka file VarBaca.open("COBA.TXT"); // Menutup file VarBaca.close(); }
Baca Tulis File Melakukan penulisan data ke dalam file - menggunakan operand << Contoh program menulis data ke file: Data file yang bernama “COBA.TXT” akan disimpan pada folder di mana folder tempat program file berada. Atau informasi drive dan folder harus diinputkan, contoh: “C://DATA//COBA.TXT” Jika file “Coba.txt” kita buka dengan editor notepad, akan tampak seperti: #include <iostream> #include <fstream> using namespace std; void main() { // Mendeklarasikan stream untuk proses output ofstream VarTulis; // membuka file VarTulis.open("COBA.TXT"); VarTulis << “C++ mudah Sekali” << endl;; VarTulis << “Pemrograman Mudah “ << endl; // Menutup file VarTulis.close(); }
Baca Tulis File Melakukan pembacaan data dari file - menggunakan operand >> Contoh program membaca data dari file: Data file yang bernama “COBA.TXT” harus sudah ada di folder tempat program file berada. Jika tidak maka informasi drive dan folder harus diinputkan, contoh: “C://DATA//COBA.TXT” VarBaca >> Teks; menghasilkan satu string/kata dibaca dari file. Jika coba.txt hasil dari program slide sebelumnya adalah sebagai input file maka hasil dilayar adalah: #include <iostream> #include <fstream> using namespace std; void main() { // Mendeklarasikan stream untuk proses output ifstream VarBaca; char Teks[80]; // membuka file VarBaca.open("COBA.TXT"); VarBaca >> Teks; // proses membaca data dr file (1 string/kata) cout << Teks << “ “; // “ “ -> memisahkan dg teks berikutnya VarBaca >> Teks; // proses baca data dr file (1 string/kata) cout << Teks; // Menutup file VarBaca.close(); }
Baca Tulis File Contoh program membaca data dari file: Melakukan pembacaan data dari file - menggunakan operand >> dan while() Contoh program membaca data dari file: Data file yang bernama “COBA.TXT” harus sudah ada di folder tempat program file berada. Jika tidak maka informasi drive dan folder harus diinputkan, contoh: “C://DATA//COBA.TXT” VarBaca.good() : “true” jika berhasil membuka file/membaca data file, “false” jika tidak berhasil membuka file/membaca data file. Hasil: #include <iostream> #include <fstream> using namespace std; void main() { // Mendeklarasikan stream untuk proses output ifstream VarBaca; char Teks[80]; // membuka file VarBaca.open("COBA.TXT"); while(VarBaca.good()) // apakah berhasil membuka { // file atau tidak VarBaca >> Teks; // proses membaca data dr file cout << Teks; } // Menutup file VarBaca.close();
Baca Tulis File Melakukan penulisan data ke dalam file - menggunakan operand write() Sintaks: basic_istream::write (char * buffer, bytesize n); Contoh program menulis data ke file: VarTulis.write(Teks, 15); adalah proses menulis data ke file berupa string yang tersimpan dalam variabel Teks sebanyak 15 byte. String “Kalimat Pertama” terdiri dari 15 karakter. Hasil: Silahkan dicoba jika angka 15 diganti dengan angka yang berbeda! #include <iostream> #include <fstream> using namespace std; void main() { // Mendeklarasikan stream untuk proses output ofstream VarTulis; char Teks[80]; // membuka file VarTulis.open("COBA.TXT"); strcpy(Teks, “Kalimat Pertama”); VarTulis.write(Teks, 15); // proses menulis data ke file cout << Teks; strcpy(Teks,”Kalimat Kedua”); VarTulis.write(Teks, 13); // proses tulis data ke file // Menutup file VarTulis.close(); }
Baca Tulis File Melakukan pembacaan data dari file - menggunakan operand read() Sintaks: basic_istream::read (char * buffer, bytesize n); #include <iostream> #include <fstream> using namespace std; void main() { // Mendeklarasikan stream untuk proses output ifstream VarBaca; char Teks[80]; // membuka file VarBaca.open("COBA.TXT"); strcpy(Teks, " "); // mengosongkan variabel Teks VarBaca.read(Teks, 15); // proses membaca data dr file cout << Teks << endl; VarBaca.read(Teks, 13); // proses baca data dr file cout << Teks; // Menutup file VarBaca.close(); } Contoh program membaca data ke file: Jika coba.txt hasil dari program slide sebelumnya adalah sebagai input file maka hasil dilayar adalah: Silahkan dicoba jika angka 15 atau 13 diganti dengan angka yang berbeda!
Baca Tulis File Melakukan penulisan data berupa numerik - menggunakan operand write() #include <iostream> #include <fstream> using namespace std; void main() { // Mendeklarasikan stream untuk proses output ofstream VarTulis; float angka = 23.3; // membuka file VarTulis.open("COBA.dat"); VarTulis.write((char *) &angka, sizeof(float)); // Menutup file VarTulis.close(); } Contoh program menulis data ke file: Hasil penyimpanan data numerik ke file adalah berupa data biner. Jika file “Coba.dat” dibuka menggunakan editor notepad, maka akan tampak seperti:
Baca Tulis File Melakukan pembacaan data numerik - menggunakan operand read() Contoh program membaca data dari file: #include <iostream> #include <fstream> using namespace std; void main() { // Mendeklarasikan stream untuk proses output ifstream VarBaca; float angka; // membuka file VarBaca.open("COBA.dat"); VarBaca.read((char *) &angka, sizeof(float)); cout << angka << endl; // Menutup file VarBaca.close(); } Jika file “coba.dat” hasil dari program slide sebelumnya adalah sebagai input file maka hasil dilayar adalah: Silahkan dicoba menyimpan data berupa angka/numerik lebih dari satu dengan jenis tipe data yang berbeda (mis. Int, long int, double) ! Dan anda pikirkan bagaimana cara membaca data yang telah tersimpan tersebut. !!
Baca Tulis File Contoh program menulis dan membaca data ke/dari file: Contoh penggunaan property getline dan eof dlm pembacaan data istream& getline( char* pch, int nCount, char delim = '\n' ); #include <iostream> #include <fstream> using namespace std; void main(void) { // Mendeklarasikan stream untuk proses input ifstream VarBaca; // Mendeklarasikan stream untuk proses output ofstream VarTulis; char Teks[80]; // membuka file VarTulis.open("COBI.TXT"); VarTulis << " C++ mudah Sekali " << endl; //menulis data ke file VarTulis << " Pemrograman Mudah " << endl; //menulis data ke file // Menutup file VarTulis.close(); Hasil penyimpan di file:
Baca Tulis File Lanjutan … Hasil pembacaan dari file: // membuka file VarBaca.open("COBI.TXT"); //membaca seluruh data dari file, baris per baris while (!VarBaca.eof()) { VarBaca.getline(Teks,80, '\n'); //membaca data dari file cout << Teks << endl; } // Menutup file VarBaca.close(); delimiter ‘\n’ diganti dengan spacebar ‘ ‘, hasil: VarBaca.eof() memberikan harga “bukan nol” jika akhir suatu file telah ditemukan. VarBaca.getline(Teks,80, '\n'); membaca data karakter yang tersimpan pada file sampai tanda delimiter ditemukan, delimited ‘\n‘ berarti membaca karakter sampai tanda pindah baris ditemukan. Coba tanda delimiter ‘\n’ anda ganti dengan tanda delimiter spcebar ‘ ‘. Perhatikan hasil pada layar.
Baca Tulis File Contoh program menulis dan membaca data ke/dari file dg fstream: Contoh penggunaan property seekg dlm pembacaan data #include <iostream> #include <fstream> using namespace std; void main(void) { // Mendeklarasikan stream untuk proses input ifstream VarBaca; // Mendeklarasikan stream untuk proses output ofstream VarTulis; char Teks[80]; // membuka file VarTulis.open("COBE.TXT"); VarTulis << "C++ sangat Sekali" << endl; //menulis data ke file VarTulis << "Pemrograman Mudah" << endl; //menulis data ke file // Menutup file VarTulis.close();
Baca Tulis File Lanjutan … // membuka file VarBaca.open("COBI.TXT"); VarBaca.seekg(17, ios::beg); // set file pointer ke posisi // 17byte dr awal file Strcpy(Teks, “ “); VarBaca.read(Teks, 12); // proses baca data dr file cout << Teks << “ “; VarBaca.seekg(0, ios::beg); // set file pointer ke posisi // 0byte dr awal file Strcpy(Teks, “ “); VarBaca.read(Teks, 3); // proses baca data dr file VarBaca.seekg(28, ios::cur); // set file pointer ke posisi // 28byte dr posisi saat itu Strcpy(Teks, “ “); VarBaca.read(Teks, 5); // proses baca data dr file
Baca Tulis File Lanjutan … Hasil: // Menutup file VarBaca.close(); } VarBaca.seekg(10, ios::beg); // set file pointer ke posisi // 10byte dr posisi awal Strcpy(Teks, “ “); VarBaca.read(Teks, 6); // proses baca data dr file cout << Teks << “ “; // Menutup file VarBaca.close(); } Hasil:
Baca Tulis File Membaca atau menulis data dari/ke sebuah file dapat dilakukan juga dengan perintah fopen() Untuk dapat membaca atau menulis data dari/ke sebuah file maka langkah yang perlu dilakukan adalah: membuka file - mendefinisikan variabel stream - melakukan perintah fopen() 2. Melakukan pembacaan atau penulisan data - menggunakan operand fscanf() atau fprintf() - menggunakan operand fread() atau fwrite() perintah fread() atau fwrite() -> informasi ukuran data yang akan dibaca atau ditulis sangat penting 3. Menutup file - menggunakan perintah fclose() atau _fcloseall();
Baca Tulis File Contoh program membuka dan menutup file: #include <iostream.h> #include <stdio.h> #include <stdlib.h> void main() { // Mendeklarasikan stream untuk proses input FILE *VarBaca; // membuka file VarBaca = fopen("COBA.TXT", "r"); if(VarBaca==NULL){ cout << " Error buka file : " << "Coba.txt" << endl; exit(-1); // keluar dari program } // Menutup file fclose(VarBaca);
Baca Tulis File Melakukan pembacaan atau penulisan data - menggunakan operand fprintf() atau fscanf() #include <iostream.h> #include <stdio.h> #include <stdlib.h> void main() { // Mendeklarasikan stream untuk proses input FILE *VarTulis; // membuka file VarTulis = fopen("COBA.TXT", "w"); if(VarTulis==NULL){ cout << " Error buka file : " << "Coba.txt“ << endl; exit(-1); } fprintf(VarTulis,"C++ mudah Sekali\n"); fprintf(VarTulis,"Pemrograman Mudah"); // Menutup file fclose(VarTulis); Contoh program menulis data ke file:
Baca Tulis File Melakukan pembacaan atau penulisan data - menggunakan operand fprintf() atau fscanf() #include <iostream.h> #include <stdio.h> #include <stdlib.h> void main() { // Mendeklarasikan stream untuk proses input FILE *VarBaca; char Teks[80]; // membuka file VarBaca = fopen("COBA.TXT", "r"); if(VarBaca==NULL){ cout << " Error buka file : " << "Coba.txt“ << endl; exit(-1); } while(fscanf(VarBaca,"%s",Teks)!=EOF) { cout << Teks << “ “; // Menutup file fclose(VarBaca); Contoh program membaca data ke file:
Baca Tulis File Melakukan pembacaan atau penulisan data - menggunakan operand fprintf() atau fscanf() dan fgets() #include <iostream.h> #include <stdio.h> #include <stdlib.h> #include <string.h> void main() { // Mendeklarasikan stream untuk proses input FILE *VarTulis, *VarBaca; char Teks[80]; // membuka file VarTulis = fopen("COBA.TXT", "w"); if(VarTulis==NULL){ cout << " Error buka file : " << "Coba.txt" << endl; exit(-1); }
Baca Tulis File Lanjutan … Melakukan pembacaan atau penulisan data - menggunakan operand fprintf() atau fscanf() dan fgets() strcpy(Teks, "Kalimat Pertama"); fprintf(VarTulis,"%20s", Teks); // proses menulis data ke file cout << Teks; strcpy(Teks, "Kalimat Kedua"); // Menutup file fclose(VarTulis);
Baca Tulis File Lanjutan … Melakukan pembacaan atau penulisan data - menggunakan operand fprintf() atau fscanf() dan fgets() // membuka file VarBaca = fopen("COBA.TXT", "r"); if(VarBaca==NULL){ cout << " Error buka file : " << "Coba.txt" << endl; exit(-1); } while( fgets(Teks, 21, VarBaca) != NULL ) { cout << Teks << endl; // Menutup file fclose(VarBaca);
Baca Tulis File Melakukan pembacaan atau penulisan data - menggunakan operand fread() atau fwrite() Sintaks: fwrite (char * buffer, size t, count n, iobuf *); #include <iostream.h> #include <stdio.h> #include <stdlib.h> #include <string.h> void main() { // Mendeklarasikan stream untuk proses input FILE *VarTulis; char Teks[80]; // membuka file VarTulis = fopen("COBA.TXT", "w"); if(VarTulis==NULL){ cout << " Error buka file : " << "Coba.txt" << endl; exit(-1); } Contoh program menulis data ke file:
Baca Tulis File Lanjutan…. Melakukan pembacaan atau penulisan data - menggunakan operand fread() atau fwrite() Sintaks: fwrite (char * buffer, size t, count n, iobuf *); Contoh program menulis data ke file: // membuka file strcpy(Teks, "Kalimat Pertama"); fwrite(Teks,sizeof(char),20, VarTulis); // proses menulis data ke file cout << Teks; strcpy(Teks, "Kalimat Kedua"); // Menutup file fclose(VarTulis); }
Baca Tulis File Melakukan pembacaan atau penulisan data - menggunakan operand fread() atau fwrite() Sintaks: fread (char * buffer, size t, count n, iobuf *); #include <iostream.h> #include <stdio.h> #include <stdlib.h> #include <string.h> void main() { // Mendeklarasikan stream untuk proses input FILE *VarBaca; char Teks[80]; // membuka file VarBaca = fopen("COBA.TXT", "r"); if(VarBaca==NULL){ cout << " Error buka file : " << "Coba.txt" << endl; exit(-1); } Contoh program Membaca data ke file:
Baca Tulis File Lanjutan…. Melakukan pembacaan atau penulisan data - menggunakan operand fread() atau fwrite() Sintaks: fread (char * buffer, size t, count n, iobuf *); Contoh program Membaca data ke file: fread(Teks,sizeof(char),20, VarBaca); // proses menulis data ke file cout << Teks << endl; // Menutup file fclose(VarBaca); }
Baca Tulis File Melakukan penulisan data berupa numerik - menggunakan operand fwrite() #include <iostream.h> #include <stdio.h> #include <stdlib.h> void main() { // Mendeklarasikan stream untuk proses input FILE *VarTulis; float angka = 23.3; // membuka file VarTulis = fopen("COBA.DAT", "w"); if(VarTulis==NULL){ cout << " Error buka file : " << "Coba.txt“ << endl; exit(-1); } fwrite(&angka,sizeof(float),1, VarTulis); // proses menulis data ke file cout << angka << endl; // Menutup file fclose(VarTulis); Contoh program Menulis data ke file:
Baca Tulis File Melakukan penulisan data berupa numerik - menggunakan operand fwrite() #include <iostream.h> #include <stdio.h> #include <stdlib.h> void main() { // Mendeklarasikan stream untuk proses input FILE *VarBaca; float angka; // membuka file VarBaca = fopen("COBA.DAT", "r"); if(VarBaca==NULL){ cout << " Error buka file : " << "Coba.txt" << endl; exit(-1); } fread(&angka,sizeof(float),1, VarBaca); // proses menulis data ke file cout << angka << endl; // Menutup file fclose(VarBaca); Contoh program Menulis data ke file:
Baca Tulis File Melakukan pembacaan atau penulisan data - menggunakan operand fread() atau fwrite() dan fungsi fseek() #include <iostream.h> #include <stdio.h> #include <stdlib.h> #include <string.h> void main() { // Mendeklarasikan stream untuk proses input FILE *VarTulis, *VarBaca; char Teks[80]; // membuka file VarTulis = fopen("COBA.TXT", "w"); if(VarTulis==NULL){ cout << " Error buka file : " << "Coba.txt" << endl; exit(-1); }
Baca Tulis File Lanjutan…. Melakukan pembacaan atau penulisan data - menggunakan operand fread() atau fwrite() dan fungsi fseek() strcpy(Teks, "Kalimat Pertama"); fprintf(VarTulis,"%20s", Teks); // proses menulis data ke file cout << Teks; strcpy(Teks, "Kalimat Kedua"); // Menutup file fclose(VarTulis);
Baca Tulis File Lanjutan…. Melakukan pembacaan atau penulisan data - menggunakan operand fread() atau fwrite() dan fungsi fseek() // membuka file VarBaca = fopen("COBA.TXT", "r"); if(VarBaca==NULL){ cout << " Error buka file : " << "Coba.txt" << endl; exit(-1); } while( fgets(Teks, 21, VarBaca) != NULL ) { cout << Teks << endl; fseek(VarBaca, -40, SEEK_END); fgets(Teks, 21, VarBaca); // Menutup file fclose(VarBaca);