Anda di halaman 1dari 14

LAPORAN PRAKTIKUM

PEMROGRAMAN DASAR
UNIT 11
OPERASI FILE

Nama : Naufal Rashad Aryaputra


NIM : 19/447081/SV/16800
Kelas : TRIK B
Hari/Tgl : Rabu, 20 April 2020

LABORATORIUM TEKNIK PERANGKAT LUNAK DAN KOMPUTER


TEKNOLOGI REKAYASA INSTRUMENTASI DAN KONTROL
DEPARTEMEN TEKNIK ELEKTRO DAN INFORMATIKA
SEKOLAH VOKASI
UNIVERSITAS GADJAH MADA
2020
BAB I
DASAR TEORI

Pada prinsipnya operasi yang dilakukan pada file terdiri dari 3 tahapan :
1. Membuka file
2. Melakukan pemrosesan pada file
3. Menutup file
Dalam melakukan operasi file dibutuhkan fungsi-fungsi yang berhubungan dengan
operasi file yang terdapat pada file fstream. Oleh sebab itu, untuk dapat melakukan
operasi file, maka preprocessor directive berikut ditambahkan: #include
<fstream>

1. MEMBUKA FILE
Pembukaan dari suatu file mempunyai 2 tujuan, yaitu :
1. Membuka file untuk ditulis/direkam
2. Membuka file untuk dibaca

Membuka file untuk ditulis :


ofstream file_objek;
Setelah objek_output diciptakan, maka file dibuka dengan cara :
file_objek.open (“nama_file”);

Kedua pernyataan di atas dapat disederhanakan :


ofstream file_objek (“nama_file”);

Membuka file untuk dibaca :


ifstream file_objek;
Setelah objek_input diciptakan, maka file dibuka dengan cara :
file_objek.open (“nama_file”);

Kedua pernyataan di atas dapat disederhanakan :


ifstream file_objek (“nama_file”);

2. MENUTUP FILE
Setelah pemrosesan file berakhir, maka file perlu ditutup. Langkah ini dilakukan
dengan cara : file_objek.close();
Pemakaian fungsi close() sifatnya optional. Bila digunakan fungsi ini maka compiler
tidak akan mengeluarkan pesan error.

3. FILE TEKS
A. Menulis/Merekan Data Teks
Contoh Program:
// Merekam atau menulis File Text
#include <iostream>
#include <fstream>
using namespace std;
int main()
{ cout << "Latihan Merekam data ke file\n";
ofstream latihan ("datateks.txt");
for (int i=1; i<=10; i++)
latihan << "Belajar Operasi File" << endl;
cout << "Data telah selesai direkam..."<< endl;
latihan.close(); }
B. Membaca Isi File
// Membaca/Menampilkan data file text
#include <iostream>
#include <fstream>
using namespace std;
int main()
{ const int MAX=80;
char buffer[MAX+1];
cout << "Latihan Menampilkan Isi file\n";
ifstream latihan ("datateks.txt");
while (latihan)
{ latihan.getline(buffer,MAX);
cout << buffer << endl; }
latihan.close(); }

4. FILE DENGAN AKSES SECARA SEQUENTIAL


File sekuensial berisi rekam data yang tidak mengenal posisi baris atau nomor rekam
pada saat aksesnya dan setiap rekam data dapat memiliki lebar yang berbeda-beda.
Pada bahasa C++ terdapat beberapa perintah yang dapat digunakan untuk akses
file secara sekuensial diantaranya:
ios::in = sebagai input (membaca data yang direkam/ditulis)
ios::out = sebagai output (merekam/menulis data)
ios::ate = menuliskan pada akhir file untuk file baru.
ios::app = meletakkan keluaran atau output pada akhir file
ios::trunk = akan menghapus file jika ada
ios::nocreate = tanpa membuat file baru (file harus ada sebelumnya)
ios::noreplace = membuat file baru (file belum ada sebelumnya, jika ada maka fungsi
tidak berjalan)
ios::binary = membuat file biner (bukan text)

Contoh Program:
a. Menulis/Merekam Data
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cstring>
using namespace std;
struct datamhs
{ char nim[15]; char nama[25]; float ipk;
} mhs;
int main()
{ ofstream file_mhs ("datamhs.dat", ios::app);
if (!file_mhs)
{cerr << "File could not be opened" << endl;
exit(1); } // prototype in cstdlib
char jwb = 'y'; cout << "Input Data Mahasiswa" << endl;
while (jwb == 'Y' || jwb == 'y')
{cout << endl; cout << "NIM = "; cin >> mhs.nim;
cout << "Nama = "; cin >> mhs.nama;
cout << "IPK = "; cin >> mhs.ipk;
file_mhs.write((char*)&mhs, sizeof(mhs));
cout << "Ada Data Lagi [Y/T] = "; cin >> jwb; }
file_mhs.close(); }

b. Membaca Isi File


