Sunday, May 27, 2007

Drag n Drop sederhana

Applikasi Drag n Drop sederhana
(java application - netbean)

Langkah – langkah yang harus dilakukan dalam membuat aplikasi DnD adalah sebagai berikut :

1. Buat project baru File->New Project..., pilih category General dan project Java Application, klik Next dengan nama appDrag&Drop, tanpa main class (uncheck create main class) kemudian klik Finish.
2. Tambahkan form (JFrame Form) ke dalam project tersebut dengan nama class “DragDrop” dan package “dnd”
3. Design form tersebut seperti gambar dibawah ini



Design tersebut terdiri dari jPanel, jLabel, dan jTextField.
4. Ubah ke mode design ke mode source (select View->Editor->Source).
5. Import beberapa kebutuhan yang diperlukan kedalam DragDrop.java dibawah package dnd;, seperti dibawah ini

import java.awt.*;
import javax.swing.JComponent;
import javax.swing.TransferHandler;
import java.awt.event.*;

6. Buat class baru didalam class DragDrop, yaitu DragMouseAdapter untuk meng-hadle aksi yang dilakukan oleh mouse (DnD)

private class DragMouseAdapter extends MouseAdapter {
public void mousePressed(MouseEvent e) {
JComponent c = (JComponent)e.getSource();
TransferHandler handler = c.getTransferHandler();
handler.exportAsDrag(c, e, TransferHandler.COPY);
}
}

7. Pada konstruktor (method DragDrop), tambahkan code dibawah ini

public DragDrop() {
initComponents();
jTextField1.setDragEnabled(true);
jLabel1.setTransferHandler(new TransferHandler("text"));
MouseListener listener = new DragMouseAdapter();
jLabel1.addMouseListener(listener);
}


8. Jalankan aplikasi dengan menekan tombol F6
9. Untuk mencoba aplikasi DnD, klik label Helllo, drag, dan drop pada textfield. Jika berhasil makan string Helllo akan ada pada textfield (ter-copy)

Read More...

Friday, May 25, 2007

When I Say That I Love You

WHEN I SAY THAT I LOVE YOU
Franky Sihombing

You feel that you're lonely
It Doesn't prove that you are alone
You feel that no body want you
It doesn't mean that no one cares about you

Reff:
Listen to the word i say
That i will always by your side
You mean everything to me
That i will never leave you
Cause i love you so

If you think that you're nothing
But for me you are something beautiful
You think that you can't do anything
But you can do a lot of things with me

When i say that i love you
It's mean i give the best for you
When i say that i love you
I will give everything for you

No more fear about the future
And blame for the past
I'll give everithing
When i say that i love you

I want you to know that i died for you
I want you to nkow that i'll give all my life for you
When i say that i love you....
Say that i love you....

When i say that i love you... i realy do..

Read More...

Friday, May 4, 2007

Pratikum appSocketClient

Sedangkan untuk aplikasi client, berikut adalah tutorial nya :

1. Buat project baru, dengan nama project appSocketClient tanpa main class

2. Buat class baru, dengan cara klik kanan nama project, kemudian pilih new->Java Class, dan beri nama class “appSocketClient” dan package “app.socket”

3. Import beberapa komponen dibawah ini dalam appSocketClient.java :

import java.awt.Color;
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.*;


import java.io.*;
import java.net.*;


4. Pada class appSocketClient lakukan perubahan pada nama class, dan tambahkan beberapa deklarasi seperti dibawah ini

Nama class menjadi :

public class appSocketClient extends JFrame implements ActionListener

Deklarasi variabel (dalam class appSocketClient diluar method yg ada didalam class tersebut) :

JLabel text, clicked;
JButton button;
JPanel panel;
JTextField textField;
Socket socket = null;
PrintWriter out = null;
BufferedReader in = null;


5. Akan ada error, karena method actionPerformed belum dibuat. Sekarang tambahkan method actionPerformed kedalam class appSocketClient.

public void actionPerformed(ActionEvent event){
Object source = event.getSource();
int i=0,j=0;
if(source == button){
//Send data over socket
String text = textField.getText();
out.println(text);
textField.setText(new String(""));
//Receive text from server
try{
String line = in.readLine();
textField.setText(line);
System.out.println("Text received :" + line);
}catch (IOException e){
System.out.println("Read failed");
System.exit(1);
}
}
}

6. Buat method baru didalam class appSocketClient, untuk membuat objek socket

