Mar 062013
 

Sample UDP Client Server

Assalamu’ alaikum wr wb

User Datagram Protocol (UDP), adalah salah satu protokol lapisan transpor TCP/IP yang mendukung komunikasi yang tidak andal (unreliable), tanpa koneksi (connectionless) antara host-host dalam jaringan yang menggunakan TCP/IP. Protokol ini didefinisikan dalam RFC 768.

Oke mari langsung saja kita tulis script nya untuk sisi server

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

class UDPServer
{
 public static void main(String args[]) throws Exception
 {
 DatagramSocket serverSocket = new DatagramSocket(9876);
 byte[] receiveData = new byte[1024];
 byte[] sendData = new byte[1024];
 while(true)
 {
 //Deklarasi penerimaan paket
 DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
 serverSocket.receive(receivePacket);
 //Simpan dalam variabel dan cetak
 String sentence = new String( receivePacket.getData());
 System.out.println("RECEIVED: " + sentence);
 //Ambil Default IP yang mengirimkan pesan
 InetAddress IPAddress = receivePacket.getAddress();
 //Ambil port yang mengirimkan data
 int port = receivePacket.getPort();
 //Jadikan huruf besar data yang di terima
 String capitalizedSentence = sentence.toUpperCase();
 //Konvert data yang di terima menjadi byte data
 sendData = capitalizedSentence.getBytes();
 DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
 //Kirim kembali data yang terlah di terima
 serverSocket.send(sendPacket);
 }
 }
}

Sekarang untuk aplikasi client nya

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

class UDPClient
{
 public static void main(String args[]) throws Exception
 {
 //Baca Inputan keyboard
 BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
 //Deklarasi data paket
 DatagramSocket clientSocket = new DatagramSocket();
 //Lokasi server yang akan dikirim data
 InetAddress IPAddress = InetAddress.getByName("localhost");
 //Deklarasi port server
 int port = 9876;
 //Data yang akan di kirim
 byte[] sendData = new byte[1024];
 //data yang di terima dari server
 byte[] receiveData = new byte[1024];
 //Masukkan data darui keyboard ke variabel
 String sentence = inFromUser.readLine();
 try
 {
 //setting timeout
 clientSocket.setSoTimeout(1000);
 //Masukkan ke send data
 sendData = sentence.getBytes();
 //Inisialisasi paket yang di kirim
 DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
 //Kirim paket data
 clientSocket.send(sendPacket);

 //Ambil data yang di kirim oleh server
 DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
 clientSocket.receive(receivePacket);
 //Masukkan data yang di kirim oleh server
 //Konvert dari byte ke string
 String modifiedSentence = new String(receivePacket.getData());
 //Cetak ke layar
 System.out.println("FROM SERVER:" + modifiedSentence);

 }catch (SocketException | SocketTimeoutException EX){;
 System.out.println(EX.getMessage());
 }finally{
 //Tutup UDP
 clientSocket.close();
 }
 }
}

Selamat mencoba semoga membantu

Wassalamu’ alaikum wr wb

Feb 262013
 

Try Icon java SWT 

Assalamu’ alaikum wr wb

