selamat datang kawan, di blogku yang sederhana ini semoga kalian suka dan bahagia.
RSS

Minggu, 11 Maret 2012

Pengenalan IO Stream pada Java

Program komputer bisa berguna jika ia bisa berinteraksi dengan dunia lain. Interaksi di sini maksudnya input/output atau I/O. Pada bab ini, kita akan melihat input output pada file dan koneksi jaringan (network). Pada Java, input/output pada file dan jaringan dilakukan berdasarkan aliran (stream), di mana semua objek dapat melakukan perintah I/O yang sama. Standar output (System.out) dan standar input (System.in) adalah contoh aliran.
Untuk bekerja dengan file dan jaringan, kita membutuhkan pengetahuan tentang pengecualian, yang telah dibahas sebelumnya. Banyak subrutin yang digunakan untuk bekerja dengan I/O melemparkan pengecualian yang wajib ditangani. Artinya subrutin tersebut harus dipanggil di dalam pernyataan try ... catch sehingga pengecualian yang terjadi bisa ditangani dengan baik.
Stream, Reader, dan Writer
Tanpa bisa berinteraksi dengan dunia lain, suatu program tidak ada gunanya. Interaksi suatu program dengan dunia lain sering disebut input/output atau I/O. Sejak dulu, salah satu tantangan terbesar untuk mendesain bahasa pemrograman baru adalah mempersiapkan fasilitas untuk melakukan input dan output. Komputer bisa terhubung dengan beragam jenis input dan output dari berbagai perangkat. Jika bahasa pemrograman harus dibuat secara khusus untuk setiap jenis perangkat, maka kompleksitasnya akan tak lagi bisa ditangani.
Salah satu kemajuan terbesar dalam sejarah pemrograman adalah adanya konsep (atau abstraksi) untuk memodelkan perangkat I/O. Dalam Java, abstraksi ini disebut dengan aliran (stream). Bagian ini akan memperkenalkan tentang aliran, akan tetapi tidak menjelaskan dengan komplit. Untuk lebih lengkapnya, silakan lihat dokumen resmi Java.
Ketika berhubungan dengan input/output, kita harus ingat bahwa ada dua kategori data secara umum : data yang dibuat oleh mesin, dan data yang bisa dibaca manusia. Data yang dibuat mesin ditulis dengan model yang sama dengan bagaimana data tersebut disimpan di dalam komputer, yaitu rangkaian nol dan satu. Data yang bisa dibaca manusia adalah data dalam bentuk rangkaian huruf. Ketika kita membaca suatu bilangan 3.13159, kita membacanya sebagai rangkaian huruf yang kita terjemahkan sebagai angka. Angka ini akan ditulis dalam komputer sebagai rangkaian bit yang kita tidak mengerti.
Untuk menghadapi kedua jenis data ini, Java memiliki dua kategori besar untuk aliran : aliran byte untuk data mesin (byte stream), dan aliran karakter (character stream) untuk data yang bisa dibaca manusia. Ada banyak kelas yang diturunkan dari kedua kategori ini.
Setiap objek yang mengeluarkan data ke aliran byte masuk sebagai kelas turunan dari kelas abstrak OutputStream. Objek yang membaca data dari aliran byte diturunkan dari kelas abstrak InputStream. Jika kita menulis angka ke suatu OutputStream, kita tidak akan bisa membaca data tersebut karena ditulis dalam bahasa mesin. Akan tetapi data tersebut bisa dibaca kembali oleh InputStream. Proses baca tulis data akan menjadi sangat efisien, karena tidak ada penerjemahan yang harus dilakukan : bit yang digunakan untuk menyimpan data di dalam memori komputer hanya dikopi dari dan ke aliran tersebut.

  • penerapan aplikasi 
copy file



read file
write file
file in class
favorite character


Read Comments
  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Event Handling Inner Class

Inner Class adalah suatu Class yang didefinisikan di dalam Class lain. Dengan kata lain, Inner Class adalah anggota (member) dari Class lain, sama halnya seperti variable dan method. Hal ini mengakibatkan instance dari Inner Class dapat mengakses /berbagi dengan instance dari outer Class-nya. Instance dari Inner Class dapat mengakses semua member dari outer Class-nya, bahkan yang private.
Listing Program :

 class MyOuter{
private int x = 7;
class MyInner {
public void seeOuter(){
System.out.println(“Outer x is ” + x);
}
}
}
Walaupun variabel x dari class MyOuter adalah private, MyInner tetap bisa mengaksesnya. Ini salah satu kelebihan dari Inner Class.
 1. Instantiasi Inner Class dari dalam code outer Class 
Perhatikan code berikut:
class MyOuter{
private int x = 7;
public void makeInner(){
MyInner in = new MyInner();
In.seeOuter();
}
class MyInner{
public void seeOuter(){
System.out.println(“Outer x is ” + x);
}
}
}
Code di atas memperlihatkan salah satu cara melakukan instantiasi Inner Class MyInner dari dalam code MyOuter. Ini bisa berjalan jika instance dari MyOuter sudah tercipta, lalu instance tersebut menginvoke method-nya, yaitu makeInner().
 
