JOptionPane di NetBeans Platform


NetBeans Platform 6.9

NetBeans Platform 6.9

Peralatan yang diperlukan :

  1. Java Development Kit 1.6
  2. NetBeans Platform 6.9

Alert merupakan sesuatu hal yang wajib ada dalam setiap pemrograman visual, di javascript ada yang namanya alert(“”), di delphi ada yang namanya showMessage(“”), ย bahkan di Java ada yang namanya JOptionPane untuk menampilkan Alert, Prompt ataupun Confirmation.

Di NetBeans Platform ada juga sebuah format JOptionPane baru, kenapa harus bikin baru y? kan Ada JOptionPane nya Java? ๐Ÿ˜€ Hal ini dikarenakan selain untuk Alert, Confirmation, Prompt, di NetBeans Platform juga ada yang namanya Wizart (Mungkin lain kali saya buatkan tutorial tentang wizart). Baca lebih lanjut

Iklan

Menghapus Hurup Vokal dengan String.replaceAll();


Kemarin di facebook ada yang bertanya, bagaimana menghapus seluruh huruf vokal pada string dengan sekali perintah? Karena biasanya orang tersebut menggunakan perintah seperti ini :

package khannedy.report.entity;

public class Main {

	public static void main(String[] args) {
		String data = "Eko Kurniawan Khannedy";

		data = data.replaceAll("a", "");
		data = data.replaceAll("i", "");
		data = data.replaceAll("u", "");
		data = data.replaceAll("e", "");
		data = data.replaceAll("o", "");

		System.out.println(data);
	}

}

Apa kode diatas salah? tidak juga, hanya mungkin tidak efektif, tidak efektifnya saat kita akan menghapus banyak karakter, misal 20 jenis karakter, maka kita harus membuat 20 baris untuk melakukan perubahan tersebut ๐Ÿ˜€ Lantas apakah ada cara yang lebih baik?

Yup ada ๐Ÿ˜€ Baca lebih lanjut

Logging dalam Java, Apa dan Kenapa?


Logging? Penebangan? Haha, bukan itu maksudnya ๐Ÿ˜€

Logging yang dimaksud disini adalah cara yang sistematis dan terkendali untuk merepresentasikan keadaan tahapan-tahapan aplikasi pada saat aplikasi tersebut berjalan. Hmmm…. maksudnya? ๐Ÿ˜€

Sederhananya seperti ini, biasanya saat kita ingin mendeteksi apa yang terjadi dalam program, biasanya kita menampilkan tulisan pada console dengan perintah :

System.out.println(“isi informasi”);

misal, kita membuat program penjualan, biasanya agar kita mengetahui apa yang terjadi dalam program kita menyelipkan informasi logging seperti :

“membuat barang baru”
“barang baru berhasil dibuat”
“mengambil data barang dari database”

dan sebagainya, sesuai dengan yang kebutuhan kita ๐Ÿ˜€ Hal inilah yang dinamakan logging, artinya logging ini cara yang biasa kita gunakan untuk merepresentasikan keadaan tahapan-tahapan aplikasi yang sedang berjalan, tujuan dilakukan proses logging ini tentunya agar kita tau apa yang terjadi dalam program, sehingga jika ada kesalahan dalam program kita bisa mengetahuinya ๐Ÿ˜€

Kenapa Perlu Teknologi Lain?

kalo kita bisa menggunakan logging menggunakan perintah System.out.println(), kenapa kita perlu teknologi yang lainnya?

hal ini dikarenakan target untuk System.out.println() adalah console, artinya jika kita membuat program yang berbasiskan antarmuka, maka hasil dari System.out.println() tidak akan terlihat ๐Ÿ˜€ Hal ini karena memang kita tidak menggunakan console ๐Ÿ˜€

hal ini bisa kita akali dengan cara menggunakan Java IO, sehingga kita tidak menggunakan System.out.println() lagi, melainkan menggunakan Java IO, tapi itu artinya kita harus membuat proses logging yang baru lagi ๐Ÿ˜ฆ

