• Tidak ada hasil yang ditemukan

PEMROGRAMAN JAVA LANJUT

N/A
N/A
Protected

Academic year: 2018

Membagikan "PEMROGRAMAN JAVA LANJUT"

Copied!
12
0
0

Teks penuh

(1)

PRAKTIKUM II

JAVA IO

1.

Tujuan

Siswa dapat memahami penggunaan kelas-kelas untuk IO (Input Output) pada pemrograman Java.

2.

Praktikum

2.1.

Penunjang

Java IO

IO merupakan singkatan dari Input Output. Input melibatkan masukan data dari peralatan input, sedangkan output akan menampilkan data kepada pengguna. Java mendukung mekanisme input output di dalam package java.io dan java.nio. Kelas-kelas Java IO berdasarkan suatu hirarki kelas. Kelas dasar memiliki fungsi umum. Sedangkan kelas-kelas di bawahnya atau subkelas menambahkan fungsi yang lebih khusus.

Java.io mempunyai 2 kategori utama yaitu kelas untuk menangani sistem file dan kelas untuk membaca dan menulis stream data. Kategori yang kedua terbagi lagi menjadi kelas untuk menangani byte stream dan kelas untuk menangani character stream.

File

Kelas File merepresentasikan suatu file ataupun direktori dalam sistem file melalui pathname.

– Pathname

• Unix: /usr/java/bin/javac

(2)

– Path representation

• UNIX: /bin:/usr/bin:/usr/local/bin

• Windows: c:\bin;c:\java\bin

Field, constructor dan method kelas File dapat dilihat pada dokumen Java API pada bagian java.io.File

InputStream

InputStream merupakan abstrak kelas untuk membaca byte stream. InputStream memiliki banyak subkelas yang memiliki fungsi yang lebih spesifik. Penjelasan lanjut, lihat dokumen Java API pada bagian java.io.InputStream.

OutputStream

OutputStream merupakan abstrak kelas untuk menulis byte stream. OutputStream memiliki banyak subkelas yang memiliki fungsi yang lebih spesifik. Penjelasan lanjut, lihat dokumen Java API pada bagian

java.io.OutputStream.

Reader

Reader merupakan abstrak kelas untuk membaca character stream. Reader memiliki banyak subkelas yang memiliki fungsi yang lebih spesifik. Penjelasan lanjut, lihat dokumen Java API pada bagian java.io.Reader.

Writer

Writer merupakan abstrak kelas untuk menulis character stream. Writer

memiliki banyak subkelas yang memiliki fungsi yang lebih spesifik. Penjelasan lanjut, lihat dokumen Java API pada bagian java.io.Writer.

Serialization

(3)

menyediakan interface Serializable. Kelas yang mensupportnya ObjectInputStream dan ObjectOutputStream.

2.2.

Latihan

1. Kerjakan contoh program di bawah ini, perhatikan hasilnya kemudian pahami dan berikan penjelasan dari program tersebut.

//Aplikasi untuk mengecek separator pada OS yang digunakan import java.io.*;

public class FileS {

public static void main(String[] arg) { System.out.println(File.separator+" - "+ File.separatorChar+" - "+ File.pathSeparator+" - "+ File.pathSeparatorChar); }

}

2. Kerjakan contoh program di bawah ini, perhatikan hasilnya kemudian pahami dan berikan penjelasan dari program tersebut.

//Aplikasi untuk membuat satu file teks dan menulisnya import java.io.*;

public class FileTest1 {

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

PrintWriter output = new PrintWriter(new File("test1.txt")); output.println("Hello World in one line!");

(4)

} }

3. Kerjakan contoh program di bawah ini, perhatikan hasilnya kemudian pahami dan berikan penjelasan dari program tersebut.

//Aplikasi untuk mencoba method pada kelas File import java.io.*;

import java.util.*;

public class FileMethod {

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

String filename;

Scanner input = new Scanner(System.in);

System.out.print("Masukkan nama file atau direktori"); System.out.print(" atau tekan <Enter> untuk keluar:"); filename = input.nextLine();

while(!filename.equals("")) //menguji bukan <ENTER> {

File fileDir = new File(filename); if(!fileDir.exists())

{

System.out.println("Nama file tidak ada"); break;

}

System.out.print(filename+ " adalah suatu "); if(fileDir.isFile())

(5)

else

System.out.println("direktori.");

System.out.print("File/direktori ini "); if(!fileDir.canRead())

System.out.print("tidak ");

System.out.println("dapat dibaca.");

System.out.print("File/direktori ini "); if(!fileDir.canWrite())

System.out.print("tidak ");

System.out.println("dapat ditulis.");

if(fileDir.isDirectory()) {

System.out.println("Isi:"); String[] fileList = fileDir.list(); //tampilkan isi direktori

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

System.out.println(" "+ fileList[i]); }

else {

System.out.print("Ukuran file: ");

System.out.println(fileDir.length()+ " bytes."); }

System.out.print("Masukkan nama file atau direktori"); System.out.print(" atau tekan <Enter> untuk keluar:"); filename = input.nextLine();

(6)

input.close(); }

}

Uji coba program di atas dengan memasukkan nama file atau nama direktori.

4. Kerjakan contoh program di bawah ini, perhatikan hasilnya kemudian pahami dan berikan penjelasan dari program tersebut.

