Kamis, 29 September 2011

Koneksi Java MySQL

Disini saya akan membahas tentang langkah-langkah cara membuat koneksi antara aplikasi java dengan database MySQL.
1. Buat databasenya terlebih dahulu. Misalkan kita akan menampilkan data tentang mahasiswa yang memiliki atribute NIM, nama, alamat, dan no handphone.
- Create database pada MySQL(disini saya membuat database dengan nama "contoh").



- Gunakan database tersebut dengan mengetikkan "use contoh;" pada command MySQL. Kemudian buat tabel mahasiswa pada database tersebut dengan atribute NIM, nama, alamat dan no_handphone.



- Masukkan beberapa data ke dalam tabel tersebut, yang nantinya akan ditampilkan pada aplikasi java yang kita buat dengan cara mengetikkan kode berikut pada command MySQL.


insert into mahasiswa
values('672004031', 'Yulias Kurniawan', 'Semarang', '081391550684'),
('612005505', 'Budi Santoso', 'Salatiga', '0851234567'),
('702010101', 'Andi Nugroho', 'Jogjakarta', '087800112233'),
('902009007', 'James Bond', 'Amerika', '02233445566');




2. Setelah selesai membuat database sekarang kita akan membuat aplikasi java yang digunakan untuk menampilkan data-data dari database tersebut. Disini saya menggunakan Netbeans 7.0 sebagai editornya.
- Pertama buat project baru pada netbeans. Disini saya memberi nama pada project tersebut dengan nama "Aplikasi Mahasiswa"



- Tambahkan library MySQL ke dalam project tersebut. Pada netbeans, library tersebut sudah langsung disediakan. Caranya dengan melakukan klik kanan pada libraries dan pilih add library. Kemudian pilih "MySQL JDBC Driver" dan pilih add library.



- Setelah library ditambahkan, kita akan membuat sebuah java class yang akan digunakan untuk mengambil koneksi ke database yang sebelumnya telah kita buat.


