Anda di halaman 1dari 36

80

BAB V OPERASI FILE

5.1

Tujuan Adapun beberapa tujuan dari dilaksanakannya praktikum bahasa

pemrograman mengenai operasi file ini yaitu : 1. 2. Dapat membuat sebuah aplikasi sederhana Memahami penggunaan fungsi open, update, delete

5.2

Tinjauan Pustaka Setiap orang yang menggunakan komputer pasti tidak pernah lepas dari

file. Program yang ditulis biasanya diletakan kedalam file. Jika file itu diperlukan maka file itu bias dibuka kembali, mengubah, dan menyimpannya kembali. Dalam C++ hal tersebut dapat dilakukan yaitu memanggil, membaca, dan melakukan halhal lain yang berhubungan dengan file tersebut.
5.2.1 Operasi Dasar

Operasi dasar pada file pada dasarnya terbagi menjadi tiga tahap, yaitu : membuka file atau mengaktifkan file, melaksanakan pemrosesan file, dan menutup file.
5.2.1.1

Membuka File

Sebelum suatu file dapat diproses, file harus dibuka terlebih dahulu. Untuk melakukan hal ini maka perlu mendefinisikan objek file. Salah sati bentuk pernyataan yang diperlukan :
ofstream nama_obyek;

81

Kode Program 5.1 Penulisan Ofstream

Ofstream merupakan kelas yang disediakan dalam C++ untuk menanganin operasi keluaran. Jika kelas Ofstream digunakan maka program harus menyertakan fstream.h pada pada include. Setelah suatu obyek file diciptakan, file dapat dibuka dengan cara seperti dibawah ini :
file_keluaran.open(OPERASIFILE.TXT); Kode Program 5.2 Penulisan sintaks buat file

Dalam hal ini, file_keluaran merupakan nama obyek file dan OPERASIFILE.TXT merupakan nama file yang kemudian akan diciptakan pada disk. 5.2.1.2 Menulis ke File Salah satu pemrosesan pada file adalah menulis atau merekam data ke file. Contoh operasi untuk merekam file:
file_keluaran<< operasi menulis ke file<<endl; Kode Program 5.3 Penulisan sintaks menulis ke file

Bentuk penulisan diatas memanfaatkan manipulator yang biasa digunakan pada cout. Dimana bagian cout diganti oleh file_keluaran. Hasil dari program tersebut adalah tulisan operasi menulis ke file. 5.2.1.3 Menutup File Setelah pemrosesan file berakhir, file tersebut perlu ditutup. Untuk dapat menutup file tersebut maka perlu dipanggin fungsi anggota yaitu close(). Penulisannya seperti berikut :

file_keluaran.close(); Kode Program 5.4 Penulisan fungsi close

82

Penulisan tersebut merupakan pernyataan untuk menutup file_keluaran. Demikian perintah dasar dalam operasi file. Berikut ini kami sajikan program yang utuh untuk merekam string ke file.
/*-------contoh merekam string ke file-------*/ #include <iostream.h> #include <fstream.h> void main() { ofstream file_keluaran; //definisi obyek file_keluaran.open("C:\OPERASIFILE.txt"); //buka file cout<<"sedang merekam...";endl; file_keluaran<< Operasi File<<endl; file_keluaran<< Praktikum Bahasa Pemrograman<<endl; file_keluaran<< Kelompok 12<<endl; file_keluaran.close(); //menutup file return 0; } Kode Program 5.5 Sintaks membuka file dengan modus keluaran

file_keluaran.open merupakan operasi untuk membuka file dengan modus keluaran, artinya, bila pernyataan ini dieksekusi maka : isi file akan dihapus kalau file sudah ada dan file akan diciptakan kalau file sudah ada. Oleh karena itu, jika program tersebut dijalankan lebih dari satu kali maka hasilnya akan tetap atau sama. Perlu diketahui bakwa penulisan deklarasi dan file_keluaran.open denganfungsi ofstream tersebut dapat disederhanakan. Yaitu penulisannya seperti berikut :
Ofstream file_keluaran("C:\OPERASIFILE.txt"); Kode Program 5.6 Fungsi konstruktor untuk membuka file

Pada bentuk seperti diatas, konstruktor dari file_keluaran akan dijalankan dan efeknya selain menciptakan obyek file, file juga langsung diciptakan. 5.2.2 Membaca File Jika akan dilakukan pembacaan suatu file dengan C++, pertama kali yang ahrus dilakukan adalah harus menciptakan obyek berkelas ifstream (bukan
83

ofstream). Seperti misalnya ofstream pada include juga disertakan fstream.h. Contoh penulisannya sebagai berikut :
ifstream file_masukan; Kode Program 5.7 Penulisan Ifstream

