Dragonica Emoticon Sparkly Eye
14 Mar 2012 0 komentar

Komunikasi data Antar Class di java

Komunikasi data merupakan hal yang sangat penting dalam dunia programing. dengan ini memungkinkan kita untuk bisa mengambil dan mengeset data pada sebuah class dari class yang lainnya. hehehe jadi kaya dosenku aja . udah lah yang jelas biasanya komunikasi data ini ditandai dengan adanya methos setter dan getter.
Ah cukup deh basa basinya. nanti malah pada bingung lagi. udah tak kasih conto aja yah.
Berawal dari pertanyaan seorang temen, (Weleh weleh koq malah kayak bacain dongeng hehe) saya mencoba membuat sebuah aplikasi sederhana yang menunjukan komunikasi antar class.

Yup pertama kita buat aja sebuah project sederhana dengan Netbeans (pake IDE lain juga boleh namanya juga contoh). saya membuat sebuah program sederhana untuk mengambil data dari tabel yang berada JDialog kemudian hasilnya ditampilkan di textfield di JFrame.

Buat 1 JFrame dan 1 JDialog sebagai interface
Buat tampilan JFrame Kayak Gini:

Dan buat tampilan JDialog Kyak gini:

Kemudian buat sebuah Class Mahasiswa kemudian ketikan kode berikut:

package net.fiqri.datademo;

public class MahasiswaOBJ {
private String nama;
private String nmp;
private String alamat;
private String jurusan;

public MahasiswaOBJ() {
}


public MahasiswaOBJ(String nama, String nmp, String alamat, String jurusan) {
this.nama = nama;
this.nmp = nmp;
this.alamat = alamat;
this.jurusan = jurusan;
}

public String getAlamat() {
return alamat;
}

public void setAlamat(String alamat) {
this.alamat = alamat;
}

public String getJurusan() {
return jurusan;
}

public void setJurusan(String jurusan) {
this.jurusan = jurusan;
}

public String getNama() {
return nama;
}

public void setNama(String nama) {
this.nama = nama;
}

Setelah itu Tambahkan event pada tombol yang berfungsi untuk memunculkan JDialog:


Kode:
DetailView dt=new DetailView(this, true);
dt.setVisible(true);
MahasiswaOBJ mho=dt.getTableData();
if(mho!=null){
jTextField1.setText(mho.getNama());
jTextField2.setText(mho.getNmp());
jTextField3.setText(mho.getAlamat());
jTextField4.setText(mho.getJurusan());
}else{
JOptionPane.showMessageDialog(null, "Data Mahasiswa Kosong/Tidak ada");
}

Kemudian Beralih ke JDialog, kemudian Tambahkan event mouseClicked pada tabel:
if(evt.getClickCount()==2){
dataTable=new MahasiswaOBJ();
TableModel data=jTable1.getModel();
dataTable.setNama(data.getValueAt(jTable1.getSelectedRow(), 0).toString());
dataTable.setNmp(data.getValueAt(jTable1.getSelectedRow(), 1).toString());
dataTable.setAlamat(data.getValueAt(jTable1.getSelectedRow(), 2).toString());
dataTable.setJurusan(data.getValueAt(jTable1.getSelectedRow(), 3).toString());
this.setVisible(false);
}

Beres deh, sekarang Coba Run
3 komentar

Enkripsi XOR, Pengenalan

Masih ingat operasi logika dalam pelajaran ”Logika Matematika dan Teori Himpunan” atau ”Sistem Digital”? Di sana tentu ada operator logika bernama OR, AND, NOR, NAND, dan XOR. Nah, ternyata operasi XOR sering digunakan dalam mengekripsi suatu data. Hasilnya? Data baru yang dihasilkan memang agak susah ditebak…tetapi ada yang bilang kalau sudah diketahui data aslinya maka key dari enkripsi ini dengan mudah diketahui.

Secara singkat, operasi XOR akan mengembalikan nilai 1 jika jumlah operand bernilai satu ganjil, jika tidak maka akan mengembalikan hasil 0. Berikut ini contohnya:
1 XOR 1 = 0
1 XOR 0 = 1
0 XOR 1 = 1
0 XOR 0 = 0

Bagaimana jika 1 XOR 1 XOR 1? Hasilnya 1. Benarkah?
Dalam kriptografi, pembuatan chiper (teks hasil enkripsi) melalui operasi XOR merupakan suatu algoritma enskripsi yang relatif sederhana. Teknik ini beroperasi sesuai dengan prinsip:
A XOR 0 = A,
A XOR A = 0,
(B XOR A) XOR A = B XOR 0 = B,
Dengan logika ini, suatu string teks dapat diekripsi dengan menerapkan operasi XOR berbasis bit (binary digit) terhadap setiap karakter menggunakan key tertentu. Bagaimana mendekripsi outputnya untuk mendapatkan plaintext kembali? Dengan menerapkan operasi XOR terhadap chiper.
Sebagai contoh, string “Wiki” jika ditulis dalam format ASCII 8 bit menjadi 01010111 01101001 01101011 01101001 dapat dienkripsi dengan suatu key misalnya 11110011 sebagai berikut:
01010111 01101001 01101011 01101001
11110011 11110011 11110011 11110011
——————————————– (XOR)
10100100 10011010 10011000 10011010 (Hasil)
Dan sebaliknya, untuk dekripsi adalah:
0 komentar

Event Handling GUI pada Java

Dalam event handling pada Java ada empat bagian penting yang harus diketahui:
  1. Event Object merupakan object yang mendiskripsikan sebuah event yang di-trigger oleh event source.
  2. Event Handler merupakan method yang menerima event object dan melakukan respond yang sesuai dengan event object tersebut.
  3. 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
  4. 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 :
  1. ActionEvent
  2. ItemEvent
  3. WindowEvent
  4. ContainerEvent
  5. ComponentEvent
  6. FocusEvent
  7. TextEvent
  8. KeyEvent
  9. MouseEvent
  10. AdjustmentEvent
Berikut ini Interface Listener
  1. ActionListener
  2. ItemListener
  3. WindowListener
  4. ContainerListener
  5. ComponentListener
  6. FocusListener
  7. TextListener
  8. KeyListener
  9. MouseListener
  10. MouseMotionListener
  11. 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 ]
