Tampilkan postingan dengan label Java. Tampilkan semua postingan
Tampilkan postingan dengan label Java. Tampilkan semua postingan

Membuat Aplikasi SystemTray dengan java

Minggu, Juni 21, 2009 | | Comments


untuk membuat SystemTray seperti gambar diatas ternyata tidak sesulit yang saya kira.
berikut source code beserta penjelasanya.
Dowload project
/*
* Program ini dibuat oleh Rachmad Hadi Wijoyo
* anda boleh mengunakan dan mendistribusikan dengan bebas
* asalkan tidak mengubah license ini.
* copyright by Rachmad Hadi Wijoyo
*/
package cobacoba;
/**
*
* @author rahw
*/
import java.awt.*;
import java.awt.event.*;
import java.net.URL;
import javax.swing.*;
public class RTray {
public static void main(String[] args) {
/* Set Look and Feel yang kita guanakan*/
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
//UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
} catch (UnsupportedLookAndFeelException ex) {
ex.printStackTrace();
} catch (IllegalAccessException ex) {
ex.printStackTrace();
} catch (InstantiationException ex) {
ex.printStackTrace();
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
/* mematikan evek metal look and feel */
UIManager.put("swing.boldMetal", Boolean.FALSE);
//Menjadwal event-dispatching thread:
//Memasang TrayIcon.
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
new tesSystemTray().setVisible(true);
}
});
}
private static void createAndShowGUI() {
//Untuk memeriksa apakah sistem mendukung SystemTray
if (!SystemTray.isSupported()) {
System.out.println("Tidak mendukung SystemTray ");
return;
}
final PopupMenu popup = new PopupMenu();
final TrayIcon trayIcon =
new TrayIcon(createImage("/cobacoba/administrator_128.png", "tray icon"));
final SystemTray tray = SystemTray.getSystemTray();
// membuat popup menu components
MenuItem aboutItem = new MenuItem("Tentang");
CheckboxMenuItem cb2 = new CheckboxMenuItem("Set tooltip");
MenuItem exitItem = new MenuItem("Exit");
//Add components to popup menu
popup.add(aboutItem);
popup.addSeparator();
popup.add(cb2);
popup.addSeparator();
popup.add(exitItem);
trayIcon.setPopupMenu(popup);
try {
tray.add(trayIcon);
trayIcon.setImageAutoSize(true);
} catch (AWTException e) {
System.out.println("TrayIcon tidak dapat dipasang.");
return;
}
trayIcon.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new tesSystemTray().setVisible(true);
}
});
aboutItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null,
"Pesan ini dijalankan dari System Tray\n"+
"Program ini dibuat oleh Rachmad Hadi Wijoyo\n"+
"anda boleh mengunakan dan mendistribusikan dengan bebas\n"+
"asalkan tidak mengubah license ini.\n"+
"copyright by Rachmad Hadi Wijoyo \n"
);
}
});
cb2.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
int cb2Id = e.getStateChange();
if (cb2Id == ItemEvent.SELECTED){
trayIcon.setToolTip("Sun TrayIcon");
} else {
trayIcon.setToolTip(null);
}
}
});
exitItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tray.remove(trayIcon);
System.exit(0);
}
});
}
//Obtain the image URL
protected static Image createImage(String path, String description) {
URL imageURL = RTray.class.getResource(path);
if (imageURL == null) {
System.err.println("Gambar tidak ditemukan di: " + path);
return null;
} else {
return (new ImageIcon(imageURL, description)).getImage();
}
}
}
___________
/*
* Program ini dibuat oleh Rachmad Hadi Wijoyo
* anda boleh mengunakan dan mendistribusikan dengan bebas
* asalkan tidak mengubah license ini.
* copyright by Rachmad Hadi Wijoyo
* anda boleh mengunakan dan mendistribusikan dengan bebas
*/
/*
* tesSystemTray.java
*
* Created on May 19, 2009, 11:05:11 AM
*/
package cobacoba;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.Timer;
/**
*
* @author rahw
*/
public class tesSystemTray extends javax.swing.JFrame {
/** Creates new form tesSystemTray */
public tesSystemTray() {
initComponents();
timerx.start();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// //GEN-BEGIN:initComponents
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel1.setBackground(new java.awt.Color(153, 153, 255));
jButton1.setText("Sembunyi");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setText("Keluar");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cobacoba/administrator_128.png"))); // NOI18N
jLabel1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseEntered(java.awt.event.MouseEvent evt) {
jLabel1MouseEntered(evt);
}
public void mouseExited(java.awt.event.MouseEvent evt) {
jLabel1MouseExited(evt);
}
});
jLabel2.setText("copyright by Rachmad Hadi Wijoyo ");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(117, 117, 117)
.addComponent(jButton1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(134, 134, 134)
.addComponent(jLabel1))
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel2)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addGap(27, 27, 27)
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 86, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton2)
.addComponent(jButton1))
.addGap(18, 18, 18)
.addComponent(jLabel2)
.addGap(4, 4, 4))
);
getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-408)/2, (screenSize.height-327)/2, 408, 327);
}// </RAC3_HW@YAHOO.COM,>//GEN-END:initComponents
private void jLabel1MouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel1MouseEntered
// TODO add your handling code here:
jLabel1.setSize(jLabel1.getSize().width+20, jLabel1.getSize().height+20);
}//GEN-LAST:event_jLabel1MouseEntered
private void jLabel1MouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel1MouseExited
// TODO add your handling code here:
jLabel1.setSize(jLabel1.getSize().width-20, jLabel1.getSize().height-20);
}//GEN-LAST:event_jLabel1MouseExited
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
// TODO add your handling code here:
dispose();
}//GEN-LAST:event_jButton1ActionPerformed
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
// TODO add your handling code here:
System.exit(0);
}//GEN-LAST:event_jButton2ActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new tesSystemTray().setVisible(true);
}
});
}
Timer timerx = new Timer(100, new ActionListener() {
public void actionPerformed(ActionEvent E) {
if (jLabel2.getLocation().x <= (-jPanel1.getWidth()-50)){ jLabel2.setLocation(jPanel1.getWidth(),jLabel2.getLocation().y ); jLabel2.setLocation(jLabel2.getLocation().x-10, jLabel2.getLocation().y); }else{ jLabel2.setLocation(jLabel2.getLocation().x-10, jLabel2.getLocation().y); } } }); // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1; // End of variables declaration//GEN-END:variables }
Download Project

Source : bosojava.blogspot.com

Technorati Tags: ,,


Read More...

Membuat Aplikasi Statistika Sederhana Menggunakan Java dan Netbeans

Jumat, Mei 22, 2009 | | Comments