Setelah obyek file_masukan diciptakan, file dapat dibuka dengan memanggil fungsi anggota open().
ifstream file_masukan; file_masukan.open(OPERASIFILE.TXT); Kode Program 5.8 Penulisan sintaks baca file

Setelah file berhasil dibuka kemudian file dapat dibaca. C++ menyediakan sejumlah file anggota untuk membaca file. Jenis fungsi yang digunakan tergantung tipe data yang ada pada file. Pada contoh sebelumnya, tipe data berupa string. 5.2.3 Menambah Data Telah dijelaskan tadi bahwa apabila program dengan modus keluaran dijalankan lebih dari satu kali maka isi semula dari file akan dihapus. Untuk mekanisme penambahan data agar data pada file tidak terhapus, maka pada bagian open() perlu ditambahkan argument kedua yaitu ios::app, penulisannya sebagai berikut:
ofstream file_keluaran(OPERASIFILE.TXT, ios::app); Kode Program 5.9 Penambahan ios::app

Pernyataan seperti ditulis diatas juga akan menciptakan file jika file belum terbentuk atau belum ada. Contoh programnya sebagai berikut:
/*-------contoh program menambahkan data ke file -------*/ /*--------------------OPERASI FILE----------------------*/ /*--------------------KELOMPOK XII----------------------*/ #include <iostream.h> #include <fstream.h> void main() {

84

//definisi obyek ofstream file_keluaran; //buka file file_keluaran.open("C:\OPERASIFILE.txt", ios::app); file_keluaran<< file_keluaran<< file_keluaran<< file_keluaran<< jumat, 23 Juli 2011<<endl; Program Studi Teknologi Informasi<<endl; Teknik Elektro<<endl; Universitas Udayana<<endl;

file_keluaran.close(); //menutup file return 0; } Kode Program 5.10 Program Tambah Data

Setelah dijalankan, program tersebut akan menampilkan isi dari file OPERASIFILE.TXT yang sekaligus sudah ditambah dengan kata-kata yang dimasukan dalam manipulator file_keluaran tersebut.

5.2.4

Memeriksa Keberhasilan Operasi File Dalam pembuatan program tentunya ada kesalahan-kesalahan. Seprti

misalnya dalam operasi file, bias saja suatu file dibuka dengan modus masukan, ternyata file tidak atau belum ada. Untuk mengatasi hal tersebut, C++ menyediakan sejumlah fungsi anggota yang berguna untuk memeriksa kondisikondisi pada operasi file, sehingga kejadian kesalahan saat eksekusi dapat dikendalikan.
Tabel 5.1 Fungsi anggota untuk memeriksa kesalahan

Fungsi Anggota good() eof() fail()

Keterangan Untuk memeriksa keberhasilan dari suatu operasi file. Hasil benar kalau operasi berhasil dilakukan. Untuk memeriksa akhir file. Hasil benar kalau akhir file telah dijumpai Untuk memeriksa sesuatu kesalahan. Hasil benar kalau terjadi suatu kesalahan. Fungsi ini memeriksa tiga jenis kesalahan: kegagalan pernagkat keras(seperti sector disk rusak, pintu drive terbuka), kegagalan baca/tulis, karena

85

bad()

file tidak ada. Untuk memeriksa adanya operasi yang tidak abash. Hasil benar kalau terjadi keadaan seperti berikut: fungsi ini memeriksa kegagalan perangkat keras dan juga kesalahan karena file tidak ada(kesalahan baca/tulis tidak diperiksa)

5.2.5 Mengenal Modus Pembukaan File

Sampai saat ini telah diperkenalkan tiga modus pembukaan file, yaitu modus keluaran, modus masukan, dan modus penambahan(ios::app). Selain itu sebenarnya terdapat beberapa modus yang lainnya. Seperti terlihat pada table berikut :

Tabel 5.2 Modus pembukaan file

Modus ios::app

Keterangan Membukan file dengan modus keluaran dan memungkinkan operasi penambahan data. Membuka file untuk keperluan masukan maupun keluaran dan secara otomatis menempatkan penunjuk file ke posisi akhir file. Membuka file untuk operasi masukan. Modus ini

ios::ate

ios::in

merupakan penyetelan bawaan untuk obyek bertipe ifstream. Membuka file untuk operasi keluaran. Modus ini

ios::out

merupakan penyetelan bawaan untuk obyek bertipe ofstream. Membuka file yang sudah ada. Apabila file belum ada, operasi pembukaan gagal dilaksanakan. Membuka file baru. Sekiranya file sudah ada, operasi, operasi pembukaan menjadi gagal(kecuali kalau ios::ate atau ios::app disertakan).

ios::nocreat