public void listenSocket(){
//membuat objek socket
try{
socket = new Socket("localhost", 4444);
out = new PrintWriter(socket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
}catch (UnknownHostException e) {
System.out.println("Unknown host: localhost.eng");
System.exit(1);
} catch (IOException e) {
System.out.println("No I/O");
System.exit(1);
}
}

7. Pada konstruktor (method appSocketClient) dalam class appSocketClient, tambahkan code berikut ini

public appSocketClient() {
text = new JLabel("Text to send over socket:");
textField = new JTextField(20);
button = new JButton("Click Me");
button.addActionListener(this);

panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.setBackground(Color.white);
getContentPane().add(panel);
panel.add("North", text);
panel.add("Center", textField);
panel.add("South", button);
}

8. Terakhir, tambahkan method main pada class appSocketClient

public static void main(String[] args){
appSocketClient frame = new appSocketClient();
frame.setTitle("Client Program");

WindowListener l = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};

frame.addWindowListener(l);
frame.pack();
frame.setVisible(true);
frame.listenSocket();
}


9. Jalankan aplikasi dengan menekan tombol F6
10. Catatan : jika aplikasi disisi client tidak menemukan server, maka applikasi akan keluar. Sehingga untuk menjalankannya, jalankan terlebih dahulu aplikasi di sisi server, kemudian aplikasi di sisi client.


Read More...

Pratikum appSocketServer

Berikut adalah tutorial membuat aplikasi socket server berbasis desktop application :

1. Buat project baru, File->New Project..., pilih kategori General dan project Java Application, kemudian isi nama projectnya socketServerApp, dan uncheck create main class

2. Tembahkan form baru ke dalam project, carannya klik kanan pada nama project, pilih new form, dan pilih Jframe Form..

3. Isi nama class “appSocketServer” dan nama packagenya “app.socket”

4. Akan muncul windows design, dan buat design seperti pada gambar d bawah ini :

5. Beralih ke editor source (pilih View->Editor->Source)

6. Masukkan beberapa komponen berikut ini dibawah package app.socket dalam appSocketServer.java

import java.awt.event.*;
import java.net.*; // kebutuhan socket
import java.io.*; // untuk io exception
import javax.swing.JTextArea;


7. Buat class baru ClientWorker (untuk komunikasi dengan socket) didalam appSocketServer.java dan diluar class appSocketServer()

/**
* class ClientWorker : menerima request yg datang dari client,
* mengembalikan socket object (client),
* dan merepresentasikan koneksi;
* komunikasi dengan socket (baca/tulis);
* menampilkan data (diterima dan di kirim)
*/
class ClientWorker implements Runnable {
private Socket client;
private javax.swing.JTextArea textArea;

// konstruktor
ClientWorker(Socket client, javax.swing.JTextArea textArea) {
this.client = client;
this.textArea = textArea;
}

public void run(){
String line;
BufferedReader in = null;
PrintWriter out = null;
boolean done = false;

try{
in = new BufferedReader(new InputStreamReader(client.getInputStream()));
out = new PrintWriter(client.getOutputStream(), true);
}catch (IOException e) {
System.out.println("input or output stream gagal");
System.exit(-1);
}

while(!done){
try{
line = in.readLine(); // baca data
if(line == null)
done=true;
else
{
// tampilkan data yang diterima ke textArea
textArea.append("Receive\t: "+line+"\n");

//kirim kembali data ke client
line = line + " juga";
out.println(line); // tulis data
// tampilkand data yang di kirim ke textarea
textArea.append("Send\t: "+line+"\n");
}
}catch (IOException e) {
System.out.println("baca gagal");
System.exit(-1);
}
}
}
}

8. Pada class appSocketServer, deklarasikan objek socket berikut (deklarasi variabel dilakukan didalam class appSocketServer dan diluar semua method yang ada di dalam class appSocketServer).

ServerSocket serverSocket = null;

9. Buat method baru untuk membuat socket object, didalam kelas appSocketServer

/**
* Methoe listenSocket : membuat koneksi socket
*/
public void listenSocket()
{
try{
// membuat onject socket pada port number :4444
serverSocket = new ServerSocket(4444);
}catch (IOException e) {
System.out.println("Could not listen on port 4444");
System.exit(-1);
}
// selama conect ke client
while(true){
ClientWorker clWorker;
try{
clWorker = new ClientWorker(serverSocket.accept(), jTextArea1);
Thread tread = new Thread(clWorker);
tread.start();
}catch (IOException e) {
System.out.println("Accept failed: 4444");
System.exit(-1);
}
}
}

10. Buat satu method lagi didalam class appSocketServer untuk menghentikan tread dan juga program

protected void finalize(){
try{
serverSocket.close();
System.out.println("Close socket");
}catch (IOException e) {
System.out.println("Could not close socket");
System.exit(-1);
}
}