Contoh 1
MouseEventsDemo.java
package mouseeventsdemo;
import java.awt.*;
import java.awt.event.*;
/**
*
* @author Ren
*/
public class MouseEventsDemo extends Frame implements MouseListener, MouseMotionListener {  // Langkah 1
TextField tf;
public MouseEventsDemo( String title){
super(title);
tf = new TextField(60);
addMouseListener(this); // Langkah 2
}
public void launchFrame() {
/* Menambah komponen pada frame */
add(tf, BorderLayout.SOUTH);
setSize(300,300);
setVisible(true);
}
public void mouseClicked(MouseEvent me) { // Langkah 3
String msg = “Mouse clicked.”;
tf.setText(msg);
}
public void mouseEntered(MouseEvent me) {
String msg = “Mouse entered component.”;
tf.setText(msg);
}
public void mouseExited(MouseEvent me) {
String msg = “Mouse exited component.”;
tf.setText(msg);
}
public void mousePressed(MouseEvent me) {
String msg = “Mouse pressed.”;
tf.setText(msg);
}
public void mouseReleased(MouseEvent me) {
String msg = “Mouse released.”;
tf.setText(msg);
}
public void mouseDragged(MouseEvent me) {
String msg = “Mouse dragged at ” + me.getX()
+ “,” + me.getY();
tf.setText(msg);
}
public void mouseMoved(MouseEvent me) {
String msg = “Mouse moved at ” + me.getX()
+ “,” + me.getY();
tf.setText(msg);
}
}
main.java
package mouseeventsdemo;
/**
*
* @author Ren
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
MouseEventsDemo med = new MouseEventsDemo(“Mouse Events Demo”);
med.launchFrame();
}
}
 
;