ios::noreplace

86

ios::trunk ios::binary

Menghapus file yang sudah ada dan menciptakan file baru. Membuka file dengan operasi baca tulis secara

biner. Perlu diketahui, argument kedua pada konstruktor ataupun pada fungsi

open() dapat berupa beberapa gabungan dari beberapa modus pembukaan file. Misalnya :
fstream buatdata(OPERASIFILE, ios::in | ios::out); Kode Program 5.11 Penggabungan modus

Tanda atau ( | ) digunakan untuk menggabungkan modus pembukaan file yang dikehendaki.

5.3 5.3.1

Pembahasan dan Analisa Program Penulisan Cek Program Penulisan cek yang dimaksud adalah program yang membilang

sebuah bilangan ke dalam bahasa Indonesia yang dilengkapi dengan operasi file. Dengan input adalah angka yang kemudian akan menghasilkan output terbilangnya yang dicetak dalam file text. (*.txt). 5.3.1.1 Penjelasan Fungsi
1. Fungsi SaySatuan

Fungsi ini hanya digunakan untuk membilang satuan yaitu dari 0 sampai 9. Fungsi ini akan menambahkan ke file hasil membilang dari angka yang dilewatkan di parameternya.
void SaySatuan(nilai)//0..9 { cout<<bilsatuan[nilai]; buat<<bilsatuan[nilai]; } Kode Program 5.12 Fungsi SaySatuan

87

2. Fungsi SayPuluhan

Fungsi ini untuk membilang dari 10 sampai 99. Fungsi ini akan menambahkan ke file hasil membilang dari angka yang dilewatkan di parameternya.
void SayPuluhan(nilai)//10..99 { if(nilai<10) { SaySatuan(nilai); } else { if(nilai==10) { cout<<" sepuluh "; buat<<" sepuluh "; } if(nilai==11) { cout<<" sebelas "; buat<<" sebelas "; } if(nilai>=12 && nilai <=19) { SaySatuan(nilai%10); cout<<" belas "; buat<<" belas "; } if(nilai>=20 && nilai<=99) { SaySatuan(nilai/10); cout<<" puluh "; buat<<" puluh "; SaySatuan(nilai%10); } } } Kode Program 5.13 Fungsi SayPuluhan

3. Fungsi SayRatusan

Fungsi ini untuk membilang dari 100 sampai 999. Fungsi ini akan menambahkan ke file hasil membilang dari angka yang dilewatkan di parameternya.
void SayRatusan (nilai)// 100.999

88

{ if(nilai<100) { SayPuluhan(nilai); } else { if(nilai>=100 && nilai<=199) { cout<<"seratus "; buat<<"seratus "; } if(nilai>=200 && nilai<=999) { SaySatuan(nilai/100); cout<<"ratus"; buat<<"ratus"; } if(nilai%100 !=0) { SayPuluhan(nilai%100); } } Kode Program 5.14 Fungsi SayRatusan

4. Fungsi SayRibuan

Fungsi ini untuk membilang dari 1000 sampai 999999. Fungsi ini akan menambahkan ke file hasil membilang dari angka yang dilewatkan di parameternya.
void SayRibuan(nilai)//1000..999999 { if(nilai<1000) { SayRatusan(nilai); } else { if(nilai >=1000 && nilai <= 1999) { cout<<" Seribu "; buat<<" Seribu "; } if(nilai >=2000 && nilai <= 999999) { SayRatusan(nilai/1000); cout<<" ribu "; buat<<" ribu "; } if(nilai % 1000 != 0) { SayRatusan(nilai % 1000);

89

} } } Kode Program 5.15 Fungsi SayRibuan

5. Fungsi SayJutaan

Fungsi ini untuk membilang dari 1000000 sampai 999999999. Fungsi ini akan menambahkan ke file hasil membilang dari angka yang dilewatkan di parameternya.
void SayJuta (nilai) //1.000.000 ->999.999.999 { if (nilai < 1000000) { SayRibuan(nilai); } else { if(nilai>=1000000 && nilai<=999999999) { SayRatusan(nilai/ 1000000); cout<<" juta "; buat<<" juta "; } if(nilai % 1000000 != 0) { SayRibuan(nilai % 1000000); } } } Kode Program 5.16 Fungsi SayJutaan

6. Fungsi SayMilyar Fungsi ini untuk membilang dari 1000000000 sampai 9999999999. Fungsi ini akan menambahkan ke file hasil membilang dari angka yang dilewatkan di parameternya.
void SayMilyar(nilai) // 1.000.000.000-> 999.999.999.999 { if (nilai < 1000000000) { SayJuta(nilai); }

90

} /* End of Fungsi Membilang*/ Kode Program 5.17 Fungsi SayMilyar

