• Tidak ada hasil yang ditemukan

Dasar Teori

Dalam dokumen 7003f modul praktikum java (Halaman 31-44)

Konstruktor dapat juga mempunyai beberapa parameter. Biasanya parameter-parameter tersebut digunakan untuk mengeset insial dari objek

C. Dasar Teori

B.

Tujuan

Pada akhir pembahasan, diharapkan mahasiswa mempunyai kompetensi dalam :

Membuat superclass dan subclass sendiri

Menjelaskan mengenai konsep pewarisan sifat objek

C. Dasar Teori

Java mengijinkan kita untuk mendefinisikan suatu kelas yang bersifat generik. Selanjutnya, kelas tersebut dapat diturunkan lagi menjadi kelas baru dengan sifat yang lebih spesifik. Dalam terminology Java, kelas induk yang diturunkan disebut dengan superclass. Adapun kelas baru hasil turunan disebut dengan subclass.

Format

class nama-subclass extends nama-superclass { //badan kelas

}

D. Latihan

Cara membuat kelas induk dan kelas turunan. Pada latihan ini, Anda akan membuat kelas induk dengan nama Induk dan class turunannya bernama Child .

Percobaan 1

Membuat kelas turunan (Child) dari kelas sebelumnya (Induk) class Induk { int i, j; void showInduk() { System.out.println("i = " + i + " dan j = " + j); } }

class Child extends Induk { int k; void showChild() { System.out.println("k = " + k); } void sum() { System.out.println("i + j + k = " + (i + j + k)); } }

STIMATA

Pemrograman Java

32

public class Main {

public static void main(String args[]) { Induk superOb = new Induk();

Child subOb = new Child();

System.out.println("Data di SuperClass"); superOb.i = 10; superOb.showInduk(); System.out.println(); System.out.println("Data di SubClass"); subOb.i = 7; subOb.showInduk(); subOb.showChild(); System.out.println(); subOb.sum(); } }

Hasil Runing Program diatas adalah sebagai berikut: Data di SuperClass i = 10 dan j = 0 Data di SubClass i = 7 dan j = 0 k = 0 i + j + k = 7

E. TUGAS

1. Apa yang anda ketahui tentang kelas induk dan kelas turunan, dan apapula perbedaan diantara keduanya.

2. Dari hasil running program induk.java diatas, untuk data induk muncul i = 10 dan j = 0, sedangkan untuk data kelas child muncul i = 7 dan j = 0 serta k =0. Mengapa demikian, jelaskan alasan Anda.

3. Ubah data j dan k yang masing-masing bernilai 0 menjadi j = 9 dan k = 11, kemudian catat berapa nilai i+j+k?

STIMATA

Pemrograman Java

33

Modul 8 : Input dan Output

A. Latar Belakang

Dasar Teori I/O yang disampaikan secara teoritis dalam sesi kuliah (tatap muka) dikelas mengakibatkan mahasiswa memahami secara abstrak sebatas jangkauan pikirannya. Diperlukan aktivitas yang dapat merangsang pemahaman berdasar pengalaman dengan cara mempraktekkan dalam program yang diharapkan mampu menguatkan pemahaman teoritis diperkuiahan

Dalam kegiatan ini mahasiswa mempraktekkan membuat program yang berisikan beberapa kelas, yaitu BufferedReader, InputStreamReader, System.in, dan try {}

B. Tujuan

Setelah melakukan kegiatan ini, mahasiswa diharapkan mempunyai kompetensi dalam 1. mengenal dasar-dasar I/O

2. melakukan Input 3. menampilkan Output 4. dasar-dasar Baca/Tulis File 5. Kelas File

6. membuat program yang bisa digunakan untuk menuliskan kalimat

C. Dasar Teori

Proses input dan output (I/O) adalah hal yang paling sering dijumpai pada sebagian besar program yang membutuhkan data-data eksternal. Java menydiakan terhadap proses I/O dengan menghadirkan paket java.io.*

Stream

Program java melakukan proses I/O melalui stream. Stream adalah sebuah abstraksi yang dapat memberikan atau mendapatkan informasi. Stream dapat menghubungkan dengan perlatan fisik yang terdapat dalam siste I/O Java, seperti keyboard, file, layar console dan yang lainnya.

Kelas-kelas dalam stream

Nama Kelas Keterangan

BufferedInputStream Stream input yang telah ter-buffer BufferedOutputStream Stream output yang telah ter-buffer

ByteArrayInputStream Stream input yang membaca dari array byte ByteArrayOutputStream Stream output yang menulis ke array byte

DataInputStream Stream input yang berisi method-method untuk membaca tipe data standar terdapat dalam java DataOutputStream Stream output yang berisi method-method untuk