//Aplikasi untuk mengcopy file import java.io.*;

import java.util.*;

public class Copy {

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

//cek kedua nama file sudah diinput if(args.length < 2)

{

System.out.println("Anda harus memasukkan dua nama file."); System.out.println("Syntax:");

System.out.println(" java Copy <sumber> <tujuan>"); return;

}

Scanner sumber = new Scanner(new File(args[0])); PrintWriter tujuan = new PrintWriter(new File(args[1])); String input;

(7)

input = sumber.nextLine(); tujuan.println(input); }

sumber.close(); tujuan.close(); }

}

5. Kerjakan contoh program di bawah ini, perhatikan hasilnya kemudian pahami dan berikan penjelasan dari program tersebut.

//Aplikasi penggunaan OutputStream import java.io.*;

public class SysOut{

public static void main(String[] args) throws Exception { OutputStream stdout = System.out;

stdout.write(104); // h stdout.write(101); // e stdout.write(108); // l stdout.write(108); // l stdout.write(111); // o stdout.write(10); // \n stdout.flush();

} }

6. Kerjakan contoh program di bawah ini, perhatikan hasilnya kemudian pahami dan berikan penjelasan dari program tersebut.

(8)

import java.io.*;

public class SysIn{

public static void main(String[] args){ byte []b = new byte[10];

InputStream stdin = System.in; try {

int len = stdin.read(b); for (int i=0;i<len;i++)

System.out.write(b[i]); System.out.flush();

} catch ( IOException e) { e.printStackTrace(); }

} }

7. Kerjakan contoh program di bawah ini, perhatikan hasilnya kemudian pahami dan berikan penjelasan dari program tersebut.

//Aplikasi penggunaan InputStream dan method available import java.io.*;

public class SysInAvailable{

public static void main(String[] args){

InputStream stdin = System.in; try {

(9)

for (int i=0;i<len;i++) System.out.write(b[i]); System.out.flush();

} catch ( IOException e) { e.printStackTrace(); }

} }

8. Kerjakan contoh program di bawah ini, perhatikan hasilnya kemudian pahami dan berikan penjelasan dari program tersebut.

//Aplikasi menggunakan InputStreamReader import java.io.*;

public class InputReader{

public static void main(String[] args){

InputStreamReader is = new InputStreamReader(System.in); try {

char c;

for (int i=0;i<10;i++) { c = (char) is.read(); System.out.write(c); }

System.out.flush(); } catch ( IOException e) { e.printStackTrace(); }

(10)

9. Kerjakan contoh program di bawah ini, perhatikan hasilnya kemudian pahami dan berikan penjelasan dari program tersebut.

//Aplikasi penggunaan serializable import java.io.*;

public class Serialise {

public static void main(String[] args)

throws IOException, ClassNotFoundException {

ObjectOutputStream outStream = new

ObjectOutputStream(new FileOutputStream("personil.txt")); Personnel[] staff = {

new Personnel(123456, "Smith", "John"), new Personnel(234567, "Jones", "Sally Ann"), new Personnel(999999, "Black", "James Paul") };

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

outStream.writeObject(staff[i]); outStream.close();

ObjectInputStream inStream = new ObjectInputStream(new FileInputStream("personil.txt"));

int staffCount = 0;

try{

do{

Personnel person = (Personnel)inStream.readObject();

(11)

System.out.println("\nStaff member "+ staffCount);

System.out.println("Payroll number: "+ person.getPayNum());

System.out.println("Surname: "+ person.getSurname());

System.out.println("First name: "+ person.getFirstNames());

}while(true); }

catch(EOFException e){

System.out.println("\n\n***End of file***\n"); inStream.close();

} }

}

class Personnel implements Serializable {

private long payrollNum; private String surname; private String firstNames;

public Personnel(long payNum, String sName, String fName) {

(12)

public long getPayNum() {

return payrollNum; }

public String getSurname() {

return surname; }

public String getFirstNames() {

return firstNames; }

public void setSurname(String sName) {

surname = sName; }

}

3.

Tugas

Referensi

Dokumen terkait

pengalaman yang ada dalam diri individu dan merupakan hasil dari pengalaman berbeda-beda yang diterima individu selama aktif pada suatu organisasi.Individu berkomitmen pada

004 Jumlah Lembaga LJK yang berkerjasama dengan Pusat Pengelola Dana Bantuan Pembiayaan.

Indra Tedjakumala, diketahui bahwa jumlah gigi minimum tergantung dari sudut jumlah gigi minimum tergantung dari sudut tegangan [.. tegangan [ 

Ruangan yang cukup baik untuk digunakan sebagai tempat pengasapan ikan adalah ruangan yang mempunyai suhu dan kelembaban yang rendah.. Suhu dan kelembaban yang rendah

Demi pengembangan ilmu pengetahuan, dengan ini menyetujui untuk memberikan ijin kepada pihak Program Studi Sistem Informasi Fakultas Teknik Universitas Muria Kudus

Crash program merupakan cara melakukan percepatan dengan perkiraan biaya yang dibutuhkan untuk mereduksi waktu pekerjaan pada lintasan kritis.Perhitungan dimulai

Faktor meteorologis yang ada dalam penelitian, termasuk jumlah kendaraan dengan suhu, waktu dengan suhu, waktu dengan jumlah kendaraan dan kebisingan,waktu