Beberapa waktu lama saya menulis tentang komponent untuk membuat report pada swt http://sugik.do-event.com/?p=656, Kali ini saya akan berbagi bagaimana membuat try icon pada aplikasi java swt, Langsung saja berikut souce nya

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tray;
import org.eclipse.swt.widgets.TrayItem;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Display display = new Display();
		final Shell shlSmsSender = new Shell(display);
		shlSmsSender.setText("SMS Sender");
		Image image = new Image(display, 16, 16);
		final Tray tray = display.getSystemTray();
		if (tray == null) {
			System.out.println("The system tray is not available");
		} else {
			final TrayItem item = new TrayItem(tray, SWT.NONE);
			item.setToolTipText("SWT TrayItem");
			item.addListener(SWT.Show, new Listener() {
				public void handleEvent(Event event) {
					System.out.println("show");
				}
			});
			item.addListener(SWT.Hide, new Listener() {
				public void handleEvent(Event event) {
					System.out.println("hide");
				}
			});
			item.addListener(SWT.Selection, new Listener() {
				public void handleEvent(Event event) {
					System.out.println("selection");
				}
			});
			item.addListener(SWT.DefaultSelection, new Listener() {
				public void handleEvent(Event event) {
					System.out.println("default selection");
				}
			});

			final Menu menu = new Menu(shlSmsSender, SWT.POP_UP);

			MenuItem misend = new MenuItem(menu, SWT.PUSH);
			misend.setText("Kirim Manual");
			misend.setImage(new Image(display, "icon/send.png"));
			misend.addListener(SWT.Selection, new Listener() {
				public void handleEvent(Event event) {
					System.out.println("selection " + event.widget);
				}
			});

			MenuItem miLog = new MenuItem(menu, SWT.PUSH);
			miLog.setText("Tampilkan Log");
			miLog.setImage(new Image(display, "icon/log.png"));
			miLog.addListener(SWT.Selection, new Listener() {
				public void handleEvent(Event event) {
					System.out.println("selection " + event.widget);
				}
			});

			MenuItem miexit = new MenuItem(menu, SWT.PUSH);
			miexit.setText("Keluar");
			miexit.setImage(new Image(display, "icon/exit.png"));
			miexit.addListener(SWT.Selection, new Listener() {
				public void handleEvent(Event event) {
					System.exit(0);
				}
			});

			menu.setDefaultItem(misend);

			item.addListener(SWT.MenuDetect, new Listener() {
				public void handleEvent(Event event) {
					menu.setVisible(true);
				}
			});
			item.setImage(new Image(display, "icon/hp.png"));
		}
		// shell.setBounds(50, 50, 300, 200);
		// shell.open();
		while (!shlSmsSender.isDisposed()) {
			if (!display.readAndDispatch())
				display.sleep();
		}
		image.dispose();
		display.dispose();
	}
}

Untuk menambahkan icon anda buat folder icon di project anda dan taruh file gambar di sana.

oke selamat mencoba semoga membantu

Wassalamu’ alaikum wr wb

Dec 142012
 

Assalamu’ alaikum wr wb

CSS3 Animations

Saat membuka beberapa tutorial tentang css3 di http://www.w3schools.com/ saya menemukan sebuah totorial yang menarik dan mungkin akan dapat dikembangkan, sesuai dengan imajinasi teman – teman semua, langsung saja untuk lihat script di bawah dan silakan di coba juga semoga dapat bermanfaat.

</p>
<!DOCTYPE html>
<html>
<head>
<style>
div
{
width:100px;
height:100px;
background:red;
position:relative;
animation:myfirst 5s linear 2s infinite alternate;
/* Firefox: */
-moz-animation:myfirst 5s linear 2s infinite alternate;
/* Safari and Chrome: */
-webkit-animation:myfirst 5s linear 2s infinite alternate;
/* Opera: */
-o-animation:myfirst 5s linear 2s infinite alternate;
}

@keyframes myfirst
{
0%   {background:red; left:0px; top:0px;}
25%  {background:yellow; left:200px; top:0px;}
50%  {background:blue; left:200px; top:200px;}
75%  {background:green; left:0px; top:200px;}
100% {background:red; left:0px; top:0px;}
}

@-moz-keyframes myfirst /* Firefox */
{
0%   {background:red; left:0px; top:0px;}
25%  {background:yellow; left:200px; top:0px;}
50%  {background:blue; left:200px; top:200px;}
75%  {background:green; left:0px; top:200px;}
100% {background:red; left:0px; top:0px;}
}

@-webkit-keyframes myfirst /* Safari and Chrome */
{
0%   {background:red; left:0px; top:0px;}
25%  {background:yellow; left:200px; top:0px;}
50%  {background:blue; left:200px; top:200px;}
75%  {background:green; left:0px; top:200px;}
100% {background:red; left:0px; top:0px;}
}