membaca tipe data standar terdapat dalam java FileInputStream Stream input yang membaca dari sebuah file FileOutputStream Stream output yang menulis ke sebuah file FilterInputStream Mengimplementasikan inputstream

FilterOutputStream Mengimplementasikan Outputstream

InputStream Kelas abstrak yang menjelaskan stream input OutputStream Kelas abstrak yang menjelaskan stream output PipedInputStream Penyalur input

PipedOutputStream Penyalur Output

STIMATA

Pemrograman Java

34

Kelas-kelas stream karakter

Nama Kelas Keterangan

BufferedReader Stream karakter input yang telah ter-buffer BufferedWriter Stream Karakter output yang telah ter-buffer CharArrayReader Stream input yang membaca dari array karakter CharArrayWriter Stream output yang menulis ke array karakter FileReader Stream input yang membaca dari sebuah file FileWriter Stream output yang menulis ke sebuah file FilterWriter Reader yang ter-filter

FilterReader Writer yang ter-filter

InputStreamReader Stream input yang menerjemahkan byte ke karakter LineNumberReader Line input yang menghitung jumlah baris

OuputStreamWriter Stream input yan menterjemahkan karakter ke byte PipedReader Penyalur Input

PipedWriter Penyalur Output

PrintWriter Stream output yang berisi method println() dan print() Reader Kelas abstrak yang menjelaskan stream karakter input StringReader Stream input yang membaca dari sebuah string StringWriter Stream output yang menulis ke sebuah string

Writer Stream output

Perintah Try {} catch {}

perintah try { ... }, adalah perintah yang ingin dijalankan pada situasi yang “mungkin” tidak berhasil atau perintah yang akan dilakukan apabila kesalahan ditangkap..

Parameter pada catch, yaitu IOException e adalah jenis kesalahan yang ingin Anda tangkap. Dalam hal ini Anda ingin menangkap adanya kesalahan IO, yaitu kesalahan yang bertipe IOException. Jika tidak ada kesalahan IO yang ditemukan, maka bagian ini akan dilewatkan (tidak dijalankan).  try { ... } catch (IOException e) { ... }

Membaca Input data Karakter Percobaan 1 import java.io.*; /** * @author Irul */ class DemoKarakter {

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+"\'"); }

STIMATA

Pemrograman Java

35

Membaca Input data String Percobaan 2 import java.io.*; /** * @author Irul */ class DemoInput {

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("Hello "+nama + ", sudahkan Anda paham Java?"); }

}

Membaca Input data Numerik Percobaan 3 import java.io.*; /** * @author Irul */ class DemoNumerik {

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);

temp = br.readLine(); try{

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); }

}

Membaca dan Menulis File Percobaan 4 import java.io.*; /** * @author Irul */ class BacaFile {

public static void main(String [] args) { FileInputStream finput = null;

int data; //Membuka file try {

finput = new FileInputStream("g:/data.txt"); }catch (FileNotFoundException fnfe){

STIMATA

Pemrograman Java

36

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

}

//Membaca data dari dalam file try{

while ((data = finput.read())!= -1) { //konversi data ke type char

System.out.println((char) data); }

}catch (IOException e){

System.out.println(e.getMessage()); return; } //Menutup File try { finput.close();

}catch (IOException e){} }

}

D. Praktek

 Progam berikut ini, membangun sebuah program aplikasi yang dapat digunakan untuk menuliskan kalimat dengan menggunakan class-class di java.io.

Ketik kode berikut ini dan simpan dengan nama baca.java, compile dan kemudian jalankan.

import java.io.*;

public class baca //StringReader {

public static void main (String[] args) {

System.out.println("Ketik Kalimat, Kemudian tekan Tombol 'Enter.'"); String string = "";

InputStreamReader input = new InputStreamReader(System.in); BufferedReader reader = new BufferedReader(input);

// membaca iputan dari user try

{

string = reader.readLine(); }

catch(Exception e){}

System.out.println("Tulisan Anda: " + string);

// menunggu diketik kata “ENTER” atau ditekan tombol ENTER untuk keluar System.out.println("Tekan/Ketik 'Enter' untuk keluar");

try {

string = reader.readLine(); }

catch(Exception e){

System.out.println ("Ada kesalahan!!!");} }

}

STIMATA

Pemrograman Java

37

Modul 9 : Kelas File

A. Latar Belakang

Dasar Teori kelas File yang disampaikan secara teoritis dalam sesi kuliah (tatap muka) dikelas mengakibatkan mahasiswa memahami secara abstrak sebatas jangkauan pikirannya. Diperlukan aktivitas yang dapat merangsang pemahaman berdasar pengalaman dengan cara mempraktekkan dalam program yang diharapkan mampu menguatkan pemahaman teoritis diperkuiahan.

B. Tujuan

Setelah melakukan kegiatan ini, mahasiswa diharapkan mempunyai kompetensi dalam Membaca file

