objek stream, akses file & exception handling filepemrograman dasar program teknologi informasi...

51
PEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling Dr. Eng. Herman Tolle, ST., MT Sistem Informasi PTIIK UB Semester Ganjil 2013/2014

Upload: nguyenkhue

Post on 05-Apr-2019

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

PEMROGRAMAN DASAR

Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya

Objek Stream, Akses File & Exception Handling

Dr. Eng. Herman Tolle, ST., MT

Sistem Informasi PTIIK UB Semester Ganjil 2013/2014

Page 2: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

7 Aspek Dasar Pemrograman

1. Membaca Input Data

2. Menampilkan Output Data

3. Melakukan proses perhitungan (Compute)

4. Penyimpanan Data (Store)

5. Penyeleksi Kondisi (Percabangan)

6. Perulangan (Repetisi)

7. Method – Fungsi

• Array

Page 3: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Materi Tambahan Progdas

• Kelas Math, Kelas String

• Objek Stream, Akses File

• Exception Handling

Page 4: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Dasar-Dasar Input/Output

• Java menyediakan dukungan terhadap proses Input/Output (I/O) dalam package java.io.

• Di dalam package tersebut tersimpan banyak interface dan kelas yang akan memudahkan programmer melakukan pengambilan dan penyimpanan informasi ke media lain (misalnya ke suatu file)

Page 5: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Stream

• Stream adalah sebuah kelas abstrak yang dapat memberikan atau mendapatkan informasi.

• Stream dapat dihubungkan dengan peralatan fisik yang terdapat dalam sistem I/O, seperti keyboard, file, layar console, dll.

• Cara kerja stream selalu sama, meskipun peralatan yang terhubung dengannya berbeda. Kode program yang kita tulis akan sama untuk masing-masing peralatan fisik yang terhubung dengan stream yang bersangkutan

• Contohnya, programmer dapat menggunakan method dan kelas yang sama untuk melakukan penulisan teks, baik ke console maupun ke dalam file

Page 6: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Stream

• Stream adalah proses untuk membaca data dari suatu sumber atau menulis data ke suatu tujuan.

• Class stream ini berada pada paket java.io jadi untuk menggunakan harus diimpor terlebih dahulu.

Page 7: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Tipe-tipe Stream

• Byte Stream

memberikan atau menyimpan informasi data dalam bentuk byte, misalnya untuk menulis dan membaca file biner.

• Character Stream

digunakan untuk melakukan I/O yang melibatkan data dalam bentuk karakter, misalnya proses baca/tulis ke file berisi teks.

Page 8: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Kelas-kelas Stream

• Stream didefinisikan dengan empat buah kelas abstrak: InputStream, OutputStream, Reader, Writer

• Kelas InputStream dan OutputStream adalah kelas abstrak yang merupakan kelas induk dari kelas-kelas yang termasuk dalam kategori byte stream

• Kelas Reader dan Writer adalah kelas abstrak yang merupakan kelas induk dari kelas-kelas yang termasuk dalam kategori character stream

Page 9: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

• Semua kelas turunan dari InputStream maupun Reader memiliki method read() untuk membaca data

• Semua kelas turunan dari OutputStream maupun Writer memiliki method write() untuk menulis data

• Kedua method tersebut adalah method abstrak

Page 10: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Byte Stream

• Byte stream didefinisikan dengan menggunakan dua buah hirarki kelas

• Urutan paling atas dari hirarki tersebut adalah kelas InputStream dan OutputStream

• Tabel berikut memperlihatkan beberapa daftar kelas turunan dari kelas InputStream dan OutputStream

Page 11: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Nama Kelas Keterangan

BufferedInputStream Input stream yang telah ter-buffer

BufferedOutputStream Output Stream yang telah ter-buffer

ByteArrayInputStream Input stream yang membaca dari array byte

ByteArrayOutputStream Output stream yang menulis ke array byte

DataInputStream Input stream yang meiliki method-method untuk membaca tipe data standar

yang terdapat dalam java

DataOutputStream Out stream yang meiliki method-method untuk menulis tipe data standar yang

terdapat dalam java

FileInputStream Input stream yang membaca data dari sebuah file

FileOutputStream Output stream yang menulis data ke sebuah file

PipedInputStream Penyalur input

