Anda di halaman 1dari 20

LAPORAN RESMI PRAKTIKUM DASAR PEMOGRAMAN

Console dan File Input Output


Ke - 9
Widad Alfiyah Zayyan
1 D4 Telekomunikasi A
222060013
Ida Anisah S.ST,MT

10 Mei 2021

Praktek Dasar Programming 2 51


PRAKTIKUM 9
FILE INPUT OUTPUT

A. TUJUAN
1. Memahami cara memasukkan Input dan menampilkan Output
2. Memahami dasar membaca dan menulis file

B. DASAR TEORI

Dasar Baca / Tulis File

Terdapat dua buah stream yang sering digunakan untuk melakukan proses
pembacaan/penulisan data dari/ke dalam file, yaitu FileInputStream (untuk membaca data)
dan FileOutputStream (untuk menulis data). Keduanya akan membentuk stream byte
yang terhubung ke sebuah file. Untuk membuka file, harus membentuk objek dari salah
satu kelas stream tersebut dengan menyertakan nama file sebagai argument pada
constructornya. Constructor dari kedua kelas tersebut dioverload menjadi beberapa
constructor sebagai berikut:
FileInputStream(String fileName) throws FileNotFoundException
FileOutputStream(String fileName) throws FileNotFoundException

Dalam hal ini fileName adalah nama file yang akan dibuka. Bila file tidak ditemukan pada
saat menggunakan stream input, maka kedua constructor di atas akan membangkitkan
eksepsi FileNotFoundException, sedangkan eksepsi saat menggunakan stream output
akan muncul bila file output tidak dapat terbentuk/terbuat. Apabila terdapat file dengan
nama yang sama pada direktori tempat file dibuat/dibuka, maka file lama akan ditumpuki.
Setelah selesai menggunakan stream yang terhubung dengan file, maka stream tersebut
harus ditutup dengan menggunakan method close() dengan bentuk umum deklarasi
sebagai berikut:
void close() throws IOException

Untuk membaca data dari file, perlu memanggil method read(). Setiap kali method
tersebut dipanggil, maka program akan membaca byte tunggal yang terdapat dalam file dan
mengembalikan nilai byte tersebut dalam bentuk nilai integer. Apabila data terakhir dari

Praktek Dasar Programming 2 52


file yang dibaca (end-of-file, EOF) telah ditemukan, maka method read() akan
menghasilkan nilai -1. Method tersebut juga dapat membangkitkan eksepsi IOException
apabila terdapat kegagalan pada proses pembacaan datanya.
Proses penulisan data ke dalam file menggunakan method write(). Karena System.out
adalah objek dari tipe PrintStream, dan PrintStream itu sendiri merupakan turunan dari
kelas OutputStream, maka System.out dapat menggunakan method write() yang
sebenarnya didefinisikan pada kelas OutputStream. Bentuk umum dari method write()
yang telah di override oleh kelas PrintWriter adalah sebagai berikut:
void write(int nilaiByte)

Data yang dituliskan harus dalam bentuk integer, sehingga harus diyakinkan dulu bahwa
data telah dikonversi ke tipe int dulu sebelum memasukkan data tersebut ke dalam stream.

Kelas File
Kelas File dalam paket java.io tidak beroperasi dengan menggunakan stream, tetapi
terhubung langsung dengan file dan sistem file yang ada, sehingga objek dari kelas File
digunakan untuk memperoleh dan memanipulasi informasi yang berkaitan dengan file,
seperti hak akses (permission), waktu dan tanggal pembuatan atau modifikasi, lokasi
direktori yang ditempatinya, dan sebagainya.
Beberapa constructor yang dapat digunakan untuk membuat objek dari kelas File dan
contoh kodenya sebagai berikut:
File(String path) 🡪 File file1 = new File(“/java”);
File(String path, String namaFile)
🡪 File file2 = new File(“/java”, “contoh.java”);
File(File objFile, String namaFile) 🡪 File file3 = new File(file1, “contoh.java”);

dengan path adalah lokasi tempat file berada dan namaFile adalah nama dari file yang
akan diakses, sedangkan objFile adalah objek dari kelas File yang akan digunakan untuk
menunjukkan direktori dimana file berada.
Beberapa method dalam kelas File yang digunakan untuk memanipulasi file adalah sebagai
berikut:
● Memperoleh informasi file 🡪 sesuai Tabel 8.1
Tabel 8.1 Daftar method untuk memperoleh informasi file