Menyimpan file

C. Dasar Teori

Menulis Teks

Untuk membaca sebuah file, Anda dapat menggunakan class FileInputStream. Berikut ini adalah salah satu constructor dari class tersebut :

FileInputStream(String filename).

Constructor tersebut membuat sebuah koneksi terhadap file dimana nama dari file tersebut ditunjukkan sebagai sebuah argument. Exception berupa FileNotFoundException akan muncul jika file tidak ditemukan atau tidak dapat dibuka dan kemudian dibaca.

Setelah membuat sebuah input stream, Anda kemudian dapat menggunakannya untuk membaca sebuah file dengan menggunakan method read. Method read menghasilkan sebuah nilai integer, dan akan menunjukkan nilai 1 jika telah mencapai batas akhir file.

Berikut ini diberikan aplikasinya untuk membaca sebuah file  Menyimpan Fille

Untuk menuliskan sebuah file, Anda dapat menggunakan class FileOutputStream. Berikut ini salah satu constructor yang dapat Anda gunakan.

FileOutputStream(String filename)

Constructor tersebut menyediakan jalur output stream terhadap sebuah file yang akan ditulis. Sebuah Exception berupa FileNotFoundException akan muncul jika file yang dimaksud tidak dapat dibuka untuk ditulis.

Jika output stream telah dibuat, Anda dapat menggunakannya untuk menulis file yang dituju penggunakan method write. Method tersebut menggunakan penandaan sebagai berikut : void write(int b)

Parameter b mereferensikan data yang akan dituliskan pada file sesuai dengan hasil output stream.

STIMATA Pemrograman Java

38

/** * @author Irul */ import java.io.*; class TulisFile {

public static void main(String args[]) throws IOException { System.out.println("Nama File apa yang akan Anda tulis?"); String filename;

BufferedReader br = new BufferedReader(new

InputStreamReader(System.in)); filename = br.readLine();

System.out.println("Masukkan Nama File " + filename + "..." ); System.out.println("Ketik E$ to end.");

FileOutputStream fos = null; try {

fos = new FileOutputStream(filename); }catch (FileNotFoundException ex) {

System.out.println("File tidak dapat dibuka ."); }

try {

boolean done = false; int data; do { data = br.read(); if ((char)data == 'E') { data = br.read(); if ((char)data == '$') { done = true; } else { fos.write('E'); fos.write(data); } } else { fos.write(data); } } while (!done);

} catch (IOException ex) {

System.out.println("Baca file bermasalah"); } } }  Membaca Fille import java.io.*; class ReadFile {

public static void main(String args[]) throws IOException { System.out.println("File Apa yang akan dibuka?");

String filename;

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

filename = br.readLine();

System.out.println("Baca File " + filename + "..."); FileInputStream fis = null;

STIMATA

Pemrograman Java

39

try {

fis = new FileInputStream(filename); }catch (FileNotFoundException ex) { System.out.println("File not found."); } try { char data; int temp; do { temp = fis.read(); data = (char) temp; if (temp != -1) {

System.out.print(data); }

} while (temp != -1); }

catch (IOException ex) {

System.out.println("Baca file bermasalah"); }

} }

FileReader dan FileWriter import java.io.*;

class CopyFile {

void copy(String input, String output) { FileReader reader;

FileWriter writer; int data;

try {

reader = new FileReader(input); writer = new FileWriter(output);

while ((data = reader.read()) != -1) { writer.write(data); } reader.close(); writer.close(); }

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

}

public static void main(String args[]) { String inputFile = args[0];

String outputFile = args[1]; CopyFile cf = new CopyFile(); cf.copy(inputFile, outputFile); }

STIMATA

Pemrograman Java

40

BufferedReader dan BufferedWriter

 Program menggunakan teknik dari perangkaian stream dimana clas FileReader dan FileWriter didekorasi dengan class BufferedReader dan BufferedWriter, berurutan.

 BufferedReader ;

 BufferedWriter ; import java.io.*; class CopyFile {

void copy(String input, String output) { BufferedReader reader;

BufferedWriter writer; String data;

try {

reader = new BufferedReader(new FileReader(input)); writer = new BufferedWriter(new FileWriter(output)); while ((data = reader.readLine()) != null) {

writer.write(data, 0, data.length()); }

reader.close(); writer.close(); }

catch (IOException ie) { //ie.printStackTrace();

System.out.println(“bufferd bermasalah”)

} }

public static void main(String args[]) { String inputFile = args[0];

String outputFile = args[1]; CopyFile cf = new CopyFile(); cf.copy(inputFile, outputFile); }

}

D. Latihan

Buatlah sebuah program yang memuat dua String sebagai argument, sumber dan nama file tujuan. Kemudian, baca file sumber dan tuliskan isi dari file tersebut terhadap file tujuan, seluruh spasi yang ada („ „) diubah menjadi underscore („ _ „).

STIMATA

Pemrograman Java

41

Modul 10 :Pembuatan GUI - 1

A. Latar Belakang

Dalam module sebelumnya, Anda telah mempelajari bagaimana untuk mendapatkan input user dan memanipulasi file-file menggunakan stream.

Kini Anda akan mempelajari lebih banyak tentang cara-cara pendesainan user-interface dalam program-program GUI.

B. Tujuan

Pada akhir pembahasan diharapkan, mahasiswa mempunyai kompetensi pada pembuatan aplikasi visual dengan;