atau jika kita ingin seluruh proses logging ditampilkan dalam database, maka artinya kita harus menggunakan JDBC, dan artinya lagi-lagi kita harus buat proses logging dari awal lagi ๐Ÿ˜ฆ

hal ini membuat proses logging secara manual seperti ini sangat melelahkan…. oleh karena itu kita perlu teknologi lain untuk proses logging, namanya Java Logging!

Java Logging

java logging merupakan teknologi logging yang secara default ada dalam jdk, sehingga tidak perlu menginstall plugin atau framework apapun untuk menggunakannya. seluruh class-class java logging terdapat pada paket java.util.logging.*

secara sederhana, java logging dapat digambarkan sebagai jembatan penghubung antara aplikasi dan target lokasi logging, artinya hanya dengan menggunakan java logging, kita dapat dengan mudah mengubah target loggingnya, misal kita ingin menjadikan console sebagai target loggingnya, artinya seluruh trace logging akan ditampilkan dalam console. atau kita ingin target loggingnya ke file, maka seluruh trace logging akan disimpan dalam file. selain itu kita juga dapat menggunakan target target yang berbeda secara bersamaan menggunakan java logging.

Java Logging

Java Logging

dengan fasilitas java logging yang seperti itu, maka proses logging akan sangat menyenangkan ๐Ÿ˜€ tidak lagi membosankan dan tidak akan memakan waktu lama ๐Ÿ˜€

Ingat! Tuliskan Seluruh Informasi Yang Diperlukan Pada Saat Membuat Logging, Agar Kita Tahu Apa Yang Sedang Terjadi Dengan Aplikasi Kita

Praktek!

misal saja kita membuat program yang sederhana, yaitu melakukan perulangan 0 sampai 9 ๐Ÿ˜€

package khannedy.standard.logging;

import java.util.logging.Logger;

public class SimpleLogging {

	public static void main(String[] args) {
		Logger logger = Logger.getLogger("Eko Keren :D");
		logger.info("aplikasi berjalan");

		logger.info("melakukan perulangan");
		for (int i = 0; i < 10; i++) {
			logger.info("nilai i sekarang " + i);
		}
		logger.info("perulangan selesai");

		logger.info("aplikasi selesai");
	}

}

untuk membuat logger, caranya kita menggunakan kelas java.util.logging.Logger dengan menggunakan static class getLogger(“nama logger”). Dan untuk menampilkan informasi kita bisa menggunakan metode info(“informasi”), atau untuk menampilkan warning kita bisa menggunakan metode warning(“warning”) dan yang lainnya.

jika dijalankan, maka hasil programnya adalah :

May 12, 2010 11:34:41 PM khannedy.standard.logging.SimpleLogging main
INFO: aplikasi berjalan
May 12, 2010 11:34:41 PM khannedy.standard.logging.SimpleLogging main
INFO: melakukan perulangan
May 12, 2010 11:34:41 PM khannedy.standard.logging.SimpleLogging main
INFO: nilai i sekarang 0
May 12, 2010 11:34:41 PM khannedy.standard.logging.SimpleLogging main
INFO: nilai i sekarang 1
May 12, 2010 11:34:41 PM khannedy.standard.logging.SimpleLogging main
INFO: nilai i sekarang 2
May 12, 2010 11:34:41 PM khannedy.standard.logging.SimpleLogging main
INFO: nilai i sekarang 3
May 12, 2010 11:34:41 PM khannedy.standard.logging.SimpleLogging main
INFO: nilai i sekarang 4
May 12, 2010 11:34:41 PM khannedy.standard.logging.SimpleLogging main
INFO: nilai i sekarang 5
May 12, 2010 11:34:41 PM khannedy.standard.logging.SimpleLogging main
INFO: nilai i sekarang 6
May 12, 2010 11:34:41 PM khannedy.standard.logging.SimpleLogging main
INFO: nilai i sekarang 7
May 12, 2010 11:34:41 PM khannedy.standard.logging.SimpleLogging main
INFO: nilai i sekarang 8
May 12, 2010 11:34:41 PM khannedy.standard.logging.SimpleLogging main
INFO: nilai i sekarang 9
May 12, 2010 11:34:41 PM khannedy.standard.logging.SimpleLogging main
INFO: perulangan selesai
May 12, 2010 11:34:41 PM khannedy.standard.logging.SimpleLogging main
INFO: aplikasi selesai

