Input/Output with files

dokumen-dokumen yang mirip
File & Stream. Kegunaan File : file : ini. dengan. iostream.h) suatu. stream, Jika. dapat menghubungkan. mendeklarasikan. kita.

PEMROGRAMAN BERORIENTASI OBJEK. Input / Output. Budhi Irawan, S.Si, M.T

File I/O in C++ Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc

LAMPIRAN PUSTAKA I/O C++

Baca Tulis File. Untuk dapat membaca atau menulis data dari/ke sebuah file maka langkah yang perlu dilakukan adalah:

FILE & STREAM Bab FILE

Pada prinsipnya operasi yang dilakukan pada file terdiri dari 3 tahapan : 1. Membuka file 2. Melakukan pemrosesan pada file 3.

STRUKTUR DENGAN ARRAY DAN FUNCTION

PERTEMUAN VII FILE TEKS & FILE BINER

//Kelas ini berisi data yang hendak disimpan ke dalam database

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

BAB 12 MANIPULATION FILE

MODUL IV OPERASI DASAR MASUKAN DAN KELUARAN

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

PENGENALAN C++ DADANG MULYANA 2012

OPERASI DASAR MASUKAN DAN KELUARAN

Dasar Operasi File. Overview. Tujuan Instruksional

Object Oriented Programming (OOP)

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut

Konsep Dasar Pemrograman Dan Pengenalan C++

STRUKUR KENDALI : PERCABANGAN

BAB V OPERASI MASUKAN DAN KELUARAN

BAB VI BAHASA C Pendahuluan

Sequential File. Pertemuan Konsep Record/Struktur dan Pointer Konsep File Pengelolaan File Studi Kasus

PENGANTAR KOMPUTER & SOFTWARE II PERCABANGAN

mengatur jumlah digit pecahan yang diinginkan mengatur atau mengontrol sejumlah tanda format, misalkan rata kiri, kanan, huruf capital dll.

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

BAB VI. STATEMENT CONTROL

PERCABANGAN P E N G E N A L A N P R O G R A M S T U D I T E K N I K I N F O R M AT I K A. Institut Teknologi Sumatera

PENGANTAR KOMPUTER & SOFTWARE II PERCABANGAN

PENGENALAN BAHASA C DAN C++

BAB XII OPERASI FILE

Instalasi Code::Blocks, Tipe Data, Variabel, Konstanta, Operator, Input-Output dan Flowchart

8.1 FUNGSI, DEKLARASI DAN DEFINISI NYA

A. Putting a Program Together

A. Putting a Program Together

02 binary file (S.I.)

Komentar, Identifier, Konstanta dan Variabel

LAPORAN PRAKTIKUM SEMENTARA PENGANTAR PEMROGAMAN BAHASA C++

DISUSUN OLEH BAB II C DAN C++ berikut ini: pilih radio HAL 1

ARRAY PENGANTAR PROGRAM STUDI. Institut Teknologi Sumatera

Modul 3 INPUT DAN OUTPUT

PEMROGRAMAN TERSTRUKTUR PERTEMUAN VI KOMPONEN KOMPONEN PEMROGRAMAN TERSTRUKTUR

MODUL 1 Alur Seleksi dengan C++

STRUKTUR DASAR PEMROGRAMAN

Struktur Bahasa C dan C++

Pemrograman Terstruktur. Pemrosesan File Teks dan File Biner

3. Struktur Perulangan dalam C++

Teknik Pemrograman Terstruktur 1

MODUL 1 PENGENALAN PROGRAM C++ DAN PERNYATAAN MASUKAN-KELUARAN

Spesifikasi: Ukuran: 14x21 cm Tebal: 225 hlm Harga: Rp Terbit pertama: Februari 2005 Sinopsis singkat:

Hari : Rabu Pertemuan : 3 Tanggal Praktikum : Oktober 2001 Shift : 4

Algoritma & Pemrograman I BORLAND C++ Bina Sarana Informatika

REVIEW ARRAY. Institut Teknologi Sumatera

Mengkompilasi Source Code C++ dengan g++.

PENGANTAR BAHASA C++

Selection / Pemilihan PEMILIHAN

