Tampilkan postingan dengan label JAVA. Tampilkan semua postingan
Tampilkan postingan dengan label JAVA. Tampilkan semua postingan
Rabu, 14 Maret 2012

Event Handling

Event Handling
Event berguna untuk menangani interaksi user dengan program, misalnya user memilih
sebuah menu dalam aplikasi MIDlet.Untuk menangani event perlu
mengimplementasikan interface CommandListener dan atau ItemListener.
CommandListener berfungsi untuk menangani jika user memilih Command tertentu
sedangkan ItemListener berfungsi untuk menangani jika user mengubah nilai seperti
misalnya mengubah pilihan pada ChoiceGroup. 

Delegation Event Model

Delegasi event model menguraikan bagaimana program Anda dapat merespon interaksi dari user. Untuk memahami model, pertama-tama mari kita pelajari melalui tiga komponen utamanya.

1. Event Source
Event source mengacu pada komponen GUI yang meng-generate event. Sebagai contoh, jika user menekan tombol, event source dalam hal ini adalah tombol.

2. Event Listener/Handler
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 object event diciptakan. Object 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 mengenai salah satu dari class ini.

setiap event object mempunyai  type event yang berbdea beda. sehingga kita harus menentukan type event sebelum menentukan jenis interface listener. karena setiap type event mempunyai jenis interface listener yang bersesuaian.
Dalam event handling pada Java ada empat bagian penting yang harus diketahui:
  • Event Object merupakan object yang mendiskripsikan sebuah event yang di-trigger oleh event source.
  • Event Handler merupakan method yang menerima event object dan melakukan respond yang sesuai dengan event object tersebut.
  • Event Listener merupakan interface yang akan meng-handle event yang terjadi. setiap type event mempunyai interface yang bersesuaian. Listener tersebut harus diimplementasikan oleh class yang akan meng-handle event
  • Event Source merupakan pembangkit / trigger sebuah event objects
setiap event object mempunyai  type event yang berbdea beda. sehingga kita harus menentukan type event sebelum menentukan jenis interface listener. karena setiap type event mempunyai jenis interface listener yang bersesuaian.
berikut ini type type event yang ada di Java :
  • ActionEvent
  • ItemEvent
  • WindowEvent
  • ContainerEvent
  • ComponentEvent
  • FocusEvent
  • TextEvent
  • KeyEvent
  • MouseEvent
  • AdjustmentEvent
Berikut ini Interface Listener :
  • ActionListener
  • ItemListener
  • WindowListener
  • ContainerListener
  • ComponentListener
  • FocusListener
  • TextListener
  • KeyListener
  • MouseListener
  • MouseMotionListener
  • AdjustmentListener
Berdasarkan tulisan diatas, setiap type event mempunyai satu jenis interface listener kecuali MouseEvent yang mempunyai dua jenis interface listener. dan setiap interface mempunyai method abstract yang harus di override class yang meng-impletasikan interface. event listener dan event handler terdapat pada package java.awt.event
Bagaimana event handling dalam Java? ada tiga langkah penting dalam event handling
  1. Deklarasikan class yang akan meng-handle event yang terjadi dan tuliskan code yang menyatakan class tersebut meng-implement interface listener
  2. Event source mendaftarkan sebuah listener melalui method add<type>Listener
  3. Kode yang mengimplementasikan method pada interface listener pada class yang akan meng-handle event. [ Override ]

GUI dalam Java