Akhirnya bisa posting diblog lagi setelah sekian lama tenggelam ama kuliah dan UTS. :P

Nah dipostingan kali ini saya bakalan ngebahas bagaimana membuat suatu aplikasi sederhana (ih, kenapa mesti pake sederhana, yang duluan Kalkulator juga pake sederhana) yang bisa menghitung nilai rataan,banyak dan jumlah data, menentukan nilai minimum dan maximum serta standar deviasinya.

APlikasi ini saya namakan Simple Statistic Application (ah sama aja ma Program Kalkulator Sederhana cuma namanya doank yang beda coz pake bahasa Inggris. wuuh). Kalo sebelumnya saya membuat dalam bahasa C#.Net dan menggunakan MS Visual Studio, kali ini saya membuat menggunakan bahasa Java dengan bantuan Netbeans 6.5. Nih screen capture dari aplikasi yang saya buat.

Aplikasi Statistik Java

Contoh Aplikasi Java

Kamu juga bisa mengunduh source code dari aplikasi ini, download di sini.

Untuk membuat aplikasi tersebut cukup mudah, apalagi dibantu menggunakan Netbeans.

Seperti yang saya bilang di atas, aplikasi ini mempunyai beberapa fungsi yaitu menghitung banyak dan jumlah data, rataan, nilai maksimum dan minimum serta standar deviasi. Data yang dapat dimasukan banyaknya tidak terbatas (pegel dah tuh tangan :P).

Nah trus cara bikinnya gimana?? Tenang, saya akan bahas sedikit bagaimana cara pembuatannya.

Pertama, kamu siapkan “peralatan tempur” yang akan dipake yaitu sebuah komputer dengan JDK 1.6+ dan Netbeans 6+ yang sudah terinstal.

Lets start…

Selengkapnya : syamsulbachri.co.cc

Technorati Tags: ,,


Read More...

KALKULATOR SEDERHANA MENGGUNAKAN JAVA

Jumat, Mei 22, 2009 | | Comments

Bagi yang sedang mempelajari bahasa pemrograman, contoh kalkulator sederhana merupakan hal yang sudah biasa. Mengapa contoh tersebut sering ditugaskan oleh dosen ? ya, karena di sana ada penerapan input, pengulangan, output, dan juga penerapan pemrograman modular.

Contoh yang saya buat di bawah ini adalah kalkulator sederhana dengan menggunakan bahasa Java. Pada contoh tersebut terdapat beberapa method yang diperlukan untuk sebuah kalkulator, seperti penjumlahan, pengurangan, perkalian dan pembagian. Ok deh, selamat belajar.

Kalkulator menggunakan java

Selengkapnya : http://risyana.wordpress.com

Technorati Tags: ,,


Read More...

Teori bahasa dan automata : bikin aplikasi kalkulator pertambahan pake java

Kamis, Januari 15, 2009 | | Comments

wew, sekitar 5 bulan yang lau gw dapet matakuliah Teori Bahasa dan Automata, dan kata Mrs Mira (selaku dosen gw) katanya ini baik kalo kita mo buat bahasa pemrograman baru :D

wew, kayaknya gak perlu dipelajari :D , wonk gw gak kan bikin bahasa pemrograman baru kok :D

tapi ternyata pas kesini, ternyara di automata juga belajar “parsing”

wkkkkkkkkk :evil:

wah gak nyangka makin kesini ternyata automata makin penting :D , contohnya kalo kita bikin aplikasi yang butuh parsing, dan juga regex :D

ternyata bahasa pemrograman yang dimaksud tuh bukan hanya kayak java, C++, tapi bisa juga MySQL :D

jadi nanti gw pengennya bikin bahasa SQL baru, jadi kalo biasanya kita pake “SELECT * FROM TABLENAME”, nanti gw pengennya kayak gini “TAMPILKAN SELURUH DATA DARI TABEL ORANG” heheheh, kayaknya keren!!!!

nach contoh sederhana gw sekarang bikin apliaksi kalkulator pertambahan (simple aja) pake automata :D

jadi aturan produksinya kayak gini :

S = A + A + A + …

A = 1…n

n = (Max Integer)

jadi sekarang tingal kita buat DFA nya :D , singkat cerita dah gw buat kayak gini :

DFA

wew, jadi gini keterangannya :

A = State Awal

B = Final State

A(1…9) -> B

B(0…9) -> B

B(+) -> C

C(1…9) -> B

btw, ngerti gak ama diagram DFA diatas? kalo gak ngerti mungkin harus belajar automata dulu :P

sekarang kita bua refresentasi dari A, B, C :D

nah karena A, B, C punya kesamaan, yaitu sebagai State jadi kita kita buat aja interface untuk State yang isinya validateCharacter(char), isFinalState(), isStartState() :D :

Selengkapnya, …..



Technorati Tags: ,,


Read More...

Membuat program untuk pemula : Java Aplikasi “Simulasi Lampu Lalu Lintas” di Netbeans 6.0.1

Kamis, Agustus 21, 2008 | | Comments

Bagi teman-teman yang ingin mencoba buat simulasi, disini saya mencoba membuatkan simulasi Lampu Lalulitas yang sangat sederhana. Mungkin simulasi ini cocok untuk teman yang baru pertama kali mencoba. Banyak perkenalannya, dan mudah. Selamat mencoba dan semoga bermanfaat.

Membuat program di NetBeans lebih mudah dibanding menggunakan alat bantu lain nya,karena NetBeans sudah merupakan IDE (Integrated Development Environment) + RAD (Rapid Application Development).

Bisa dipakai untuk membuat program Aplikasi (standalone), Applet (jalan di web client), Servlet atau Java Server Page (jalan di web server). Di blog yang akan dipraktekkan yaitu Java Applet dan Java Aplikasi. Program aplikasi biasanya digunakan untuk membuat program yang berhubungan dengan database. Bagi yang mau unduh NetBeans, kunjungi aja www.sun.com Misalnya saja kita akan membuat program lampu lalu lintas. Pada penulisan source code, untuk memperjelas penulisan dapat kita tambahkan komentar-komentar. Komentar tidak berpengaruh pada jalannya program, tanda komentar:

   //  … komentar …	: digunakan untuk komentar satu baris
/** …komentar…. */ : digunakan untuk komentar satu baris atau lebih, biasanya menjelaskan
hal yang berhubugan dengan kode atau jalannya program.
/* …komentar… */ : digunakan untuk komentar satu baris atau lebih, biasanya menjelaskan
keterangan diluar kode program seperti penulis, waktu, dll.



mulai membuat program Klik menubar File –> NewProject atau tekan alt + shift + n bersamaan Kemudian akan keluar kolom seperti ini:





Pilih Java Application, klik next kemudian muncul kolom selanjutnya:





Isi nama project dengan awalan huruf besar(standar penulisan), tanpa spasi. Jangan lupa untuk Uncentang “Create main Classnya”. Jadi deh, project kosong kita….





Seperti pada gambar, klik kanan pada project kita tadi, kemudian plih New –> JFrame Form , artinya kita akan membuat kelas frame baru.





Isikan datanya, jangan lupa nama kelas dengan awalan huruf kapital, supaya standar… Kemudian isi packagenya, misalnya yang saya isikan &quotLatihan.Blog”, berarti saya akan menyimpan kelas JFrame tadi di direktori &quotsrc/Latihan/Blog” , dengan begitu kita dapat mengelompokkan kelas-kelas mana saja yang sejenis dalam satu direktori sehingga mempermudah kita jika kita ingin menggunakan kelas tersebut pada project lain dengan mengimport kelas tersebut. Lumayan lah, menghemat mengetiknya…hehe… Setelah itu, bisa kita lihat ada Frame kosong. Inilah kehebatan dari GUI (Graphics User Interface), tinggal klik dan drop. Kita akan menambahkan komponen-komponen yang diperlukan :





Bisa teman coba-coba tinggal drag & drop dari kolom sebelah kanan. Semua itu Objek. Ada Objek tombol, panel, text, dll. Kalau mau di ubah textnya, tinggal rename atau klik kanan, Edit Text sedangkan yang berhubungan dengan input-output, lebih baik diubah nama variabelnya, agar mempermudah aksesnya dengan cara klik kanan, Change Variable Name…, untuk menghilangkan keambiguan dan mencocokkan dengan teman2 variabel atau nama objek yang saya gunakan:



 



Nama objek ditulis dengan huruf kecil standarnya… kemudian pilih nama objek yang mudah di ingat sehingga bisa membedakan objek secara cepat. Selesai juga interfacenya, kalau mau di ubah-ubah atau dikasih gambar-gambar atau icon, warna, tinggal ubah-ubah menu di kotak sebelah kanan bawah, di Properties. Kemudian, kita mulai dengan koding2 deh… Klik pada bagian source, dan yah kita dapatkan lahan buat koding2…





Semua objek dari kelas Radio Button pada propertiesnya bagian enabled agar di uncentang agar tidak dapat diubah.





Kemudian, klik Button Ubah, lihat kotak kanan bawah, bagian Events, di bagian Events inilah kita dapat memberikan kelakuan-kelakuan untuk objek. Klik Action Performed –> Enter… Yah disini kita menuliskan kode apa saja yang terjadi ketika tombol ubah ini diklik.



Tambahkan juga even Mouse Entered dan Mouse Exited. Kemudian, isikan kodenya hingga bagian sourcenya seperti ini:




/*
* MainFrame.java
*
* Created on July 26, 2008, 3:14 PM
*/

package Latihan.Blog;

import java.awt.Color;

/**
* @cca
*/
public class MainFrame extends javax.swing.JFrame {

int a =2; //pesan variable a

/** Creates new form MainFrame */
public MainFrame() {

initComponents(); //memasang atau mengompile objek-objek
}

//bagian ini tidak dapat di ubah
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
Generated code..

//yang terjadi ketika tombol ubah ditekan

private void bGantiActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:

a++; //nilai a terus bertambah satu setiap di tekan
//if conditional, bagian ini mengatur warna lampu dan radio button

if(a%3 == 0){
pMerah.setBackground(Color.GRAY); //set warna
pHijau.setBackground(Color.GREEN);
rbStop.setSelected(false); //seleksi yang tidak aktif
rbGo.setSelected(true); //seleksi yang aktif
}

else if(a%3 == 1){
pHijau.setBackground(Color.GRAY);
pJingga.setBackground(Color.ORANGE);
rbGo.setSelected(false);
rbHati2.setSelected(true);
}

else {
pJingga.setBackground(Color.GRAY);
pMerah.setBackground(Color.RED);
rbHati2.setSelected(false);
rbStop.setSelected(true);
}

}

private void bGantiMouseEntered(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
setCursor(Cursor.HAND_CURSOR); //saat kursor masuk area tombol, kursor berubah bentuk
}

private void bGantiMouseExited(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
setCursor(Cursor.DEFAULT_CURSOR); //saat kursor kelua area tombol, kursor kembali seperti semula
}

/**
* @ param args the command line arguments
*/
Dst...



Pastikan bagian ini, pada gambar atas sebelah kanan, berwarna hijau yang menandakan tidak ada masalah, dan bagian tab bawah, tab run, pastikan tidak ada tulisa error dan tidak ada tulisan berwarna biru, yang berarti warning, yang terkadang membuat program kita jadi aneh, gak jalan, dst….





Lalu, run project kita, tekan gambar segitiga hijau di kanan atas (run) atau tekan F6… Jadi deh program kita…



Gimana….??? Pada program ini kita masih belum memanfaatkan fitur-fitur java. Kita hanya gunakan satu kelas, belum rumit sehingga ketidakberadaan kelas belum kita rasakan.



source : ccasp.wordpress.com






Read More...

Dasar Pemograman Dengan Java

Kamis, Agustus 21, 2008 | | Comments

Pemrograman dengan Java
Java sebagai salah satu bahasa pemrograman baru menjanjikan banyak kemudahan bagi programer junior maupun senior. Tutorial ini akan membawa Anda mengenal lebih jauh bahasa ini melalui pembahasan konsep model perancangan dan petunjuk sederhana penggunaannya.

Apakah Java?
Java adalah bahasa pemrograman berorientasi objek yang dikembangkan oleh Sun Microsystems sejak tahun 1991. Bahasa ini dikembangkan dengan model yang mirip dengan bahasa C++ dan Smalltalk, namun dirancang agar lebih mudah dipakai dan ­platform independent, yaitu dapat dijalankan di berbagai jenis sistem operasi dan arsitektur komputer­­. Bahasa ini juga dirancang untuk pemrograman di Internet sehingga dirancang agar aman dan portabel.

Platform Independent
Platform independent berarti program yang ditulis dalam bahasa Java dapat dengan mudah dipindahkan antar berbagai jenis sistem operasi dan berbagai jenis arsitektur komputer. Aspek ini sangat penting untuk dapat mencapai tujuan Java sebagai bahasa pemrograman Internet di mana sebuah program akan dijalankan oleh berbagai jenis komputer dengan berbagai jenis sistem operasi. Sifat ini berlaku untuk level source code dan binary code dari program Java. Berbeda dengan bahasa C dan C++, semua tipe data dalam bahasa Java mempunyai ukuran yang konsisten di semua jenis platform. Source code program Java sendiri tidak perlu dirubah sama sekali jika Anda ingin mengkompile ulang di platform lain. Hasil dari mengkompile source code Java bukanlah kode mesin atau instruksi prosesor yang spesifik terhadap mesin tertentu, melainkan berupa bytecode yang berupa file berekstensi .class. Bytecode tersebut dapat langsung Anda eksekusi di tiap platform yang dengan menggunakan Java Virtual Machine (JVM) sebagai interpreter terhadap bytecode tersebut.