PipedOutputStream Penyalur output

PrintStream Output stream yang berisi method println() dan print()

Page 12: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Character Stream

• Character stream didefinisikan dengan menggunakan dua buah hirarki kelas

• Urutan paling atas dari hirarki tersebut adalah kelas Reader dan Writer

• Tabel berikut memperlihatkan beberapa daftar kelas turunan dari kelas Reader dan Writer

Page 13: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Nama Kelas Keterangan

BufferedReader Character stream input yang telah ter-buffer

BufferedWriter Character Stream output yang telah ter-buffer

CharArrayReader membaca dari array character

CharArrayWriter menulis ke array character

InputStreamReader Input stream yang menerjemahkan byte ke character

OtuputStreamWriter Out stream yang menerjemahkan karakter ke byte

FileReader membaca data dari sebuah file

FileWriter menulis data ke sebuah file

PipedWriter Penyalur input

PipedReader Penyalur output

PrintWriter Output stream yang berisi method println() dan print()

StringReader Input stream yang membaca dari sebuah String

StringWriter Output stream yang menulis ke sebuah String

Page 14: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

• Semua program Java otomatis mengimport package java.lang. Di dalam package ini didefinisikan sebuah kelas bernama System. Kelas ini mendefinisikan beberapa aspek yang berkaitan dengan runtime.

• Kelas System mendefinisikan tiga variabel stream: in, out, err. Ketiga variabel ini didefinisikan sebagai public dan static

• System.out mengacu kepada output stream standar, yang berupa console

• System.in mengacu kepada input stream standar yang berupa keyboard

• System.err mengacu pada stream error standar yang berupa console

Page 15: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Proses Input

• Dalam Java, input console dilakukan dengan pembacaan terhadap stream System.in

• Untuk mendapatkan karakter-karakter yang dimasukkan melalui keyboard ke layar console, System.in perlu dibungkus didalam objek BufferedReader.

• Hal ini dilakukan untuk membentuk character stream, karena sebenarnya System.in adalah byte stream

Page 16: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

• Bentuk konstruktor dari BufferedReader adalah

BufferedReader(Reader inputReader)

• inputReader adalah stream yang akan dihubungkan dengan objek dari kelas BufferedReader yang dibuat.

• Karena Reader adalah kelas abstrak, kita perlu menggunakan kelas turunannya yang berupa kelas konkrit. Salah satunya adalah InputStreamReader yang dapat mengonversi byte ke character

Page 17: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

• Agar objek dari InputStreamReader dapat dihubungkan dengan System.in, perlu digunakan konstruktor dengan bentuk:

InputStreamReader(InputStream is)

• Pada konstruktor di atas, is dapat diisi dengan System.in, sehingga untuk membuat objek BufferedReader yang terhubung dengan keyboard dapat menggunakan kode:

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

Page 18: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

• Untuk membaca input berupa karakter, gunakan method read() yang terdapat dalam kelas BufferedReader.

• Deklarasi method read() adalah sebagai berikut:

int read() throws IOException

Page 19: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Contoh membaca input data karakter import java.io.*;

class DemoInputKarakter {

public static void main(String[] args) throws IOException

{

System.out.print("Masukkan sembarang karakter: ");

char ch;

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

ch = (char) br.read();

System.out.println("Karakter yang dimasukkan adalah \'" +

ch + "\'");

}

}

Page 20: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Input Data String

• Untuk melakukan input berupa String, gunakan method readLine()

• Deklarasi method tersebut adalah

String readLine() throws

IOException

Page 21: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Contoh Membaca Input Data String

import java.io.*;