Pengertian GUI
Antar muka komputer yang berbasiskan grafis. Adalah citra grafis yang ditampilkan di layar komputer yang memungkinkan untuk mengakses aplikasi software dengan memakai menu dropdown, dialog box, radio button, check box, panel, tabs, toolbar, icon shortcuts dan tool lain. Atau bisa juga dikatakan jenis antarmuka pengguna yang memungkinkan orang untuk berinteraksi dengan program dengan lebih banyak dengan gambar daripada perintah teks. Sebuah GUI grafis menawarkan ikon, dan visual indikator, sebagai lawan dari antarmuka berbasis teks. Contoh perangkat yang menggunakan GUI:  perangkat genggam seperti MP3 Players, Portable Media Player dan perangkat Permainan. GUI ini dimulai pertama kali dengan X Windows hasil penelitian di MIT, kemudian Macintosh, Sun View, lalu disusul oleh Microsoft Windows, dan sistem operasi lainnya.
JAVA
Java merupakan suatu teknologi perangkat lunak yang di dalamnya mencakup bahasa pemrograman. Selain itu Java juga merupakan suatu platform yang memiliki virtual machine dan library yang diperlukan untuk menulis dan menjalankan suatu program. Java sendiri pada awalnya dikembangkan pada lingkungan komputer oleh Sun Microsystem Inc. dengan tujuan untuk menghasilkan suatu bahasa komputer sederhana tanpa harus terikat pada arsitektur tertentu. Maka tak heran jika dalam perkembangannya Java dapat dijalankan pada berbagai platform sistem operasi seperti Linux, Windows maupun Unix.
Karena keunikan dan kehandalannya, Java pun semakin banyak dikenal. Pada tahun 1995 Sun meluncurkan sebuah browser berbasis Java dengan julukan Hot Java, kemudian diikuti Netscape yang memutuskan untuk membuat browser dengan dilengkapi bahasa Java di dalamnya. Setelahnya ikut bergabung pula berbagai pengembang ternama diantaranya IBM dan Microsoft. Kemudian pada tahun berikutnya, Sun Microsystem Inc. merilis Java Software Development Kit (JDK) pertamanya, JDK 1.1. Dan terus berkembang dari pemrograman applet yang berjalan di browser menjadi pemrograman kelas dunia yang banyak digunakan untuk pengembangan aneka ragam aplikasi. Tidak hanya pada komputer, Java juga dapat berjalan pada bermacam-macam perangkat, mulai telepon genggam sampai aplikasi berskala enterprise pada komputer server.
JAVA GUI
Dapat disimpulkan bahwa Java GUI adalah pemrograman dengan bahasa Java yang dibuat menggunakan aplikasi yang berbasiskan GUI. Tujuannya adalah menambahkan komponen-komponen yang tidak bisa dibuat dalam basis text. Komponen-konponen tersebut bisa berupa tombol, gambar, dll. Tujuannya  adalah untuk memudahkan user menggunakan program yang dibuat tersebut.
Ini nih jelasnya :
1. AWT (Abstrak Window Toolkit)

AWT (Abstract Window Toolkit) ini adalah GUI Toolkit pertama pada bahasa pemrograman Java, sayang-nya AWT ini sangat-sangat kekurangan komponen yang biasa digunakan untuk membangun sebuah aplikasiv desktop secara lengkap (komponen tabel saja tidak ada) Terlepas dari kurang-nya komponen GUI yang terdapat pada AWT (Abstract Window Toolkit), aplikasi yang dibangun menggunakan AWT (Abstract Window Toolkit) akan tampak seperti aplikasi native. Maksudnya yaitu, jika aplikasi yang dibangun menggunakan AWT (Abstract Window Toolkit) ini dijalankan pada Sistem Operasi Windows. Maka aplikasi ini akan terlihat seperti aplikasi Windows pada umum-nya, dan begitu juga jika dijalankan pada Sistem Operasi Mac ataupun GNU/Linux. Kenapa ini bisa terjadi, karena AWT (Abstract Window Toolkit) ini benar-benar memanggil native subrutin.


 2. Swing

Inilah GUI Toolkit yang paling banyak digunakan oleh para progammer yang masih dalam tahap pembelajaran Pemrograman GUI di Java dibandingkan dengan GUI Toolkit yang lain.GUI Toolkit ini lebih banyaj dikenal dikarenakan dukungan tutorialnya yang cukup banyak bertebaran di Internet, dan juga merupakan standart dari Java yang mana kita tidak perlu melakukan penambahan library lagi kalau ingin menggunakan GUI Toolkit ini. Selain itu, terdapat 2 IDE besar yang menggunakan GUI Toolkit Java Swing yaitu NetBeans IDE(OpenSource) dan IntelliJ IDEA (mempunyai versi OpenSource dan Komersial).

Dibandingkan dengan pendahulu-nya yaitu AWT (Abstract Window Toolkit), Swing mempunyai lebih banyak komponen pendukung untuk membangun sebuah aplikasi yang lengkap untuk keperluan desktop. Selain didukung dengan banyak-nya komponen, Swing ini benar-benar murni 100 % ditulis dengan bahasa pemrograman Java tanpa adanya sebuah wrapper untuk memanggil rutin-rutin native codevia JNI (Java Native Interface). Seluruh komponen yang terdapat pada Swing, semuanya murni digambar sendiri menggunakan API (Application Programming Interface) 2D untuk memanggil rutin-rutin dasar penggambaran komponen-nya. Nah dengan model seperti ini, memungkinkan sekali aplikasi yang dibangun menggunakan Swing tampak sama persis di berbagai macam Sistem Operasi.

Selain itu, Swing juga mempunyai kemampuan untuk berganti-ganti tampilan menggunakan LAF (Look And Feel) atau themes .Sayang-nya, jika kita menginginkan tampilan GUI yang native (tampilan-nya sama seperti aplikasi-aplikasi lain pada sistem operasi target) Swing seperti-nya masih terasa kurang smooth terutama dukungan pada font rendering-nya.