Delegation Event Model
Delegasi event model menguraikan bagaimana program Anda dapat merespon interaksi
dari user. Untuk memahami model, mari kita pelajari pertama-tama dengan tiga
komponen utamanya.
1. Event Source
The event source mengacu pada komponen GUI yang men-generate event. Sebagai
contoh, jika user menekan tombol, event source dalam hal ini adalah tombol.
2. Event Listener/Handler
The event listener menerima berita dari event-event dan proses-proses interaksi user.
Ketika tombol ditekan, listener akan mengendalikan dengan menampilkan sebuah
informasi yang berguna untuk user.
3. Event Object
Ketika sebuah event terjadi (misal, ketika user berinteraksi dengan komponen GUI),
sebuah objek event diciptakan. Objek berisi semua informasi yang perlu tentang
event yang telah terjadi. Informasi meliputi tipe dari event yang telah terjadi, seperti
ketika mouse telah di-klik. Ada beberapa class event untuk kategori yang berbeda
dari user action. Sebuah event object mempunyai tipe data tentang salah satu dari
class ini.


Registrasi Listeners
Event source mendaftarkan sebuah listener melalui method add<Type>Listener.
void add<Type>Listener(<Type>Listener listenerObj)
<Type> tergantung pada tipe dari event source. Dapat berupa Key, Mouse, Focus,
Component, Action dan lainnya.
Beberapa listeners dapat diregistrasi dengan satu event source untuk menerima
pemberitahuan event.
Listener yang telah teregistrasi dapat juga tidak diregistrasikan lagi menggunakan
remove<Type>Listener methods.
void remove<Type>Listener(<Type>Listener listenerObj)


Class-Class Event
Sebuah event object mempunyai sebuah class event sebagai tipe data acuannya. Akar
dari hirarki class event adalah class EventObject, yang dapat ditemukan pada paket
java.util. Immediate subclass dari class EventObject adalah class AWTEvent. Class
AWTEvent didefinisikan pada paket java.awt. Itu merupakan akar dari semua AWTbased
events. Berikut ini beberapa dari class-class AWT event.

Event Listeners
Event listeners adalah class yang mengimplementasikan interfaces <Type>Listener.
Tabel di bawah menunjukkan beberapa listener interfaces yang biasanya digunakan.

Method ActionListener
Interface ActionListener hanya terdiri dari satu method.
ActionListener Method
public void actionPerformed(ActionEvent e)
Mengendalikan ActionEvent e yang terjadi.


Method MouseListener
public void mouseClicked(MouseEvent e)
Dipanggil pada saat tombol mouse di click (seperti tekan dan lepas).
public void mouseEntered(MouseEvent e)
Dipanggil pada saat kursor mouse memasuki area komponen.
public void mouseExited(MouseEvent e)
Dipanggil pada saat kursor mouse meninggalkan area komponen.
public void mousePressed(MouseEvent e)
Dipanggil pada saat tombol mouse ditekan di atas komponen
public void mouseReleased(MouseEvent e)
Dipanggil pada saat tombol mouse dilepas di atas komponen.

Method-Method MouseMotionListener
MouseMotionListener mempunyai dua method untuk diimplementasikan.
MouseListener Methods
public void mouseDragged(MouseEvent e)
Digunakan untuk memantau pergerakan mouse yang melintasi objek pada saat tombol
mouse ditekan. Tindakan ini persis sama dengan tindakan pada saat memindahkan
sebuah window.
public void mouseMoved(MouseEvent e)
Digunakan untuk memantau pergerakan mouse pada saat mouse melintasi area suatu
objek.

http://igedeputraaria.blogspot.com/2012/03/inner-class-pada-java.html

Read Comments
  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

GUI pada JAVA

  • GUI (Graphical User Interface), memungkinkan user untuk berinteraksi dengan komputer secara lebih baik.
  • Pengguna berinteraksi dengan berbagai elemen grafis,diantaranya: button, dialog box, menu,
    dsb.
  • Sejak 1994 Sun Microsystem berupaya untuk membuat JAVA memiliki perangkat bergaya
    desktop dengan ToolkitJAVA yang dikenal sebagai AWT (Abstract Windowing Toolkit)
  • Tahun 1997, muncul JFC (Java Foundation Class) untuk kepentingan pembuatan aplikasi
    Window yang merupakan pengembangan dari AWT.
  • JFC mempunyai kode swing yang terdapat pada package yang disediakan pada JAVA SDK
    versi 1.2 ke atas (JAVA 2)
  • JAVA menyediakan dua graphical library. 
          1. AWT (Abstract Windows Toolkit)
          2. Swing
  • Contoh: import java.awt.* ;
    Import java.awt.event.* ;
    Import javax.swing.* ; 
       Graphical Object
  •  Container (tempat), obyek yang dapat menampung komponen grafis dan tempat yang lebih kecil
    Contoh: frames, panels
  • Component, obyek grafis yang berfungsi untuk menampilkan data, menerima masukan, atau
    menunjukkan suatu kondisi.
    Contoh: buttons, labels, text fields
  • Event, obyek yang mempresentasikan suatu kejadian.
    Contoh: gerakan mouse, penekanan tombol.
  • Listener, suatu obyek yang menunggu suatu kejadian khusus dan akan bereaksi (melakukan
    sesuatu) jika kejadian tersebut terjadi 