Praktek Dasar Programming 2 53


Nama Method Keterangan
Exist() Mengembalikan nilai true apabila file ada
getCanonicalpath() Mengembalikan nama lengkap
getName() Mengembalikan nama file relatif
getParent() Mengembalikan directory yang ditempatinya
canRead() Mengembalikan nilai true bila file dapat dibaca
canWrite() Mengembalikan nilai true bila file dapat ditulis
lasModified() Mengembalikan waktu modifikasi yang dilakukan terhadap file
length() Mengembalikan ukuran file

isFile() Mengembalikan nilai true bila file yang diakses oleh objek File
berupa file (bukan direktori)
isDirectory Mengembalikan nilai true bila file yang diakses oleh objek File
berupa direktori

● Membuat file 🡪 createNewFile()


● Mengubah nama file 🡪 renameTo()
● Menghapus file 🡪 delete(), yang mengembalikan nilai true bila proses
penghapusan berhasil dan false bila gagal.
● Menampilkan daftar file dan direktori 🡪list(), daftar file dan direktori yang
diperoleh akan disimpan dalam variabel bertipe array dari tipe string.
● Membuat direktori baru 🡪 mkdirs()

C. TUGAS PENDAHULUAN
1. Jelaskan perbedaan pemakaian di dalam program untuk konstruktor berikut
a. File(String path)
: konstruktor ini digunakan agar file atau direktori yang menentukan lokasi
unik dalam sistem file dan akan merujuk ke lokasi sistem file dengan
mengikuti string dari pohon direktori
b. File(String path, String namaFile)
: konstruktor ini digunakan untuk menentukan direktori dalam sistem file,
dan akan merujuk ke lokasi file yang dituju
c. File(File objFile, String namaFile)

Praktek Dasar Programming 2 54


: konstruktor ini digunakan untuk menunjukkan object dimana file tersebut
berada
2. RandomAccessFile adalah kelas yang memungkinkan membaca dan menulis data
tanpa melalui pembacaan secara sekuensial. Kelas ini memiliki konstruktor dengan
bentuk sebagai berikut:
RandomAccessFile(String nama, String mode)
RandomAccessFile(File file, String mode)

Jelaskan pemakaian konstruktor-konstruktor tersebut!


Jawab:
- RandomAccessFile(String nama, String mode) digunakan untuk membuat sebuah file
secara acak dan secara opsional untuk menulis ke file yang ditentukan. Objek baru
dibuat untuk mewakili koneksi ke file. Mode Argumen menentukan mode akses dengan
nama file tersebut akan dibuka. Nilai yang diizinkan dan artinya seperti yang ditentukan
untuk RandomAccesFile(File.String) konstruktor.

- RandomAccessFile(File file, String mode) digunakan untuk Membuat suatu aliran file
akses secara acak untuk dibaca dan secara opsional untuk menulis ke.file yang
ditentukan oleh File Argumen. Objek baru dibuat untuk mewakili koneksi ke file ini.
Mode Argumen menentukan mode akses dimana file tersebut akan dibuka.

Praktek Dasar Programming 2 55


D. PERCOBAAN
1. Eksekusi program berikut, dan analisalah.

Jawab:
Input

Praktek Dasar Programming 2 56


Output

Praktek Dasar Programming 2 57


2. Eksekusi program berikut, dan analisalah.

Analisa :
Pada program diatas terdapat konstruktor FileOutputStream yang berfungsi untuk
menentukan data yang ada, data akan ditulis berupa string dengan format yang sudah di
tentukan yaitu (d:/output.txt).

Program

Praktek Dasar Programming 2 58


Output

Praktek Dasar Programming 2 59


3. Tulislah program berikut, lakukan kompilasi dan amati hasilnya.

Analisa:
Pada program di atas menggunakan konstruktor dua jenis konstruktor yaitu
FileInputStream dan FileOuputStream. Untuk File Input diletakkan dalam folder
(d:/file1.txt) dan untuk File Output dalam folder (d:/file2.txt). Namun, apabila file tidak
dapat ditemukan dan dibuat, maka digunakan method close() dan pada program tersebut
berlaku penggunaan eksepsi.

Praktek Dasar Programming 2 60


Program

Output

Praktek Dasar Programming 2 61


