Anda di halaman 1dari 16

LAPORAN PRAKTIKUM XII MANIPULATION FILE

Disusun untuk Memenuhi Matakuliah Praktikum Algoritma dan Struktur Data Yang Dibimbing oleh Bapak I Made Wirawan

Oleh: NAMA NIM OFFERING : UMI KHOLIFAH : 110533430510 :B

UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO PRODI PENDIDIKAN TEKNIK INFORMATIKA NOVEMBER , 2012

LAPORAN PRAKTIKUM
A. Tujuan 1. Mampu melakukan perancangan aplikasi menggunakan Struktur File 2. Mampu elakukan analisis pada File yang dibuat 3. Mampu mengimplementasikan File pada sebuah aplikasi secara tepat dan efisien 4. Mampu menjelaskan mengenai File 5. Mampu membuat dan mendeklarasikan struktur File 6. Mampu menerapkan dan mengimplementasikan File

B. Dasar Teori 1. Pengantar File File digunakan sebagai penyimpanan data eksternal selain

memori komputer. Tempat penyimpanan eksternal ini bersifat permanen (non-volatile) dan biasanya berukuran besar dengan tujuan untuk dibaca kembali data-datanya. Operasi-operasi terhadap file pasti berkaitan dengan Input (menulis) dan Output (menampilkan) serta berbagai hal lain seperti mengecek keberadaan file, ukuran file, mengolah file membutuhkan dan lain-lain. Operasi untuk

buffer

untuk menampung informasi yang

berkenaan dengan file tersebut. 2. Jenis File File Teks adalah file yang berisi data-data ASCII sehingga

dapat ditampilkan ke layar apa adanya. Satu karakter ASCII dalam file teks berukuran 2 bytes. Misalnya sebuah file teks berisi 1000 karakter berarti berukuran 2000 bytes. File Biner yang data-datanya berupa data biner dan berupa byte stream sehingga tidak berukuran sesuai 1 dapat ditampilkan apa nilai adanya bukan dilayar. Satu karakter

byte, sedangkan

karakter akan disimpan pada ketentuan

dengan

ukuran microprocessor.Ukuran

tergantung

microprocessor, bukan pada jumlah digit bilangan. 3. Manipulasi File File merupakan salah satu jenis penyimpanan yang bersifat non-volatile atau permanen, dengan demikian data-data dalam file dapat ditulis atau dibaca. Dalam pemrograman bahasa C file dikenal sebagai stream, stream merupakan kumpulan

karakter yang disusun dalam baris-baris yang berpindah dari media yang satu ke yang lain dalam suatu sistem komputer. Manipulasi file dapat dilakukan dengan menggunakan stdio.h atau fstream.h. 4. Manipulasi File dengan stdio.h Dalam menggunakan file header stdio.h setiap file memerlukan pendeklarasian sebuah variabel bertipe pointer untuk menandai file yang digunakan dalam operasi I/O. Berikut pendeklarasian pointer file:
FILE *fp, *fp2;

Berarti menyiapkan buffer area dan di-assign ke pointer bernama f. File Input Output yang digunakan dalam C secara default: stdin = untuk input file standar, yang biasanya diasosiasikan dengan inputan dari keyboard, fungsi scanf dan getchar stdout = untuk output file, biasanya diasosiakan dengan screen monitor, fungsi putchar dan printf stderr = standar error, biasanya diasosiasikan dengan screen, fungsi
fprintf(stderr, error!);

FILE adalah sebuah struct yang didefinisikan pada stdio.h sebagai berikut:

a. Membuka File Untuk membuka suatu file dapat digunakan fungsi fopen. Fungsi tersebut mengembalikan nilai pointer file yang digunakan atau jika terjadi eror maka nilai NULL akan dikembalikan. Contoh di bawah ini akan membuka file bernama prog.c dengan mode r untuk di baca dan di asossiasikan dengan pointer file fp.
fp = fopen( prog.c, r) ;

Terdapat beberapa jenis mode pembacaan file yang digunakan yaitu: r - open for reading w - open for writing (file need not exist) a - open for appending (file need not exist) r+ - open for reading and writing, start at beginning w+ - open for reading and writing (overwrite file)