3. SWT (Standart Widget Tollkit)

SWT (Standart Widget Toolkit) ini adalah sebuah GUI Toolkit yang dikeluaran oleh IBM sebagai alternatif dari AWT/Java Swing milik SUN Microsystem, yang membedakan antara SWT (Standart Widget Toolkit) dan AWT/Java Swing adalah SWT ini benar-benar mengakses native GUI library yang terdapat pada Sistem Operasi melalui JNI (Java Native Interface). Dengan model seperti ini, memungkinkan tampilan aplikasi yang dibangun menggunakan GUI Toolkit SWT menjadi sama persis dengan aplikasi native lain-nya. Kekurangan dari model pemanggilan native GUI library seperti ini adalah kita harus menyediakan library untuk tiap-tiap Sistem Operasi target aplikasi kita.


EXCEPTION

EXCEPTION

Adalah istilah yang diberikan oleh Java kepada kesalahan yang terjadi di dalam program, yang terjadi pada saat run-time. Beberapa kemungkinan error yang bias terjadi adalah:
1.Pemasukkan data karakter ketika meminta masukan berupa data bilangan
2.Terjadi pembagian dengan nol
3.Path atau lokasi file yang diberikan tidak sesuai.
4.Operasi untuk mengakses variabel array pada nomor indeks di luar batas

