0% menganggap dokumen ini bermanfaat (0 suara)
9 tayangan

Modul 7 File Final Final

Diunggah oleh

muhammad Rafli
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
9 tayangan

Modul 7 File Final Final

Diunggah oleh

muhammad Rafli
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 17

Modul 7 File

MODUL 7
FILE (BERKAS)
A. Tujuan
1. Mahasiswa dapat memahami konsep file.
2. Mahasiswa dapat mengatahui dan mengimplementasikan file dalam program.

B. Dasar Teori
1. Pengertian File
File adalah kumpulan data dan informasi yang saling berhubungan dan juga
tersimpan di dalam ruang penyimpanan sekunder. Definisi file dapat juga diartikan
sebagai arsip atau data yang tersimpan di dalam komputer.
Dalam bidang komputer, file memiliki beberapa tipe, diantaranya tipe data
terdiri dari character, numeric, dan binary. Selain itu, ada juga file yang bertipe
program.
Pada umumnya file pada komputer tersimpan di dalam folder tertentu,
tergantung di mana si pemilik file ingin menyimpannya. Masing-masing file
memiliki ekstensi yang berbeda sesuai dengan jenis filenya.
Ekstensi file adalah tanda yang membedakan antara satu jenis file dengan
jenis file lainnya. Misalnya, file gambar akan memiliki ekstensi jpg, gif, png, dan
lain-lain. Sedangkan untuk file video akan memiliki ekstensia mpeg, avi, mp4,
wmv, dan lain-lain.

2. Operasi File
Pada dasarnya, operasi file terbagi 3 jenis. Read (R), Write(W), dan
Append(A). Read artinya membaca isi file, write menulis data ke file dan append
menambahkan data ke baris terakhir dalam file :
 Read File
Sesuai namanya, di sini kita akan membuka file sesuai namanya lalu
membaca isi filenya. Untuk membaca isi file lalu menyimpannya ke dalam
variabel, bisa dengan menggunakan fscanf(namavariabelfile, format); Jika
menggunakan mode read, pastikan tidak melakukan fclose terhadap file
yang tidak ada. Karena itu akan mengakibatkan error.

Praktikum Algoritma dan Pemograman 2022 Modul VII - 1


Modul 7 File
int main(){
char nama[100];
int umur;
FILE *in=fopen("text.txt","r");
if(!in){ //cek apakah filenya ada atau tidak
printf("tidak ada file");
}else{
while(!feof(in)){
fscanf(in,"%[^#]#%d\n", &nama,
&umur);fflush(stdin);
printf("%s %d\n", nama, umur);
}
fclose(in);
}
getchar();
return 0;
}

 Write File
Write file artinya kita membuka file dalam mode write (siap untuk
ditulis). Dengan menggunakan format yang sama dengan di atas, kita akan
mencoba membuat file baru dengan isi NAMA#UMUR. Menyimpan data
ke file bisa menggunakan perintah fprintf(namavariabelfile, format);
int main(){

char nama[100];

int umur;

printf("Masukkan nama : "); scanf("%[^\n]", &nama);


fflush(stdin);

printf("Masukkan umur : "); scanf("%d", &umur);


fflush(stdin);

FILE *out=fopen("test.txt","w");

fprintf(out,"%s#%d\n",nama, umur);

fclose(out);

printf("Sukses menambah data.");

getchar();

return 0;
}

Praktikum Algoritma dan Pemograman 2022 Modul VII - 2


Modul 7 File

Script di atas jika dijalankan maka akan membuat file baru jika
sudah ada datanya (overwrite). Lalu, hasil inputan nama dan umur akan
disimpan dalam file test.txt dengan format NAMA#UMUR.
 Append file