a+ - open for reading and writing (append if file exists) File dapat dibuka sebagai file teks (t) atau file biner (b). File teks menggunakan parameter tambahan menjadi rt, wt, at, r+t, w+t, dan a+t. File biner

menggunakan parameter tambahan menjadi rb, wb, ab, r+b, w+b, dan a+b. Defaultnya adalah mode teks (t). Contoh penggunaan:

b. Menulis File Contoh program untuk menulis file pada hardisk :

c. Menutup File

Nilai kembalian int akan berisi 0 jika berhasil atau -1 (EOF) jika gagal! fcloseall akan menutup seluruh stream yang aktif kecuali stdin, stdout, stdprn dan stdaux. Pada Windows, kembalian dari nilai ini tidak terlalu diperlukan karena di Windows tidak diperlukan untuk mengetahui status suatu program. Contoh penggunaan:

d. Operasi I/O pada File 1) Untuk menulis ke file dalam format tertentu:
int fprintf(fp, "Testing...\n");

jika

berhasil

akan

dikembalikan

jumlah

byte

yang

dituliskan

sedangkan jika gagal dikembalikan EOF. 2) Untuk membaca dari file dalam format field tertentu:
int fscanf(fp, "Testing...\n");

jika berhasil akan dikembalikan jumlah field yang dibaca sedangkan jika gagal dikembalikan EOF 3) Untuk menulis karakter ke file teks:
int fputc( int c, FILE *fp );

jika berhasil akan dikembalikan karakter c sedangkan jika gagal dikembalikan EOF 4) Untuk membaca file teks perkarakter:
int fgetc (FILE *fp);

jika berhasil akan dikembalikan karakter c sedangkan jika gagal dikembalikan EOF 5) Untuk meletakkan nilai integer ke file:
int putw(int w, FILE *fp);

jika berhasil akan dikembalikan integer w sedangkan jika gagal dikembalikan EOF 6) Untuk membaca nilai integer:
int getw(FILE *fp);

jika berhasil akan dikembalikan integer w sedangkan jika gagal dikembalikan EOF 7) Untuk menulis string ke file tanpa ada karakter NULL dan newline:
int fputs(const char *s,FILE *fp);

jika berhasil akan dikembalikan string s sedangkan jika gagal dikembalikan EOF 8) Untuk membaca string dari file sebanyak n karakter atau bertemu karakter \n:
char *fgets(const char *s,int n,FILE *fp);

jika berhasil akan dikembalikan string s sedangkan jika gagal dikembalikan EOF 9) Untuk mengetahui akhir sebuah file stream:

int feof(FILE *fp);

jika berhasil akan dikembalikan nilai integer selain 0. Contoh penggunaan menulisi file dari inputan keyboard menggunakan stdout :

Contoh program menyalin data dari file a.text ke file b.text: *)file harus dibuat dan diisi data terlebih dahulu(a.text)

Contoh program menyalin data dari file a.text ke file b.text:

5. Manipulasi File dengan fstream.h a. Membuka File Sebelum file digunakan/diproses harus dibuka terlebih dahulu. mendefinisikan obyek file. berikut:
ofstream nama_variabel_file; nama_variabel_file_output.open(nama_file.txt);

Kita perlu

Salah satu bentuk pernyataannya adalah sebagai

b. Menulis File Untuk menulis ke file kita perlu menggunakan nama_variabel file dan tanda << seperti berikut ini:
nama_variabel_file_output nama_variabel_file_output << Hallo <<endl; <<endl; <<Baris kedua

c. Menutup File Setelah diproses, file perlu ditutup sebagai berikut:


nama_variabel_file_output.close();

Contoh program :

6. File Masukkan (InputStream) File masukkan digunakan untuk membaca data yang ada di dalam sebuah File. a. Membuka file :
ifstream nama_variabel_file_input; nama_variabel_file_input.open(nama_file.txt);

Contoh pembacaan :

Pendeteksian akhir pada pembacaan inputstream dilakukan dengan cara:


while(nama_variabel_file_input){ }

atau

while(!nama_variabel_file_input.eof()){ }

b. Penambahan Data pada File Fungsi :


ofstream nama_variabel_file_output(nama_file.txt,ios::app);

Sehingga data dapat ditambahkan pada baris bawah dari akhir file. Contoh :