Terkait dengan persoalan manajemen exception, Jav` menyediakan metode untuk mengelola exception. Menangkap exception, dimaksud agar alur program dapat dikendalikan meskipun telah terjadi error
Blok try-catch digunakan untuk menangkap exception. Strukturnya:
Try
{
…instruksi yang dikerjakan secara normal…
}
Catch (Exception ex)
{
…instruksi yang dikerjakan jika terjadi error…
}



EXCEPTION
Contoh listing programnya:


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException; 3B

public class contoh{
public static void main(String[] args){


try{
 //Digunakan untuk menangkap exception.
InputStreamReader input = new InputStreamReader (System.in);
BufferedReader buf = new BufferedReader (input);

System.out.println(“Masukkan nama Anda!”);
String nama = buf.readLine();

;span class="code">System.out.println(“Masukkan tahun lahir Anda!”);

String strTahun = buf.readLine();
int tahun = Integer.parseInt(strTahun);
int umur = 2009 - tahun;


System.out.println(“Halo ”+nama+”, Umur Anda sekarang adalah “+umur+” tahun”);
}
catch (Exception ex){
System.out.println(“System ERROR”);
}
}
}

ENKRIPSI dan DESKRIPSI pada JAVA

Enkripsi adalah proses mengacak data sehingga tidak dapat dibaca oleh pihak lain. Pada kebanyakan proses enkripsi, kita harus menyertakan kunci sehingga data yang dienkripsi dapat didekripsikan kembali. Ilmu yang mempelajari teknik enkripsi disebut kriptografi. Gambaran sederhana tentang enkripsi, misalnya mengganti huruf a dengan n, b dengan m dan seterusnya. Enkripsi juga bisa disebut proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus. Keuntungan dari enkripsi adalah kode asli kita tidak dapat dibaca oleh orang lain. 
          Enkripsi telah digunakan untuk mengamankan komunikasi di berbagai negara, namun, hanya organisasi-organisasi tertentu dan individu yang memiliki kepentingan yang sangat mendesak akan kerahasiaan yang menggunakan enkripsi.

Enkripsi mempunyai beberapa macam metode yang dapat digunakan pada pemrograman web, seperti PHP, ASP, atau yang lainnya.Dan berikut metode metode nya :

1. Metode Enkripsi MD2
          Message-Digest algortihm 2 (MD2) adalah fungsi hash cryptographic yang dikembangkan oleh Ronald Rivest pada tahun 1989. Algoritma dioptimalkan untuk komputer 8-bit. MD2 yang ditetapkan dalam RFC 1319. Meskipun algoritma lainnya telah diusulkan sejak dulu, seperti MD4, MD5 dan SHA, bahkan sampai dengan 2004 [update] MD2 tetap digunakan dalam infrastruktur kunci publik sebagai bagian dari sertifikat yang dihasilkan dengan MD2 dan RSA.

2. Metode Enkripsi MD4
          Message-Digest algortihm 4(seri ke-4) yang dirancang oleh Profesor Ronald Rivest dari MIT pada tahun 1990. Panjangnya adalah 128 bit. MD4 juga digunakan untuk menghitung NT-hash ringkasan password pada Microsoft Windows NT, XP dan Vista.

3. Metode Enkripsi MD5
           MD5 adalah salah satu dari serangkaian algortima message digest yang didesain oleh Profesor Ronald Rivest dari MIT (Rivest, 1994). Saat kerja analitik menunjukkan bahwa pendahulu MD5 yaitu MD4 mulai tidak aman, MD5 kemudian didesain pada tahun 1991 sebagai pengganti dari MD4 (kelemahan MD4 ditemukan oleh Hans Dobbertin). Dalam kriptografi, MD5 (Message-Digest algortihm 5) ialah fungsi hash kriptografik yang digunakan secara luas dengan hash value 128-bit. Pada standart Internet (RFC 1321), MD5 telah dimanfaatkan secara bermacam-macam pada aplikasi keamanan, dan MD5 juga umum digunakan untuk melakukan pengujian integritas sebuah file.

4. Metode Enkripsi SHA
          SHA adalah serangkaian fungsi cryptographic hash yang dirancang oleh National Security Agency (NSA) dan diterbitkan oleh NIST sebagai US Federal Information Processing Standard.
SHA adalah Secure Hash Algoritma. Jenis-jenis SHA yaitu SHA-0, SHA-1, dan SHA-2.
Untuk SHA-2 menggunakan algoritma yang identik dengan ringkasan ukuran variabel yang terkenal sebagai SHA-224, SHA-256, SHA-384, dan SHA-512.

5. Metode Enkripsi RC4
          RC4 merupakan salah satu jenis stream cipher, yaitu memproses unit atau input data pada satu saat. Unit atau data pada umumnya sebuah byte atau bahkan kadang kadang bit (byte dalam hal RC4). Dengan cara ini enkripsi atau dekripsi dapat dilaksanakan pada panjang yang variabel. RC4 adalah penyandian stream cipher yang dibuat oleh Ron Riverst pada tahun 1987 untuk pengamanan RSA. Algoritmanya didasarkan pada permutasi acak.

6. Metode Enkripsi Base64
          Base64 adalah sistem untuk mewakili data mentah byte sebagai karakter ASCII.
Base64 menyediakan 6-bit encoding 8-bit ASCII karakter.
Base64 merupakan format yang dicetak menggunakan karakter, memungkinkan binari data yang akan dikirim dalam bentuk dan email, dan akan disimpan di database atau file.

Deskripsi :  proses penggunaan algoritma yang kompleks untuk mengkonversi pesan terenkripsi ( chipertext ) ke suatu pesan ( plaintext atau cleartext ).

Untuk paket yang mendefinisikan class-class untuk encrypt dan decrypt data , java mengimplementasikan  Java Cryptography Extension (JCE) di paket dan subpaket javax.crypto .

Contoh Enkripsi dan Deskripsi :
mport javax.swing.*;
import java.awt.*;
import java.io.*;
import java.awt.event.*;
public class Enkripsi extends JFrame{
static String teks=”";
private JLabel LabelPesan=new JLabel(“Pesan:”);
private static JTextField TeksImputan=new JTextField(40);
private JLabel LabelPergeseran=new JLabel(“Pergeseran”);
private static JTextField TeksPergeseran=new JTextField(“2″);
private JLabel LabelEnkripsi=new JLabel(“Hasil Enkripsi:”);
private static JTextField TeksHasilEnkripsi=new JTextField(40);
private JButton TombolEnkripsi=new JButton(“Enkripsi”);
private JButton TombolReset=new JButton(“Reset”);
private JPanel PanelPesan_Label=new JPanel();
private JPanel PanelTombol=new JPanel();
public Enkripsi(){ //mengatur GUI
PanelTombol.setLayout(new GridLayout(6,1,30,10));
PanelTombol.add(LabelPesan);
TeksImputan.setToolTipText(“Isi pesan yang akan dienkripsi di sini”);
PanelTombol.add(TeksImputan);
PanelTombol.add(LabelPergeseran);
TeksPergeseran.setToolTipText(“Masukkan pergeseran di sini”);
PanelTombol.add(TeksPergeseran);
PanelTombol.add(LabelEnkripsi);
TeksHasilEnkripsi.setToolTipText(“Anda tidak perlu mengisi bagian ini. Bagian ini akan terisi setelah Anda melakukan enkripsi.”);
PanelTombol.add(TeksHasilEnkripsi);
setLayout(new FlowLayout(FlowLayout.LEFT,10,10));
add(PanelTombol);
TombolEnkripsi.setToolTipText(“Klik untuk melakukan enkripsi pesan”);
PanelPesan_Label.add(TombolEnkripsi);
TombolReset.setToolTipText(“Klik untuk menghapus semua pesan”);
PanelPesan_Label.add(TombolReset);
setLayout(new FlowLayout(FlowLayout.CENTER));
add(PanelPesan_Label,BorderLayout.SOUTH);
TombolEnkripsi.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try
{
int pergeseran=Integer.valueOf(TeksPergeseran.getText());
if(pergeseran>0 && pergeseran0){
for(int i=0;i=48 && kode_ASCII=65 && kode_ASCII=97 && kode_ASCII=33 && kode_ASCII=58 && kode_ASCII=91 && kode_ASCII=123 && kode_ASCII<=126)
ArrayHuruf[i]=(char)((kode_ASCII-123+pergeseran)%4+123);
}
}
teks=String.valueOf(ArrayHuruf);
}
else{
JOptionPane.showMessageDialog(null,”Error!!\nMasukkan pesan yang akan dienkripsi dulu”,”ERROR”,JOptionPane.ERROR_MESSAGE);
}
return teks;
}
}

Stream IO

KONSEP DASAR

Stream adalah suatu abstraksi untuk data input dan output. Tidak peduli dari mana input berasal atau kemana output akan pergi.

Contoh :
   "System.out.println()" untuk menampilkan informasi ke layar.
   "System.err.println()" untuk mengirim pesan kesalhan ke layar.

Pada java ada banyak kelas yang berhubungan dengan stream. Namun secara prinsip ada 2 buah kelas yang menjadi dasar bagi keals yang lain yaitu :
   - kelas InputStream 
   - kelas OutputStream 


1.Stream Byte
Didefinisikan dengan menggunakan dua buah hirarki kelas, yakni InputStream dan OutputStream yang keduanya dideklarasikan sebagai kelas abstrak.
Kelas-kelas stream byte yang terdapat dalam paket java.io:


  • ·         BufferedInputStream
  • ·    BufferedOutputStream
  • ·    DataInputStream
  • ·    DataOutputStream
  • ·    FileInputStream
  • ·    FileOutputStream
  • ·    InputStream
  • ·    OutputStream
2.Stream Karakter
Berbasis pada dua buah kelas abstrak, yaitu Reader dan Writer.
Kelas-kelas stream karakter yang terdapat dalam p`ket java.io:

  • ·         BufferedReader
  • ·    BufferedWriter
  • ·    FileReader
  • ·    FileWriter
  • ·    InputStreamReader
  • ·    OutputStreamReader
  1. 3.Stream yang Telah Terdefinisi
      Semua program Java secara otomatis akan mengimpor paket java.lang. Paket ini mendefinisikan kelas System yang mendefinisikan variabel stream : in, out, dan err.