 Menggunakan AWT  Menggunakan Swing  JButton  JFrame  JLabel  JTextField

C. Dasar Teori

Dalam Java, terdapat dua pake yang dapat digunakan untuk mengembangkan program-program GUI, yaitu: AWT dan Swing. AWT (Abstract Window Toolkit) yang berisi library dan digunakan untuk menyederhanakan implementasi user-interface. Swing adalah bentuk implementasi selanjutnnya yang menambahkan komponen-komponen dalam system GUI.

D. Latihan

Percobaan 1

Pada percobaan satu ini diimplementasikan komponen-komponen (Jbutton, Jframe, Jlabel, dan JTexFeild ) swing pada sebuah program operasi matematika sederha.

package irul; import java.awt.event.*; import javax.swing.*; /** * @author Irul */

class DemoTeks implements ActionListener{ public JLabel label1,label2,label3;

public JTextField textField1, textField2, textField3; public JButton button1, button2, button3,button4;

public DemoTeks() {

label1 = new JLabel("Nilai A"); label1.setLocation(10, 10);

label1.setSize(label1.getPreferredSize());

STIMATA

Pemrograman Java

42

textField1 = new JTextField(20); textField1.setLocation(10,25);

textField1.setSize(textField1.getPreferredSize()); label2 = new JLabel("Nilai B");

label2.setLocation(10, 45);

label2.setSize(label2.getPreferredSize());

textField2 = new JTextField(20); textField2.setLocation(10,60);

textField2.setSize(textField2.getPreferredSize());

label3 = new JLabel("Hasil Perhitungan A dan B "); label3.setLocation(10, 90);

label3.setSize(label3.getPreferredSize());

textField3 = new JTextField(20); textField3.setLocation(10,105); textField3.setSize(textField3.getPreferredSize()); textField3.setEditable(false); button1=new JButton("Tambah"); button1.setLocation(245,10); button1.setSize(button1.getPreferredSize()); button1.addActionListener(this); button1.setMnemonic('T'); button2=new JButton("Kurang"); button2.setLocation(245,40); button2.setSize(button2.getPreferredSize()); button2.addActionListener(this); button2.setMnemonic('u'); button3=new JButton("Kali"); button3.setLocation(245,70); button3.setSize(button3.getPreferredSize()); button3.addActionListener(this); button3.setMnemonic('K'); button4=new JButton("Bagi"); button4.setLocation(245,100); button4.setSize(button4.getPreferredSize()); button4.addActionListener(this); button4.setMnemonic('B'); }

public void createAndShowGUI(){

JFrame.setDefaultLookAndFeelDecorated(true); JFrame frame = new JFrame("Kalkulator by Irul"); frame.setLayout(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(label1); frame.getContentPane().add(textField1); frame.getContentPane().add(label2); frame.getContentPane().add(textField2); frame.getContentPane().add(label3); frame.getContentPane().add(textField3);

STIMATA Pemrograman Java

43

frame.getContentPane().add(button1); frame.getContentPane().add(button2); frame.getContentPane().add(button3); frame.getContentPane().add(button4); frame.setBounds(0, 0, 350, 200); frame.setLocationRelativeTo(null); frame.setVisible(true); }

public void actionPerformed(ActionEvent event) { double a=0.0, b= 0.0, c=0.0;

try{

a = Double.parseDouble(textField1.getText()); b = Double.parseDouble(textField2.getText()); }catch (NumberFormatException e){

e.printStackTrace();

//System.out.println(“abjad tidak diterima”); }

JButton jbt = (JButton) event.getSource(); if(jbt == button1){ c = a + b; }else if (jbt == button2){ c = a - b; }else if (jbt == button3){ c = a * b; }else { c = a / b; } textField3.setText(new String().valueOf(c)); }

public static void main(String[] args) {

javax.swing.SwingUtilities.invokeLater(new Runnable(){ public void run(){

DemoTeks app = new DemoTeks(); app.createAndShowGUI();

} }); } }

Hasil Running program DemoTeks diatas adalah seperti ditunjukkan pada gambar 9.1 berikut ini.

STIMATA

Pemrograman Java

44

Dalam dokumen 7003f modul praktikum java (Halaman 31-44)

Dokumen terkait