/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.connection;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author Hauw
*/
public class DBConnection {
public static Connection getConnection() {
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/contoh";
String username = "root";
String password = "admin";
Connection connection = DriverManager.getConnection(url, username, password);
return connection;
} catch (SQLException ex) {
Logger.getLogger(DBConnection.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(DBConnection.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
}


- Setelah itu buat sebuah class java baru yang digunakan untuk menampilkan data tersebut. Disini saya hanya menggunakan console untuk menampilkan data-data tersebut supaya lebih mudah.


/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.appication;

import com.connection.DBConnection;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author Hauw
*/
public class Main {

public static void main(String[] args) {
try {
Connection connection = DBConnection.getConnection();
if (connection != null) {
PreparedStatement statement = connection.prepareStatement("select * from mahasiswa");
ResultSet rs = statement.executeQuery();
while(rs.next()) {
System.out.println("NIM: " + rs.getString("nim"));
System.out.println("Nama: " + rs.getString("nama"));
System.out.println("Alamat: " + rs.getString("alamat"));
System.out.println("No. Handphone: " + rs.getString("no_handphone"));
System.out.println("");
}
}
} catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}


- Setelah itu coba jalankan aplikasi untuk memastikan koneksi yang kita buat berhasil.



Download projectnya disini
Aplikasi Mahasiswa

Minggu, 21 Agustus 2011

Aplikasi Point of Sales dengan Java

Mo share aja nich aplikasi point of sales sederhana yang saya buat menggunakan java dan MySQL. Berkat tuntunan dari buku java desktopnya milik Ifnu Bima dan tampilan User Interfacenya menggunakan library BetaGlasses-1.0 yang saya download dari launk.wordpress.com. Ini beberapa screenshoot tampilannya.

Master Produk:


Master User:


Transaksi Penjualan:


Nota Penjualan:


Laporan Stock Barang:


Kalo mo download projectnya disini ya gan...
Toko Retail.rar
Ukurannya agak gede soalnya library2 yang dibutuhin gw masukin juga. heheh...
Sebelum jalanin jangan lupa databasenya diimport dulu.
Mohon kritik dan sarannya ya teman-teman...

Jumat, 01 April 2011

Sertifikasi Java & Oracle (Fundamental) Gratis dari Bamboomedia

Buat yang pengen punya sertifikat java tapi belom kesampaian, ini ada yang gratisan lho dari bamboomedia.




klik aja disini kalo pengen nyobain.

Bamboomedia

Rabu, 02 Maret 2011

Menyisipkan Baris Baru pada JLabel

Cara untuk memformat teks pada JLabel ternyata berbeda dengan cara memformat teks pada console. Pada console kita biasa menggunakan karakter '\n' untuk membuat baris baru. Sedangkan pada JLabel kita harus menggunakan format HTML untuk membuat sebuah baris baru.

Contoh yang salah:

jLabel.setText("Ini baris pertama\nIni baris kedua");


Contoh yang benar:

jLabel.setText("<html>Ini baris pertama<br>Ini baris kedua<html>");

Rabu, 09 Februari 2011

Membuat File Directory menggunakan JTree

Component JTree biasa digunakan untuk menampilkan sebuah hierarki data seperti yang sering kali kita lihat ketika kita membuka windows explorer pada bagian sebelah kiri. Kali ini saya akan membuat sebuah tampilan file directory dengan menggunakan JTree.

Berikut langkah-langkahnya:

1. Buat sebuah class turunan dari Vector misal saya beri nama NamedVector. Class ini nantinya akan digunakan untuk menampilkan nama dari node pada JTree, sehingga kita harus meng-override method toString() miliknya.


import java.util.Vector;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/**
*
* @author hauw
*/
public class NamedVector extends Vector{

private String nama;

public NamedVector(String nama) {
this.nama = nama;
}

@Override
public synchronized String toString() {
return nama;
}

}



2. Buat sebuah JFrame untuk menampilkan JTree, disini saya menggunakan netbeans. Contoh tampilannya seperti di bawah ini.



3. Masuk ke bagian source code dari form, lalu tambahkan beberapa baris.


private DefaultMutableTreeNode rootNode;
private DefaultTreeModel treeModel;

/** Creates new form Form */
public Form() {
initComponents();

File file = new File("D:/Kuliah");
rootNode = new DefaultMutableTreeNode(file.getAbsolutePath());
treeModel = new DefaultTreeModel(rootNode);
jTree1.setModel(treeModel);
JTree.DynamicUtilTreeNode.createChildren(rootNode, getFileDirectory(file));
}

private static NamedVector getFileDirectory(File directory) {
NamedVector vectorDirectory = new NamedVector(directory.getName());

File[] files = directory.listFiles();

for (File file : files) {
if(file.isDirectory()) {
NamedVector vector = getFileDirectory(file);
vectorDirectory.add(vector);
} else {
vectorDirectory.add(file.getName());
}
}

return vectorDirectory;
}


Di atas saya mengakses folder D:/kuliah pada pc saya. Kalau nanti kalian coba ganti aja pada bagian "File file = new File("");" menjadi folder yang ingin kalian explore. Contoh tampilannya seperti ini



project lengkapnya bisa download disini

FileDirectory.rar

Selasa, 04 Januari 2011

Membuat Auto Resize ComboBox

Kadang kita memiliki sebuah combobox yang berisi item dengan ukuran yang panjang. Untuk menampilkan item-item tersebut secara benar, maka kita harus membuat combobox dengan ukuran yang sesuai, sehingga kadang akan sangat memakan tempat.




Untuk mengatasinya kita dapat membuat sebuah combobox yang ukuran popupnya sesuai dengan ukuran item terpanjang dalam list. Untuk itu kita buat saja sebuah class baru yang diturunkan dari class JComboBox.



import java.awt.Dimension;
import java.awt.FontMetrics;
import javax.swing.JComboBox;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author hauw
*/
public class AutoResizeComboBox extends JComboBox {

@Override
public Dimension getSize() {
Dimension dimension = new Dimension();

dimension.width = getPanjangPopup();

return dimension;
}

private int getPanjangPopup() {
int panjangComboBox = (int) super.getSize().getWidth();
if (panjangComboBox < getTeksTerpanjang()) {
return getTeksTerpanjang();
}
return panjangComboBox;
}

private int getTeksTerpanjang() {
int panjangTeks = 0;
int count = getItemCount();
for (int i = 0; i < count; i++) {
FontMetrics fontMetrics = getFontMetrics(getFont());
String teks = getItemAt(i).toString();
if (panjangTeks < fontMetrics.stringWidth(teks)) {
panjangTeks = fontMetrics.stringWidth(teks);
}
}
return panjangTeks + 5;
}
}



Lihat perbedaannya pada gambar berikut



Kalo ingin download projectnya disini ya...

ComboBox Resizable.rar

Minggu, 02 Januari 2011

Membuat Filter Tabel yang Tidak Membedakan Huruf Kapital / Huruf Kecil

Di bawah ini merupakan kode program untuk membuat filter tabel yang tidak membedakan huruf besar dan huruf kecil. Misalnya ketika kita ingin mencari data dengan value "Hello World" pada tabel. Kita tidak perlu memberi input dengan teks yang sama huruf besar dan kecilnya.



import java.awt.BorderLayout;
import java.util.regex.PatternSyntaxException;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.RowFilter;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author hauw
*/
public class TableFilterExample extends JFrame {

private JTable tableData;
private JScrollPane scrollPane;
private JPanel panelFilter;
private JLabel labelFilter;
private JTextField textFilter;
private DefaultTableModel tableModel;
private TableRowSorter rowSorter;

public TableFilterExample() {
super("Contoh Table Filter");
tableModel = new DefaultTableModel();
tableModel.addColumn("Nama");
tableModel.addColumn("Alamat");
tableModel.addRow(new Object[]{
"Yulias Kurniawan", "Semarang"
});
tableModel.addRow(new Object[]{
"Yohannes Sudirwan", "Tangerang"
});
tableModel.addRow(new Object[]{
"Nova Setiawan", "Solo"
});
tableModel.addRow(new Object[]{
"Agung Prasetya", "Kudus"
});
tableModel.addRow(new Object[]{
"Hans Ricardo", "Jepara"
});

tableData = new JTable(tableModel);
scrollPane = new JScrollPane(tableData);
add(scrollPane, BorderLayout.CENTER);

textFilter = new JTextField();
labelFilter = new JLabel("Cari:");
panelFilter = new JPanel(new BorderLayout());
panelFilter.add(labelFilter, BorderLayout.WEST);
panelFilter.add(textFilter, BorderLayout.CENTER);
add(panelFilter, BorderLayout.NORTH);

rowSorter = new TableRowSorter(tableModel);
tableData.setRowSorter(rowSorter);

textFilter.getDocument().addDocumentListener(new DocumentListener() {

public void insertUpdate(DocumentEvent e) {
changedUpdate(e);
}

public void removeUpdate(DocumentEvent e) {
changedUpdate(e);
}

public void changedUpdate(DocumentEvent e) {
String filter = textFilter.getText();
if (filter == null) {
rowSorter.setRowFilter(RowFilter.regexFilter(null));
} else {
char[] charArray = filter.toCharArray();
String[] stringArray = new String[charArray.length];

for (int i = 0; i < stringArray.length; i++) {
stringArray[i] = "[" + Character.toUpperCase(charArray[i])
+ Character.toLowerCase(charArray[i]) + "]";
}

String regex = "";
for (String string : stringArray) {
regex += string;
}

try {
rowSorter.setRowFilter(RowFilter.regexFilter(regex));
} catch (PatternSyntaxException ex) {
ex.printStackTrace();
}
}
}
});
}

public static void main(String[] args) {
TableFilterExample app = new TableFilterExample();
app.pack();
app.setVisible(true);
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}