JVM sendiri adalah sebuah aplikasi yang berjalan di atas sebuah sistem operasi dan menerjemahkan bytecode program Java dan mengeksekusinya, sehingga secara konsep bisa dianggap sebagai sebuah interpreter. Proses pengeksekusian program Java dapat dilukiskan seperti di Gambar 1. Dengan cara ini, sebuah program Java yang telah dikompilasi akan dapat berjalan di platform mana saja, asalkan ada JVM di sana.

Kompiler dan interpreter untuk program Java berbentuk Java Development Kit (JDK) yang diproduksi oleh Sun Microsystems. JDK ini dapat didownload gratis dari situs java.sun.com. Interpreter untuk program Java sendiri sering juga disebut Java Runtime atau Java Virtual Machine. Interpreter Java, tanpa kompilernya, disebut Java Runtime Environment (JRE) dapat didownload juga di situs yang sama. Untuk mengembangkan program Java dibutuhkan JDK, sementara jika hanya ingin menjalankan bytecode Java cukup dengan JRE saja. Namun untuk mengeksekusi applet (sebuah bytecode Java juga) Anda biasanya tidak perlu lagi mendownload JRE karena browser yang Java-enabled telah memiliki JVM sendiri.

Library
Selain kompiler dan interpreter, bahasa Java sendiri memiliki library yang cukup besar yang dapat mempermudah Anda dalam membuat sebuah aplikasi dengan cepat. Library ini sudah mencakup untuk grafik, desain user interface, kriptografi, jaringan, suara, database, dan lain-lain.

OO
Java adalah bahasa pemrograman berorientasi objek. Pemrograman berorientasi objek secara gamblang adalah teknik untuk mengorganisir program dan dapat dilakukan dengan hampir semua bahasa pemrograman. Namun Java sendiri telah mengimplementasikan berbagai fasilitas agar seorang programer dapat mengoptimalkan teknik pemrograman berorientasi objek.

Sedikit perbandingan tambahan dengan bahasa C dan C++, Java banyak mewarisi konsep orientasi objek dari C++ namun dengan menghilangkan aspek-aspek kerumitan dalam bahasa C++ tanpa mengurangi kekuatannya. Hal ini mempermudah programer pemula untuk mempelajari Java namun mengurangi keleluasaan programer berpengalaman dalam mengutak-atik sebuah program. Di balik kemudahan yang ditawarkan Java, luasnya fasilitas library Java sendiri membuat seorang programer membutuhkan waktu yang tidak singkat untuk dapat menguasai penggunaan library-library tersebut.

source : pedagangasongan.blogspot.com

Technorati Tags: ,,


Read More...

Belajar Membuat Mobile Aplikasi dengan J2ME

Kamis, Agustus 21, 2008 | | Comments

Artikel ini menjelaskan tentang cara memulai membuat aplikasi J2ME (aplikasi Java untuk perangkat kecil, seperti selular, PDA dan lainnya) tanpa menuliskan kode kode programming (source-code) sedikitpun, karena artikel ini ditujukan kepada programmer yang belum pernah membuat aplikasi J2ME, banyak para programmer desktop PC yang mungkin merasa terlalu susah untuk bikin aplikasi J2ME untuk selular, mudah mudahan artikel singkat ini bisa memberikan penjelasan yang cukup dan memberikan semangat yang positif untuk memulai membuat aplikasi J2ME.

Membuat aplikasi J2ME tidak memerlukan banyak software yang rumit atau besar, salah satu software yang pasti diperlukan adalah J2SE SDK/JDK, dalam J2SE SDK/JDK ini terdapat runtime dan library untuk program Java secara umum termasuk juga untuk J2ME, pada saat artikel ini ditulis telah ada J2SE SDK v1.4.2.

Untuk menulis source-code J2ME, maka kita memerlukan sebuah J2ME IDE (integrated development environment), ada beberapa pilihan IDE yang diantaranya adalah Netbean, Sun One Java Studio Mobility, CodeWarrior dan notepad (atau text editor lainnya), untungnya semua software IDE yang disebutkan ini dapat di download gratis di website resmi masing masing perusahaan, jadi untuk membuat program J2ME maka pihak developer tidak perlu mengeluarkan uang sama sekali untuk membeli software IDE.

Pada artikel ini yang diulas adalah IDE dari Netbean v4.1 dengan tambahan Netbean Mobility Pack v4.1, tambahan ini diperlukan untuk membuat aplikasi J2ME, karena jika hanya dengan Netbean v4.1 hanya dapat membuat aplikasi Java saja, Netbean Mobility Pack adalah module-module aplikasi J2ME dan emulator device untuk testing dalam PC. IDE lainnya boleh dicoba tapi dianjurkan memakai Netbean v4.1 karena versi ini sangat mudah dioperasikan dan dirasakan cukup cepat dibanding IDE lainnya dalam hal loading, compiling, running dan debugging.

Langkah yang dilakukan oleh editor untuk memulai pembuatan aplikasi J2ME adalah:
1. Install J2SE SDK v1.4.2 (50MB)
2. Install Netbean v4.1 (47MB)
3. Install Netbean Mobility Pack v4.1 (18MB)
4. Jalankan Netbean v4.1, buat projek baru dan pilih kategori "Mobile" dan tipe projek "Mobile Application"
5. Pilih lokasi tempat menyimpan file-file projek ini, "Set as Main Project" dan "Create Hello MIDlet" jangan dirubah (tercentang)
6. Pada halaman "Platform selection" pilih "Device Configuration" = CLDC-1.0 dan "Device Profile" = MIDP-1.0 (versi terkecil yang dapat digunakan dalam semua selular yang support J2ME)
7. Setelah semua selesai (tempate telah dibuat), jalankan aplikasi ini dengan menekan tombol F6 (Run Main Project).
8. Lalu project ini akan dikompile dan emulator akan keluar, gunakan mouse untuk mengoperasikan emulator tersebut, dengan menekan nekan tombol keypad dalam emulator tersebut mirip seperti selular biasa.
9. Pada saat ini, aplikasi "Hello World" kita telah selesai dibuat dan bisa langsung di tes pada selular yang sebenarnya.