C. Latihan 1 a. Source Code


# include <iostream.h> # include <fstream.h> # include <conio.h> # include <string.h> # include <ctype.h> # include <stdlib.h> class Kelas { private: char nama[20]; char nim[20]; char email[20]; char hp[20]; public : void entri_kelas(); }; void rekam_kelas(Kelas pti); void main() { Kelas kelas_pti; rekam_kelas(kelas_pti); } void Kelas ::entri_kelas() { cout<<" === Merekam Data Kelas ==="<<endl<<endl; cout<<" Nama : "; cin.getline(nama,sizeof(nama)); cin.getline(nama,sizeof(nama)); cout<<" NIM : "; cin.getline(nim,sizeof(nim));

cout<<" Email : "; cin.getline(email,sizeof(email)); cout<<" No HP : "; cin.getline(hp,sizeof(hp)); } void rekam_kelas(Kelas pti) { char jawab; ofstream file_kelas("KELAS1.txt",ios::app); for(;;) { pti.entri_kelas(); file_kelas.write((char*)&pti,sizeof(pti)); cout<<endl<<" Masukkan data lagi (Y/T): "; cin>>jawab; if((jawab=='t')|| (jawab=='T')) break; } file_kelas.close(); }

b. Print Screen

c. Isi KELAS1.txt

D. Latihan 2 a. Source Code


# include <iostream.h> # include <fstream.h> # include <conio.h> class Kelas {

private: char nama[20]; char nim[20]; char email[20]; char hp[20]; public : void info_kelas(); }; void baca_kelas(Kelas pti); void main() { Kelas kelas_pti; baca_kelas(kelas_pti); getch(); } void Kelas ::info_kelas() { cout<<" Nama : "<<nama<<endl; cout<<" NIM : "<<nim<<endl; cout<<" Email : "<<email<<endl; cout<<" No HP : "<<hp<<endl; } void baca_kelas(Kelas pti) { ifstream file_kelas("KELAS1.txt"); cout<< " === Info Data Kelas ==="<<endl<<endl; file_kelas.read((char*)&pti,sizeof(pti)); while(!file_kelas.eof()) { pti.info_kelas(); file_kelas.read((char*)&pti,sizeof(pti));; } file_kelas.close(); }

b. Print Screen

E. Tugas Rumah 1 a. Source Code Tugas Rumah 1a.cpp


# include <iostream.h> # include <fstream.h> # include <stdio.h> # include <conio.h> # include <ctype.h>

# include <string.h> # include <stdlib.h> class Kelas { private : int entry; public : void entry_kelas(); }; void rekam_kelas(Kelas pti); void main() { Kelas kelas_pti; rekam_kelas(kelas_pti); } void Kelas :: entry_kelas() { printf("Entry :"); cin>>entry; } void rekam_kelas(Kelas pti) { char pilih, agree; do { printf("\n-------------------------------\n"); printf("A.a.txt\n"); printf("B.b.txt\n"); cin>>pilih; switch(pilih) { case 'A' : case 'a' : { ofstream file_kelas("a.txt", ios :: app); for(;;) { pti.entry_kelas(); file_kelas.write((char*)&pti, sizeof(pti)); break; } file_kelas.close(); } break; case 'B' : case 'b' : { ofstream file_kelas("b.txt", ios :: app); for(;;) { pti.entry_kelas(); file_kelas.write((char*)&pti, sizeof(pti)); break;

} file_kelas.close(); } break; } printf("\nMembuat data lagi ?(y/t) :"); cin>>agree; cout<<endl; } while(agree=='Y' || agree=='y'); }

b. Print Screen

c. Isi a.txt

d. Isi b.txt

e. Source Code Tugas Rumah 1b.cpp


# include <iostream.h> # include <fstream.h> # include <stdio.h> # include <conio.h> # include <ctype.h> # include <string.h> # include <stdlib.h> class Kelas { private : int entry; public : int info_kelas(); }; void baca_kelas(Kelas pti);