4. Tulislah program berikut, lakukan kompilasi dan amati hasilnya.

Analisa :
Pada program di atas terjadi Pada program di atas terjadi error pada output dikarenakan belum
dibuatnya direktori yang diinginkan. Ketika program sudah dibuatkan direktori dengan folder
“Hanif” pada Local Disk D output mencetak hasil bahwa file dan direktori berada dalam D:/Hanif.
Program

Praktek Dasar Programming 2 62


Output
- Sebelum direktori

- Sesudah direktori

5. Eksekusi program berikut, dan analisalah.

Praktek Dasar Programming 2 63


Analisa:
Pada program di atas bertujuan untuk mengganti suatu isi berkas menggunakan
konstruktor RandomAccesFile. Berkas “ABCDEFGHIJKLMNOPQRSTUVW” berada
pada direktori “abc.dat”. Untuk output pertama, dicetak secara normal berkas abjad
tersebut. Namun, pada output setelah dilakukan pengggantian, huruf ke-3 diubah menjadi
integer Z dengan keyword berkas.seek(3). Dikarenakan perhitungan dimulai dari Nol,
maka huruf ke-3 adalah huruf D sehingga diubah menjadi huruf Z.

Program

Praktek Dasar Programming 2 64


Output

E. TUGAS LAPORAN RESMI


1. Buatlah program untuk membuat suatu file baru pada disk.
Jawab:
Program

Praktek Dasar Programming 2 65


Output

File yang dibuat

2. Buatlah program untuk menghapus file3.txt yang ada pada suatu disk.
Jawab:
Program

Output

Praktek Dasar Programming 2 66


3. Buatlah program untuk membuat sebuah direktori baru.
Jawab:
Program

Output

File Direktori

4. Dari percobaan yang telah dilakukan, buat analisa program-program tersebut.


Jawab:
Pada laporan resmi 1, mahasiswa diminta untuk membuat program file baru. pada
program ini kita menggunakan import java.io.File , java.io.IOException dan keyword
try dan catch untuk mengelola eksepsi apabila terjadi suatu kesalahan. Pada program
ini file dibuat dengan nama “No 1 Lapres P9” di buat dalam format txt dan dituliskan
pada keyword try, sementara pada if terdapat output untuk menyatakan bahwa file
sudah dibuat dan pada else terdapat output bahwa file belum dibuat.
Pada laporan resmi 2, mahasiswa diminta untuk menghapus file3.txt yang ada pada
suatu disk. Pada program ini file dibuat berada pada Local Disk D, kemudian untuk

Praktek Dasar Programming 2 67


menghapus file tersebut digunakan method.delete(). Ketika file tersebut dapat di hapus
maka output yang keluar yaitu berupa “ File telah dihapus” dan jika file tersebut gagal
dihapus maka output yang keluar yaitu berua “ Terjadi Kesalahan”
Pada laporan resmi 3, mahasiswa diminta untuk membuat sebuah direktori baru.
direktori/folder itu sendiri akan dibuat berada pada Local Disk D dengan nama “No 3
Lapres P9” . pada program ini direktori dibuat dengan fungsi File f_file = new
File(file); , kemudian pada if terdapat output yang menyatakan jika Direktori telah
dibuat maka output nya adalah “ Direktori telah dibuat!” dan pada else terdapat output
yang menyatakan jika Direktori gagal dibuat maka hasil dari program tersebut adalah
“ Direktori gagal dibuat”

ANALISIS
Pada praktikum ke 9 ini mengenai Console dan File I/O mahasiswa diharapkan
memahami cara memasukkan Input dan Menampilkan output serta memahami dasar
membaca dan menulis pada suatu File
Pada percobaan 1, mahasiswa diminta untuk mengeksekusi program yang telah
diberikan dan dilakukan analisa. Pada program tersebut menggunakan konstruktor
FileInputStream yang berfungsi untuk membaca sebuah data. pada program yang telah
diberikan file berada pada Direktori (H:/file1.txt) dimana direktori tersebut belum dibuat
sebelumnya. Maka program akan menggunakan konstruktor eksepsi
FileNotFoundException dan output pada program tersebut “File tidak ditemukan”
Pada percobaan 2, mahasiswa diminta untuk mengeksekusi program yang telah
diberikan dan dilakukan analisa. Pada program yang telah disediakan menggunakan
konstruktor FileOutputStream yang bertujuan untuk menulis dan membentuk data. pada
program tersebut dituliskan bahwa file berada pada Direktori (d:/output.txt). dan ketika
program di Run, pada drive terbentuk file dengan nama output.txt sehingga menandakan
program berhasil.
Pada percobaan 3, mahasiswa diminta untuk mengkompilasi Program yang telah
disediakan kemudian amati hasilnya. Pada program ini digunakan 2 konstruktor yaitu
FileInputStream yang merupakan input dan diletakkan dalam direktori (d:/file1.txt) . dan