Untuk testing langsung ke dalam selular, yang diperlukan tidaknya banyak, hanya:
1. Selular phone yang mendukung J2ME (setidaknya MIDP v1).
2. Alat untuk memindahkan aplikasi (.JAR dan .JAD) yang sudah dibuat kedalam selular, dapat berupa kabel data, infrared, bluetooth atau card reader/writer jika selular yang ingin digunakan sebagai test device memiliki slot memory external, seperti MMC, MemoryStick dan lainnya. Cara pemindahan aplikasi J2ME sama seperti cara mengisi ringtone, image dan lainnya.
3. Software untuk memindahkan aplikasi J2ME ke dalam selular, bisa menggunakan aplikasi yang dibuat oleh perusahaan lain (bukan buatan vendor selular tersebut), seperti MobiMB yang berukuran kecil, mudah dan cepat.

Dalam artikel ini, selular yang digunakan sebagai test adalah Nokia 6015 (memakai kabel data USB) dan Nokia 9500 (memakai card reader/writer untuk mengkopi file .JAR dan .JAD ke dalam MMC). File file yang perlu ditransfer kedalam selular adalah file .JAR (dan .JAD jika diperlukan) yang berada dalam direktori "DIST", lokasi direktori ini telah ditentukan pada langkah ke 5.

Kita telah selesai membuat aplikasi J2ME "Hello World", untuk merubah text atau menambah objek objek lainnya seperti TextBox, RadioBox, tombol- tombol menu dan lainnya dapat kita lakukan dalam Netbean, juga tanpa perlu menuliskan source-code karena Netbean v4.1 sudah memiliki fungsi yang cukup bagus dan mudah dengan drag-and-drop mirip seperti programming Visual Basic dan lainnya yang hanya memerlukan perubahan pada properti-properti objek tersebut jika diperlukan seperti kata-kata nya, lebar tingginya dan lain lain.

Memang aplikasi yang telah dibuat ini tidak begitu berguna, tapi bagi para programmer yang telah menguasai bahasa pemrograman Java maka tidaklah sulit untuk membuat aplikasi atau game game untuk selular yang mungkin bisa dengan mudah dijual kepada perusahaan perusahaan mobile content aggregator karena bisnis mobile content cukup lumayan saat ini.

Pilihan J2ME untuk membuat aplikasi/game selular sangat bagus, karena ukuran file nya kecil (file JAR Hello World yang telah kita buat ini hanya kurang lebih 1 kilobyte saja), bahasa Java relatif lebih mudah dipelajari dibanding C/C++ untuk Symbian, Palm, Pocket PC dan Linux, dan alasan yang terakhir adalah software IDE untuk J2ME versi sekarang ini sangat baik dan lebih mudah digunakan.

Kemungkinan jika semua langkah yang dijelaskan diatas dicoba dengan sama persis oleh para pemula, maka mungkin hanya membutuhkan waktu kurang dari 10 menit hingga selesai dimasukan dalam selular, pihak editor hanya membutuhkan kurang dari 3 menit untuk menyelesaikannya.

source : demorgand.blogspot.com

Technorati Tags: ,,,


Read More...

Menambahkan Log4J pada Web Aplikasi Java

Minggu, Juni 22, 2008 | | Comments

Adanya log pada sebuah aplikasi web menjadikan kita mudah untuk melacak sebuah proses aliran data yang ada. Log juga menjadi suatu alat bantu bagi kita jika kita ingin melacak error yang terjadi dalam aplikasi web, sehingga kita tahu dimana proses data berhenti jika terjadi error, method atau fungsi apa yang mungkin terjadi salah logika, atau mungkin juga kesalahan-kesalahan lain yang disebabkan oleh kesalahan kita dalam merangkai kode-kode program.

Pada bahasa pemrograman java ada beberapa library yang bisa kita gunakan untuk menambahkan log. Beberapa diantaranya menjadi standar pembuatan aplikasi web. Pada prakteknya log membuat file pencatatan sendiri mengenai proses-proses apa yang memang kita rasa penting untuk kita catat guna melacak suatu proses aliran data. Pencatatan log dalam aplikasi web biasanya dipisahkan dengan masing-masing aplikasi web yang kita buat, dengan tujuan agar kita lebih mudah melacak proses alur data masing-masing aplikasi web.

Pada kesempatan kali ini kita akan mencoba menambahkan log pada aplikasi web kita dengan menggunakan library yang di release oleh Apache Foundation yaitu Log4J library. Karenanya, kita akan membutuhkan library tersebut, silahkan download library Log4J disini, sementara saya dalam percobaan akan menggunakan library log4j versi 1.2.8. jika anda ingin menggunakan library Log4J terbaru silahkan saja. Saya juga akan memakai Servlet Container Apache Tomcat 5.5 yang biasanya saya pakai untuk membuat web aplikasi.

Yang harus kita sama-sama pahami adalah: ketika pertama kali Tomcat di jalankan maka Tomcat akan membaca semua settingan aplikasi web kita melalui file web.xml yang ada pada folder WEB-INF di masing-masing folder web aplikasi kita. Dan semua library yang kita gunakan dalam aplikasi web kita harus kita letakkan dalam folder WEB-INF/lib pada masing-masing aplikasi yang kita buat.
Skenario untuk menambahkan log4j pada aplikasi web berdasarkan pemahaman tentang tingkah laku Servlet Container Tomcat di atas adalah: menjalankan suatu servlet yang berisi setting log4j.Oleh karena Tomcat akan membaca file web.xml, maka konfigurasi log4j ini akan kita letakkan di file web.xml. Dan pastinya kita akan membuat suatu servlet yang fungsinya menyeting log4j untuk aplikasi web kita. Karena log4j ini adalah library log yang terpisah dari Tomcat itu maka kita akan meletakkan library log4j ini dalam folder WEB-INF/lib.
Ok langsung saja kita buat servlet yang fungsinya melakukan setting terhadap log4j ini.berikut source code servlet ini. Saya beri nama servlet ini adalah Log4JInitServlet. Servlet ini merupakan extends HttpServlet sehingga kita bisa meng-override beberapa method milik dari class HttpServlet.

package org.mojo.app.web.servlet;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


public class Log4JInitServlet extends HttpServlet{
static Logger logger = Logger.getLogger(Log4JInitServlet.class.getName());

public void init(ServletConfig sc) throws ServletException {
super.init(sc);
ServletContext context = getServletContext();
//find out where this web application is located on machine and print it out
String sPath = context.getRealPath("/");
System.out.println("Application Path :" + sPath);

//finding log4j configuration file on web.xml
String sLogConfigFile = getInitParameter("log4j-init-file");
System.out.println("LogConfig: " + sLogConfigFile);

//configuring Log4J System using PropertyConfigurator Class
PropertyConfigurator.configure(sLogConfigFile);
logger.info("Logger has been initialized...");
}

public void destroy() {
super.destroy();
logger.info("Destroy");
}

protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
logger.info("doPost()");
}

protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
logger.info("doGet()");
}
}

Kita akan bahas kode diatas sebelum kita melangkan ke langkah berikutnya.

package org.mojo.app.web.servlet;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

Pada blok ini kita mendeskripsikan package servlet dimana file Log4JinitServlet ini akan kita letakkan dalam package dan juga kita meng-import kelas-kelas yang kita butuhkan. Kemudian kita akan membuat code untuk mendefinisikan kelas ini dan juga variabel statis logger sebagai Logger yang natinya bisa akan kita gunakan, berikut codenya.

public class Log4JInitServlet extends HttpServlet {
static Logger logger = Logger.getLogger(Log4JInitServlet.class.getName());
........

}

Setelah itu kita langsung membuat sebuah method yang merupakan overriding method dari HttpServlet yaitu method Init, pada super classnya method ini mempunyai access modifier berupa public, dan mempunyai parameter berupa ServletConfig dan terakhir mempunyai throw ServletException. Berikut blok kode method ini.

public void init(ServletConfig sc) throws ServletException {
.........
}

Dalam method inilah akan kita letakkan settingan konfigurasi log4j untuk aplikasi web kita, coba kita perhatikan potongan baris kodenya.

   super.init(sc);
ServletContext context = getServletContext();
//find out where this web application is located on machine and print it out
String sPath = context.getRealPath("/");
System.out.println("Application Path :" + sPath);

Baris pertama kita memanggil method asli dari asal kelas ini, lalu baris kedua kita mendefinisakan variabel context yang type data objectnya adalah ServletContext, kemudian pada baris ke empat kita mendefinisikan suatu variable String sPath yang kita isi dengan nilai yang kita ambil dari real-path variabel context yang sudah kita definisikan sebelumnya, untuk kemudian mencetaknya ke atas konsol. Sebenarnya baris ini boleh kita pakai boleh juga tidak, sebab inti dari baris kode ini adalah hanya mengetahui dimana aplikasi web kita terletak.

Ok mari kita perhatikan baris selanjutnya.

  //finding log4j configuration file on web.xml
String sLogConfigFile = getInitParameter("log4j-init-file");
System.out.println("LogConfig: " + sLogConfigFile);

//configuring Log4J System using PropertyConfigurator Class
PropertyConfigurator.configure(sLogConfigFile);
logger.info("Logger has been initialized...");

Pada baris pertama ada komentar yang memberitahukan bahwa kode dibawahnya akan mencari file konfigurasi pada web.xml. Dapat terlihat pada baris kedua kita mendefinisikan sebuah variabel String yang bernama sLogConfigFile yang di isi oleh nilai yang kita ambil dari parameter servlet yang nanti kita konfigurasi pada file web.xml, nama parameternya adalah “log4j-init-file”. Dalam web.xml nantinya kita akan membuat sebuah baris yang nilainya berisi log4j-init-file, dan dibawahnya nanti kita akan membuat baris ..... dimana titik-titik ini adalah value atau nilai dari nama parameter log4j-init-file.


Pada baris berikutnya kita juga bisa melihat ada komentar disana yang kurang lebih artinya begini “Menkonfigurasu System Log4J menggunakan kelas PropertyConfigurator”. Nah pada kodenya untuk mengkonfigurasi file log4j ini kita cukup memanggil method configure yang dimiliki oleh kelas PropertyConfigurator. Jika telah berhasil dikonfigurasi maka kita tinggal memanggil instance dari library log4j dengan cara memanggil method info dan mengisi paramater method info dengan string “Logger has beed initialized”.

Perlu diperhatikan bahwa jika string ini di cetak dalam file log maka artinya kita telah selesai mengkonfigurasi log untuk aplikasi web kita, sehingga untuk method-method lain yang kita buat, kita hanya cukup memanggil method info info ini saja, demikian halnya dengan kelas-kelas lain yang ingin kita buat. Kita hanya memanggil method info ini saja untuk memasukkan entry-entry pada log yang memang ingin kita buat dengan tidak lupa men-deklarasikan secara static object Logger seperti contoh di atas .
Pada prakteknya nanti log yang akan kita buat mempunya dua log, log yang pertama berisi log alur data biasa dan yang kedua log yang berisi alur data yang error. Untuk memanggil method error untuk logger cukup dengan mengganti logger.info() dengan logger.error().
Selain itu, dalam file ini kita juga mengoverride tiga method HttpServlet yaitu : method doPost, doGet, dan method destroy, tapi untuk tiga method ini tidak perlu saya jelaskan lagi sebab tidak terlalu penting dalam permasalah konfigurasi log4j ini. Tiga method ini hanya sebagai optional dari pilihan kita meng-ekstend kelas HttpServlet.
Sampai disini kita telah selesai membuat sebuah servlet yang berisi setting konfigurasi logger Log4j library ini. Sekarang mari kita lanjutkan dengan membuat file web.xml yang nantinya akan menjadi panduan si Servlet Container Tomcat untuk membaca web aplikasi kita.


Perhatikan kode lengkap web.xml di bawah ini.


Dapat kita lihat pada source code web.xml di atas bahwa ada sebuah servet yang dikonfigurasi dalam aplikasi web kita, servlet itu bernama Log4JInitServlet. Jika kita perhatikan dalam blok ......... ada sebuah kelas yang di panggil disana yaitu kelas Log4JInitServlet yang terletak pada package org.mojo.app.web.servlet, nah servlet yang baru saja selesai kita buat tadi ternyata di panggil disini. Servlet ini mempunyai param name log4j-init-file yang memang tadi kita buat pada servlet, lalu mempunyai param value yang bernilai /java/mojo/web_app/macam-macam/config/macam-macam_log4j.properties. Servlet ini juga akan di jalankan pada pertama kali Tomcat di start ditandai dengan blok 1

Perhatikan baris param value, ada yang harus kita pahami lebih dalam disini yang berkaitan dengan masalah behaviour Tomcat. Jika kita dalam System Windows menginstall Tomcat kita pada folder C:\Web\Tomcat_5.5, maka root Tomcat akan dimulai dari folder Tomcat tersebut, sementara root system akan di mulai dari drive C:\. Nah hubungannya dengan param value ini adalah, jika kita menggunakan caracter “/” pada permulaan nilai pada param-value seperti contoh diatas, maka file macam-macam_log4j.properties kita akan ada pada path: C:\Java\mojo\web_app\macam-macam\config\.Itulah salah satu behaviour tomcat jika kita menggunakan caracter “/ ” pada awal sebuah nilai dari parameter di web.xml maka tomcat akan membacanya dari root system. Bagaimana dengan yang tidak memulainya dengan karakter “/”, maka tomcat akan membacanya dari root dirinya sendiri. Yaitu C:\Web\Tomcat_5.5.