@-o-keyframes myfirst /* Opera */
{
0%   {background:red; left:0px; top:0px;}
25%  {background:yellow; left:200px; top:0px;}
50%  {background:blue; left:200px; top:200px;}
75%  {background:green; left:0px; top:200px;}
100% {background:red; left:0px; top:0px;}
}
</style>
</head>
<body>
<p><b>Note:</b> This example does not work in Internet Explorer.</p>
<div></div>
</body>
</html>

Sumber : http://www.w3schools.com/css3/css3_animations.asp

Wassalamu’ alaikum wr wb

Nov 192012
 

Assalamu’ alaikum wr wb

Satu lagi info untuk para penggemar java programing ada sebuah editor yang lumayan ringan buat kalian kalian.

Langsung saja kalian bisa download di sini : http://www.javaeditor.org/index.php/Main_Page

Editor sudah berbasis GUI

Wassalamu’ alaikum wr wb

Nov 162012
 

Assalamu’ alaikum wr wb

swt report (T-Report)

Satu lagi sebuah project iseng yang mungkin bisa di kembangkan oleh semuanya, saya mempunyai ide untuk mencetak html sebagai report, tapi mungkinmasih banyak kekurangan.

untuk lebih detail tentang project ini silakan di download di https://bitbucket.org/mbahsomo/t-swt-report

Ini adalah hasilnya :

SWT Report

SWT Report

Wassalamu’ alaikum wr wb

Oct 252012
 

Assalamu’ alaikum wr wb

Jar To exe

Beberapa hari ini kembali lagi berkecimpung dalam pemrograman java, terutama SWT. Pada setiap kita selesai membuat sebuah aplikasi java pastilah kita akan menjadikan file tersebut menjadi jar. yang merupakan file binary dari java yang akan kita distribusikan.

Namun untuk windows kiranya kurang keren kalo tidak menjadi Aplikasi windows sendiri / exe / Execute table. Akhirnya saya teringat pada jaman dahulu saya pernah memakai exe4j untuk membuat jar menjadi exe. Tetapi kali ini saya tidak mau tergantung oleh aplikasi buatan orang, saya ingin buat sendiri ah.

Alogitmanya sebenarnya sederhana yaitu menjalankan comment java -jar aplikasi.jar, tetapi perintah itu akan di jalankan oleh program kecil saya. dengan sedikit kemampuan yang ada akhirnya tercinpta juga louncer untuk jar.

Download

Cara Penggunaan sangat mudah

  1. copykan file jar2exe ke folder yang sama dengan aplikasi yang anda buat.
  2. Rename jar2exe menjadi seperti file jar yang ada.
  3. Jalankan exenya.
Mungkin masih banyak bug dalam programkecil ini, semoga dapat di kembangkan.
Untuk source akan saya bagikan pada tutorial selanjutnya.

Wassalamu’ alaikum wr wb

Oct 052012
 

Assalau’ alaikum wr wb

Direct Print swt (Standard Widget Toolkit)

Eclipse

Ini adalah salah satu trik pada pembuatan program java swt, kalo tutorial saya yang menggunakan swing saat melakukan print direct langsung ke LPT1, tetapi saat printer tidak menggunakan LPT1 maka kita harus menggunakan teknik lain, salah satunya adalah dengan menggunakan class Pritner.

Berikut adalah contoh penggunakan script Priter pada swt .

package coba;

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.printing.Printer;

public class CobaCetak {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Printer printer = new Printer();
	    if (printer.startJob("SWT Printing ")) {
	      Color black = printer.getSystemColor(SWT.COLOR_BLACK);
	      GC gc = new GC(printer);
	      if (printer.startPage()) {
	        gc.setForeground(black);
	        String testString = "Coba Print";
	        gc.drawString(testString, 20, 20);
	        gc.drawString(testString, 20, 120);
	        gc.drawString(testString, 20, 220);
	        gc.drawString(testString, 20, 320);
	        printer.endPage();
	      }
	      gc.dispose();
	      printer.endJob();
	    }
	    printer.dispose();
	}

}