else { if(nilai>=1000000000 && nilai<=99999999999) { SayRatusan(nilai/1000000000); cout<<" milyar ";buat<<" milyar "; } if(nilai % 1000000000 != 0) { SayJuta(nilai%1000000000); } }

7. Fungsi buatfile Fungsi ini digunakan untuk membuat file dan sekaligus menambahkan isi dari file tersebut. Jika file belum ada, file akan dibuat beserta isinya dan jika file sudah ada, maka program akan merespon bahwa file tersebut sudah ada.
void buatfile() { buat.open(dir,ios::noreplace); if(buat.fail()) { cout << "Maaf file ini sudah ada "; } else { cout << "Input bilangan : Rp. "; buat << "Input bilangan : Rp. ";cin >> nilai; buat << nilai << endl; cout << "Terbilang : "; buat << "Terbilang : ";SayMilyar(nilai); cout << " rupiah"; buat << " rupiah"; buat.close(); } } Kode Program 5.18 Fungsi buatfile

8. Fungsi tambahdata

Fungsi ini berguna untuk menambah data atau isi dalam file. Program akan menerima input angka dan nama file kemudian akan menampilkan

91

terbilang ke layar dan menyimpan data pada file sesuai dengan nama yang diinputkan.
void tambahdata() { buat.open(dir,ios::app); if(buat.fail()) { cout << "Maaf File Tidak dapat Diakses"; } else { cout<< "Input bilangan : Rp. "; buat<< endl << endl; buat<< "Input bilangan : Rp. ";cin >> nilai; buat<< nilai << endl; cout<<"Terbilang : "; buat<<"Terbilang : "; SayMilyar(nilai); cout<<" rupiah"; buat<<" rupiah"; buat.close(); Kode Program 5.19 Fungsi tambahdata

} }

9. Fungsi readfile Fungsi ini berguna untuk membaca file dan isi file yang ada. Program akan menampilkan isi dari file yang terdiri dari bilangan yang sebelumnya telah dimasukan dan terbilangnya.
void readfile() { ifstream baca; baca.open(dir); if(baca.fail()) { cout << "Maaf File Tidak dapat Diakses"; } else { cout<<"Isi File "; cout << dir << " sebagai berikut : \n\n"; while(!baca.eof()) { baca.get(data); cout << data;

92

} }

} baca.close(); Kode Program 5.20 Fungsi readfile

10. Fungsi deletefile

Fungsi delete ini berguna untuk menghapus file. Jika perintah ini dijalankan pada program utama, program akan membaca direktori file dan file yang dimaksud secara langsung akan terhapus.
void deletefile() { remove(dir); cout << "File Anda Sudah Dihapus"; } Kode Program 5.21 Fungsi deletefile

11. Fungsi alamatfile Fungsi alamatfile ini maksudnya yaitu direktori file dimana file terseut disimpan. Pada program user akan diminta memasukan direktori file sekaligus dengan nama file yang dimaksud.
void alamatfile() { cout << "Masukan Direktori \n"; cout<<"Contoh D:/nama_file.txt : \n\n"; cin >> dir; ofstream direktori; direktori.open(dir,ios::noreplace); } Kode Program 5.22 Fungsi alamatfile

12. Fungsi menu

93

Fungsi ini berguna untuk menampilkan menu utama yang kemudian dapat dipilih oleh user. Sehingga user kemudian dapat mengoprasikan file. Fungsi menu ini terdiri dari 5 pilihan.
void menu() { clrscr(); cout << "=========================" << endl; cout << "=======MENU UTAMA=======" << endl; cout << "=======PROGRAM CEK=======" << endl; cout << "=========================" << endl; cout << " 1. Buat File Txt " << endl; cout << " 2. Tambah Data " << endl; cout << " 3. Read File Txt " << endl; cout << " 4. Delete File Txt " << endl; cout << " 5. Exit Program " << endl; cout << "=========================" << endl; cout << "Input Pilihan : "; cin >> pil; switch(pil) { case 1 : clrscr(); buatfile(); break; case 2 : clrscr(); cout <<"Masukan Bilangan tanpa tanda baca !\n\n"; tambahdata(); break; case 3 : clrscr(); readfile(); break; case 4 : clrscr(); deletefile(); break; case 5 : exit(1); default: cout << "Pilihan tidak ada ! "; alamatfile(); break; } } Kode Program 5.23 Fungsi menu

13. Fungsi Utama

94