Graphical Object



Container : Frame
import javax.swing.*;
class FramePertamaku extends JFrame {
public FramePertamaku() {
setTitle( "Frame Pertama );
setSize( 300 , 200 );
}
}
public class Frameku {
public static void main (String args[ ] ) {
FramePertamaku coba = new FramePertamaku();
coba.show();
}
}

Beberapa method java.awt.Frame
  •  void setResizable (boolean b) menentukan apakah user dapat merubah ukuran frame
  • void setTitle(String s)
    mengatur teks pada title bar
  • void setIconImage(Image image)
    gambar yang digunakan sebagai icon dari frame
Component : Text
import java.awt.*;
public class WindowText extends Frame {
public void paint(Graphics g) {
setSize(300, 200);
setTitle(getClass().getName());
Font f = new Font( "Monospaced , Font.BOLD, 16);
g.setFont(f);
g.drawString( "Hello ... , 10 , 100);
g.drawString( "Salam kenal dari Frame ... , 30 ,120);
}
public static void main(String[ ] args) {
WindowText coba = new WindowText();
coba.setSize(500, 300);
coba.setLocation(200, 100);
coba.setTitle("Window Text );
coba.show();
}
}

Beberapa method java.awt.Font :
  • Font (String name, int style, int size)
    mengatur jenis font, format font (PLAIN,BOLD,ITALIC) dan ukuran font.
  • String getFontName() mengetahui nama font face
  • String getFamily() mengetahui jenis keluarga font
 Component : Label
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class KomponenLabel {
public static void main(String[ ] args) {
JFrame frame = new JFrame("Membuat Label");
JLabel label = new JLabel("Pemrograman Berorientasi Obyek");
frame.getContentPane().add(label);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
}
}

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class KomponenLabelBerformat {
public static void main(String[] args) {
JFrame frame = new JFrame("Membuat Label");
JLabel label = new JLabel("Pemrograman Berorientasi Obyek");
label.setForeground(Color.yellow);
label.setBackground(Color.blue);
label.setOpaque(true);
label.setFont(new Font("SansSerif", Font.BOLD, 14));
frame.getContentPane().add(label);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

Component : TextField
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TeksField {
public static void main(String[ ] args) {
JFrame frame = new JFrame("Membuat TeksField");
JLabel label = new JLabel("Nama :");
JTextField textField = new JTextField(20);
frame.getContentPane().setLayout(new FlowLayout());
frame.getContentPane().add(label);
frame.getContentPane().add(textField);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

Component
Beberapa obyek ContentPanel, yaitu :
  • JPasswordField, JTextArea, JButton, JRadioButton,
  • JCheckBox, JComboBox.
Event - Listener.
Jika sebuah CLASS ingin bereaksi atas aksi yang dilakukan oleh pemakai(user) melalui
keyboard, mouse atau lainnya, maka Java menjawab dengan sistem yang disebut sebagai Event
Handling.
Program atau Interface ini disebut sebagai EventListener
ActionListener
Bereaksi atas perubahan komponen , seperti klik mouse atau tombol.
AdjustmentListener
Bereaksi atas perubahaan komponen untuk penyesuaian, misalnnya scrollbar yang digerakkan.
FocusListener
Event yang disebabkan oleh focus pada field, misalnya kursor berada pada field tersebut.
ItemListener
Bereaksi pada perubahan checkbox, radiobutton dan lainnya.
KeyListener

Bereaksi atas keyboard, misalnya penekanan tombol ALT Ctrl dan lainnya.






WindowsListener
Bereaksi atas perubahaan pada window, misalnya diperbesar, diperkecil, digeser atau ditutup.
MouseMotionListener
Bereaksi atas pergerakan mouse, misalnya bila melewati area komponen tertentu.
  • Listeners terdaftar pada java.awt.event.*
  •  Setelah komponen dideklarasikan, maka listener dapat ditambahkan pada komponen tersebut,misalnya pada Button: Jbutton b1=new Jbutton("Tombol"); b1.addActionListener( )
  • Listener harus ditembahkan lebih dahulu ke dalam komponen, sebelum komponen tersebut
         diletakkan pada Frame/ Content Pane.
Contoh form action listener dengan dua tombol:

ketika tombol 1 ditekan maka text pada form akan berubah menjadi "tombol 1 ditekan "


www2.ukdw.ac.id/kuliah/info/IN1253/DasarPerancanganGUI.pdf

Read Comments
  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS