Java Programming Tips
Learn The Concept!
Programming Is Not How To Remember Codes But Rather To Understand How It Works
Friday, August 25, 2006
Monday, May 23, 2005
Membuat File Manifest
Manifest File di Java digunakan sebagai informasi identitas aplikasi dalam sebuah archive, terutama Java Archive (JAR).
Manifest File merupakan file dengan format text.berisi informasi dari aplikasi yang
Akan didistribusikan dalam JAR.
Dengan file manifest, anda tidak perlu menjalakan aplikasi dalam JAR dengan cara manual, dalam sistem operasi Windows cukup double click pada file dengan extension .jar
Manifest disimpan dalam file dengan nama MANIFEST.MF dalam direktori META-INF.
Berikut contoh dalam sebuah file manifest,
Manifest-Version: 2.0
Merupakan informasi versi dari file manifest
Main-Class: org.idekreatif.javatips.UsingSwingMenu
Merupakan informasi dari nama class utama yang akan dilaunching oleh Java Virtual Machine.
Name: org/idekreatif/javatips/
Merupakan susunan direktori package.
Sealed: true
Menunjukkan apakah class utama harus berada dalam satu paket JAR atau tidak.
Class-Path: servlet.jar infobus.jar acme/beans.jar
Menentukan library-library tambahan untuk aplikasi yang akan di-run oleh aplikasi.
Berikut ini adalah informasi tambahan mengenai aplikasi anda.
Specification-Title: "Judul Spesifikasi Aplikasi"
Specification-Version: "1.0"
Specification-Vendor: "Perusahaanku, Inc.".
Implementation-Title: "Programku "
Implementation-Version: "versi Programku"
Implementation-Vendor: "Perusahaanku"
Sunday, May 22, 2005
Swing : Membuat DataGrid dengan JTable
//JTable di Swing fungsinya mirip dengan DataGrid di VB/Delphi
//di JTable anda dapat mengisi data dengan
//array 2 dimensi atau vector dalam vector
private JTable _newTable;
public Vector dataRecord = new Vector();
public Vector columnName = new Vector();
public UsingTable(){
super();
init();
addColumn();
addRecord();
_newTable=createTable();
//mendefinisikan ScrollPane untuk Table
//ScrollPane sangat penting agar Table
//Dapat menampilkan nama kolumn dan scroll atas/bawah
JScrollPane apane = new JScrollPane(_newTable);
_newTable.setPreferredScrollableViewportSize(new Dimension(500, 70));
this.getContentPane().add(apane);
}
protected void init(){
this.setTitle("Membuat Table dengan JTable");
this.setSize(600,400);
}
//mendefinisikan kolumn
private void addColumn(){
columnName.add("Kolom 1");
columnName.add("Kolum 2");
columnName.add("Kolum 3");
}
//menambah data kolumn dengan vector dalam vector
private void addRecord(){
//ini vector item yang menyimpan record
Vector aitem = new Vector();
aitem.add("record1kolum1");
aitem.add("record1kolum2");
aitem.add("record1kolum3");
dataRecord.add(aitem);
aitem = new Vector();
aitem.add("record2kolum1");
aitem.add("record2kolum2");
aitem.add("record2kolum3");
dataRecord.add(aitem);
}
//mendefinisikan JTable dengan constructor (vector,vector)
public JTable createTable(){
JTable newTable = new JTable(dataRecord,columnName);
return newTable;
}
Thursday, May 19, 2005
Swing : Pertukaran Data Antar Frame
Seperti halnya pada bahasa pemrograman visual yang lain (VB/Delphi), anda dapat men-set nilai dari variable yang berada di form lain (public variable/attribute).
Bedanya dengan VB/Delphi anda harus mendefinisikan variable yang bisa diakses antar Frame/Form dengan "static". Harus diingat bahwa Frame/Form yang memilik variable tersebut harus sudah diinstance sebelumnya.
contoh :
pada Class FormA -> public static String dataTest=null;
pada Class FormB -> FormA.dataTest="Test 1";
Wednesday, May 18, 2005
Swing : Membuat ToolBar
//Toolbar adalah kumpulan menu-menu dengan icon sebagai shortcut
//dari bagian aplikasi
//Toolbar di SWING merupakan kelompok dari JButton, anda harus
//mendefinisikan dulu button, kemudian tambahkan button tersebut
//ke dalam Toolbar
JButton button1;
JButton button2;
JToolBar toolbar;
public UsingToolBar(){
super();
init();
}
private void init(){
this.setSize(400,400);
this.setTitle("Membuat ToolBar");
//definisikan toolbar
toolbar = new JToolBar("It's MyToolBar" );
//anda dapat men-set apakah toolbarnya bisa floating
//atau tidak, secara default adalah true
toolbar.setFloatable(true);
//membuat button dengan method createButton- lihat
//di method createButton
button1 = createButton("icons/more.gif","test1");
button1.addActionListener(this);
button2 = createButton("icons/hurufA.gif","test2");
//menambahkan button1 dan button2 ke toolbar
toolbar.add(button1);
toolbar.add(button2);
//menambahkan toolbar pada container.
this.getContentPane().add(toolbar,BorderLayout.PAGE_START);
//this.getContentPane().add(button2);
}
//method membuat button, mengurangi peng-kodean yang berulang-ulang
public JButton createButton(String respath,String tooltip){
//mengambil resource path dari file icon
//format icon dalam bentuk raster (gif,jpeg,tif,bmp)
String filepath=this.getClass().getClassLoader().
getResource(respath).getPath();
//mendefinisikan icon dengan interface Icon dan subclassnya ImageIcon;
Icon aimgIcon = new ImageIcon(filepath);
JButton button = new JButton(aimgIcon);
button.setMaximumSize(new Dimension(24,24) );
//menambahkan tooltip pada button;
button.setToolTipText(tooltip);
return button;
}
public static void main(String[] args) {
UsingToolBar aframe = new UsingToolBar();
aframe.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);}
});
aframe.pack();
aframe.show();
}
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(button1) ){
JOptionPane.showMessageDialog(this ,"Halo","Coba Dialog",
JOptionPane.INFORMATION_MESSAGE);
}
}
Swing : Button dengan Icon
JButton button1;
JButton button2;
public CreateButtonIcon(){
super();
init();
}
private void init(){
this.setSize(400,400);
this.setTitle("Membuat Button Yang Memiliki Icon");
//mengatur layout
FlowLayout alayout = new FlowLayout(FlowLayout.LEFT,1,1);
this.getContentPane().setLayout(new FlowLayout());
//membuat button dengan method createButton- lihat
//di method createButton
button1 = createButton("icons/more.gif","test1");
button1.setMaximumSize(new Dimension(10,10) );
button2 = createButton("icons/hurufA.gif","test2");
//menambahkan button pada container.
this.getContentPane().add(button1);
this.getContentPane().add(button2);
}
//method membuat button, mengurangi peng-kodean yang berulang-ulang
public JButton createButton(String respath,String tooltip){
//mengambil resource path dari file icon
//format icon dalam bentuk raster (gif,jpeg,tif,bmp)
String filepath=this.getClass().getClassLoader().
getResource(respath).getPath();
//mendefinisikan icon dengan interface Icon dan subclassnya ImageIcon;
Icon aimgIcon = new ImageIcon(filepath);
JButton button = new JButton(aimgIcon);
//menambahkan tooltip pada button;
button.setToolTipText(tooltip);
return button;
}
public static void main(String[] args) {
CreateButtonIcon aframe = new CreateButtonIcon();
aframe.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);}
});
aframe.pack();
aframe.show();
}
Tuesday, May 17, 2005
Swing : Layout Manager #3 - GridBagLayout
//GridBagLayout adalah layout manager yang mengatur komposisi
//dari komponen dengan aturan dasar grid tetapi lebih fleksibel
//Dengan GrigBagLayout anda dapat menyusun komponen tidak
//harus dengan aturan rata kiri-kanan atau dalam acuan 1 kolum,dsb
//Anda memerlukan class GridBagConstraints sebagai pengatur posisi
private GridBagLayout alayout=null;
private GridBagConstraints aconstraint=null;
public UsingGridBagLayout(){
super();
init();
}
public void init(){
alayout = new GridBagLayout();
aconstraint = new GridBagConstraints();
this.setTitle("Contoh Menggunakan GridBagLayout");
this.setSize(400,400);
this.getContentPane().setLayout(alayout);
//GridBagConstraints.BOTH - menresize komponen secara
//vertikal dan horizontal
aconstraint.fill=GridBagConstraints.BOTH;
JButton button1 = new JButton("Tombol 1");
JButton button2 = new JButton("Tombol 2");
JButton button3 = new JButton("Tombol 3");
JButton button4 = new JButton("Tombol 4");
//men-set constraint ke setiap button
alayout.setConstraints(button1,aconstraint);
alayout.setConstraints(button2,aconstraint);
alayout.setConstraints(button3,aconstraint);
this.getContentPane().add(button1);
this.getContentPane().add(button2);
this.getContentPane().add(button3);
//GridBagConstraints.REMAINDER - menentukan bahwa komponen
//yang diset adalah komponen terakhir, bila ada
//komponen selanjutnya
//maka komponen baru tersebut diletakkan di baris baru.
aconstraint.gridwidth=GridBagConstraints.REMAINDER;
alayout.setConstraints(button4,aconstraint);
this.getContentPane().add(button4);
//gridheight digunakan untuk menentukan jumlah baris
// yang "diambil" oleh komponen
//gridwidth digunakan untuk menentukan jumlah kolom
// yang "diambil" oleh komponen
aconstraint.gridheight=2;
aconstraint.gridwidth=1;
aconstraint.weighty=1.0;
JButton button5 = new JButton("Tombol 5");
alayout.setConstraints(button5,aconstraint);
this.getContentPane().add(button5);
aconstraint.gridheight=1;
aconstraint.weighty=0.0;
aconstraint.gridwidth=GridBagConstraints.REMAINDER;
JButton button6 = new JButton("Tombol 6");
JButton button7 = new JButton("Tombol 7");
alayout.setConstraints(button6,aconstraint);
alayout.setConstraints(button7,aconstraint);
this.getContentPane().add(button6);
this.getContentPane().add(button7);
}
public static void main(String[] args) {
UsingGridBagLayout aframe = new UsingGridBagLayout();
aframe.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);}
});
aframe.pack();
aframe.show();
}
Thursday, May 12, 2005
Menyimpan Data Text (line based) ke File
//sebelumnya kita telah membahas mengenai membaca file text
//sekarang bagaimana dengan menulis filetext dengan format
//yang telah ditentukan
public static void main(String[] args) {
String filepath=WritingTextFile.class.getClassLoader().
getResource("datafile/listmhs.txt").getPath();
System.out.println("filepath:"+filepath);
try {
FileOutputStream aoutstream = new FileOutputStream(filepath);
//Gunakan DataOutputStream untuk menulis text String dengan methods writeUTF
DataOutputStream dataout = new DataOutputStream(aoutstream);
//menyimpan data ke stream
// \n digunakan untuk line entry/baris baru
//gunakan kreatifitas anda untuk menyimpan data dari tiap-tiap field
dataout.writeUTF("01#Adi#Jl.Mahasiswa\n");
dataout.writeUTF("02#Aman#Jl. Kebangsaan\n");
dataout.writeUTF("03#Amin#Jl. Mulia\n");
//men-force stream untuk disimpan ke file;
dataout.flush();
System.out.println("Writing Data Done!");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
ASCII ke Char dan Sebaliknya
//setiap character memiliki nilai ASCII
//di Java untuk mengubah character ke nilai ASCII
//anda cukup melakukan casting ke tipe int dengan (int)
//untuk sebaliknya casting dengan (char)
char a= 'A';
int aint= (int)a;
System.out.println("nilai ASCII dari a : "+aint);
System.out.println("character dari bilangan aint :"+(char)aint);
Saturday, May 07, 2005
Swing : Layout Manager #2 -GridLayout
//Seperti halnya FlowLayout, GridLayout merupakan turunan dari LayoutManager
//untuk mengatur posisi komponen
//Bedanya dengan FlowLayout, GridLayout mengatur komponen dengan komposisi
//baris dan kolum seperti sebuah bentuk table
//yang dipecah merata dengan jumlah baris dan kolum tertentu
public void init(){
this.setSize(300,300);
//definisi Gridlayout dengan memberikan nilai baris=4, kolum=4,
//spasi horisontal=5, spasi vertikal=5
GridLayout alayout = new GridLayout(4,4,5,5) ;
this.getContentPane().setLayout(alayout);
this.getContentPane().add(new JButton("1"));
this.getContentPane().add(new JButton("2"));
this.getContentPane().add(new JButton("3"));
this.getContentPane().add(new JButton("4"));
this.getContentPane().add(new JButton("5"));
}
public UsingGridLayout(){
super();
init();
}
public static void main(String[] args) {
UsingGridLayout anew = new UsingGridLayout();
anew.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);}
});
anew.show();
}
Swing : Layout Manager #1 - FlowLayout
//Dipemrograman Java anda tidak akan menemukan method atau attribute yang
//mengatur komponen secara pixel seperti menentukan berapa pixel left
//dan berapa pixel top,
//Sebagai pengantinya Java menyediakan LayoutManager untuk mengatur posisi
//masing komponen.
//Berikut ini adalah contoh penggunaan
//FlowLayout(LayoutManager yang sederhana)
//FlowLayout adalah turunan dari LayoutManager yang mengatur komponen
//dengan cara mengurut dari kiri-kekanan, posisi tengah
//atau dari kanan-kekiri.
//FlowLayout cocok digunakan untuk mengatur button dan komponen text.
public UsingFlowLayout(){
super();
init();
}
public void init(){
this.setSize(300,300);
//mendefinisikan FlowLayout dengan
//mengatur posisi start component, dan jarak antar komponen
//posisi start component dapat diset dengan LEFT, CENTER dan RIGHT
FlowLayout aflow = new FlowLayout(FlowLayout.LEFT,10,10);
this.getContentPane().setLayout(aflow);
this.getContentPane().add(new JButton("1"));
this.getContentPane().add(new JButton("2"));
this.getContentPane().add(new JButton("3"));
this.getContentPane().add(new JButton("4"));
}
public static void main(String[] args) {
UsingFlowLayout anew = new UsingFlowLayout();
anew.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);}
});
anew.show();
}
Wednesday, May 04, 2005
Swing : Pengenalan Swing #2 - Menu PullDown
//konsep membuat menu pull down pada Swing
//urutan definisi komponennya sbb :
//1. buatlah JMenuBar
//2. buatlah JMenu, tambahkan komponen JMenu pada JMenuBar
// dgn method add()
//3. buatlah JMenuItem, tambahkan komponen JMenuItem pada JMenu
// dgn method add()
//deklarasi component
private JMenuBar jJMenuBar = null;
private JMenu jMenuFile = null;
private JMenu jMenuHelp =null;
private JMenuItem menuOpen=null;
private JMenuItem menuExit=null;
private JMenuItem menuIndex=null;
private JMenuItem menuAbout=null;
//constructor class;
public UsingSwingMenu() {
super();
initialize();
}
//initialisasi component-component
private void initialize() {
this.setJMenuBar(getJJMenuBar());
this.setSize(300,200);
this.setTitle("JFrame");
}
//mendefinisikan Menu Bar
private JMenuBar getJJMenuBar() {
if (jJMenuBar == null) {
jJMenuBar = new JMenuBar();
jJMenuBar.add(getJMenuFile());
jJMenuBar.add(getJMenuHelp());
}
return jJMenuBar;
}
//mendefinisikan Menu "File"
private JMenu getJMenuFile() {
if (jMenuFile == null) {
jMenuFile = new JMenu("File");
menuOpen = new JMenuItem("Open");
menuOpen.addActionListener(this);
menuExit = new JMenuItem("Exit");
//menambah menu item pada Menu "File"
jMenuFile.add(menuOpen);
jMenuFile.add(menuExit);
}
return jMenuFile;
}
//mendefinisikan Menu "Help"
private JMenu getJMenuHelp() {
if (jMenuHelp == null) {
jMenuHelp = new JMenu("Help");
menuIndex = new JMenuItem("Index");
menuIndex.addActionListener(this);
menuAbout = new JMenuItem("About");
menuAbout.addActionListener(this);
//menambah menu item pada Menu "Help"
jMenuHelp.add(menuIndex);
jMenuHelp.add(menuAbout);
}
return jMenuHelp;
}
public static void main(String[] args) {
//mengeset format tampilan window standar java
JFrame.setDefaultLookAndFeelDecorated(true);
UsingSwingMenu amenu = new UsingSwingMenu();
amenu.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);}
});
amenu.show();
}
//tempat eksekusi method dari event component
public void actionPerformed(ActionEvent e) {
if (e.getSource()==menuOpen)
JOptionPane.showMessageDialog(this ,"Ini Hasil Klik Menu Open","Halo", JOptionPane.INFORMATION_MESSAGE);
}
Monday, May 02, 2005
Menggunakan Map/HashMap
//HashMap adalah class implementasi dari Map, Map itu sendiri adalah
//interface yang mempunyai fungsi untuk memetakan nilai dengan key unik.
//HashMap sangat bermanfaat sebagai memory record management, dimana
//tiap record dapat disimpann di sebuah Map, kemudian setiap Map
//diletakkan pada vector, list atau set yang masih turunan dari Collection
//Demikian pula Hashmap sangat baik untuk menghandle resultset dari hasil query
Map arecord= new HashMap();
arecord.put("id","1001");
arecord.put("nama","Adi");
arecord.put("alamat","Jl. Ahmad Yani 22");
//mengambil data map dengan method get()
System.out.println(arecord.get("id"));
System.out.println(arecord.get("nama"));
System.out.println(arecord.get("alamat"));
//Meletakkan map ke vector
Vector mhsList = new Vector();
mhsList.add(arecord);
//menambah record
arecord=new HashMap();
arecord.put("id","1002");
arecord.put("nama","Aman");
arecord.put("alamat","Jl. Kebangsaan 88");
mhsList.add(arecord);
//mencetak virtual table (vector mhsList)
for (int i=0;i<mhsList.size();i++){
System.out.print(((Map)mhsList.get(i)).get("id") +"|");
System.out.print(((Map)mhsList.get(i)).get("nama") +"|");
System.out.println(((Map)mhsList.get(i)).get("alamat") +"|");
}
Sunday, May 01, 2005
JDBC : Select/Query/List Table Record
//jangan lupa import java.sql.*;
//deklarasikan koneksi database
Connection conn=null;
try
{
//definisikan driver untuk Database Mysql,
//setiap Database mempunyai driver yang berbeda-beda,
//kunjungi situs Database yang anda gunakan untuk mendowload JDBC Driver
Class.forName("org.gjt.mm.mysql.Driver");
//Setting connection, ingat setiap database mempunyai model konfigurasi URL yang berbeda
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/testDB",
"root",
"root");
//Definisikan statement
Statement stmt = conn.createStatement();
//Definisikan query beserta ResultSet sebagai buffer hasil query
//khusus untuk SELECT anda harus menggunakan method executeQuery,
//untuk INSERT,DELETE,UPDATE anda harus menggunakan method executeUpdate
ResultSet rs = stmt.executeQuery("SELECT * FROM Table1");
//menampilkan hasil, perulangan sampai end of records
while(rs.next())
{
//mengambil masing-masing record, anda bisa menggunakan method lain
//selain getString, seperti getInt, getDouble, getFloat
System.out.println(
rs.getString("ID") + " || " + rs.getString("NAMA"));
}
rs.close();
stmt.close();
}
//menghandle Exception
catch(SQLException e)
{
System.out.println("SQLException: " + e.getMessage() );
}
catch(ClassNotFoundException e)
{
System.out.println("ClassNotFoundException: " + e.getMessage());
}
finally
{
//Clean up resources, menutup koneksi
if(conn != null)
{
try
{
conn.close();
}
catch (Exception ignored) {}
}
}
Friday, April 29, 2005
Swing : Pengenalan Swing #1
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
//Swing adalah Library yang berisi kumpulan komponen
//yang digunakan untuk membuat sebuah aplikasi berbasis GUI
//Pada Swing, seperti halnya pada bahasa pemrograman visual lainnya
//seperti VB atau Delphi, anda harus mendefinisikan/menginiatilisasikan
//komponen beserta Event-eventnya.
// Langkah-langkah standar membuat aplikasi Swing adalah
// 1. Definisikan Frame utama
// 2. Initialisasi/Set Component-component
// 3. Tambahkan Event-event
// 4. Tambahkan Component pada container
// 5. Run!
public class UsingSwingBasic extends JFrame implements ActionListener{
//Constructor Class
public UsingSwingBasic(){
super();
//initialisasi component diletakkan di method Init()
Init();
}
void Init(){
//menge-set title dari windows
this.setTitle("Ini Swing, Belajar Swing ");
//menge-set ukuran windows (lebar,tinggi)
this.setSize(500,500);
JButton closeButt = new JButton("Tutup Saya!");
//mendaftarkan listener pada method actionPerfomed()
closeButt.addActionListener(this);
//menge-set identifier untuk method actionPerfomed
closeButt.setActionCommand("closeButt");
//menambah kan button
JButton showDialogButt = new JButton("Klik Saya!");
showDialogButt.addActionListener(this);
showDialogButt.setActionCommand("showDialogButt");
//membuat panel sebagai tempat menampung Button
JPanel apanel = new JPanel();
apanel.add(closeButt );
apanel.add(showDialogButt );
//menambahkan panel pada container utama
this.getContentPane().add(apanel,BorderLayout.NORTH );
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
}
public void actionPerformed(ActionEvent e) {
//mengeksekusi command dari button
if (e.getActionCommand().equals("closeButt")){
System.exit(0);
}
else if (e.getActionCommand().equals("showDialogButt")){
JOptionPane.showMessageDialog(this ,"Halo","Coba Dialog", JOptionPane.INFORMATION_MESSAGE);
}
}
public static void main(String[] args) {
//mengeset format tampilan window standar java
JFrame.setDefaultLookAndFeelDecorated(true);
//meng-instantiate swing
UsingSwingBasic aswing = new UsingSwingBasic();
//menampilkan windows
aswing.show();
}
}
Wednesday, April 27, 2005
Menggunakan StringBuffer
//StringBuffer digunakan untuk memanipulasi data String
String tmpString="Nama Saya adalah : <$Nama$> \n";
tmpString=tmpString+" Alamat Saya di : <$Alamat$> \n";
tmpString=tmpString+" Saya Bekerja di : <$Kerja$> \n";
//definisi StringBuffer dengan nilai awal constructor tmpString
StringBuffer myStrBuf = new StringBuffer(tmpString);
String nama="Airlangga";
String alamat="Jl. Majapahit";
String kerja="Istana";
//menganti tag dengan nilai-nilai yang disediakan
myStrBuf.replace(myStrBuf.indexOf("<$Nama$>"),myStrBuf.indexOf("<$Nama$>")+8,nama);
myStrBuf.replace(myStrBuf.indexOf("<$Alamat$>"),myStrBuf.indexOf("<$Alamat$>")+10,alamat);
myStrBuf.replace(myStrBuf.indexOf("<$Kerja$>"),myStrBuf.indexOf("<$Kerja$>")+9,kerja);
//method lain dari StringBuffer adalah delete,append,insert,reverse
//cetak hasilnya!
System.out.println(myStrBuf);
Membaca File Text (line based)
isi file :
01#Adi#Jl.Mahasiswa
02#Aman#Jl. Kebangsaan
//Jangan lupa untuk menambahkan import java.io.*;
//mengambil file path dari contoh data file text (listmhs.txt)
String filepath=UsingFileInputOutputStream.class.getClassLoader().getResource("datafile/listmhs.txt").getPath();
System.out.println("filepath:"+filepath);
try {
//definisi FileInputStream
FileInputStream afilestream = new FileInputStream(filepath);
//Class LineNumberReader adalah turunan dari BufferedReader
LineNumberReader flined = new LineNumberReader (new InputStreamReader( new FileInputStream(filepath)) );
try {
int i=0;
//Membaca baris pertama
String stringLine=flined.readLine();
while (stringLine !=null){
//men-set nomor baris selanjutnya
flined.setLineNumber(i);
System.out.println(stringLine);
//membaca baris berikutnya
stringLine=flined.readLine();
//counter bar
i++;
}
//Anda dapat mengkombinasikan pemakaian FileInputOutput dengan StringTokenizer
// untuk manajemen data
} catch (IOException e1) {
e1.printStackTrace();
}
} catch (FileNotFoundException e) {
System.out.println("File tidak ditemukan");
}
Konversi Tipe Data #2
//String to Integer
nilaiString ="1001";
Integer aInteger = new Integer(nilaiString);
System.out.println(aInteger);
//konversi String ke int
aint=Integer.parseInt(nilaiString);
//int to float
nilaifloat=Float.parseFloat(new Integer(aint).toString());
System.out.println(nilaifloat);
//float to String
nilaiString = Float.toString(nilaifloat);
System.out.println(nilaiString);
//Float to String
nilaiString = nilaiFloat.toString();
System.out.println(nilaiString);
Tuesday, April 26, 2005
Konversi Tipe Data #1
//String ke double dan Double
String nilaiString="0.11";
Double nilaiDouble = new Double(nilaiString);
double nilaidouble = new Double(nilaiString).doubleValue();
// atau dengan method parse
nilaidouble = Double.parseDouble("0.11");
System.out.println(nilaidouble);
//String ke float dan Float
Float nilaiFloat = new Float(nilaiString);
float nilaifloat = new Float(nilaiString).floatValue();
//atau dengan method parse
nilaifloat=Float.parseFloat(nilaiString);
System.out.println(nilaidouble);
//int to double, Integer to Double
int aint=5;
//konversikan terlebih dahulu ke String kemudian ke double
nilaidouble= Double.parseDouble(Integer.toString(aint));
System.out.println(nilaidouble);
nilaiDouble = new Double(Integer.toString(aint));
System.out.println(nilaiDouble);
Multidimensi data dengan Array
//**** Multi Dimensi Array *****
//Anda anda menggunakan dimensi array untuk data yang lebih kompleks
//Contoh deklarasi array dengan 2 dimensi
//[] pertama menunjukkan array baris
//[] kedua menunjukkan array kolum
String [][] DataNilai = new String[10][4];
//Mengisi baris pertama dengan nama kolum
DataNilai[0][0]="NIM";
DataNilai[0][1]="Nama";
DataNilai[0][2]="Alamat";
DataNilai[0][3]="Kota";
//contoh isi data
DataNilai[1][0]="1010";
DataNilai[1][1]="Adi";
DataNilai[1][2]="Jl. Kebangsaan";
DataNilai[1][3]="Surabaya";
DataNilai[1][0]="1011";
DataNilai[1][1]="Aman";
DataNilai[1][2]="Jl. Ahmad Yani";
DataNilai[1][3]="Surabaya";
//menampilkan kolum dan record
for (int baris=0;baris<10;baris++){
for (int kolum=0;kolum<4;kolum++)
System.out.print(DataNilai[baris][kolum]+" ");
System.out.println();
}
Menggunakan Array
//Array adalah sekumpulan objek yang dikelompokan menjadi satu
// dalam stack
//Array memiliki anggota yang jumlahnya telah didefinisikan secara pasti
// dengan kata lain,
//Anda tidak dapat menambah anggota array diluar batas jumlah anggota
// yang telah ditentukan sebelumnya
//Identitas anggota array menggunakan index urut dari array,
// dari 0...n (n adalah jumlah yang akan didefinisikan)
//Tipe data anggota array dapat berupa Tipe Data Primitif
// atau Tipe Data Objek.
//contoh definisi array dari anggota yang tipe data int
int[] aba = new int[10];
aba[0]=1;
aba[1]=2;
System.out.println(aba[0]);
//mengisi data array dengan perulangan
Random arandom= new Random();
for (int i=0;i<10;i++)
aba[i]=arandom.nextInt(10);
//menampilkan data array dengan while
int i=0;
while (i<10){
System.out.println("Array ke-"+i+" = "+aba[i]);
i++;
}
Thursday, April 21, 2005
Multidimensi data dengan Vector
//ini vector utama
Vector avect = new Vector();
//ini vector item yang menyimpan record
Vector aitem = new Vector();
aitem.add("record1kolum1");
aitem.add("record1kolum2");
aitem.add("record1kolum3");
avect.add(aitem);
aitem = new Vector();
aitem.add("record2kolum1");
aitem.add("record2kolum2");
aitem.add("record2kolum3");
avect.add(aitem);
//mengakses vector nilai vector
//elemenAt() return valuenya adalah object, anda meng-castingnya menjadi Vector
for (int i=0;i < avect.size();i++)
for (int j=0;j<3;j++)
System.out.println(((Vector)avect.elementAt(i)).elementAt(j));
Menghitung Tanggal
// karena beberapa method modifikasi date
// di class java.util.Date telah deprecated
// untuk kalkulasi tanggal sebaiknya menggunakan
// GregorianCalendar yang merupakan turunan dari abstrak calendar
Calendar acal = new GregorianCalendar();
// set tanggal, bisa pula melalui constructor
// tahun,bulan,tgl - ingat bulan dihitung mulai dari 0
// jadi bulan april adalah 3
acal.set(2005,3,10);
// Sun Apr 10 13:37:31 GMT+07:00 2005
System.out.println(acal.getTime());
// set tanggal dengan nilai constanta default
acal.set(2005,Calendar.APRIL,10 );
// menambah tanggal 3 hari.
acal.add(Calendar.DATE,3);
System.out.println(acal.getTime());
// mengurangi tanggal 10 hari
acal.add(Calendar.DATE,-10);
System.out.println(acal.getTime());
//mengurangi dengan tanggal lain (acal-newCal);
Calendar newCal = new GregorianCalendar(2005,2,1);
System.out.println("newCal : "+newCal.getTime());
int selisih= acal.get(Calendar.DAY_OF_YEAR)- newCal.get(Calendar.DAY_OF_YEAR);
System.out.println("selisih hari:"+selisih);
//menggubah ke bentuk java.util.Date
Date utilDate = new Date(newCal.getTime().getTime());
System.out.println("utilDate :"+utilDate);
Wednesday, April 20, 2005
Mengambil Path dari File pada Java Application
// file yang diletakkan pada direktori yang sama class
//bila file diletakkan dalam subdirektori, sebutkan subdirektori tersebut contoh ->"data/nama_file.txt"
String filepath=_nama_class.class.getClassLoader().getResource("nama_file.txt").getPath();
//atau
String filepath=this.getClass().getClassLoader().getResource("nama_file.txt").getPath();
//bila file tidak ditemukan maka return valuenya adalah null
Tuesday, April 19, 2005
Menggunakan String Tokenizer
//StringTokenizer berfungsi untuk mengambil nilai bagian string
//yang dipisahkan dengan karakter tertentu
//jangan lupa import java.util.StringTokenizer;
String strMentah="01;Adi;Jl. Ahmad Yani 2";
StringTokenizer myStrToken= new StringTokenizer(strMentah, ";");
//mengambil jumlah token ";"
System.out.println("Jumlah Token : "+myStrToken.countTokens() );
//mengambil masing-masing string yang dipisahkan dengan ";"
while (myStrToken.hasMoreTokens()){
System.out.println("Token :"+myStrToken.nextToken());
}
Saturday, April 16, 2005
Mengambil Nilai System Properties
String username=System.getProperty("user.name");
String homedir=System.getProperty("user.home");
String userdir=System.getProperty("user.dir");
System.out.println("username :"+username);
System.out.println("home directory : "+homedir);
System.out.println("user directory : "+userdir);
/* nilai properties yang dapat diambil adalah :
"file.separator" File separator (for example, "/")
"java.class.path" Java classpath
"java.class.version" Java class version number
"java.home" Java installation directory
"java.vendor" Java vendor-specific string
"java.vendor.url" Java vendor URL
"java.version" Java version number
"line.separator" Line separator
"os.arch" Operating system architecture
"os.name" Operating system name
"os.version" Operating system version
"path.separator" Path separator (for example, ":")
*/
Friday, April 15, 2005
Contoh Penggunaan ArrayList - Collection
//ArrayList adalah subclass implementasi dari interface Collection
List alist = new ArrayList();
//menambah object, String merupakan object
alist.add("Data #1");
Double vDouble = new Double(0.111);
//ini data ke 2 dengan nilai Double
alist.add(vDouble);
//menyelipkan data dan mengeser data lain
alist.add(1,"Interupsi Data, seharusnya posisi ini ada di #3");
//tampilkan data dengan for
for (int i=0;i < alist.size();i++)
System.out.println(i+":"+alist.get(i));
// List diassign ke bentuk Collection
Collection acollect = alist;
//menampilkan isi collection;
Iterator iterasi = acollect.iterator();
while (iterasi.hasNext() )
System.out.println("->" +iterasi.next());
//untuk mencari nilai data dapat menggunakan contains
if (acollect.contains("Data #1"))
System.out.println("Data Ditemukan!");
// untuk method lengkap lain dapat dilihat di Java API Documentation
Thursday, April 14, 2005
Contoh Penggunaan Vector
// vector digunakan apabila anda ingin menyimpan data object
// secara dinamis pengganti array
Vector newVector = new Vector();
//menambahkan data vector
newVector.add("Ini Data object string, untuk Index awal vector");
newVector.add("ini data object string ke dua");
newVector.add("ini data object String ke tiga dan terakhir");
// menampilkan data vector pertama
System.out.println("Data Vector Pertama : "+newVector.get(0));
System.out.println("Data Vector Pertama : "+newVector.firstElement());
// menampilkan data vector ketiga
System.out.println("Data Vector Ketiga : "+newVector.elementAt(2));
System.out.println("Data Vector Ketiga : "+newVector.lastElement());
//mencari index vector dan ditampilkan
int idxCari = newVector.indexOf("ini data object string ke dua");
System.out.println("nilai Index cari adalah : "+idxCari);
if (idxCari>=0)
System.out.println("Data yang dicari adalah : "+newVector.get(idxCari));
//menampilkan vector dengan perulangan dan size
for (int i=0; i < newVector.size();i++)
System.out.println(i+":"+newVector.get(i));
//menampilkan vector dengan iterator "for-loop"
for (Iterator d = newVector.iterator(); d.hasNext(); ) {
System.out.println("->"+d.next());
}
//menampilkan vector dengan iterator "while-loop"
Iterator ulang=newVector.iterator();
while (ulang.hasNext())
System.out.println("*"+(String)ulang.next());