Minggu III STRUKTUR PEMILIHAN (KONTROL PROGRAM)

SATUAN ACARA PERKULIAHAN (SAP)

Basic Input/Output Operator Yoannita

TUTORIAL DASAR C++ BELAJAR C++ DARI NOL. Nor Kandir. Lab B201 - Teknik Elektro ITS Surabaya

Pertemuan 11: OPERASI FILE dalam C

Dasar Pemrograman. Visual Studio Program C++ Sederhana. Yoannita, S.Kom.

Membuka dan Menutup File

Kurikulum Qt. Chapter 4 Function. Fungsi

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-7 Pencarian (Searching) 2

PENGANTAR KOMPUTER & SOFTWARE II

Rosihan Ari Yuana, S.Si, M.Kom Lisensi Dokumen: BAB I. PENDAHULUAN C++ Oleh:

Sekilas C DAN C++ DISUSUN OLEH. Sebuah bahasa, yaitu: 1. Bahasaa tingkat tinggi. High. dapat. lunak

Percabangan & Perulangan

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

DASAR PEMROGRAMAN. Institut Teknologi Sumatera

UNIVERSITAS WIDYATAMA JURUSAN TEKNIK INFORMATIKA - FAKULTAS TEKNIK Jl. Cikutra No.204 A BAndung UJIAN TENGAH SEMESTER TA.

Contoh Program C++ Sederhana. Script Program : #include<conio.h> #include<stdio.h> main() { cout<< Selamat Datang Di Lab H <<endl;

PRAKTIKUM 1 ALGORITMA & PEMROGRAMAN. 1. Mengenal C/C++

Algoritma dan Pemrograman. Pertemuan Ke-5 Input dan Output

KU-1072 PENGENALAN TEKNOLOGI INFORMASI B (PTI B)

Keg. Pembelajaran 2 : Mengenal Bahasa C++

PENGANTAR KOMPUTER & SOFTWARE II. Array (Part II) Tim Pengajar KU Institut Teknologi Sumatera

LATIHAN SOAL (FUNGSI & PROSEDUR)

Bahasa C. Dosen : Dhamayanti

MODUL 5 PERULANGAN (LOOPING)

BAB IV. OPERATOR DAN STATEMENT

Algoritma dan Pemrograman

VARIABEL, TIPE DATA DAN EKSPRESI Bab 2

ALGORITHM 7 C++ Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.com

LANGKAH-LANGKAH MENULISKAN PROGRAM DALAM TURBO C++

FUNGSI. tipe Tipe nilai yang dihasilkan oleh fungsi. Jika tidak dinyatakan, hasil fungsi dianggap bilangan bulat (int)

Fungsi 1. Ekohariadi FT Unesa

Penerapan Divide and Conquer dalam Membandingkan Alur Proses 2 Source Code

Akan diperhatikan tipe data dari masing-masing operand dalam ungkapan dan secara otomatis akan dilakukan.

DASAR PEMROGRAMAN. File

VI. FUNGSI. Fungsi Main ( ) Fungsi a ( ) Fungsi b ( ) Fungsi c ( ) Fungsi c1 ( ) Fungsi c2 ( ) Fungsi c3 ( ) Bentuk umumnya :

Achmad Solichin.

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-13 Arsip (File) 2

Identifier dan Tipe Data

MODUL PRAKTIKUM. MODUL I - VIII Modul penuntun dan bahan praktikum matakuliah algoritma dan pemograman

BAB V INPUT DAN OUTPUT

MATERI/BAHAN PRAKTIKUM PENDAHULUAN DAN PENGENALAN (IDENTIFIER)

Struktur Kontrol. Contoh, Akan tercetak x is 100 jika nilai yang disimpan pada variable x adalah 100:

Transkripsi:

Input/Output with files Operasi dasar file pada prinsipnya terbagi menjadi 3 tahap, yaitu: membuka atau mengaktifkan file melaksanakan pemrosesan file menutup file A. Membuka file Sebelum suatu file dapat diproses, file harus dibuka terlebih dahulu. Sebelum file dibuka, terlebih dahulu obyek file harus didefinisikan. Sintaksnya: ofstream nama_obyek; Perintah ofstream dapat dijalankan dengan menyertakan file header fstream.h Setelah itu, suatu file dapat dibuka dengan perintah nama_obyek.open( path dan nama file ); C++ juga menyediakan beberapa class yang dapat digunakan untuk mengelola file, diantaranya adalah ofstream : Stream class untuk menulis ke file ifstream : Stream class untuk membaca dari file fstream : Stream class untuk membaca/menulis dari/ke file Beberapa mode yang dapat digunakan dalam membuka sebuah file. Mode Kegunaan ios::in Membuka file untuk operasi input ios::out Membuka file untuk operasi output ios::binary Membuka file dalam mode binary ios::ate Atur posisi awal pada akhir sebuah file. Defaultnya adalah diawal file ios::app Semua operasi output akan diletakkan pada akhir file. Hanya belaku untuk operasi output ios::trunc Jika file yang dibuka telah ada sebelumnya, maka data akan dihapus / ditimpa B. Menulis ke File Salah satu jenis pemrosesan pada file adalah menulis atau merekam data ke file. Sintaksnya: nama_obyek << tulisan/variabel ; C. Menutup File Setelah pemrosesan file selesai, file dapat ditutup menggunakan perintah nama_obyek.close(); D. Menambah Data pada File Suatu file yang sudah ada sebelumnya dapat ditambah data yang baru (tidak menghapus data lama). Caranya dengan menambahkan perintah ios::app pada open(). E. Memeriksa Status File (flag) Ada kemungkinan terjadi saat file dibuka, ternyata file tidak ada. Dalam C++ tersedia function untuk memeriksa kondisi kondisi pada operasi file, sehingga kesalahan saat eksekusi dapat dikendalikan. Function yang dimaksud adalah : bad() akan mengembalikan nilai true jika proses baca/tulis ke file gagal fail() akan mengembalikan nilai jika terjadi kesalahan format eof() akan mengembalikan nilai true jika akhir file tercapai pada saat proses pembacaan data Untuk membersihkan nilai flag clear() Mengatur posisi pointer file a. Mengetahui posisi pointer saat ini tellg() dan tellp() Kedua fungsi tersebut tidak memerlukan parameter dan akan mengembalikan sebuah nilai bertipe pos_type, tipe integer untuk menunjukkan posisi pointer saat ini. b. Mengatur posisi pointer seekg() dan seekp() 1

Fungsi ini untuk mengatur posisi dari pointer pada sebuah file. Parameter tambahan yang dipakai : ios :: beg menghitung jumlah offset mulai dari posisi awal stream ios :: cur menghitung jumlah offset mulai dari posisi saat ini ke posisi pointer stream ios :: end menghitung jumlah offset mulai dari posisi akhir stream // Menghitung ukuran file memanfaatkan posisi pointer long begin,end; ifstream myfile ("example.txt"); begin = myfile.tellg(); myfile.seekg (0, ios::end); end = myfile.tellg(); cout << "Nama file : example.txt\n"; cout << "Ukuran : " << (end-begin) << " bytes.\n"; getche(); F. Operasi Berbasis Karakter Operasi file dapat dilakukan dalam bentuk karakter. Misalnya proses penyimpanan data ke file dilakukan setiap karakter, atau membaca data file karakter per karakter. Operasi ini didukung oleh function put() dan get(). // Program untuk menyimpan data karakter ke dalam file #include<iostream.h> #include<fstream.h> void main() ofstream fileteks; fileteks.open( C:\contoh.txt ); fileteks.put( A ); fileteks.put( B ); fileteks.put( C ); fileteks.close(); // Program untuk membaca file karakter per karakter #include<iostream.h> #include<fstream.h> void main() char karakter; ifstream fileteks; fileteks.open( C:\contoh.txt ); while(!fileteks.eof()) fileteks.get(karakter); cout << karakter; fileteks.close(); 2