Selanjutnya kita akan membuat sebuah file property nya log4j, dalam membuat file ini kita harus mengikuti API(Application Performace Interface) dari vendor yang mengeluarkan library log 4j ini. Berikut file property log4 j ini.

# For the general syntax of property based configuration files see the
# documentation of org.apache.log4j.PropertyConfigurator.
# The root category uses two appenders called A1 and R. Since no priority is
# specified, the root category assumes the default priority for root
# which is DEBUG in log4j. The root category is the only category that
# has a default priority. All other categories need not be assigned a
# priority in which case they inherit their priority from the
# hierarchy.

#log4j.rootCategory=, R
# Root logger set to DEBUG using the A2 appender defined above.

log4j.rootLogger=, R, E, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%d %5p [%F:%L] - %m%n

# R is the RollingFileAppender that outputs to a rolling log
# file called web_app.log.
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=/java/mojo/web_app/macam-macam/logs/macam-macam.log
log4j.appender.R.Threshold=DEBUG

# Define a pattern layout for the file.
# For more information on conversion characters (i.e. d,p,t,c,l,m,n)
# please see the PatternLayout class of the Log4j API.
log4j.appender.R.layout=org.apache.log4j.PatternLayout

#log4j.appender.R.layout.ConversionPattern=%d [%c{1}] %-5p - %m%n
log4j.appender.R.layout.ConversionPattern=%d [%F:%L] %-5p - %m%n

# Set the max size of the file and the number of backup files
log4j.appender.R.MaxFileSize=2MB
log4j.appender.R.MaxBackupIndex=9

################################## Define Error File Log #########################################
# E is the ErrorFileAppender that outputs to a rolling log
# file called web_err.log.
log4j.appender.E=org.apache.log4j.RollingFileAppender
log4j.appender.E.File=/java/mojo/web_app/macam-macam/logs/macam-macam_err.log
log4j.appender.E.Threshold=ERROR

# Define a pattern layout for the file.
# For more information on conversion characters (i.e. d,p,t,c,l,m,n)
# please see the PatternLayout class of the Log4j API.

log4j.appender.E.layout=org.apache.log4j.PatternLayout
#log4j.appender.E.layout.ConversionPattern=%d [%c{1}] %-5p - %m%n
log4j.appender.E.layout.ConversionPattern=%d [%F:%L] %-5p - %m%n

# Set the max size of the file and the number of backup files
log4j.appender.E.MaxFileSize=100KB
log4j.appender.E.MaxBackupIndex=9

Kita tidak akan membahas satu demi satu isi dari file log4j properties ini. Kita cukup memperhatikan baris log4j.appender.R.File=/java/mojo/web_app/macam-macam/logs/macam-macam.log ini saja, baris ini adalah baris dimana logger nantinya akan membuat logger ditandai dengan nama macam-macam.log. Selain itu kita juga hanya harus memperhatikan baris log4j.appender.E.File=/java/mojo/web_app/macam-macam/logs/macam-macam_err.log. Disinilah logger akan meletakkan semua error log pada aplikasi web kita.
Sebagai petunjuk terakhir adalah tahap deployment aplikasi kita ini, copy file log4j library anda ke dalam aplikasi web anda dan letakkan di folder WEB-INF/lib, kemudia letakkan kelas Log4JInitServlet ini pada path package yang benar dan terakhir jangan lupa mengkopi file properties log4j nya ke juga kedalam path yang benar sesuai dengan konifgurasi pada file web.xml, jangan lupa juga untuk membuat folder logs dalam path yang benar berdasarkan konfigurasi pada file log4j.properties.
Selesai sudah, pembahasan kita kali ini, selamat mencoba dan jangan lupa feedbacknya ke tulisan ini :D


Semoga Bermanfaat

Menteng, 15 Juni 2008

Josescalia

source : josescalia.blogspot.com


 



Technorati Tags: ,,


Read More...

Form Login J2ME

Kamis, April 03, 2008 | | Comments

Dulu awal awal belajar bahasa pemrograman yaitu Pascal trus kemudian juga Vb, Aku suka sekali bikin aplikasi yang ada form untuk login nya. Program apapun dulu tak kasih form login supaya yang bisa pake program tersebut cuma Aku saja temen temen yang lain ga bisa dan harus minta ijin ke Aku dulu kalo mau pake program tersebut :D (hehehe pelit banget ya).

Kemudian Setelah belajar Java Kebiasaan tersebut ga hilang. Di bawah ini salah satu contoh Source Code aplikasi Login Untuk J2ME.

/**


* @author MasWawa


*/


import javax.microedition.midlet.MIDlet;


import javax.microedition.lcdui.*;


 


public class login extends MIDlet implements CommandListener {


private Display display;


private TextField userName;


private TextField password;


private Form form;


private Command cancel;


private Command login;


 


public login() {


userName = new TextField("LoginID  :", "", 10, TextField.ANY);


password = new TextField("Password :", "", 10, TextField.PASSWORD);


form = new Form("Login");


cancel = new Command("Cancel", Command.CANCEL, 2);


login = new Command("Login", Command.OK, 2);


}


 


public void startApp() {


form.setTitle("Silakan Login");


form.append(userName);


form.append(password);


form.addCommand(cancel);


form.addCommand(login);


form.setCommandListener(this);


display.setCurrent(form);


}


 


public void pauseApp() {


}


 


public void destroyApp(boolean unconditional) {


notifyDestroyed();


}


 


public void validateUser(String name, String password) {


/** "usernya" dan "passwordnya" bisa diganti sesuai keinginan*/


if (name.equals("usernya") &amp;&amp; password.equals("passwordnya")) {


bener();


} else {


tryAgain();


}


}


 


public void bener() {


Alert benar = new Alert("Login Sukses", "Selamat Login Sukses", null, AlertType.ERROR);


error.setTimeout(Alert.FOREVER);


display.setCurrent(error);


}


 


public void tryAgain() {


Alert salah = new Alert("Login salah", "Silakan Ulangi lagi", null, AlertType.ERROR);


salah.setTimeout(Alert.FOREVER);


userName.setString("");


password.setString("");


display.setCurrent(salah, form);


}


 


public void commandAction(Command c, Displayable d) {


String label = c.getLabel();


if(label.equals("Cancel")) {


destroyApp(true);


} else if(label.equals("Login")) {


validateUser(userName.getString(), password.getString());


}


}


}





Source : maswawa.web.id



 




