Praktikum algoritma dan pemrograman 2016 BAB VII - 14
MODUL VII
FILE (BERKAS)
Tujuan Praktikum
Mahasiswa dapat memahami konsep file
Mahasiswa dapat mengetahui dan mengimplemtasikan file dalam program.
Dasar Teori
Pengertian File
File dalah sebuah organisasi dari sejumlah record. Masing-masing record bias terdiri dari satu atau beberapa field. Setiap field terdiri dari satu atau beberapa byte.
Jenis file terdiri dari dua macam yaitu file teks dan file biner :
Ø File Teks
File teksadalah file yang berisikan kumpulan karakter ASCII yang disusun menjadi beberapa baris
Ø File Biner
File biner adalah file yang berisikan data yang masing-masing elemen berupa data 8 bit (1byte).
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 baruakan dibuat/diciptakan (file yang sudahada akan dihapus)
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
3. Untuk melakukan operasi input file digunakan objek ifstream dan untuk operasi output file digunakan objek ofstream. Kedua objek tersebut berada pada headerfile fstream.h. operasi dasar pada file pada dasarnya terbagi menjadi tiga tahap yaitu :
· Membuka atau mengaktifkan File
· Melaksanakan proses File
· Menutup File
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 :
ofstreamnama_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.
contoh penulisan pada program :
simpan<<"belajar file C++ "<
c. Menutup File
Setelah pemrosesan file berakhir, file perluditutup. Langkah ini dilakukan dengan memanggil fungsi anggota bernama close()
Nama_object.close();
merupakan pernyataaan untuk menutupfile.
Contoh penulisan pada program :
simpan.close();
Berikut ini merupakan contoh lengkap dari operasi file diatas :
#incl #include
#include
Voi d main()
{
Of stream simpan; simpan.open("file.TXT");
simpan<<"belajar file pada C++"<
simpan.close();
}
Modus keluaran
simpan.open("file.TXT");
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
C. Permasalahan
Membuat program untuk mencetak nota kasir untuk pembelian lima buah buku pada sebuah file dengan nama file dinamis.
Flowchart
Sourcecode
#include
#include
#include
#include
#define maks 5
struct barang
{
int harga,jumlah;
double harjum,total;
char namabrg [31];
};
int main ()
{
barang belanja[maks];
int g,y=0;
char lagi,nmr[20];
do
{
cout<<"Pembelian Barang Ke="<
cout<<"======================"<
cout<<"Nama Barang : ";cin.get(belanja[y].namabrg,30);
cout<<"Harga Satuan : ";cin>>belanja[y].harga;
cout<<"Jumlah yang Dibeli: ";cin>>belanja[y].jumlah;
cout<<"\nAda barang lain lagi yang dibeli--maks 5--(Y/N)?";
cin>>lagi;
cin.ignore();
cout<
y++;
g=y;
}
while((lagi=='y'""lagi=='Y')&&y<5);
cout<<"Nama File Nota : ";cin >> nmr;
ofstream struk(nmr,ios::out);
struk<<" NOTA BELANJA "<
struk<<" TOKO BUKU GRALEKTROMEDIA "<
struk<<"===========================================================
===="<
struk<<"" no " nama barang " harga satuan " jumlah " total harga "
"<
struk<<"===========================================================
===="<
for(y=0;y
{
belanja[y].harjum=belanja[y].harga*belanja[y].jumlah;
struk<<"""<
struk<<"""<
struk<<"""<
struk<<"""<
struk<<"""<
belanja[maks].total=belanja[0].harjum+belanja[1].harjum+
belanja[2].harjum+belanja[3].harjum+belanja[4].harjum+
belanja[5].harjum;
}
struk<<"===========================================================
===="<
struk<<"total belanja (Rp)"<
struk<
struk<<"===========================================================
===="<
getch();
}
Hasil run
D. Analisa Program
#include
Merupakan pemberian instruksi untukpreprocessor directive #include agar menyertakanfile headerconio.hsehingga memungkinkan penggunaan perintahgetchdalam program ini.
#include
Merupakan pemberian instruksi untukpreprocessor directive #include agar menyertakanfile headeriostream.hsehingga memungkinkan penggunaan perintahcin, cout, dan endl dalam program ini.
#include
Merupakan pemberian instruksi untukpreprocessor directive #include agar menyertakanfile headeriomanip.hsehingga memungkinkan penggunaan perintahsetwdalam program ini.
#include
Merupakan pemberian instruksi untukpreprocessor directive #include agar menyertakanfile headerfstream.hsehingga memungkinkan penggunaan perintahofstreamdalam program ini.
#define maks 5
Merupakan pemberian instruksi untukpreprocessor directive #define agar mendefinisikan variabel makssebagai 5.
struct barang{};
Merupakan pendeklarasian struct dengan nama barang.
int harga,jumlah;
Merupakan pendeklarasian variabel harga dan jumlah dengan tipe data integer.
double harjum,total;
char namabrg [31];
Merupakan pendeklarasian variabel harjum dan total dengan tipe data double.
char namabrg [31];
Merupakan pendeklarasian variabel namabrg dengan tipe data char.
int main (){}
Merupakan fungsi utama yang berisi statement-statement.
barang belanja[maks];
Merupakan pendeklarasian object belanja yang memiliki structbarang.
int g,y=0;
Merupakan pendeklarasian variabel g dany yang bernilai 0 dengan tipe data integer.
char lagi;
Merupakan pendeklarasian variabel lagidengan tipe data char.
do {statement}while(kondisi);
Merupakan statement looping dimana statement akan dieksekusi sekali dan akan dieksekusi lagi apabila kondisi telah terpenuhi.
cout<<(teks)<
Merupakan perintah untuk menampilkan teks sesuai yang kita inginkan.
cout<<(teks)<
Merupakan perintah untuk menampilkan teks sesuai yang kita inginkan dilanjutkan dengan perintah untuk menapilkan teks berikutnya di baris baru.
cin.get(variable, size of);
Merupakan perintah untuk menginputkan nilai variabel dengan ukuran tertentu yang memungkinkan pemberian inputan lebih dari satu kata.
cin>>varibel;
Merupakan perintah untuk menginputkan nilai variabel.
y++;
Merupakan pernyataan bahwa nilai variabel y bertambah 1 setiap kali looping.
g=y;
Merupakan pernyataan bahwa nilai variabel g sama dengan nilai variabel y.
ofstream struk(nmr,ios::out);
Merupakan perintah untuk menuliskan isi dari object struk di file yang bernama sesuai dengan nilai dari variabel nmr yang diinputkan sebelumnya.
for(nilai awal; kondisi; perubahan nilai){}
Merupakan statement looping dimana statement akan dieksekusi dimulai dari nilai awal selama kondisi terpenuhi dengan perubahan nilai variabel setiap kali looping.
belanja[y].harjum=belanja[y].harga*belanja[y].jumlah;
Merupakan pernyataan bahwa nilai dari variabel belanja[y].harjum sama dengan nilai dari variabel belanja[y].harga dikalikan dengan nilai dari variabel belanja[y].jumlah.
struk<<(teks);
Merupakan perintah untuk menampilkan teks sesuai yang kita inginkan pada object struk di file yang sudah kita buat sebelumnya.
struk<< setw(lebar) << (teks);
Merupakan perintah untuk menampilkan teks sesuai yang kita inginkan dengan nilai lebar tampilan data tertentupada object struk di file yang sudah kita buat sebelumnya.
belanja[maks].total=belanja[0].harjum+belanja[1].harjum+
belanja[2].harjum+belanja[3].harjum+belanja[4].harjum+
belanja[5].harjum;
Merupakan pernyataan bahwa nilai dari variabel belanja[maks].total sama dengan jumlah dari semua nilai variabel belanja[].harjum.
getch();
Merupakan perintah agar program tidak langsung ditutup setelah perintah terakhir selesai dieksekusi.
E. Kesimpulan
File dalah sebuah organisasi dari sejumlah record. Masing-masing record bias terdiri dari satu atau beberapa field. Setiap field terdiri dari satu atau beberapa byte.
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 baruakan dibuat/diciptakan (file yang sudahada akan dihapus)
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
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.
Modul VII File