System.out mengacu pada Stream output standart, System.in mengacu pada Stream input standart, dan System.err mengacu pada stream error standart;  

Contoh Program Untuk Input Karakter :
import java.io.*;
class Program1
{
public static void main(String[] args) throws IOException
{
System.out.print(“Ketikkan sebuah karakter : “);
char a;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
a = (char) br.read();
System.out.println(“Karakter yang diketikan adalah \’” + a + “\’”);
}
}
Contoh program untuk input string
import java.io.*;
class Program2
{
public static void main(String[] args) throws IOException
{
System.out.print(“Ketikkan nama anda : “);
String nama;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
nama = br.readLine();
System.out.println(nama + “, anda sedang belajar input data”);
}
}

Contoh Program Untuk Input Bilangan Bulat :
import java.io.*;
class Program3
{
public static void main(String[] args) throws IOException
{
System.out.print(“Ketikan sebuah bilangan bulat : “);
String temp;
int bilangan = 0;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
// input data dianggap sebagai string
temp = br.readLine();
try
{
// konversi dari string ke integer
bilangan = Integer.parseInt(temp);
}
catch (NumberFormatException nfe)
{
System.out.println(“Data yang diketikan ” + “bukan bilangan bulat”);
System.exit(1);
}
System.out.println(“Bilangan yang diketikan ” + “adalah ” + bilangan);
}
}

Contoh program untuk input bilangan pecahan :
String temp;
double bilangan = 0;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
// input data dianggap sebagai string
temp = br.readLine();
try
{
// konversi dari string ke floating-point
bilangan = Double.parseDouble(temp);
}
catch (NumberFormatException nfe)
{
System.out.println(“Data yang diketikan bukan bilangan”);
System.exit(1);
}
System.out.println(“Bilangan yang diketikkan ” + “adalah ”*+ bilangan);
}
}

Pernyataan :
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
Dapat digantikan oleh pernyataan :
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 

Copyright by Alicia Lanina All Reserved