Pemrograman Jaringan 2010 Pertemuan 3:
Pemrograman I/O File Husni
[email protected] husni.trunojoyo.ac.id komputasi.wordpress.com
Class String
Class String
String: Contoh-contoh ● ● ● ● ●
●
"Welcome". toLowerCase() : string baru, welcome. "Welcome". toUpperCase() : string baru, WELCOME. " Welcome". trim(): string baru, Welcome. "Welcome". replace('e', 'A') : string baru, WAlcomA. "Welcome". replaceFirst("e", "A") : string baru, WAlcome. "Welcome". replaceAll("e", "A") : string baru, WAlcomA.
String: Contoh-contoh ● ● ● ● ● ●
"Welcome to Java".indexOf('W') : 0. "Welcome to Java".indexOf('o') : 4. "Welcome to Java".indexOf('o', 5) : 9. Welcome to Java".indexOf("come") : 3. "Welcome to Java".indexOf("Java", 5) : 11. "Welcome to Java".indexOf("java", 5) : -1.
Contoh: StringProcessingDemo ● ● ● ● ● ●
"Welcome to Java".lastIndexOf('W') : 0. "Welcome to Java".lastIndexOf('o') : 9. "Welcome to Java".lastIndexOf('o', 5) : 4. "Welcome to Java".lastIndexOf("come") : 3. "Welcome to Java".lastIndexOf("Java", 5) : -1. "Welcome to Java".lastIndexOf("java", 5) : -1.
Contoh: StringProcessingDemo
Argumen Command-Line •
Compile & Eksekusi program berikut!
java Calculator 10 + 14
Class File •
•
•
Class File dimaksudkan untuk menyediakan suatu abstraksi yang berurusan dengan banyak kompleksitas machine-dependent dari nama path dan file dalam suatu bentuk machineindependent. Class File mengandung metode untuk mendapatkan properti file dan untuk me-rename, men-delete file. Class File tidak mengandung metode untuk membaca dan menulis isi file.
Contoh: TestFileClass
Text I/O: PrintWriter §
§
§
§
Obyek File mengenkapsulasi properti dari suatu file atau path. Tetapi tidak memiliki metode untuk membaca/ menulis data dari/ke suatu file. Untuk mengerjakan I/O, perlu dibuat obyek menggunakan class I/O Java yang tepat. Obyek tersebut harus berisi metode untuk membaca/menulis data dari/ke file. Class java.io.PrintWriter dapat digunakan untuk menulis data ke file teks. Buat obyek PrintWriter untuk file teks: PrintWriter output = new PrintWriter(filename);
§
Jalankan metode print, println dan printf pada obyek PrintWriter untuk menulis data ke file.
Class PrintWriter
Contoh: WriteData
Text I/O: Scanner §
§
Class java.util.Scanner digunakan untuk membaca nilai strings dan primitive dari console. Scanner memecah inputnya ke dalam token-token yang diakhiri dengan karakter whitespace. Untuk membaca dari keyboard, buat suatu Scanner bagi System.in: Scanner input = new Scanner(System.in);
§
Bagaimana membaca dari file? Buat Scanner untuk suatu file: Scanner input = new Scanner(new File(filename));
Class Scanner
Contoh: ScannerDemo (console)
Contoh: ReadData
Penanganan I/O di Java
Text I/O vs. Binary I/O
I/O teks memerlukan encoding dan decoding (a) sedangkan I/O biner (b)
Class I/O Biner
InputStream & OutputStream
InputStream & OutputStream
Class IOException •
•
Hampir semua class I/O men-throw java.io.IOException Deklasikan java.io.IOException untuk dithrow dalam metode atau menempatkan kode dalam blok try-catch
DataInputStream & DataOutputStream ●
●
●
●
DataInputStream membaca byte dari stream dan mengubahnya ke dalam nilai tipe primitif yang tepat atau string DataOutputStream mengkonversi nilai tipe primitif atau string ke dalam byte dan mengeluarkan byte tersebut ke stream. DataInputStream meng-extends FilterInputStream dan meng-implements interface DataInput DataOutputStream meng-extends FilterOutputStream dan meng-implements interface DataOutput.
Class DataInputStream
Class DataOutputStream
Contoh: TestDataStream
Class InputStream
Class OutputStream
Apa yang dihasilkan program ini?
I/O Obyek ●
●
●
DataInputStream /DataOutputStream memungkinkan kita mengerjakan I/O terhadap nilai tipe primitif dan string ObjectInputStream /ObjectOutputStream memungkinkan kita mengerjakan I/O terhadap obyek, selain untuk nilai tipe primitif dan string Karena ObjectInputStream /ObjectOutputStream mengandung semua fungsi dari DataInputStream /DataOutputStream, kita dapat mengganti DataInputStream /DataOutputStream dengan ObjectInputStream /ObjectOutputStream.
I/O Obyek ●
●
●
●
●
ObjectInputStream meng-extends InputStream dan meng-implements ObjectInput dan ObjectStreamConstants. ObjectInput merupakan subinterface dari DataInput. ObjectStreamConstants mengandung konstanta untuk mendukung ObjectInputStream/ObjectOutputStream. ObjectOutputStream meng-extends OutputStream dan meng-implements ObjectOutput dan ObjectStreamConstants ObjectOutput adalah subinterface dari DataOutput
Class ObjectInputStream
Class ObjectOutputStream
Contoh: TestObjectOutputStream
Contoh: TestObjectInputStream
Tugas Kelompok ● ●
● ● ●
Buat program menggunakan I/O Obyek Program dapat menambahkan, mengedit dan menghapus data obyek. Data obyek berisi NIM, Nama, No.HP dan Email Program boleh berbasis Teks atau GUI Waktu 1 minggu. Dikumpulkan hardcopy berisi: Source code (setiap baris kode harus diberikan komentar di atasnya) dan 3 contoh output!