11. Dalam method main(), ubah code dengan code dibawah ini

public static void main(String args[]) {
appSocketServer frame = new appSocketServer();

WindowListener wListen = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};

frame.addWindowListener(wListen);
frame.pack();
frame.setVisible(true);
frame.listenSocket();
}

12. Jalankan applikasi dengan menekan tombol F6, makan akan muncul window baru, yaitu window untuk memilih main project, klik OK maka akan muncul applikasi socket server yang telah dibuat


Read More...

Aplikasi Socket - Client

Setelah mempelajari cara membuat applikasi socket disisi server, sekarang kita belajar tentang applikasi socket di sisi client..oke !!(kaya pa guru ya hehehe)

Beberapa langkah untuk membuat aplikasi di sisi client supaya dapat berkomunikasi dengan server adalah sebagai berikut :

1. Koneksi ke server, koneksi ke server dapat dilakukan dengan cara :
Membuat socket objek, hanya perlu tahu nama host dan port yang digunakan. Untuk membuat socket objek, hanya perlu mamanggil kelas socket, yaitu :
Socket(InetAddress address, int port) atau
Socket(java.lang.String host, int port)
Contoh : untuk membuat socket objek yang connect dari localhost dengan port 4444,

berikut adalah sintaksnya

Socket sClient = new Socket (“localhost”, 4444);

2. Komunikasi dengan server dengan menggunakan socket pada sisi client tidak berbeda cara komunikasi server terhadap client, yaitu input dan output sream. Contohnya :

BufferedReader in = new Bufferedreader
(new InputStreamReader(sClient.getInputStream()));
PrintWriter out = new PrintWriter
(sClient.getOutputStream(), true);

kemudian kita tinggal membaca / menulis string dari dan ke socket objek yang telah dibuat. Caranya hampir sama dengan yang dilakukan server :

boolean more = true;
out.println(“halo..”); // kirim tesk
while (more)
{
String balikan = in.readLine();
If(balikan==null)
more = false;
else
Syste.out.println();
}

Cukup mudah kan ???
Dan akan lebih mudah kalau langsung dipraktekkan. link berikut akan membawa anda pada pratikum appSocketClient.

Read More...

Tuesday, May 1, 2007

Aplikasi Socket - Server

Aplikasi socket terdiri dari 2 bagian, yaitu server dan client.
artikel ini akan membahas socket pada sisi server, sisi client ntar.

Beberapa langkah yang harus dilakukan dalam membuat aplikasi socket di sisi server adalah sebagai berikut :

  1. Buat instance dari kelas ServerSocket. Ada beberapa perbedaan dalam membuat instance tersebut, yaitu :
    a. ServerSocket(), implementasi yang sangat sederhana, yang berarti semuanya dianggap sebagai nilai default.
    b. ServerSocket(int port), membuat instance class untuk port server tertentu.
    c. ServerSocket(int port, int backlog), tidak hanya mengikat socket yang dibuat untuk port tertentu, tapi
    juga membuat queue of length, yang di spesifikasikan oleh paramenter backlog.
    d. ServerSocket(int port, int backlog, InetAddress bindAddr), seperti no.c, dan ditambah parameter yang membatasi alamat yang di gunakan.


    Misalnya : untuk membuat instance kelas ServerSocket dengan memakai port no 4444, dengan backlog queue 5 dan membatasi alamat pada localhost, sintaksnya adalah sebagai berikut :

    ServerSocket sServer = new ServerSocket ( 4444, 5, InetAddress.getLocalHost() );
  2. Langkah selanjutnya adalah membuat objek soket server yang telah dibuat menunggu dan menerima request yang datang. Methodnya adalah accept(). Pada saat request datang, method accept() akan mengembalikan object yang merepresentasikan koneksi (client).

    Socket socketReq = sServer.accept();
  3. Langkah ketiga adalah saatnya membaca dan menulis dari dan ke objek socket. Untuk membaca gunakan getInputStream() dan untuk menulis gunakan getOutputStream() method dari kelas socket.

    BufferedReader in = new BufferedReader
    (new InputStreamReader(socketReq.getInputStream()));
    PrintWriter out = new PrintWriter
    (socketReq.getOutputStream(), true);

  4. Langkah terakhir adalah menutup object socket, pada saat client menghentikan koneksinya atau berhenti mengirimkan request.

    socketReq.close();

nah, itu adalah keterangan tentang socket server, mudah-mudah susah untuk dimengerti. tapi, sangat mudah jika itu semua dicoba dan dipraktekkan. link berikut akan bawa kalian untuk pratikum appSocketServer

Read More...