Praktek Dasar Programming 2 68


FileOutputStream yang merupakan output dan diletakkan dalam direktori (d:/file2.txt).
apabila file tidak dapat ditemukan dan dibuat, maka digunakan method close() dan pada
program tersebut berlaku penggunaan eksepsi.
Pada percobaan 4, mahasiswa diminta untuk mengkompilasi Program yang telah
disediakan kemudian amati hasilnya. Pada program ini mengalami error pada output
dikarenakan belum dibuatnya direktori yang diinginkan. Ketika program sudah dibuatkan
direktori dengan folder “Hanif” pada Local Disk D output mencetak hasil bahwa file dan
direktori berada dalam D:/Hanif.
Pada percobaan 5, mahasiswa diminta untuk mengeksekusi program yang telah
diberikan dan dilakukan analisa. Pada program yang telah diberikan bertujuan untuk
mengganti suatu isi berkas menggunakan konstruktor RandomAccesFile. Berkas
“ABCDEFGHIJKLMNOPQRSTUVW” berada pada direktori “abc.dat”. Untuk output
pertama, dicetak secara normal berkas abjad tersebut. Namun, pada output setelah
dilakukan pengggantian, huruf ke-3 diubah menjadi integer Z dengan keyword
berkas.seek(3). Dikarenakan perhitungan dimulai dari Nol, maka huruf ke-3 adalah huruf
D sehingga diubah menjadi huruf Z.
Pada laporan resmi 1, mahasiswa diminta untuk membuat program file baru. pada
program ini kita menggunakan import java.io.File , java.io.IOException dan keyword try
dan catch untuk mengelola eksepsi apabila terjadi suatu kesalahan. Pada program ini file
dibuat dengan nama “No 1 Lapres P9” di buat dalam format txt dan dituliskan pada
keyword try, sementara pada if terdapat output untuk menyatakan bahwa file sudah dibuat
dan pada else terdapat output bahwa file belum dibuat.
Pada laporan resmi 2, mahasiswa diminta untuk menghapus file3.txt yang ada pada
suatu disk. Pada program ini file dibuat berada pada Local Disk D, kemudian untuk
menghapus file tersebut digunakan method.delete(). Ketika file tersebut dapat di hapus
maka output yang keluar yaitu berupa “ File telah dihapus” dan jika file tersebut gagal
dihapus maka output yang keluar yaitu berua “ Terjadi Kesalahan”
Pada laporan resmi 3, mahasiswa diminta untuk membuat sebuah direktori baru.
direktori/folder itu sendiri akan dibuat berada pada Local Disk D dengan nama “No 3
Lapres P9” . pada program ini direktori dibuat dengan fungsi File f_file = new File(file); ,
kemudian pada if terdapat output yang menyatakan jika Direktori telah dibuat maka output

Praktek Dasar Programming 2 69


nya adalah “ Direktori telah dibuat!” dan pada else terdapat output yang menyatakan jika
Direktori gagal dibuat maka hasil dari program tersebut adalah “ Direktori gagal dibuat”

KESIMPULAN
Kesimpulan yang dapat diambil dari praktikum percobaan ke 9 ini adalah Terdapat dua
buah stream yang sering digunakan untuk melakukan proses pembacaan/penulisan data
dari/ke dalam file, yaitu FileInputStream (untuk membaca data) dan FileOutputStream
(untuk menulis data). Keduanya akan membentuk stream byte yang terhubung ke sebuah
file. Untuk membuka file, harus membentuk objek dari salah satu kelas stream tersebut
dengan menyertakan nama file sebagai argument pada constructornya. Pada Stream yang
terhubung dengan file, harus ditutup dengan method close() dan ketika ingin membuat
sebuah file harus menggunakan method read()

Praktek Dasar Programming 2 70

Anda mungkin juga menyukai