Dalam program utama ini berguna untuk menampilkan keseluruhan maksud program yang dibuat. Dala program utama yang dibuat ini terdapat pemanggilan 2 fungsi yaitu fungsi alamatfile dan fungsi menu.
main() { alamatfile(); awal: menu(); cout << "\n\nKembali ke Menu Utama ? (y/t) : "; cin >> pilih; if((pilih=='Y')||(pilih=='y')) { goto awal; } else { exit(1); } getch(); Kode Program 5.24 Program Utama

5.3.1.2 Algoritma
A. Algoritma Fungsi SaySatuan 1. Cetak bilsatuan[nilai], buat bilsatuan[nilai].

B. Algoritma Fungsi SayPuluhan 1. Apakah nilai < 10 ?, jika ya panggil SaySatuan(nilai), jika tidak ke langkah

2
2. Apakah nilai == 10 ?, jika ya cetak sepuluh, buat sepuluh, jika tidak

ke langkah 3
3. Apakah nilai == 11 ?, jika ya cetak sebelas, buat sebelas, jika tidak ke

langkah 4

95

4. Apakah nilai >= 12 dan nilai <= 19?, jika ya panggil SaySatuan (n%10),

cetak belas, buat belas, lainnya ke langkah 5


5. Apakah nilai >=20 dan <=99 ?, jika ya panggil SaySatuan (n/10), cetak

puluh, buat puluh, SaySatuan(nilai%10)

C. Algoritma Fungsi SayRatusan 1. Apakah nilai < 100 ?, jika ya panggil SayPuluhan(nilai), jika tidak ke

langkah 2
2. Apakah nilai >= 100 dan nilai<=199 ?, jika ya jika cetak seratus, buat

seratus, tidak ke langkah 3, jika tidak selesai


3. Apakah

nilai>=200

dan

nilai<=999

?,

jika

ya

panggil

SaySatuan(nilai/100), cetak ratus, buat ratus, jika tidak ke langkah 4


4. Apakah

nilai%100

tidak

sama

dengan

?,

jika

ya

panggil

SayPuluhan(nilai%100)

D. Algoritma Fungsi SayRibuan 1. Apakah nilai<1000 ?, jika ya SayRatusan(nilai), jika tidak ke langkah 2 2. Apakah nilai>= 1000 dan nilai <= 1999 ?, jika ya cetak seribu, buat

seribu, jika tidak ke langkah 3 3. Apakah nilai>=2000 dan nilai <=999999?, jika ya SayRatusan(nilai/1000), cetak ribu, buat ribu, jika tidak ke langkah 4
4. Apakah nilai%1000 0, SayRatusan(nilai%1000)

E. Algoritma Fungsi SayJutaan

96

1. Apakah nilai < 1000000 ?. jika ya SayRibuan(nilai), jika tidak ke langkah

2
2. Apakah

nilai>=1000000

dan

nilai<=999999999

?,

jika

ya

SayRatusan(nilai/1000000), cetak juta, buat juta


3. Apakah nilai%1000000 0 ?, jika ya SayRibuan(nilai%1000000)

F. Algoritma Fungsi SayMilyar


1. Apakah nilai < 1000000000 ?, jika ya SaySatuan(nilai), jika tidak ke

langkah 2
2. Apakah

nilai>=1000000000

dan

nilai<=99999999999?,

jika

ya

SayRatusan(nilai/1000000000), cetak milyar, buat milyar jika tidak ke langkah 3


3. Apakah nilai % 1000000000 0 ?, jika ya SayJuta (nilai%1000000000).

G. Algoritma Fungsi alamatfile 1. Input direktori file (direktori:/namafile.txt )


2. ofstream direktori

3. open file(file, ios::noreplace)

H. Algoritma Fungsi menu

1. Apakah pil == 1 ?, jika ya panggil buatfile, jika tidak maka langkah 2


2. Apakah pil == 2 ?, jika ya panggil tambahdata, jika tidak maka langkah 3 3. Apakah pil == 3 ?, jika ya panggil readfile, jika tidak maka langkah 4 4. Apakah pil == 4 ?, jika ya panggil deletefile, jika tidak maka langkah 5 97

5. Apakah pil == 5 ?, jika ya exit program, jika tidak maka langkah 6

6. Cetak Pilihan tidak ada !..

I. Algoritma Fungsi Utama 1. Panggil alamatfile, 2. Awal operasi file, 3. Panggil menu, 4. Cetak Kembali ke Menu Utama ? (y/t), jika pilih== Y atau pilih==y

kembali ke langkah 2, jika tidak maka langkah 5


5. Exit program

5.3.1.3 Flowchart
Start

Cetak bilsatuan[nilai]

Buat bilsatuan[nilai]

End

Gambar 5.1 Flowchart Fungsi SaySatuan

98

Start

Y Nilai 10 < Panggil SaySatuan

Nilai =10 =

Cetak Sepuluh Buat Sepuluh

T Y Nilai =11 = Cetak sebelas

Buat Sebelas

Y Panggil SaySatuan( nilai %10 ) Nilai =12 dan > Nilai<=19

Panggil SaySatuan( nilai /10 )

Cetak belas

Nilai =20 dan > Nilai =99 < Cetak puluh

Buat belas Buat puluh

SaySatuan( nilai% / 10 )

End

Gambar 5.2 Flowchart Fungsi SayPuluhan


S ta r t

n ila i<1 0 0

End S a yP u lu h a n

T Y Y

n ila i>= 1 0 0

n ila i<= 1 9 9 T

C e ta k se r a tu s

B u a t se ra tu s

R a tu sa(n n ila i% 1 0 0 0 )

Y Y Y

n ila i>= 2 0 0

n ila i<= 9 9 9

S a yR a tu sa n ( n ila i/ 1 0 0)

C e ta k r a tu s

B u a t ra tu s

N ila i% 1 0 0 0 i != 0 T

Gambar 5.3 Flowchart Fungsi SayRatusan

99

Start

End nilai < 1000 Y SayRatusa n Buat seribu

T nilai >=1000 Y Y Nilai<=1999 T T Nilai>=2000 T Y nilai <=999999 T Y SayRatusan nilai/1000 Cetak ribu T nilai % 1000 != 0 Cetak Seribu SayRatusan nilai%1000 Y

Buat ribu

Gambar 5.4 Flowchart Fungsi SayRibuan


Start

nilai < 100000

T Nilai >= 1000000 Y S ayRatusan nilai 100000 / Y Nilai <= 999999999 T T

SayRibuan (nilai )

T Nilai %1000000 !=0 Y

Cetak juta

SayRibuan nilai %1000000

B juta uat

End

Gambar 5.5 Flowchart Fungsi SayJutaan

100

S rt ta

n i < ila 10000 00000

T Syu a J ta N i >= ila 10000 00000 T (n i ila )

Y S y a s nn i a R tu a ila 10000 00000 / Y N i <= ila 999999 99999 T N i %1 0 0 0 ila 000 0 0 !=0 0 Y C ta e k m a ily r Syu n i a J ta ila %1 0 0 0 000 T

B a ju u t ta

Ed n

Gambar 5.6 Flowchart Fungsi SayMilyar


Start

Buat .open (dir, ios ::noreplace )

Cetak Maaf file sudah ada

Y
Buat .fail () ?

Cetak bilangan input

Buat terbilang

Cetak terbilang

Buat bilangan input

SayMilyar (nilai )

Cetak Rupiah

Buat Rupiah

buat .close ()

End

Gambar 5.7 Flowchart Fungsi buatfile

101

Start

Buat .open(dir , ios::app )

Cetak Maaf file tidak dapat diakses

Y
Buat .fail () ?

Cetak bilangan input

Buat terbilang

Cetak terbilang

Buat bilangan input

SayMilyar (nilai )

Cetak Rupiah

Buat Rupiah

buat .close ()

End

Gambar 5.8 Flowchart Fungsi tambahdata


S tart

Ifstreambac a

baca .open (dir )

C etak M file aaf tidak dapat diak ses

baca .fail () ? T

W Y hile (baca .eof ()) Y baca .get (data );

B data uat

C etsak data

bac .clos () a e

E nd

Gambar 5.9 Flowchart Fungsi readfile

102

Start

remove(dir)

Cetak File sudah dihapus

End

Gambar 5.10 Flowchart Fungsi deletefile

5.3.1.4

Tracing

Input : C:/BC5/BIN/PENULISANCEK.TXT pil = 2 (tambah data) Input bilangan : 910611

Proses : SayRibuan(910611) 910611<1000 ? tidak 910611>=1000 dan 910611<=1999 ? tidak 910611>=2000 dan 910611<=999999? Ya

SayRatuan(910611/1000);

103

611<100? tidak 910<100? Tidak ; 611>=100 dan 611<=199? Tidak 910>=100 dan 910<=199? Tidak 611>=200 dan 611<=999? Ya 910>=200 dan 910<=999? Ya

SaySatuan(611/100) Cetak enam ratus, buat enam ratus SaySatuan(910/100) Cetak Sembilan ratus , buat Sembilan ratus 611%100 != 0 ? ya 910%100 != 0 ? ya SayPuluhan(611%100) 11<10? Tidak 11==10? Tidak 11==11? Ya Cetak sebelas, buat sebelas Cetak enam ratus sebelas, buat enam ratus sebelas

SayPuluhan(910%100) 10<10 ? tidak

104

10==10? Ya Cetak sepuluh, buat sepuluh Cetak sembilan ratus sepuluh ribu, buat Sembilan ratus sepuluh ribu

Output : Terbilang : sembilan ratus sepuluh ribu enam ratus sebelas

5.3.1.5 Listing Program


/*contoh #include #include #include #include #include program pembilang dan operasi file*/ <iostream.h> <conio.h> <stdlib> <fstream.h> <stdio>

Char bilsatuan[100][100]= {"Nol","Satu","Dua","Tiga","Empat","Lima","Enam","Tujuh","De lapan","Sembilan"}; int nilai, pil; char dir[100],pilih,data; ofstream buat; void SaySatuan(nilai)//0..9 { cout<<bilsatuan[nilai]; buat<<bilsatuan[nilai]; } void SayPuluhan(nilai)//10..99 { if(nilai<10) { SaySatuan(nilai); } else { if(nilai==10)

105

{ cout<<" sepuluh "; buat<<" sepuluh "; } if(nilai==11) { cout<<" sebelas "; buat<<" sebelas "; } if(nilai>=12 && nilai <=19) { SaySatuan(nilai%10); cout<<" belas "; buat<<" belas "; } if(nilai>=20 && nilai<=99) { SaySatuan(nilai/10); cout<<" puluh "; buat<<" puluh "; SaySatuan(nilai%10); }

} }

void SayRatusan (nilai)// 100.999 { if(nilai<100) { SayPuluhan(nilai); } else { if(nilai>=100 && nilai<=199) { cout<<"seratus "; buat<<"seratus "; } if(nilai>=200 && nilai<=999) { SaySatuan(nilai/100); cout<<"ratus"; buat<<"ratus"; } if(nilai%100 !=0) { SayPuluhan(nilai%100); } }

void SayRibuan(nilai)//1000..999999 { if(nilai<1000) { SayRatusan(nilai); } else

106

{ if(nilai >=1000 && nilai <= 1999) { cout<<" Seribu "; buat<<" Seribu "; } if(nilai >=2000 && nilai <= 999999) { SayRatusan(nilai/1000); cout<<" ribu "; buat<<" ribu "; } if(nilai % 1000 != 0) { SayRatusan(nilai % 1000); }

} }

void SayJuta (nilai) //1.000.000 ->999.999.999 { if (nilai < 1000000) { SayRibuan(nilai); } else { if(nilai>=1000000 && nilai<=999999999) { SayRatusan(nilai/ 1000000); cout<<" juta "; buat<<" juta "; } if(nilai % 1000000 != 0) { SayRibuan(nilai % 1000000); } } } void SayMilyar(nilai) // 1.000.000.000-> 999.999.999.999 { if (nilai < 1000000000) { SayJuta(nilai); } else { if(nilai>=1000000000 && nilai<=99999999999) { SayRatusan(nilai/1000000000); cout<<" milyar "; buat<<" milyar "; } if(nilai % 1000000000 != 0) { SayJuta(nilai%1000000000); } }