#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cstring>
#include <iomanip>
using namespace std;
void infoMhs();
struct datamhs
{ char nim[15]; char nama[25]; float ipk;
} mhs;
int main()
{ ifstream file_mhs ("datamhs.dat", ios::in);
if (!file_mhs)
{cerr<<"File could not be opened"<<endl;
exit(1); }
cout << "-------------------------------------------" <<
endl;
cout << setiosflags(ios::left) << setw(8) << "No." <<
setw(15) << "NIM" << setw(25) << "Nama" << setw(5) <<
"IPK" << setw(20) << "Predikat" <<endl;
cout << "-------------------------------------------" <<
endl;
file_mhs.read((char *)&mhs,sizeof(mhs));
while (!file_mhs.eof())
{ infoMhs();
file_mhs.read((char*)&mhs, sizeof(mhs)); }
cout << "-------------------------------------------" <<
endl;
file_mhs.close(); }
int no=0;
char pre[20];
void infoMhs()
{ no++;
if (mhs.ipk>=3.50)
strcpy(pre,"Sangat Memuaskan");
else if (mhs.ipk>=3.00)
strcpy(pre,"Memuaskan");
else if (mhs.ipk>=2.50)
strcpy(pre,"Cukup");
cout << setiosflags(ios::left) << no << ". " <<
setw(15) << mhs.nim << setw(25) << mhs.nama << setw(5)
<< setprecision(3) << setiosflags(ios::showpoint |
ios::left) << setiosflags(ios::left) << mhs.ipk <<
setw(20) << pre << endl;}

TUGAS
1. Buat program untuk merekam 5 data nama mahasiswa yang diinputkan dengan
nama file objek mhs dan nama file teks “nama_mhs.txt”
2. Buat program untuk menampilkan hasil rekam data pada nomor 1.
BAB II
HASIL DAN ANALISA

Tugas 1
Program

Hasil Program
Analisa
#include <iostream>; :

#include merupakan sebuah preprocessor directive yang digunakan untuk memuat


sebuah file library. <iostream> merupakan sebuah file header yang memuat semua
fungsi program seperti cout,cin dan lainnya, #include memberitahu preprocessor
compiler untuk menggunakan file header standar iostream ke dalam program.

using namespace std; :

Baris ini merupakan instruksi untuk memberi tahu compiler bahwa program
menggunakan library dari Namespace. Dengan menggunakan perintah ini dapat
meminimalisir kesalahan akibat tidak dikenalinya fungsi cout maupun cin Std
merupakan singkatan dari standard.

#include <cstring>;
cstring atau string.h merupakan header yang berisi fungsi-fungsi, makro dan tipe yang
digunakan untuk pengoprasian string dan array cstring merupakan header untuk C++
sedangkan string.h header untuk C dan dapat digunakan di C++.

#include <fstream>;
Merupakan sebuah tipe data input output file yang memungkinkan kita untuk
melakukan kedua hal tersebut, seperti membuat, menulis dan membaca informasi dari
file.

Line 6 - 8: ;

Struct atau record adalah kumpulan data yang memiliki tipe data yang berbeda. Secara
pendeklarasian, struct sangat berbeda dengan array yang hanya memiliki satu buah
tipe data untuk setiap kumpulannya. Struct datamhs terdiri dari beberapa tipe data dan
beberapa variabel, terdapat variabel nim dengan tipe data char yang memiliki limit 15
byte atau karakter, diikuti dengan variabel nama dengan tipe data char yang memiliki
limit 25 byte atau karakter dan variabel ipk dengan tipe data float.
Line 9 - 16

Int Main merupakan Fungsi utama atau entry point dari seluruh program sebelum
program di eksekusi, fungsi main ini harus ada disetiap program agar program tersebut
dapat berjalan. Fungsi ini selalu diikuti dengan buka tutup kurung yang menandakan
kalau line tersebut merupakan suatu fungsi dalam program. int merupakan tipe data dalam
fungsi main. Selanjutnya pada baris 10 terdapat perintah untuk membuat file untuk ditulis
kemudian setelah objek diciptakan maka selanjutnya program akan membuka file
tersebut. Selanjutnya terdapat penyeleksian kondisi if dimana jika program tidak berhasil
dibuka atau diproses maka program akan memberikan output “File could not be opened”
kemudian program akan keluar sendirinya.

Line 17 - 30

Line 17 dan 18 merupakan perintah untuk memberi tahu program bahwa input yang
diberikan oleh user bersifat case insensitive atau besar kecil huruf Y/y tidak berpengaruh.
Selanjutnya merupakan perintah untuk user input nilai Nama, Nim, dan IPK dan apakah
user ingin melanjutkan input data atau tidak.

file_mhs.close()

Merupakan perintah untuk penutupan file setelah pemrosesan file berakhir, Pemakaian
fungsi close() sifatnya optional. Bila digunakan fungsi ini maka compiler tidak akan
mengeluarkan pesan error.
Tugas 2
Program

Hasil Program
Analisa
#include <iostream>; :

#include merupakan sebuah preprocessor directive yang digunakan untuk memuat


sebuah file library. <iostream> merupakan sebuah file header yang memuat semua fungsi
program seperti cout,cin dan lainnya, #include memberitahu preprocessor compiler untuk
menggunakan file header standar iostream ke dalam program.

using namespace std; :