Letʹs see some examples: // Membuat file teks ofstream myfile; myfile.open ("example.txt"); myfile << "Menulis baris pertama.\n"; myfile << "Menulis baris kedua.\n"; myfile << "Menulis baris ketiga.\n"; myfile << "Menulis baris keempat.\n"; // membuka file // menulis teks ke file // menutup file perintah myfile.open( example.txt ); akan membuka file example.txt yang ada di direktori aktif. Apabila file tersebut belum ada maka akan dibuat secara otomatis, dan apabila sudah ada isi file example.txt akan tertimpa. // Membuka file teks kemudian menambah pada baris terakhir ofstream myfile; myfile.open("example.txt",ios::app); // file dibuka untuk ditambahi if (myfile.fail()) cout << "Maaf file tak dapat dibuka / tidak ditemukan"; else myfile << "Nambah baris baru 1.\n"; myfile << "Nambah baris baru 2.\n"; Program diatas akan membaca file example.txt, menempatkan pointer pada akhir file, kemudian menambahkan dua baris tulisan. // Membuka file teks kemudian menampilkan isinya ke layar #include <string> using namespace std; char buffer[256]; ifstream myfile; myfile.open ("example.txt"); if (myfile.good()) cout << "Isi file : \n"; while (! myfile.eof() ) 3

myfile.getline (buffer,100); cout << buffer << endl; getche(); else cout << "Unable to open file"; Latihan. 1. Buatlah program C++ untuk menghitung jumlah karakter dalam suatu file. Inputnya adalah nama file dan pathnya. Jawaban : // Menghitung jumlah karakter dalam suatu file #include <iostream.h> #include <fstream.h> #include <conio.h> #include <string> #include <strstream> using namespace std; void main() char karakter; char spasi=' '; char * namafile="kata.txt"; int jumlah_huruf=0; cout << "Ketikkan nama path dan filenya (misalnya c:\kata.txt) : "; cin >> namafile; ifstream myfile; myfile.open (namafile); if (myfile.good()) while(!myfile.eof()) myfile.get(karakter); if (karakter!= spasi) jumlah_huruf++; else cout << "file tidak berhasil dibuka...!"; cout << "Jumlah huruf : " << jumlah_huruf-1; getche(); 4

FILE BINER Pada mode biner, tidak digunakan perintah seperti pada mode teks. Untuk menulis ke file digunakan perintah write dan untuk membaca digunakan perintah read. Sintaksnya : write (memory_block, size); read (memory_block, size); Memory_block tipe pointer karakter yang menunjukkan alamat memori untuk tempat menyimpan data yang akan disimpan atau hasil pembacaan data dari file. Size ukuran blok memori yang akan digunakan untuk menyimpan dan membaca file // Contoh akses file biner #include <ctype> struct data_mahasiswa char nim[10]; char nama[20]; char alamat[30]; mahasiswa; int main() strcpy(mahasiswa.nim,"05981437"); strcpy(mahasiswa.nama,"bang Toyib"); strcpy(mahasiswa.alamat,"balapan, Yogyakarta"); ofstream myfile; myfile.open ("dataku.dat", ios::out ios::trunc ios::trunc); if (!myfile) cout << "File tidak dapat dibuka..!" << endl; return 1; myfile.write((char*) &mahasiswa, sizeof(mahasiswa)); // Manipulasi file biner #include <ctype> #include <iomanip> struct data_mahasiswa char nim[10]; char nama[20]; char alamat[30]; mahasiswa; char lanjut='y'; char simpan='y'; void buat_data_baru(); void tambah_data(); void list_data(); void buat_data_baru() while (toupper(lanjut)=='y') cout << "Pendataan data mahasiswa" << endl; cout << "------------------------" << endl; 5