Oke semoga script sederhana diatas dapat bermanfaat buat kitq semua.

Wassalamu’ alaikum wr wb

Jun 212012
 

Assalamu’ alaikum wr wb

Kali  ini kita akan mebuat sebuah script untuk mengeksekusi command dalam source java.

/*
*
* Desain by t-team
* email   : mbahsomo@do-event.com
* website : http://www.do-event.com
* ===============================================================
*     Semua sorce dalam program ini dibawah license [GPL]
*     Silakan Untuk mengembangkan dan memperbanyak source ini
*     Dengan tidak menghilangkan nama pembuat
* ===============================================================
*/
package tproject.util;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/**
*
* @author sugik
*/
public class execToString {
public execToString(String cmdline) {
try {
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(cmdline);
BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line = null;
while ((line = input.readLine()) != null) {
System.out.println(line);
}
int exitVal = pr.waitFor();
System.out.println(&quot;Exited with error code &quot; + exitVal);
} catch (Exception e) {
System.out.println(e.toString());
e.printStackTrace();
}
}
public static void main(String[] arg) {
new execToString(&quot;ping google.com&quot;);
}
}

Wassalamu’ alaikum wr wb

Jun 152012
 

Assalamu’ alaikum wr wb

saya akan sedikit berbagi bagaimana cara membuat kelas untuk menjadikan string MD5 pada program java kita. langsung saja berikut adalah scriptnya :

/*
 *
 * Desain by mbahsomo
 * email   : mbahsomo@do-event.com
 * website : http://www.do-event.com
 * ===============================================================
 *     Semua sorce dalam program ini dibawah license [GPL]
 *     Silakan Untuk mengembangkan dan memperbanyak source ini
 *     Dengan tidak menghilangkan nama pembuat
 * ===============================================================
 */

package tproject.tools;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
 *
 * @author mbahsomo
 */
public class ClassMD5 {
  private static String convertToHex(byte[] data) {
        StringBuffer buf = new StringBuffer();
        for (int i = 0; i < data.length; i++) {
                int halfbyte = (data[i] >>> 4) & 0x0F;
                int two_halfs = 0;
                do {
                        if ((0 <= halfbyte) && (halfbyte <= 9))
                        buf.append((char) ('0' + halfbyte));
                    else
                        buf.append((char) ('a' + (halfbyte - 10)));
                        halfbyte = data[i] & 0x0F;
                } while(two_halfs++ < 1);
        }
        return buf.toString();
  }
  public static String MD5(String text)

        throws NoSuchAlgorithmException, UnsupportedEncodingException  {
                MessageDigest md;
                md = MessageDigest.getInstance("MD5");
                byte[] md5hash = new byte[32];
                md.update(text.getBytes("iso-8859-1"), 0, text.length());
                md5hash = md.digest();
                return convertToHex(md5hash);
        }
}

semoga bermanfaat.

Wassalamu’ alaikum wr wb

Jul 112011
 

Assalamu’ alaikum wr wb

Satu lagi theme untuk java yang bisa teamn – teman gunakan, untuk mempercantik tampilan java kalian. http://www.randelshofer.ch/quaqua/index.html, berikut tampilannya.

Untuk menggunakan silakan gunakan script seperti berikut :


try {
 JFrame.setDefaultLookAndFeelDecorated(true);
 JFrame.setDefaultLookAndFeelDecorated(true);
 JDialog.setDefaultLookAndFeelDecorated(true);
 UIManager.setLookAndFeel(ch.randelshofer.quaqua.QuaquaManager.getLookAndFeel());
 } catch (Exception e) {

 }

Ok Silakan di explore

wassalamu’ alaikum wr wb