Baris ini merupakan instruksi untuk memberi tahu compiler bahwa program
menggunakan library dari Namespace. Dengan menggunakan perintah ini dapat
meminimalisir kesalahan akibat tidak dikenalinya fungsi cout maupun cin Std merupakan
singkatan dari standard.

#include <cstring>;
cstring atau string.h merupakan header yang berisi fungsi-fungsi, makro dan tipe yang
digunakan untuk pengoprasian string dan array cstring merupakan header untuk C++
sedangkan string.h header untuk C dan dapat digunakan di C++.

#include <fstream>;
Merupakan sebuah tipe data input output file yang memungkinkan kita untuk melakukan
kedua hal tersebut, seperti membuat, menulis dan membaca informasi dari file.

void infoMhs();

Merupakan Deklarasi fungsi void infoMhs. Fungsi dengan tipe void menyatakan kalau
fungsi infoMhs tidak akan mengembalikan nilai return diakhir program (ditandai dengan
tidak adanya perintah return )

Line 8 - 10: ;

Struct atau record adalah kumpulan data yang memiliki tipe data yang berbeda. Secara
pendeklarasian, struct sangat berbeda dengan array yang hanya memiliki satu buah tipe
data untuk setiap kumpulannya. Struct datamhs terdiri dari beberapa tipe data dan
beberapa variabel, terdapat variabel nim dengan tipe data char yang memiliki limit 15
byte atau karakter, diikuti dengan variabel nama dengan tipe data char yang memiliki
limit 25 byte atau karakter dan variabel ipk dengan tipe data float.

Line 11 - 15

Int Main merupakan Fungsi utama atau entry point dari seluruh program sebelum
program di eksekusi, fungsi main ini harus ada disetiap program agar program tersebut
dapat berjalan. Fungsi ini selalu diikuti dengan buka tutup kurung yang menandakan
kalau line tersebut merupakan suatu fungsi dalam program. int merupakan tipe data dalam
fungsi main. Selanjutnya pada baris 12 terdapat perintah untuk membuat file untuk
diciptakan kemudian setelah objek diciptakan maka selanjutnya program akan membuka
file tersebut. Selanjutnya terdapat penyeleksian kondisi if dimana jika program tidak
berhasil dibuka atau diproses maka program akan memberikan output “File could not be
opened” kemudian program akan keluar sendirinya.

Line 16 - 25

Merupakan perintah untuk pemanggilan dari variable name, ipk, nim dan predikat.
Selanjutnya terdapat perulangan while untuk melakukan perulangan data yang terdapat
didalam fungsi infoMhs dengan limit sebesar fungsi mhs, hal ini ditandai dengan
penggunaan perintah sizeof. Diakhiri dengan sintaks file.mhs.eof yang menandakan jika
data sudah berhasil dibuka semua dan jika sudah dilakukan maka program akan
melakukan return 1.
Line 30 - 42

Merupakan main body dari fungsi void InfoMhs dimana isinya merupakan penyeleksian
kondisi predikat berdasarkan nilai ipk yang diinput oleh user, dimana jika ipk mahasiswa
diatas 3.5 maka program akan mengeluarkan predikat sangat memuaskan, jika ipk
mahasiswa berada dalam 3-3.5 maka program akan mengeluarkan predikat memuaskan,
dan jika jika ipk mahasiswa berada dalam 2,5-3 maka program akan mengeluarkan
predikat cukup.
BAB III
KESIMPULAN

1. Dalam melakukan operasi file dibutuhkan fungsi-fungsi yang berhubungan


dengan operasi file yang terdapat pada file fstream
2. File sekuensial berisi rekam data yang tidak mengenal posisi baris atau nomor
rekam pada saat aksesnya dan setiap rekam data dapat memiliki lebar yang
berbeda-beda.
BAB IV
DAFTAR PUSTAKA

• Modul Praktikum Pemrograman Dasar Laboratorium Teknik Perangkat Lunak


dan Komputer, Teknologi Rekayasa Instrumentasi dan Kontrol, Departemen
Teknik Elektro dan Informatika, Sekolah Vokasi, Universitas Gadjah Mada.
• Andre. 2020. Pengertian Dan Cara Penggunaan Tipe Data Char Pascal |
Duniailkom. [online] Available at: <https://www.duniailkom.com/tutorial-
belajar-pascal-pengertian-dan-cara-penggunaan-tipe-data-char-pascal/>
[Accessed 4 May 2020].
• Petanikode.com. 2020. Belajar Pemrograman C #13: Mengenal Tipe Data Struct.
[online] Available at: <https://www.petanikode.com/c-struct/> [Accessed 4 May
2020].
• Prastio, H., 2020. Struct Pada Pemrograman C++ - Jagocoding.Com. [online]
Jagocoding.com. Available at:
<http://jagocoding.com/tutorial/666/Struct_Pada_Pemrograman_C> [Accessed 4
May 2020].
• Belajar C++. 2020. Penjelasan Dan Cara Input Output Berbentuk File - Belajar
C++. [online] Available at: <https://www.belajarcpp.com/tutorial/cpp/file/>
[Accessed 4 May 2020].

Anda mungkin juga menyukai