secara default target lokasinya adalah console, tapi anda bisa merubahnya dengan cara mengubah Handler-nya :

package khannedy.standard.logging;

import java.util.logging.FileHandler;
import java.util.logging.Handler;
import java.util.logging.Logger;

public class SimpleLogging {

	public static void main(String[] args) throws Exception {
		Logger logger = Logger.getLogger("Eko Keren :D");

		Handler handler = new FileHandler("file-log.log");
		logger.addHandler(handler);

		logger.info("aplikasi berjalan");

		logger.info("melakukan perulangan");
		for (int i = 0; i < 10; i++) {
			logger.info("nilai i sekarang " + i);
		}
		logger.info("perulangan selesai");

		logger.info("aplikasi selesai");
	}

}

dimana java logging support beberapa handler, yaitu :

  1. java.util.logging.FileHandler, ini menulis logging ke file
  2. java.util.logging.ConsoleHandler, ini menulis logging ke console
  3. java.util.logging.StreamHandler, ini menulis logging ke stream
  4. java.util.logging.MemoryHandler, ini menulis logging ke memory
  5. java.util.logging.SocketHandler, ini menulis logging ke jaringan socket menggunakan protokol TCP/IP.

bagaimana kalo kita ingin logging nya disimpan ke database?

kita bisa membuat class logging sendiri, dengan cara membuat class turunan baru dari class java.util.logging.Handler

๐Ÿ˜€

Project Pertama Google Web Toolkit 2 Tanpa Integrated Development Environment


Kemarin waktu JAMU-1 (Java Meetup) JUG-Bandung yang berisikan GWT (Google Web Toolkit) ternyata banyak yang minta untuk JAMU-2 dibahas lagi tentang GWT, khususnya teknikalnya, soalnya kemarin waktu JAMU-1 memang tidak banyak masuk ke teknikalnya alias codingnya, hanya mengenalkan apa itu GWT dan kenapa GWT.

Pada tutorial ini saya akan bahas tentang bagaimana membuat project pertama GWT versi 2 tanpa IDE (Integrated Development Environment) seperti Eclipse IDE, ataupun NetBeans IDE, artinya murti menggunakan terminal ๐Ÿ˜€

Hoho, solit dunk?

Enggak juga ๐Ÿ˜€

Instalasi Apache Ant

Untuk menggunakan GWT tanpa IDE, kita memerlukan Apache Ant sebagai Build Toolnya, kenapa perlu? Karena dengan menggunakan Apache Ant, proses build aplikasi berbasis GWT akan lebih mudah dibandingkan kita harus melakukan kompilasi secara manual satu persatu kelas yang ada dalam aplikasi yang sedang dibangun ๐Ÿ™‚

Pertama download Apache Ant nya di :

http://ant.apache.org/

Pastikan anda mengerti setting classpath pada sistem operasi yang anda buat, karena mengetahui cara setting classpath adalah hal yang wajib untuk Java Developer ๐Ÿ˜€ . Setelah setting classpath, sekarang anda bisa melakukan akses program ant lewat terminal dengan mengetikkan :

ant -version

Dan Apache Ant akan menampilkan versi yang terinstall, misal pada sistem operasi saya hasilnya :

Apache Ant version 1.8.0 compiled on February 1 2010

Selesai, lanjutkan ke proses selanjutnya…

Instalasi Google Web Toolkit