Append artinya menambahkan data pada file baris terakhir. Jika belum ada
data/filenya, maka append akan membuatkan file baru. Contoh :
int main(){
char nama[100];
int umur;
printf("Masukkan nama : "); scanf("%[^\n]",
&nama); fflush(stdin);
printf("Masukkan umur : "); scanf("%d", &umur);
fflush(stdin);

FILE *out=fopen("test.txt","a");
fprintf(out,"%s#%d\n",nama, umur);
fclose(out);
printf("Sukses menambah data.");
getchar();
return 0;
}
Perbedaan write dengan append yaitu bahwa write akan selalu
membuat file baru untuk mengoverwrite file nama. Append, akan
menambahkan data ke baris paling terakhir jika ada file yang dituju. Jika
tidak, maka akan membuat file baru.
 Operasi file adalah proses input/baca dari file dan proses output/tulis ke
file.
Jenis-jenisoperasi file pada C :
Tabel B2.1 Jenis – jenis operasi file pada bahasa C
No Mode Fungsi
1 R Menyatakan file hanya dapat dibaca (file harus sudah
ada).
2 W Menyatakan file baru akan dibuat/diciptakan (file yang
sudah ada akan dihapus).
3 A Untuk membuka file yang sudah ada dan akan dilakukan
proses penambahan data (jika file belum ada, otomatis
akan dibuat).
4 W+ Untuk membuka file dengan tujuan untuk pembacaan
atau penulisan.
5 R+ Untuk membuka file yang sudah ada dan akan dilakukan
proses pembacaan dan penulisan.
6 Rb Membuka sebuah file binary untuk pembacaan.

Praktikum Algoritma dan Pemograman 2022 Modul VII - 3


Modul 7 File

7 Wb Membuka sebuah file binary untuk pembacaan.


8 Ab Menambahkan data ke sebuah file binary.
9 a+ Menambahkan data/membuat file teks untuk pembacaan/
penulisan.
10 r+b atau Membuka sebuah file binary untuk pembacaan/penulisan.
rb+
11 w+b atau Membuat sebuah file binary untuk pembacaan/penulisan.
wb+
12 a+b atau Menambahkan data ke file.
ab+

Mode Pada C++.

Tabel B2.2 Mode pada C++

No Mode Fungsi
1 ios::app Menambahkan data terakhir outputfile.

2 ios::ate Pergi ke akhir file ketika dibuka.

3 ios::in Membuka untuk masukan (harus diberikan kepada


fungsi buka ifstream variable).
4 ios::out Buka file untuk output.

5 ios::binary File binary(jika tidak ada, maka file dibuka sebagai


file ASCII).
6 ios::trunc Membuang isi yang ada saat membuka file untuk
menulis.
7 ios::nocreat Mengalami gagal jika file tersebut tidak ada.
e

8 ios::norepla Jangan menimpa file yang ada


ce

Penunjuk file yang baik untuk keperluan pembacaan maupun perekaman


dapat dipindahkan dengan menggunakan fungsi anggota seekg() dan
seekp().

1. seekg()berguna untuk memindahkan penunjuk file


yang digunakan sebagai penunjuk operasi pembacaan.

2. seekp()berguna untuk memindahkan penunjuk file

Praktikum Algoritma dan Pemograman 2022 Modul VII - 4


Modul 7 File

yang digunakan sebagai penunjuk operasi perekaman.

3. Sintaxnya :
Seekp(intposisi);atau seekp(offset, acuan);

Seekg(intposisi);atau seekg(offset, acuan);

4. Dengan posisi acuan yang dapat kita gunakan antara lain :


ios::begposisi awal file
ios::curposisi pointer saatini
ios::endposisiakhir file

contoh :

#include <iostream>
#include <conio.h>
#include <fstream>
using namespace
std; void main()

char karakter;
fstreamfHuruf("huruf.txt",
ios::out); fHuruf.close();

