Modul 5 (FILE PROCESSING)
Modul 5 (FILE PROCESSING)
1
Peraturan Praktikum
1. Jika terdapat praktikan yang tidak mengetahui informasi praktikum maka nilai satu
kelas praktikan tersebut dikurangi 10 poin dari nilai akhir modul 1.
2. Tidak diperbolehkan menggunakan nilai praktikum tahun sebelumnya tanpa ada
persetujuan koordinator dosen mata kuliah praktikum yang bersangkutan dan kepala
urusan laboratorium.
3. Jika dia tidak hadir pada satu modul, modul tersebut ditulis alpha dan modul
selanjutnya nama praktikan dihilangkan.
4. Jika praktikan mengajukan izin (sakit, berduka, keperluan keluarga, lomba akademik
serta lomba yang membawa nama baik Universitas Telkom), maka surat perizinan
diberikan ke pihak Laboratorium maksimal 6 hari setelah jadwal praktikum masing-
masing.
5. Izin penugasan institusi tidak berlaku untuk ukm, komunitas dan himpunan kecuali
sudah terdapat dispensasi di Igracias.
NB : dilampirkan screenshot dispensasi Igracias.
6. Kartu praktikum diprint langsung beserta identitas diri (Nama, Nim Kelas, dan Foto).
Foto yang digunakan adalah foto formal. Kartu praktikum diprint dengan kertas buffalo
ukuran A4 dan tidak tidak diperbolehkan menggunakan kartu praktikum semester
sebelumnya.
NB : Margin maksimal 2 cm.
7. Seragam Praktikum
a. Bagi mahasiswa tidak diperkenankan menggunakan celana berbahan
jeans/chino (tidak stretch) saat praktikum.
b. Bagi mahasiswi diwajibkan menggunakan rok panjang tidak ketat saat
praktikum.
c. Jika ditemukan praktikan menggunakan hal-hal terkait, maka diperkenankan
untuk mengganti dengan dresscode yang sesuai dengan peraturan Universitas
Telkom dan tidak ada penambahan waktu.
NB : Untuk dresscode hari senin dapat menggunakan kemeja merah telkom atau
kemeja putih polos, dresscode hari selasa sampai dengan rabu menggunakan
kemeja putih. Untuk dresscode hari Kamis s/d Sabtu praktikan tetap diwajibkan
menggunakan kemeja formal (bukan kerah sanghai dan bukan polo) dan celana
bahan berwarna hitam/biru gelap.
2
Daftar Isi
3
MODUL 5
FILE PROCESSING
Tujuan Praktikum
1. Praktikan memahami bagaimana penggunaan sebuah file dalam Java.
2. Praktikan mampu melakukan penulisan dan pembacaan data dengan menggunakan
Java.
3. Praktikan mampu membuat penyimpanan file dengan menggunakan java
1. Dasar Teori
Data yang disimpan dalam variabel, array dan objek bersifat sementara, ketika
program berakhir maka akan hilang semua yang telah disimpan. Untuk dapat
menyimpan data yang kita proses lebih lama, maka kita dapat menggunakan File.
File adalah kumpulan data yang tersimpan dalam harddisk atau media penyimpanan
permanen yang lain. Setiap file ditempatkan dalam sebuah direktori pada file system.
a. Konsep File
File merupakan urutan data yang digunakan untuk melakukan encode
informasi digital untuk urusan penyimpanan & pertukaran data. Sedangkan Class
file merupakan langkah awal dalam mempelajari proses input-output dengan
Java, karena File merupakan objek yang mewakili path, file, atau direktori pada
komputer kita. Class file juga dapat berguna untuk mengambil informasi
mengenai suatu file atau direktori dari disk.
Berikut ini method – method yang terdapat dalam Class File, antara lain :
a) boolean canRead()
Menentukan apakah file dapat dibaca atau tidak
b) boolean exists()
Menentukan apakah suatu file ada atau tidak
c) boolean isFile()
Menguji apakah sebuah object berupa file atau bukan.
4
d) boolean isDirectory()
Menguji apakah sebuah object merupakan direktori atau bukan.
e) String getName()
Mendapatkan nama file atau nama direktori dari object File
f) String getParent()
Mendapatkan nama direktori induk.
g) String[] list()
Mengembalikan nilai daftar file dan subdirektori yang berada di dalam
sebuah object. Object ini haruslah berupa sebuah direktori.
Hal yang perlu diperhatikan saat menggunakan File Processing adalah import
java.io.File dan letakkan di atas main method.
Bentuk Umum
Contoh
Catatan :
2. Jika ingin menggunakan tanda backslash “\” maka harus ditulis “\\”
5
b. Membuat File
1. import java.io.File;
2.
3. public class BuatFile{
4. public static void main(String[] args){
5. //Pembuatan objek file
6. File file = new File ("D:/Praktikum/java.txt");
7. try {
8. //Perintah membuat file baru
9. file.createNewFile();
10.
11. //Menampilkan pesan error
12. } catch(Exception e){
13. System.out.println("Gagal membuat file "+file.getPath());
14. }
15. }
16. }
Perhatikan pada contoh program di atas, pada baris ke-9 penggunaan method
“createNewFile()” yang terdapat pada kelas File adalah untuk membuat sebuah
file kosong baru pada path yang kita tentukan, karena penggunaan method
“createNewFile()” hanya menghasilkan file kosong maka apabila kita hendak
membuat file yang berisikan data penggunaan method ini bisa digantikan dengan
method lain seperti FileWriter maupun BufferedWriter yang akan dibahas
selanjutnya.
c. Path
File yang diletakan pada direktori kerja disebut “path”, atau nama
lengkap termasuk nama direktorinya. Untuk memperjelas ada dua jenis
path yaitu path absolute dan path relative. Nama path absolute memiliki
6
informasi lengkap dari akar direktorinya. Sedangkan nama path relative
adalah nama file yang dihitung mulai dari direktori aktifnya.
Path Keterangan
a. Stream
Stream merupakan dasar operasi input/output dalam java yang menggunakan
package java.io sebagai package utama. Pada Stream memungkinkan untuk
melakukan input/output data dalam bentuk karakter maupun biner. File yang
dibuat menggunakan format biner seringkali disebut Binary File, sedangkan file
7
yang dibuat dengan menggunakan format karakter disebut Text File. Setiap objek
yang mengeluarkan data ke binary stream akan masuk sebagai kelas turunan dari
kelas OutputStream, sedangkan objek yang membaca data dari binary stream
diturunkan dari kelas InputStream. Artinya kita dapat membaca data dari
InputStream yang dapat berupa file, keyboard atau komputer remote, sedangkan
untuk operasi penulisannya kita akan menulisnya pada OutputStream.
8
Byte Stream
Character Stream
9
Class turunan dari Stream yang digunakan pada modul kali ini adalah
FileInputStream dan FileOutputStream. Berikut contoh yang menggunakan class
turunan stream.
Contoh :
1. import java.io.FileNotFoundException;
2. import java.io.FileOutputStream;
3. import java.io.IOException;
4.
5. public class CobaBiner{
6. public static void main(String[] args){
7. FileOutputStream fos = null;
8. try{
9. fos = new FileOutputStream("D:/Januar/Binary.bin");
10.
11. byte a = 121;
12. fos.write(a);
13.
14. }catch (FileNotFoundException e){
15. System.out.println("Error di "+e);
16.
17. }catch (IOException e) {
18. System.out.println("Error di "+e):
19. }
20.
21. try{
22. fos.close();
23.
24. }catch(IOException e){}
25. }
26. }
1. try{
2. FileInputStream fis = new FileInputStream("D:/Januar/Binary.bin");
3. int a;
4.
5. while((a = fis.read()) != 0){
6. System.out.println(a);
7. }
8.
9. }catch(FileNotFoundException e){
10. System.out.println("Error di "+e);
11.
12. }catch(IOException e){
13. System.out.println("Error di "+e);
14. }
10
b. File
Pada Class File hanya memungkinkan melakukan input/output data dalam
bentuk karakter saja. Data karakter dapat dibaca dari file dengan menggunakan
objek dari kelas FileReader yang merupakan kelas turunan dari Reader. Data bisa
ditulis dengan menggunakan PrintWriter().
1. import java.io.File;
2. import java.io.PrintWriter;
3. import java.util.Scanner;
4.
5. public class FileProcessing {
6. public static void main(String[] args) {
7.
8. String nama;
9. int nim;
10.
11. //Membuat objek file //Direktori penyimpanan file
12. File data = new File ("D:/Praktikum/data.txt");
13. Scanner in = new Scanner(System.in);
14.
15. try{
16. //Perintah membuat file baru
17. data.createNewFile();
18.
19. //Untuk menulis file
20. PrintWriter pewe = new PrintWriter(data);
21.
22. System.out.println("Tulis Nama\t:");
23. nama = in.nextLine();
24. pewe.write("Nama :" +nama);
25. pewe.write("\r\n");
26. System.out.println("Tulis NIM\t:");
27. nim = in.nextInt();
28. pewe.write("NIM :"+nim);
29.
30. pewe.close();
31. System.out.println("File berhasil ditulis");
32.
33. //Untuk menampilkan pesan error
34. }catch(Exception e){
35. System.out.println("Gagal membuat File");
36. System.out.println("Error di "+e);
37. }
38. }
39. }
11
Berikut merupakan program untuk membaca file yang bernama “data.txt”
1. import java.io.BufferedReader;
2. import java.io.FileNotFoundException;
3. import java.io.FileReader;
4. import java.io.IOException;
5.
6. public class bacaFIle {
7. public static void main(String[] args) {
8. //Mendeklarasikan objek dengan nilai awal
9. FileReader file = null;
10.
11. try{
12. //Pembuatan objek //Direktori penyimpanan file
Begitu kita berhasil membuat FileReader, kita bisa mulai membacanya. Tapi
karena FileReader hanya memiliki metode input primitif dari standar kelas
Reader, maka akan membungkusnya dalam objek lain, misalnya BufferedReader
atau kelas pembungkus lain. Untuk membuat BufferedReader untuk membaca
file bernama “data.dat”, kita bisa gunakan :
12
BufferedReader memiliki metode bantu untuk mengambil data per baris
dengan perintah readLine().Sehingga apabila data ditulis dalam urutan per baris,
kita bisa gunakan perintah Integer.parseInt() untuk mengubahnya menjadi
integer. Untuk menyimpan data, kita bisa membuat objek bertipe FileWriter. Dan
kemudian kita mungkin ingin membungkus aliran output ini dalam objek
PrintWriter. Misalnya kita ingin menyimpan data ke file yang bernama
“hasil.dat”, kita bisa menggunakan :
13
Latihan Soal
1. YoungLex adalah seorang rapper yang kaya raya. Karena kekayaannya, YoungLex ingin
merambah ke bisnis distribusi barang. Siapa sangka, dalam satu hari barang yang harus ia
distribusikan sangat banyak. YoungLex merasa kewalahan jika harus melakukannya
secara manual. Maka dari itu, ia membutuhkan kalian untuk membuat sebuah aplikasi
pengiriman barang dengan ketentuan file sebagai berikut:
Output :
2. Fitur fitur dalam aplikasi yang diinginkan Younglex cukup sederhana. YoungLex hanya
ingin untuk menginputkan barang yang didistribusikan pada hari tersebut dan dapat
melihat seluruh distribusi barang tiap hari.
14
Output lihat data :
15
Daftar Pustaka
Dahlan, B. N. (2016, Agustus 23). Mencoba Statement Try Catch di Java. Retrieved from :
https://www.codepolitan.com/mencoba-statement-try-catch-dijava
16