Setelah instalasi Apache Ant selesai, saatnya instalasi Google Web Toolkit. Apaan tuh Google Web Toolkit? Cape deh…. (ngapain ngikutin tutorial ini kalo gak ngerti GWT, liat disini dulu -> http://code.google.com/intl/id/webtoolkit/)

Pertama download dulu GWT nya disini :

http://code.google.com/intl/id/webtoolkit/download.html

Setelah itu tahapannya sama seperti instalasi Apache Ant, yaitu setting classpath agar GWT bisa langsung dieksekusi dari terminal. Untuk mengecek apakah GWT sudah terinstall, ketikkan :

webAppCreator

pada terminal, maka hasilnya akan seperti ini :

Missing required argument 'moduleName'
Google Web Toolkit 2.0.3
WebAppCreator [-overwrite] [-ignore] [-out dir] [-junit pathToJUnitJar] moduleName
where
-overwrite ย Overwrite any existing files
-ignore ย  ย  Ignore any existing files; do not overwrite
-out ย  ย  ย  ย The directory to write output files into (defaults to current)
-junit ย  ย  ย Specifies the path to your junit.jar (optional)
and
moduleName ย The name of the module to create (e.g. com.example.myapp.MyApp)
Missing required argument 'moduleName'Google Web Toolkit 2.0.3WebAppCreator [-overwrite] [-ignore] [-out dir] [-junit pathToJUnitJar] moduleName
where   -overwrite  Overwrite any existing files  -ignore     Ignore any existing files; do not overwrite  -out        The directory to write output files into (defaults to current)  -junit      Specifies the path to your junit.jar (optional)and   moduleName  The name of the module to create (e.g. com.example.myapp.MyApp)

Tergantung versi GWT yang terinstall ๐Ÿ˜€

Membuat Project

Sekarang saatnya kita membaut project, untuk membuat project GWT, caranya gumakan perintah berikut :

webAppCreator ย  -out ย  HelloGWT ย  khannedy.gwt.HelloGWT

Dimana -out HelloGWT artinya kita akan membuat project pada folder HelloGWT, lokasi folder bisa relative seperti diatas, atau absolut seperti /home/echo/Desktop/HelloGWT/ atau C:/Proyek/HelloGWT/

Dan khannedy.gwt.HelloGWT merupakan nama kelas yang akan dijadikan sebagai kelas aplikasi dalam GWT

Hasil trace nya adalah seperti dibawah ini :

Not creating tests because -junit argument was not specified.

Created directory HelloGWT/src
Created directory HelloGWT/war
Created directory HelloGWT/war/WEB-INF
Created directory HelloGWT/war/WEB-INF/lib
Created directory HelloGWT/src/khannedy/gwt
Created directory HelloGWT/src/khannedy/gwt/client
Created directory HelloGWT/src/khannedy/gwt/server
Created directory HelloGWT/src/khannedy/gwt/shared
Created directory HelloGWT/test/khannedy/gwt
Created directory HelloGWT/test/khannedy/gwt/client
Created file HelloGWT/src/khannedy/gwt/HelloGWT.gwt.xml
Created file HelloGWT/war/HelloGWT.html
Created file HelloGWT/war/HelloGWT.css
Created file HelloGWT/war/WEB-INF/web.xml
Created file HelloGWT/src/khannedy/gwt/client/HelloGWT.java
Created file HelloGWT/src/khannedy/gwt/client/GreetingService.java
Created file HelloGWT/src/khannedy/gwt/client/GreetingServiceAsync.java
Created file HelloGWT/src/khannedy/gwt/server/GreetingServiceImpl.java
Created file HelloGWT/src/khannedy/gwt/shared/FieldVerifier.java
Created file HelloGWT/build.xml
Created file HelloGWT/README.txt
Created file HelloGWT/.project
Created file HelloGWT/.classpath
Created file HelloGWT/HelloGWT.launch
Created file HelloGWT/war/WEB-INF/lib/gwt-servlet.jar

Setelah itu masuk ke folder ย HelloGWT, tergantung folder yang dibuat dengan cara menggunakan perintah :

cd HelloGWT

sekarang project GWT sederhana sudah selesai ๐Ÿ˜€

Kok? Hehehe, emang sudah selesai kok ๐Ÿ˜€

Menjalankan Aplikasi

Untuk menjalankan aplikasi, kita hanya perlu menggunakan perintah :

ant devmode

tunggu sampai form aplikasi GWT Development Mode :

GWT Development Mode

GWT Development Mode

Setelah itu klik tombol Launch Default Browser, maka browser akan membuka aplikasi GWT yang tadi kita buat :

Web Application Starter Project 1

Web Application Starter Project 1

Jika di klik tombol Send nya :

Web Application Starter Project 2

Web Application Starter Project 2

Mudah kan? tapi ingat, ini adalah Development Mode, artinya bukan Production Mode. Jadi kalo aplikasi kita sudah jadi, bukan seperti ini cara menjalankannya ๐Ÿ˜€

Production Mode

Anggap saja kita sudah membuat aplikasi dan siap untuk dipublikasi alias diproduksi (production mode), maka tahapan sebelumnya bukanlah cara menjalankan aplikasinya.

Hasil dari GWT adalah WAR (Web Archive), dimana WAR dapat dideploy di server-server java seperti Apache Tomcat, Glassfish dan server Java yang lainnya, dan untuk membuat aplikasi GWT kita agar menjadi WAR, caranya mudah tinggal gumakan perintah :

ant war

maka sekarang akan terbuat file WAR dalam folder project yang tadi dibuat, dalam kasus ini file WAR yang ada pada project saya adalah HelloGWT.war ๐Ÿ˜€

Mudah kan?

Tanda IDE lagi ๐Ÿ˜€

Aplikasi Penjualan Sederhana Versi 2, Menggunakan Java Swing dan Java Persistence API 2


Pada Versi 1 Sebelumnya, yang bisa Anda lihat disini :

https://eecchhoo.wordpress.com/2010/03/14/aplikasi-penjualan/

disitu saya belum memberi fasilitas pencarian, baik itu kategori dan juga produk. Pada versi 2 ini ada beberapa fitur yang ditambahkan, yaitu :

  • Menggunakan LookAndFeel Nimbus
  • Ditambahkan Fitur Pencarian
  • Migrasi dari Java Persistence Query Language ke Criteria API

Untuk lebih jelas anda bisa melihat screenshootnya dibawah ini :

Screenshot-Aplikasi Penjualan-2

Aplikasi Penjualan Sederhana Versi 2

Aplikasi Penjualan Sederhana Versi 2

Aplikasi Penjualan Sederhana Versi 2

Aplikasi Penjualan Sederhana Versi 2

Aplikasi Penjualan Sederhana Versi 2

Aplikasi Penjualan Sederhana Versi 2

Aplikasi Penjualan Sederhana Versi 2

Aplikasi Penjualan Sederhana Versi 2

Aplikasi Penjualan Sederhana Versi 2

Aplikasi Penjualan Sederhana Versi 2

Aplikasi Penjualan Sederhana Versi 2

Download sourcecodenya disini :

Download Disini

Selamat Belajar ๐Ÿ˜€

[Java Source Code] Convert File to Bytes


/*
 *  Copyright 2009 Eko Kurniawan Khannedy
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *  under the License.
 */
package echo.khannedy.sourcecode;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 *
 * @author Eko Kurniawan Khannedy
 */
public class ConvertFileToBytes {

    public static void main(String[] echo) throws FileNotFoundException, IOException {

        // load file
        File file = new File("build.xml");

        // create input stream
        FileInputStream inputStream = new FileInputStream(file);

        // create bytearrayoutputstream
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

        // process read and write data
        byte[] data = new byte[1024];
        int length = 0;
        while ((length = inputStream.read(data)) > 0) {
            outputStream.write(data, 0, length);
        }
        outputStream.flush();

        // result of bytes
        byte[] result = outputStream.toByteArray();

        // close
        inputStream.close();
        outputStream.close();
    }
}

Pengenalan Data Access Object {2} Implementasi dalam JDBC


pada posting sebelumnya saya telah bahas tentang apa itu DAO dan sedikit membahas tentang konsep penerapan DAO dalam sistem yang sedang kita buat. dan pada posting saat ini saya akan bahas tentang implementasi konsep dao pada jdbc (java database connectivity).

agar lebih afdol sebaiknya pada praktek konsep DAO kali ini, saya ambil contoh sebuah kasus, yaitu kita akan membuat sebuah sistem informasi universitas, dimana pada sistem informasi tersebut memiliki sebuah entitas yang bernama Mahasiswa, Jurusan dan Fakultas. dan sekarang tugas kita adalah menerapkan konsep DAO tersebut pada sistem informasi tersebut.

Baca lebih lanjut