107

} /* End of Fungsi Membilang*/ void buatfile() { buat.open(dir,ios::noreplace); if(buat.fail()) { cout << "Maaf file ini sudah ada "; } else { cout << "Input bilangan : Rp. "; buat << "Input bilangan : Rp. ";cin >> nilai; buat << nilai << endl; cout << "Terbilang buat << "Terbilang cout << " rupiah"; buat << " rupiah"; buat.close(); } } : "; : ";SayMilyar(nilai);

void tambahdata() { buat.open(dir,ios::app); if(buat.fail()) { cout << "Maaf File Tidak dapat Diakses"; } else { cout<< "Input bilangan : Rp. "; buat<< endl << endl; buat<< "Input bilangan : Rp. ";cin >> nilai; buat<< nilai << endl; cout<<"Terbilang : "; buat<<"Terbilang : "; SayMilyar(nilai); cout<<" rupiah"; buat<<" rupiah"; buat.close();

} }

void readfile() { ifstream baca; baca.open(dir); if(baca.fail()) { cout << "Maaf File Tidak dapat Diakses"; } else { cout<<"Isi File ";

108

cout << dir << " while(!baca.eof()) { baca.get(data); cout << data; } baca.close();

sebagai berikut : \n\n";

} }

void deletefile() { remove(dir); cout << "File Anda Sudah Dihapus"; } void alamatfile() { cout << "Masukan Direktori \n"; cout<<"Contoh D:/nama_file.txt : \n\n"; cin >> dir; ofstream direktori; direktori.open(dir,ios::noreplace); } void menu() { clrscr(); cout << "=========================" cout << "=======MENU UTAMA=======" cout << "=======PROGRAM CEK=======" cout << "=========================" cout << " 1. Buat File Txt " cout << " 2. Tambah Data " cout << " 3. Read File Txt " cout << " 4. Delete File Txt " cout << " 5. Exit Program " cout << "=========================" cout << "Input Pilihan : "; cin >> pil; switch(pil) { case 1 : clrscr(); buatfile(); break; case 2 : clrscr(); cout baca !\n\n"; tambahdata(); break; case 3 : clrscr(); readfile(); break; case 4 :

<< << << << << << << << << <<

endl; endl; endl; endl; endl; endl; endl; endl; endl; endl;

<<"Masukan

Bilangan

tanpa

tanda

109

clrscr(); deletefile(); break; case 5 : exit(1); default: cout << "Pilihan tidak ada ! "; break; }

main() { alamatfile(); awal: menu(); cout << "\n\nKembali ke Menu Utama ? (y/t) : "; cin >> pilih; if((pilih=='Y')||(pilih=='y')) { goto awal; } else { exit(1); } getch(); Kode Program 5.25 Listing Program Lengkap

5.4

Uji Coba dan User Interface Dalam program penulisan cek ini, User akan diminta untuk menginputkan

sebuah direktori nama file yang kemudian akan disimpan langsung oleh program. Setelah itu user dapat mengoperasikan file tersebut dengan memilih beberapa pilihan yang ada pada Menu Utama, seperti misalnya 1 untuk membuat file, 2 untuk menambah data, 3 untuk membaca file, 4 untuk menghapus file dan 5 untuk keeluar dari program. Jika dalam menginputkan pilihan ini user memasukan input yang tidak valid maka program akan menampilkan pesan bahwa pilihan yang dimasukan tidak ada.

110

Gambar 5.11 Memasukan direktori dan nama file

Gambar diatas adalah gambar ketika user memasukan direktori atau nama file yang ingin dibuat atau dibuka.

Gambar 5.12 Gambar input angka salah

Jika user memasukan angka yang tidak sesuai dengan pilihan yang dimaksud, maka akan ditampilkan pesan seperti gambar diatas. User bisa mengetik y untuk kembali ke menu utama dan memilih pilihan yang sesuai. Untuk pilihan pertama yaitu Buat File Txt yang dimaksud disini yaitu dimana jika kita telah memasukan direktori saat pertama tadi maka kita tidak akan bias membuat file. Program akan merespon bahwa file sudah ada, seperti terlihat pada gambar dibawah ini,

111

Gambar 5.13 Tampilan jika file sudah ada

Jika misalkan file tersebut dihapus maka, program akan meminta kita untuk memasukan data angka, kemudian angga tersebut terbilang seperti gambar berikut ini:

Gambar 5.14 Membuat dan mengisi file

Kembali lagi ke menu utama, masukan pilihan 2 yaitu tambah data. Akan muncul seperti berikut :

Gambar 5.15 Menambah data pada file

Penambahan data yang dilakukan tidak akan menghapus data yang telah disimpan sebelumnya. Untuk membuktikan bahwa kedua data yang dimasukan tadi masih tersimpan, maka kembali ke menu utama , dan masukan pilihan 3 yaitu untuk membaca data. Akan terlihat tampilan berikut:

112

Gambar 5.16 Menampilkan isi file

Gambar diatas merupakan pembacaan isi file dengan coding, selain itu ada cara lain yaitu cari direktori file dan nama file nya langsung di tempat yang tadi menyimpan, seperti berikut:

Gambar 5.17 Direktori dan nama file yang disimpan

Setelah meng-klik file tersebut, selanjutnya kita dapat membaca data dalam file yang telah kita masukan tadi melalui coding/program. Tampilannya sebagai berikut:

Gambar 5.18 Membaca isi file langsung dari file

113

Setelah membuat, menambah dan membaca data dan file, dengan program ini file dapat dihapus. Jika user mengetik 4 maka secara otomatis file akan terhapus dan akan muncul tampilan berikut:

Gambar 5.19 Menghapus file

Untuk mengakhiri program langsung saja tekan t atau sembarang tombol. Jika user berada di menu utama maka user dapat menekan 5 untuk langsung keluar dari program.

5.5

Simpulan Dari praktikum Operasi file yang telah dilakukan sebelumnya dapat

disimpulkan nahwa :
1.

Untuk penggunaan Fungsi-fungsi operasi file harus menambahkan


include <fstream>

di awal

program,

seperti

misalnya

untuk

mengaktifkan tipe data ofstream untuk output, ifstream untuk input dan
fstream

untuk input dan output.

2. 3.

Penggunaan fungsi dapat mempermudah pembuatan program operasi file. Penggunaan modus dalam operasi file sangat membantu pembuat program untuk member tugas pada program tersebut, atau dapat dikatakan penugasan singkat untuk program dalam operasi file.

114

5.6

Lampiran

115