class DemoInputString {

public static void main(String[] args) throws IOException {

System.out.print("Masukkan nama Anda: ");

String nama;

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

nama = br.readLine();

System.out.println("Halo " + nama

+ ", sudahkah Anda mengerti Java?");

}

Page 22: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Contoh Input Data Numerik import java.io.*;

class DemoInputNumerik1 {

public static void main(String[] args) throws IOException {

System.out.print("Masukkan sebuah bilangan bulat: ");

String temp;

int bilangan = 0;

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

// input data dianggap sebagai string

temp = br.readLine();

try {

// konversi dari string ke integer

bilangan = Integer.parseInt(temp);

} catch (NumberFormatException nfe) {

System.out.println("Data yang dimasukkan “+"bukan bilangan bulat");

System.exit(1);

}

System.out.println("Bilangan yang dimasukkan " + "adalah " + bilangan);

}

}

Page 23: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

import java.io.*;

class DemoInputNumerik2 {

public static void main(String[] args) throws IOException {

System.out.print("Masukkan sebuah bilangan riil: ");

String temp;

double bilangan = 0;

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

// input data dianggap sebagai string

temp = br.readLine();

try {

// konversi dari string ke floating-point

bilangan = Double.parseDouble(temp);

} catch (NumberFormatException nfe) {

System.out.println("Data yang dimasukkan bukan bilangan");

System.exit(1);

}

System.out.println("Bilangan yang dimasukkan " +

"adalah " + bilangan);

}

}

Page 24: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Proses Output

• Sejauh ini, untuk menampilkan output ke console, kita menggunakan method print() dan println()

• Untuk menuliskan output ke media lainnya, misalkan file, gunakan method write()

• System.out adalah objek dari tipe PrintStream. Sedangkan PrintStream adalah turunan dari OutputStream, maka System.out dapat menggunakan method write() yang didefinisikan pada kelas OutputStream.

• Deklarasi method write() adalah

void write(int nilaiByte)

Page 25: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Kelas PrintWriter

• Selain menggunakan System.out, kita juga dapat menggunakan kelas PrintWriter untuk menuliskan data ke layar console.

• Terdapat beberapa bentuk konstruktor dari PrintWriter, di antaranya ialah

PrintWriter(OutputStream os, boolean flushOnNewLine)

os adalah objek dari OutputStream, sedangkan flushOnNewLine adalah parameter bertipe boolean yang menyatakan apakah stream output akan dibuang atau tidak setiap kali method println() dipanggil.

Page 26: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

• PrintWriter mendukung method print() dan println() untuk semua tipe data

• Cara pembentukan objek PrintWriter yang dapat digunakan untuk pembentukkan output adalah:

PrintWriter pw = new PrintWriter(System.out, true)

Page 27: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Contoh PrintWriter import java.io.PrintWriter;

class DemoPrintWriter {

public static void main(String[] args) {

// membuat objek PrintWriter

PrintWriter pw = new PrintWriter(System.out, true);

double d = 3.1416;

int i = 123;

byte b = 65;

char c = 'A';

String s = "Ini adalah string";

pw.println("Data bertipe double : " + d);

pw.println("Data bertipe int : " + i);

pw.println("Data bertipe byte : " + b);

pw.println("Data bertipe char : " + c);

pw.println("Data bertipe string : " + s);

}

}

Page 28: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

OPERASI FILE

Page 29: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

OPERASI FILE

• Untuk program sederhana, input cukup dari keyboard kemudian diproses dan ditampilkan hasilnya ke layar monitor.

• Data yang disimpan dalam variabel, array, dan objek bersifat sementara, hilang ketika program berhenti.

• Untuk menyimpan data secara permanen dalam program, diperlukan suatu file

Page 30: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Operasi File

• Untuk program dengan data yang sangat besar/ banyak dibutuhkan operasi file. (nantinya menggunakan file basis data)

• Program akan menyimpan dan membaca data dari file yang berada di hard disk.

• Dengan operasi file, data menjadi bersifat permanen. Tidak akan hilang meskipun komputer dimatikan.

Page 31: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Perintah Operasi File

• Library:

– import java.util.Scanner;

– import java.io.File;

– import java.io.FileNotFoundException;

– import java.io.PrintStream;

• Scanner untuk membaca isi file.

• PrintStream untuk menulis ke file.

Page 32: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Contoh: TestKelasFile.java

public class TestKelasFile {

public static void main(String[] args) {

java.io.File file = new java.io.File(“indonesianflag.bmp");

System.out.println("Apakah file ini ada? "+ file.exists());

System.out.println("File memiliki " + file.length() + " byte");

System.out.println("Dapatkah file ini dibaca? " + file.canRead());

System.out.println("Dapatkah file ini ditulis? " + file.canWrite());

System.out.println("Apakah ini direktori? " + file.isDirectory());

System.out.println("Apakah ini suatu file? " + file.isFile());

System.out.println("Apakah ini nama absolut? " + file.isAbsolute());

System.out.println("Apakah file ini hidden? " + file.isHidden());

System.out.println("Absolute path adalah " + file.getAbsolutePath());

System.out.println("Terakhir kali dimodifikasi " + new java.util.Date(file.lastModified()));

}

}

Page 33: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

EXCEPTION HANDLING

Penanganan Pengecualian

Page 34: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Exception Handling

• Exception adalah setiap kejadian yang abnormal, tidak diharapkan, dan kondisi yang tidak umum yang mungkin terjadi pada saat run-time program.

• Java exception handling digunakan untuk menangani kondisi error (exception) dalam sebuah program secara sistematis dengan melakukan tindakan yang diperlukan.

• Java exception dimulai dengan kata kunci throw atau dengan kombinasi (try-catch-finally) diperiksa dg try, jika ada eksepsi maka ditangani dalam catch. Jika tidak ada eksepsi maka lakukan apa yang ada pada finally.

Page 35: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Contoh exception

• Eksepsi yang sering terjadi adalah:

• Akses File:

– File tidak ada, salah path

– file dalam mode yang tidak sesuai (read only tetapi mau ditulis)

• Matematis:

– Pembagian nol (divide by zero)

• Akses Objek:

– akses array: array index out of range

Page 36: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Struktur Program dg Exception Handling

try

{ <code> } // statemen yg diperiksa

catch (<exception type1> <parameter1>)

// jika terjadi hal yg tidak diinginkan, maka ..

{ // 0 or more <statements> }

finally // jika tidak ada exception

{ // finally block <statements> }

Page 37: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Contoh Hasil Pembagian Nol

public class DivideException2 {

public static void main(String[] args) {

int result = division(100,0); // Line 2

System.out.println("result : "+result);

}

public static int division(int totalSum, int totalNumber) {

int quotient = -1;

System.out.println("Computing Division.");

try

{ quotient = totalSum/totalNumber; }

catch(Exception e)

{ System.out.println("Exception : "+ e.getMessage()); }

finally

{return quotient; }

}

Page 38: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Baca Tulis File

• Pada contoh program berikut ditunjukkan cara untuk membaca data dari sebuah file dan kemudian menampilkan isi file tersebut ke layar monitor.

Page 39: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Contoh: TulisData.java

public class TulisData {

public static void main(String[] args) throws Exception {

java.io.File file = new java.io.File("skor.txt");

if (file.exists()) {

System.out.println("File sudah ada");

System.exit(0);

}

// Menciptakan suatu file

java.io.PrintWriter keluaran = new java.io.PrintWriter(file);

// Menulis keluaran terformat ke dalam file

keluaran.print(“Budi Sudarsono"); keluaran.println(90);

keluaran.print(“Bambang Pamungkas"); keluaran.println(85);

// Menutup file

keluaran.close();

}

}

Page 40: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

BacaData.java import java.util.Scanner;

public class BacaData {

public static void main(String[] args) throws Exception {

// Menciptakan suatu instans File

java.io.File file = new java.io.File("skor.txt");

// Menciptakan suatu Scanner untuk file

Scanner masukan = new Scanner(file);

// Membaca data dari file

while (masukan.hasNext()) {

String namaPertama = masukan.next();

String namaAkhir = masukan.next();

int score = masukan.nextInt();

System.out.println(

namaPertama + “ " + namaAkhir + " " + score);

}

// Menutup file

masukan.close();

}

}

Page 41: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Contoh: Membaca dari File

import java.util.Scanner;

import java.io.File;

import java.io.FileNotFoundException;

class ReadAndWrite {

public static void main(String args[])

throws FileNotFoundException {

Scanner diskScanner = new Scanner(new File(“rawData.txt”));

double unitPrice, quantity, total;

unitPrice = diskScanner.nextDouble();

quantity = diskScanner.nextInt();

total = unitPrice * quantity;

System.out.println(total);

}

}

Page 42: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Contoh: Membaca & Menulis dari File

import java.util.Scanner;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.PrintStream;

class ReadAndWrite {

public static void main(String args[])

throws FileNotFoundException {

Scanner diskScanner = new Scanner(new File(“rawData.txt”));

PrintStream diskWriter = new PrintStream(“cookedData.txt”);

double unitPrice, quantity, total;

unitPrice = diskScanner.nextDouble();

quantity = diskScanner.nextInt();

total = unitPrice * quantity;

diskWriter.println(total);

}

}

Page 43: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

import java.io.*;

class DemoBacaFile {

public static void main(String[] args) {

FileInputStream finput = null;

int data;

try {// membuka file

finput = new FileInputStream("d:/INPUT.TXT");

} catch (FileNotFoundException fnfe) {

System.out.println("File tidak ditemukan."); return; // keluar dari method

}

// membaca data dari dalam file dan menampilkan console

try {

while ((data = finput.read()) != -1) {

// ketika ditampilkan, data dikonversi ke tipe char

System.out.print((char) data);

}

} catch (IOException ioe) {

System.out.println(ioe.getMessage());

return;

}

// menutup file

try {

finput.close();

} catch (IOException ioe) {}

}

}

Page 44: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

import java.io.*;

class DemoTulisFile {

public static void main(String[] args) {

FileOutputStream foutput = null;

String data = "Baris pertama \nBaris kedua \nBaris ketiga";

// membuka file

try {

foutput = new FileOutputStream("d:/OUTPUT.TXT");

} catch (FileNotFoundException fnfe) {

System.out.println("File tidak dapat terbentuk.");

return; // keluar dari method

}

// menulis data ke dalam file

try {

for (int i=0; i<data.length(); i++) {

// data akan dikonversi per karakter

foutput.write((int) data.charAt(i));

}

} catch (IOException ioe) {

System.out.println(ioe.getMessage());

return;

}

// menutup file

try {

foutput.close();

} catch (IOException ioe) {}

}

}

Page 45: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

import java.io.*;

class DemoSalinFile {

public static void main(String[] args) {

FileInputStream finput = null;

FileOutputStream foutput = null;

int data;

// membuka file input

try {

finput = new FileInputStream("d:/FILE1.TXT");

} catch (FileNotFoundException fnfe) {

System.out.println("File input tidak ditemukan");

return; // keluar dari method

}

// membuka file output

try {

foutput = new FileOutputStream("d:/FILE2.TXT");

} catch (FileNotFoundException fnfe) {

System.out.println("File output tidak dapat terbentuk");

return; // keluar dari method

}

Page 46: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

// membaca data dari file input

// dan memasukkannya ke dalam file output

try {

while ((data = finput.read()) != -1) {

foutput.write(data);

}

} catch (IOException ioe) {

System.out.println(ioe.getMessage());

return;

}

try {

finput.close();

foutput.close();

} catch (IOException ioe) {}

}

}

Page 47: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Latihan kasus 1

1. Buatlah program untuk menyimpan data Nama dan Nomor Telepon pada sebuah file (“contact.txt”)

2. Buatlah program untuk membaca dan menampilkan isi file tersebut (“contact.txt”)

3. Buatlah program untuk mencari data nomor telepon seseorang berdasarkan input nama yang diberikan pengguna

Page 48: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Latihan Kasus 2

• Aplikasi Contact (Nama, Nomor HP)

• Buat sebuah program dengan menggunakan menu, dg menu sbb: (1) Input Data (2) Urut Berdasar Nama (3) Lihat Data (4) Cari (9) Selesai

• Nama dan nilai bisa diinput kapan saja, dan otomatis menambahkan pada posisi terakhir dari file.

Page 49: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Latihan Kasus 3

• Buat sebuah program untuk input data nama, nilai1, nilai2, nilai3, nilai4 untuk N mahasiswa, disimpan di file dataNilai.txt

• Buat sebuah program untuk membaca file dataNilai.txt, menghitung nilai rata-rata, kemudian menuliskan pada file nilaiAkhir.txt dengan terurut dari nilai tertinggi

Page 50: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

Tugas Bonus

• Mengerjakan pilihan Kasus 1, 2 atau 3.

• Laporan (kasus, source code, screenshot hasil, isi file)

• Source Code program (.java), file-file

• Di-zip dalam folder: PD-C-Bonus-NIM

• Deadline: 25 Desember 2014

• Send to email

Page 51: Objek Stream, Akses File & Exception Handling filePEMROGRAMAN DASAR Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya Objek Stream, Akses File & Exception Handling

AMAZING PEOPLE DON’T LOOK FOR JOBS. JOBS FIND THEM!