void main() { Kelas kelas_pti; baca_kelas(kelas_pti); } int Kelas :: info_kelas() { cout<<"Entry :"<<entry<<endl; return entry; } void baca_kelas(Kelas pti) { int a, b, tambah, kurang, kali, bagi; ifstream file_kelas("a.txt"); cout<<"\nData kelas a.txt :"<<endl; file_kelas.read((char *) &pti, sizeof(pti)); while(!file_kelas.eof()) { a=pti.info_kelas(); file_kelas.read((char *) &pti, sizeof(pti)); } file_kelas.close(); ifstream file_kelas2("b.txt"); cout<<"\nData kelas b.txt :"<<endl; file_kelas2.read((char *) &pti, sizeof(pti)); while(!file_kelas2.eof()) { b=pti.info_kelas(); file_kelas2.read((char *) &pti, sizeof(pti)); } file_kelas2.close(); tambah = a + b; kurang = a - b; kali = a * b; bagi = a / b; cout<<"\nDigabung dengan operator Matematika "<<endl; cout<<"a + b ="<<tambah<<endl; cout<<"a - b ="<<kurang<<endl; cout<<"a * b ="<<kali<<endl; cout<<"a / b ="<<bagi<<endl; ofstream file_kelas3("c.txt", ios :: app); file_kelas3<<"a + b ="<<tambah<<endl; file_kelas3<<"a - b ="<<kurang<<endl; file_kelas3<<"a * b ="<<kali<<endl; file_kelas3<<"a / b ="<<bagi<<endl; file_kelas3.close(); char gantinama;

cout<<"\nFile c.txt sudah terbuat, rename c.txt? (y/t) :"; cin>>gantinama; if(gantinama=='Y' || gantinama=='y') { int jadi; char lama[] = "c.txt"; char baru[10]; printf("Baru :"); gets(baru); jadi = rename(lama, baru); if(jadi==0) cout<<"File c.txt berhasil di-rename"<<endl; else cout<<"Tidak bisa me-rename c.txt"<<endl; } }

f. Print Screen

g. Isi c.txt

F. Tugas Rumah 2 a. Source Code


#include<iostream.h> #include<conio.h> #include<iomanip.h> #include<stdlib.h> #include<ctype.h> #include<fstream.h> int main() { ofstream outfile; ifstream infile; char fnamea[30];

char fnames[30]; char cc; char ucc; cout<<"Masukkan nama file yang akan disalin :\n"; cin>>fnamea; cout<<"Masukkan nama file hasil salinan :\n"; cin>>fnames; infile.open(fnamea); if (infile.fail() ) { cerr<<"\nMaaf! Proses penyalinan Error, cek file dan cobalah sekali lagi \n"; getch(); exit(0); } outfile.open (fnames); if (outfile.fail() ) { cerr<<"Maaf! Proses penyalinan Error, cek file dan cobalah sekali lagi \n"; getch(); exit(0); } else cout<<"\n\n Selamat, File berhasil disalin "; while (!infile.eof() ) { cc = (char) infile.get(); ucc = toupper (cc); outfile.put(ucc); } infile.close(); outfile.close(); getch(); }

b. Print Screen

File yang akan disalin bernama ASD.txt dan berisi

File salinan bernama ASD1.txt dan berisi

Misalkan kita akan memberi nama yang sama pada file hasil salinan. ASD.txt akan disimpan juga dengan nama ASD.txt.

Hasilnya pada file teks akan seperti ini :

G. Kesimpulan File merupakan salah satu jenis penyimpanan yang bersifat non-volatile atau permanen, dengan demikian data-data dalam file dapat ditulis atau dibaca. Manipulasi file dapat dilakukan dengan memakai stdio.h atau fstream.h. Operasi file standart yaitu membuat file, menulisi file, dan membaca file.

DAFTAR PUSTAKA Anonim.2010.Manipulasi File.(http://letsgobelajar.blogspot.com/2010/07/manipulasifile.html diakses tanggal 13 November 2012). Anonim.2012.Manipulasi File.(http://nurh4y.wordpress.com/2012/06/12/manipulasi-file/ diakses tanggal 13 November 2012). Munir,Rinaldi.2007.Algoritma&Pemograman dalam Bahasa Pascal C. Bandung:Penerbit Informatika. Tim Asisten Dosen.2010.Manipulation File.Malang: Pendidikan Teknik InformatikaTeknik Elektro-Universitas Negeri Malang.

Anda mungkin juga menyukai