cout << "Nomor Mahasiswa : "; cin >> mahasiswa.nim; cout << "Nama Mahasiswa : "; cin >> mahasiswa.nama; cout << "Alamat : "; cin >> mahasiswa.alamat; cout << endl << "Data akan disimpan [Y/T]? : "; cin >> simpan; if (toupper(simpan)=='y') ofstream myfile ("mahasiswa.dat", ios ::trunc); if (!myfile) cout << "Data tidak dapat dibaca...!"; //return 1; myfile.write((char*)&mahasiswa,sizeof(mahasiswa)); cout << "Isi data lagi [Y/T]? : "; cin >> lanjut; void tambah_data() while (toupper(lanjut)=='y') cout << "Pendataan data mahasiswa" << endl; cout << "------------------------" << endl; cout << "Nomor Mahasiswa : "; cin >> mahasiswa.nim; cout << "Nama Mahasiswa : "; cin >> mahasiswa.nama; cout << "Alamat : "; cin >> mahasiswa.alamat; cout << endl << "Data akan disimpan [Y/T]? : "; cin >> simpan; if (toupper(simpan)=='y') ofstream myfile ("mahasiswa.dat", ios ::app); if (!myfile) cout << "Data tidak dapat dibaca...!"; //return 1; myfile.write((char*)&mahasiswa,sizeof(mahasiswa)); cout << "Isi data lagi [Y/T]? : "; cin >> lanjut; void list_data() int i=0; cout << "Data Mahasiswa" << endl; cout << " No. NIM Nama Alamat" << endl; cout << "----------------------------------------------------------" << endl; // buka file ifstream myfile ("mahasiswa.dat"); if (myfile) myfile.read((char*)&mahasiswa,sizeof(mahasiswa)); while (!myfile.eof()) i++; cout << setiosflags(ios::right) << setw(3) << i << " "; cout << setiosflags(ios::left) << setw(10) << mahasiswa.nim; cout << setiosflags(ios::left) << setw(20) << mahasiswa.nama; cout << setiosflags(ios::left) << setw(30) << mahasiswa.alamat; cout << endl; myfile.read((char*)&mahasiswa,sizeof(mahasiswa)); cout << "Tekan sembarang tombol untuk melanjutkan..."; getch(); 6

void main() int pil; while (pil!= 6) cout << "Pendataan Data Mahasiswa" << endl; cout << "1. Buat data baru" << endl; cout << "2. Tambah data" << endl; cout << "3. Lihat data" << endl; cout << "4. Hapus data <belum...>" << endl; cout << "5. Edit data <belum...>" << endl; cout << "6. Selesai" << endl; cout << "Pilihan : "; cin >> pil; switch (pil) case 1 : buat_data_baru(); case 2 : tambah_data(); case 3 : list_data(); case 4 : cout << "belum..." << endl;getch(); case 5 : cout << "belum..." << endl;getch(); case 6 : default: cout << "Wrong choice...!";getch(); TUGAS AKHIR KULIAH 1. Selesaikan program diatas untuk fasilitas / pilihan hapus dan edit data 2. Pelajari contoh program dibawah ini kemudian kembangkan sesuai kreasi Anda. Gunakan referensi dan contoh program pada materi/bab sebelumnya. Fasilitas yang diinginkan : - Menggunakan menu pilihan - Dapat menambah kosakata - Dapat mengurutkan kosakata - Dapat menterjemahkan kata indonesia inggris - Dapat mengetahui jumlah kosa kata yang ada dalam kamus SELAMAT BEKERJA! No Pain No Gain! // Program kamus sederhana menambah kosakata #include <string> using namespace std; char * namafile="kamus.txt"; char kata[20]; cout << "Kamus Indonesia - Inggris" << endl; cout << "-------------------------" << endl; cout << "Ketikkan kosakata [indonesia inggris] : "; 7

cin.getline(kata, sizeof(kata)); ofstream myfile (namafile,ios::app); // buka file mode append if (!myfile) cout << "Data tidak ditemukan! Buat file baru"; ofstream myfile (namafile,ios::trunc); // buka file mode truncate myfile << kata << endl; // menulis teks ke file // menutup file // Program kamus sederhana mencari terjemahan #include <string> using namespace std; char * namafile="kamus.txt"; char buffer[256]; char kata[20]; char *ptr; cout << "Kamus Indonesia - Inggris" << endl; cout << "-------------------------" << endl; cout << "Ketikkan kata yang dicari : "; cin >> kata; ifstream myfile; myfile.open (namafile); if (myfile.good()) while (! myfile.eof() ) myfile.getline (buffer,100); // cari kosa kata yang dicari dalam file ptr = strstr(buffer, kata); if (ptr) // jika ketemu, tampilkan cout << ptr << endl;getch(); cout << "Kata yang anda cari tidak ketemu..."; getche(); else cout << "Unable to open file"; 8