Anda di halaman 1dari 24

Pengenalan Pemrograman 2

Versi 2.0
Aplikasi berbasis teks
Topik

Command-Line Arguments dan System Properties
Pembacaan dari Standard Input
Penanganan File
Membaca dari File
Menulis ke File
Command-Line Arguments
JAVA mengijinkan user untuk memasukkan data dari
command-line
Tujuan dari deklarasi String args[] sebagai sebuah parameter
pada method utama
Ketika menggunakan perintah java, menentukan data setelah
nama class menandakan bahwa Anda memasukkan data lewat
parameter args
Contohnya :
java Calculate 1 2
args[0] mempunyai nilai 1
args[1] mempunyai nilai 2
System Properties
Java juga memperkenankan Anda memanipulasi system
properties dari baris perintah

System property
Sangat mirip dengan variabel environment
Tetapi bukan merupakan platform-dependent

Property
Memetakan antara nama property ke nilai yang
berhubungan dengannya
Direpresentasikan dalam Java dengan class
Properties
System Properties
Class System
Menyediakan method untuk menentukan system properties
yang ada, method getProperties yang mengembalikan object
Properties
Juga menyediakan method getProperty yang berlebih
System Properties
Memasukkan sebuah property baru
Menggunakan pilihan -D dengan perintah java
java -D<name>=value

Contohnya :
java -Duser.home=philippines

Menampilkan list dari system properties
Menggunakan method getProperties
System.getProperties().list(System.out);

Membaca dari Standart Input : Stream

Dapat menggunakan stream untuk membaca dari standard input

Stream
Keadaan suatu file atau device yang
membolehkan rangkaian item untuk dibaca atau
ditulis
Terhubung ke device physical
Terdapat dua jenis stream yang umum :
Character Stream
Byte Stream
Membaca dari Standart Input :
Stream

Character Streams
Untuk karakter Unicode
Byte Stream
Untuk data biner
Contoh predefine
System.in (keyboard secara default)
System.out (console secara default)
Standart Input : BufferedReader
Membaca karakter dari keyboard

Menggunakan byte stream System.in yang dibelokkan
ke dalam object BufferedReader

BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));

Menggunakan method read dari object BufferedReader
ch = (int) br.read();
//membaca method yang mengembalikan sebuah integer
Standart Input : Contoh BufferedReader
1 import java.io.*;
2 class FavoriteCharacter {
3 public static void main(String args[])
4 throws IOException {
5 System.out.println("Hi, what's your favorite
6 character?");
7 char favChar;
8 BufferedReader br = new BufferedReader(new
9 InputStreamReader(System.in));
10 favChar = (char) br.read();
11 System.out.println(favChar +
12 " is a good choice!");
13 }
14 }
Standart Input : BufferedReader


Membaca keseluruhan baris
Menggunakan byte stream System.in yang
dibelokkan ke dalam object BufferedReader
BufferedReader br = new
BufferedReader(new
InputStreamReader(System.in));

Menggunakan method readLine
str = br.readLine();
Standart Input : Contoh BufferedReader
1.import java.io.*;
2.class GreetUser {
3. public static void main(String args[])
4. throws IOException {
5. System.out.println("Hi, what's your name?");
6. String name;
7. BufferedReader br = new BufferedReader(new
8. InputStreamReader(System.in));
9. name = br.readLine();
10. System.out.println("Nice to meet you, " +
11. name + "! :)");
12. }
13.}
Standard Input : Review

Jangan lupa untuk mengimpor package java.io
seperti yang ditunjukkan di bawah ini :
import java.io.*;
Membaca dari stream mungkin menyebabkan
terjadinya exception
Menangani exception ini dengan menggunakan
pernyataan try-catch
Atau menanganinya dengan mengindikasikan
exception dalam klausa throw dari method
Membaca dari sebuah File
Dapat menggunakan class FileInputStream
Salah satu constructor dari class ini
FileInputStream(String filename)
Membuat koneksi ke file yang sebenarnya dimana
filename ditentukan sebagai sebuah argument
Sebuah FileNotFoundException diberikan ketika file
tidak ada atau tidak dapat dibuka untuk dibaca

Menggunakan method read
Mengembalikan sebuah integer yang
merepresentasikan pembacaan data
Mengembalikan sebuah nilai -1 ketika akhir dari file
telah dicapai
Membaca dari sebuah File
1 import java.io.*;
2 class ReadFile {
3 public static void main(String args[])
4 throws IOException {
5 System.out.println("What is the name of the
6 file to read from?");
7 String filename;
8 BufferedReader br = new BufferedReader(new
9 InputStreamReader(System.in));
10 filename = br.readLine();
11 System.out.println("Now reading from " +
12 filename + "...");
13 //bersambung...
Membaca dari sebuah File
14 FileInputStream fis = null;
15 try {
16 fis = new FileInputStream(filename);
17 } catch (FileNotFoundException ex) {
18 System.out.println("File not found.");
19 }
20 try {
21 char data;
22 int temp;
23 //bersambung...
Membaca dari sebuah File
24 do {
25 temp = fis.read();
26 data = (char) temp;
27 if (temp != -1) {
28 System.out.print(data);
29 }
30 } while (temp != -1);
31 } catch (IOException ex) {
32 System.out.println("Problem in reading from
33 the file.");
34 }
35 }
36 }
Menulis ke sebuah File
Dapat menggunakan class FileOutputStream
Salah satu konstruktor dari class ini
FileOutputStream(String filename)
Menghubungkan sebuah output stream ke sebuah file
untuk ditulis
Sebuah FileNotFoundException diberikan ketika file
tidak dapat dibuka untuk ditulis

Menggunakan method write
void write(int b)
dimana,
b menunjuk pada data yang dituliskan ke file

Menulis ke sebuah File
1 import java.io.*;
2 class WriteFile {
3 public static void main(String args[])
4 throws IOException {
5 System.out.println("What is the name of the
6 file to be written to?");
7 String filename;
8 BufferedReader br = new BufferedReader(new
9 InputStreamReader(System.in));
10 filename = br.readLine();
11 System.out.println("Enter data to write to " +
12 filename + "...");
13 //bersambung...
Menulis ke sebuah File
14 System.out.println("Type q$ to end.");
15 FileOutputStream fos = null;
16 try {
17 fos = new FileOutputStream(filename);
18 } catch (FileNotFoundException ex) {
19 System.out.println("File cannot be opened
20 for writing.");
21 }
22 try {
23 boolean done = false;
24 int data;
25 //bersambung...
Menulis ke sebuah File
26 do {
27 data = br.read();
28 if ((char)data == 'q') {
29 data = br.read();
30 if ((char)data == '$') {
31 done = true;
32 } else {
33 fos.write('q');
34 fos.write(data);
35 }
36 } else {
37 fos.write(data);
38 //bersambung...
Menulis ke sebuah File
39. }
40. } while (!done);
41. } catch (IOException ex) {
42. System.out.println("Problem in reading from
43. the file.");
44. }
45. }
46.}
Ringkasan
Command-Line Arguments dan System Properties
Mendapatkan masukan dari sebuah baris perintah
(command line)
Memanipulasi system properties
java -D<name>=<value>

Membaca dari Standard Input
Menggunakan System.in
Menggunakan BufferedReader
Menggunakan method read
Ringkasan
Penanganan File
Membaca dari sebuah File
Menggunakan FileInputStream
Menggunakan method read
Menulis ke sebuah File
Menggunakan FileOutputStream
Menggunakan method write