fHuruf.open("huruf.txt", ios::in|
ios::out); for (char huruf = TAT;
huruf<=TZT; huruf++) fHuruf.put(huruf);
cout<<"Membacadariawalhinggaakhir"<<endl
; for (char huruf=TAT; huruf<=TZT;
huruf++) { fHuruf.seekg(huruf-TAT,
ios::beg); fHuruf.get(karakter);

cout<<karakter;

cout<<endl;

_getch();

Informasi mengenai posisi penunjuk file untuk operasi


masukan ataupun keluaran dapat diperoleh dengan menggunakan
fungsi anggota tellp()dan tellg().

1. tellp()menunjukkan posisi penunjuk file perekaman.


2. tellg()menunjukkan posisi penunjuk file pembacaan.
3. Fungsi tellp()dan tellg()mengembalikan nilai integer yang

Praktikum Algoritma dan Pemograman 2022 Modul VII - 5


Modul 7 File

menyatakan posisi pointer perekaman dan pembacaan.


4. Fungsi ini dapat digunakan dengan langsung menugaskan
fungsi ini ke dalam suatu variabel integer.
Contoh :
#include <iostream>
#include <conio.h>

#include <fstream>
using namespace std;
void main()
{
char karakter;
fstreamfHuruf("huruf2.txt", ios::out);
fHuruf.close();
fHuruf.open("huruf2.txt", ios::out|ios::in);
cout<<"posisipenunjuk file setelah file
dibuka"<<endl; cout<<"Masukan :
"<<fHuruf.tellg()<<endl; cout<<"Keluaran :
"<<fHuruf.tellp()<<endl;
for(char huruf=TAT; huruf<=TZT; huruf+
+)fHuruf<<huruf; cout<<"Posisipenunjuk file
setelahperekaman"<<endl;
_getch();
}

Praktikum Algoritma dan Pemograman 2022 Modul VII - 6


Modul 7 File

C. Studi Kasus/Permasalahan

Praktikum Algoritma dan Pemograman 2022 Modul VII - 7


Modul 7 File

D. Flowchart
- Flowchart

Praktikum Algoritma dan Pemograman 2022 Modul VII - 8


Modul 7 File

Praktikum Algoritma dan Pemograman 2022 Modul VII - 9


Modul 7 File
#include<iostream>
#include<fstream>
using namespace std;

string barang[100];
int harga[100];
string belanjaan[100];
int hargaSatuan[100];
int totalBelanjaan;
int banyakBarang;
int banyakBelanjaan;
int uangBayar;

int menu();
int menu Utama();
void admin();
void user();
void input Barang();
void editBarang();
void tampilBarang();
void printout();
void display_barang();
void keranjang_belanjaan();
void bayar();
void printResi();

int main(){
menu();
}

int menu(){
switch(menu Utama()){
case 1:
system("cls");
admin();
sleep(1);
menu();
break;

case 2:
system("cls");
user();
sleep(1);
menu();
break;

case 3:
exit(0);
break;

default:
cout<<"\tInputan anda salah.. Pilih 1-3"<<endl;
system("pause");
sleep(1);
menu();
break;
}
system ("pause");
return 0;
}

Praktikum Algoritma dan Pemograman 2022 Modul VII - 10


Modul 7 File
int menuUtama(){
int input;

cout<< "|============================ MENU


=============================|"<<endl;
cout<< "|~~~~~~~~~~~~~~~~~~~~~|"<<endl;
cout<< "|_____________________|"<<endl;
cout<< "Masuk sebagai admin atau sebagai user\n"
"1. Admin\n"
"2. User\n"
"3. Keluar\n";
cout<< "|~~~~~~~~~~~~~~~~~~~~~|"<<endl;
cout<< "|
=============================================================
==|"<<endl;

cout<< "Pilihan anda: ";


cin>>input;

return input;
}

void admin(){
int pill;

cout<< "|================= SELAMAT DATANG DIMENU


ADMIN =================|"<<endl;
cout<< "|~~~~~~~~~~~~~~~~~~~~~|"<<endl;
cout<< "|_____________________|"<<endl;
cout<< "Pilih Transaksi yang ingin anda lakukan\n"
"1. Input Barang dan Harga barang\n"
"2. Edit Harga barang\n"
"3. Print out List barang dan harga\n"
"4. Kembali ke menu Utama\n";
cout<< "|~~~~~~~~~~~~~~~~~~~~~|"<<endl;
cout<< "|
=============================================================
==|"<<endl;
cout<<"Masukan transaksi yang ingin dilakukan: ";
cin>>pill;
cout<<endl;

switch(pill){
case 1:
inputBarang();
admin();
break;

case 2:
system("pause");
system("cls");
editBarang();
admin();
break;

case 3:
system("pause");
system("cls");
tampilBarang();

Praktikum Algoritma dan Pemograman 2022 Modul VII - 11


Modul 7 File
printout();
admin();
break;

case 4:
system("pause");
system("cls");
menu();
break;

default:
cout<< "Inputan anda salah... Pilih 1
- 4"<<endl;
system("pause");
admin();
break;
}

void user(){
char pill;

display_barang();

cout<< "Apakah anda ingin membeli?(y/n): ";


cin>>pill;

if(pill=='y'||pill=='Y'){
keranjang_belanjaan();
} else if( pill == 'n' || pill == 'N'){
menu();
} else{
cout<< "Inputan anda salah!!";
user();
}
}

void inputBarang(){
char pilihan;
int i=0;
int x;

do{
cout<< "\n|======== SILAHKAN MASUKAN BARANG
YANG INGIN DIMASUKAN =========|"<<endl;
cout<< "|~~~~~~~~~~~~~~~~~~~~~|"<<endl;
cout<< "Masukan nama barang : ";
cin>> barang[i];
cout<< "Masukan harga : ";
cin>> harga[i];
i++;
banyakBarang++;

cout<< "Apakah anda ingin meninputkan barang


lagi? (Y/N): "<<endl;
cin>>pilihan;

} while(pilihan == 'Y' || pilihan == 'y');

Praktikum Algoritma dan Pemograman 2022 Modul VII - 12


Modul 7 File
cout<< "Data barang berhasil disimpan!"<<endl;
system("pause");
system("cls");
}
void editBarang(){
int index;
char pilihan;
int hargaNew;

tampilBarang() ;

do{
cout<< "|\n======= SILAHKAN MASUKAN INDEX
BARANG YANG INGIN DIUBAH =======|"<<endl;
cout<< "|~~~~~~~~~~~~~~~~~~~~~|"<<endl;
cout<< "Index Barang : ";
cin>>index;
cout<< "Masukan Harga Terbaru : ";
cin>>hargaNew;

harga[index-1]=hargaNew;

cout<< "Apakah anda ingin meninputkan barang


lagi? (Y/N): ";
cin>>pilihan;

}while(pilihan == 'Y' || pilihan == 'y');

cout<< "Harga berhasil diubah!"<<endl;


}

void tampilBarang(){
cout<< "|========= BERIKUT LIST BARANG YANG TELAH
DIINPUTKAN ===========|"<<endl;
cout<< "|~~~~~~~~~~~~~~~~~~~~~|"<<endl;
cout<< "|No. Nama Barang Harga Barang
|"<<endl;
for (int i = 0; i < banyakBarang; i++){
cout<< "|"<<i+1<<". "<<barang[i]<<"
Rp. "<<harga[i]<<endl;
}
cout<<
"|-----------------------------------------------------
----------|"<<endl;
cout<< "|~~~~~~~~~~~~~~~~~~~~~|"<<endl;
cout<< "|
=============================================================
==|"<<endl;

void printout(){
ofstream fileBarang;

fileBarang.open("Daftar barang.txt", ios::trunc);

fileBarang<< "|======================= STRUK


PESANAN ========================|"<<endl;
fileBarang<< "|~~~~~~~~~~~~~~~~~~~~~|"<<endl;
fileBarang<< "|Daftar Barang Belanjaan :

Praktikum Algoritma dan Pemograman 2022 Modul VII - 13


Modul 7 File
|"<<endl;
for (int i = 0; i < banyakBarang; i++){
fileBarang<< "| "<<i+1<<". "<<barang[i]<<"
Rp. "<<harga[i]<<" |"<<endl;
}
fileBarang<<
"|-----------------------------------------------------
----------|"<<endl;
fileBarang<< "|~~~~~~~~~~~~~~~~~~~~~|"<<endl;
fileBarang<< "|
=============================================================
==|"<<endl;

fileBarang.close();
cout<< "File berhasil dicetak!"<<endl;
}

void display_barang(){
cout<< "|============ BERIKUT LIST BARANG SERTA
HARGANYA ===============|"<<endl;
cout<< "|~~~~~~~~~~~~~~~~~~~~~|"<<endl;
cout<< "|No. Nama Barang Harga Barang
|"<<endl;
for (int i = 0; i < banyakBarang; i++){
cout<< "|"<<i+1<<". "<<barang[i]<<"
Rp. "<<harga[i]<<endl;
}
cout<<
"|-----------------------------------------------------
----------|"<<endl;
cout<< "|~~~~~~~~~~~~~~~~~~~~~|"<<endl;
cout<< "|
=============================================================
==|"<<endl;
}

void keranjang_belanjaan(){
int pilihan;
int index;
int i;

display_barang();

do{
cout<< "|============ SILAHKAN MASUKAN YANG
INGIN ANDA BELI ============|"<<endl;
cout<< "|~~~~~~~~~~~~~~~~~~~~~|"<<endl;
cout<< "Masukan Index: ";
cin>>index;

belanjaan[i]=barang[index-1];
hargaSatuan[i]=harga[index-1];
totalBelanjaan=totalBelanjaan+harga[index-1];
i++;
banyakBelanjaan++;

cout<< "Ingin belanja lagi? (Y/N): ";


cin>>pilihan;
} while(pilihan == 'Y' || pilihan == 'y');

Praktikum Algoritma dan Pemograman 2022 Modul VII - 14


Modul 7 File

bayar();
printResi();
}void bayar(){
cout<< "| TOTAL BELANJAAN ANDA
|"<<endl;
cout<<
"|-----------------------------------------------------
----------|"<<endl;
for (int i = 0; i < banyakBelanjaan; i++){
cout<< "|"<<i+1<<". "<<belanjaan[i]<<"
Rp. "<<hargaSatuan[i]<<endl;
}

cout<< "Total Yang harus anda bayar:


"<<totalBelanjaan<<endl;
cout<<
"|-----------------------------------------------------
----------|"<<endl;
cout<< "|~~~~~~~~~~~~~~~~~~~~~|"<<endl;
}

void printResi(){
ofstream fileResi;

fileResi.open("Struk Pembelian.txt", ios::trunc);

fileResi<< "|======================= STRUK PESANAN


========================|"<<endl;
fileResi<< "|~~~~~~~~~~~~~~~~~~~~~|"<<endl;
fileResi<< "|Daftar Barang Belanjaan :
|"<<endl;
for (int i = 0; i < banyakBelanjaan; i++){
fileResi<<" | "<<i+1<<". "<<belanjaan[i]<<"
Rp. "<<hargaSatuan[i]<<" |"<<endl;
}
fileResi<<"
|------------------------------------------------------
---------|"<<endl;
fileResi<<" |TOTAL YANG HARUS ANDA BAYAR ADALAH :
Rp. "<<totalBelanjaan<<" |"<<endl;
fileResi<<"
|------------------------------------------------------
---------|"<<endl;
fileResi<<" |~~~~~~~~~~~~~~~~~~~~~|"<<endl;
fileResi<<" |======================== TERIMA
KASIH =========================|"<<endl;

fileResi.close();
cout<< "Resi berhasil dicetak!";
}

Praktikum Algoritma dan Pemograman 2022 Modul VII - 15


Modul 7 File

- Hasil Running

E. Analisa

F. Kesimpulan
.

Praktikum Algoritma dan Pemograman 2022 Modul VII - 16


Modul 7 File

DAFTAR PUSTAKA

Praktikum Algoritma dan Pemograman 2022 Modul VII - 17

Anda mungkin juga menyukai