Technorati Tags: ,




Read More...

Tutorial GUI untuk Aplikasi Mobile (MIDlet): Command

Senin, Maret 17, 2008 | | Comments

#1: Create New Project
Proses pembuatan project baru dilakukan dengan menjalankan program KToolbar (versi Wireless Toolkit WTK2) dari Sony Ericsson SDK 2.2.3 for the Java(TM) ME Platform dari Start Menu. Tampilannya adalah sebagai berikut:

Proses selanjutnya adalah mengisikan Project Name dan MIDlet Class Name. Untuk tutorial ini, ProjectName-nya adalah TutotialMobileGUI-Command dan MIDlet Class Name-nya MobileGUI_Command (maaf, yang digambar salah :p). Perlu Anda ingat, MIDlet Class Name yang kita isikan nantinya harus sesuai dengan class yang kita buat waktu menuliskan kode program. Setelah kita meng-klik tombol Create Project, maka akan terbentuk direktori TutorialMobileGUI-Menu di direktori apps dari Sony Ericsson SDK 2.2.3 for the Java(TM) ME Platform dengan sub direktori bin, classes, lib, res, dan src.

#2: Write the Code
Proses berikutnya adalah menuliskan kode program dengan menggunakan teks editor. Saya tidak akan membahas baris demi baris kode program yang akan kita buat melainkan bagian intinya saja. Untuk membuat menu, selain menggunakan class List kita juga dapat menggunakan class Command yang ada di package javax.microedition.lcdui dengan parameter commandType ITEM atau SCREEN. Menu utama yang akan kita buat pada tutorial ini terdiri dari “Write Message”, “Inbox”, “Outbox”, “Drafts”, dan “Sent Messages”. Langkah pertama adalah membuat command yang akan digunakan dengan kode program sebagai berikut:

Tutorial ini akan memberikan panduan mengenai bagaimana membuat Graphical User Interface untuk aplikasi mobile (MIDlet) dengan menggunakan teknologi Java. Pada tutorial kali ini, topik yang akan dibahas adalah bagaimana membuat menu untuk aplikasi mobile (MIDlet) menggunakan Command Class. Tools yang digunakan dalam tutorial ini adalah teks editor (Notepad, TextPad, dll) untuk menuliskan kode program dan Sony Ericsson SDK 2.2.3 for the Java(TM) ME Platform untuk proses built dan test. Anda juga bisa menggunakan Sun JAVA(TM) Wireless Toolkit 2.5 untuk proses build dan test aplikasi mobile yang akan dikembangkan.

private Command writeCommand = new Command(”Write Message”,Command.SCREEN,2);


private Command inboxCommand = new Command(”Inbox”,Command.SCREEN,2);


private Command outboxCommand = new Command(”Outbox”,Command.SCREEN,2);


private Command draftsCommand = new Command(”Drafts”,Command.SCREEN,2);


private Command sentCommand = new Command(”Sent Messages”,Command.SCREEN,2);


private Command exitCommand = new Command(”Exit”, Command.SCREEN,1);


 


/* Pembuatan command dengan commandType ITEM


private Command writeCommand = new Command(”Write Message”,Command.ITEM,2);


private Command inboxCommand = new Command(”Inbox”,Command.ITEM,2);


private Command outboxCommand = new Command(”Outbox”,Command.ITEM,2);


private Command draftsCommand = new Command(”Drafts”,Command.ITEM,2);


private Command sentCommand = new Command(”Sent Messages”,Command.ITEM,2);


private Command exitCommand = new Command(”Exit”, Command.ITEM, 1);


*/





Pembuatan command dapat dilakukan dengan memanggil konstruktor class Command dengan statement Command(String label, int commandType, int priority), dimana label menunjukkan label dari command yang akan ditampilkan pada display, commandType menunjukkan tipe dari command yang akan dibuat (ITEM, SCREEN, OK, CANCEL, STOP, EXIT, BACK, dan HELP), dan priority menunjukkan level prioritas dari command yang akan dipetakan ke keypad dari setiap device oleh AMS (Application Management Software). Proses mapping command ke keypad untuk masing-masing device dapat berubah tergantung dari tipe command yang ditentukan (lihat hasil testing pada gambar di bawah). Setelah command dibuat, maka langkah selanjutnya adalah menambahkan command-command tersebut ke form dengan kode sebagai berikut:






menuList.addCommand(writeCommand);


menuList.addCommand(inboxCommand);


menuList.addCommand(outboxCommand);


menuList.addCommand(draftsCommand);


menuList.addCommand(sentCommand);


menuList.addCommand(exitCommand);





Proses mendeteksi command mana yang di pilih oleh user dan proses apa yang akan dikerjakan setelah user mengklik menu tersebut dapat dilakukan dengan kode program sebagai berikut:






/*


String label = c.getLabel();


if (label.equals(”Write Message”))


{


   showWriteForm();


}


else if (label.equals(”Inbox”))


{


   showInboxForm();


}


else if (label.equals(”Outbox”))


{


   showOutboxForm();


}


else if (label.equals(”Drafts”))


{


   showDraftForm();


}


else if (label.equals(”Sent Messages”))


{


   showSentForm();


}


else if (label.equals(”Exit”))


{


   destroyApp(true);


}


else if (label.equals(”Back”))


{


   mainMenu();


}


*/


 


if (c == writeCommand)


{


   showWriteForm();


}


else if (c == inboxCommand)


{


   showInboxForm();


}


else if (c == outboxCommand)


{


   showOutboxForm();


}


else if (c == draftsCommand)


{


   showDraftForm();


}


else if (c == sentCommand)


{


   showSentForm();


}


else if (c == exitCommand)


{


   destroyApp(true);


}


else if (c == backCommand)


{


   mainMenu();


}





Setelah selesai mengetik kode program aplikasi mobile (MIDlet), maka kode program harus kita simpan pada sub direktori src dari direktori project kita.



#3: Build and Test


Langkah terakhir adalah melakukan proses build dan test menggunakan Sony Ericsson SDK 2.2.3 for the Java(TM) ME Platform KToolbar. Proses build sendiri sebenarnya terdiri dari beberapa langkah, yaitu kompilasi sehingga file .java kita nantinya menjadi .class dan pre-verify untuk memfilter class-class yang invalid yang hasilnya berupa file .jar. Setelah selesai proses build, maka langkah selanjutnya adalah melakukan test dengan menggunakan emulator yang tersedia. Hasilnya test-nya adalah sebagai berikut:





Testing dengan Emulator Sony Ericsson W800





Testing dengan Emulator Sun JAVA(TM) Wireless Toolkit 2.5



Download File Tutorial



source : inf.uajy.ac.id




Technorati Tags: ,,


Read More...