pengen belajar java dimana tempat yang lengkap?


#TutorialJava

pengen belajar java dimana tempat yang lengkap?

belajar java standard edition, dari mulai belajar dasar2 java, pemrograman berorientasi objek, network, database, aplikasi desktop, multithreading, dll silahkan belajar disini ===> http://docs.oracle.com/javase/tutorial/

belajar java RX, rich internet application, JNLP, silahkan belajar disini ===> http://docs.oracle.com/javafx/

belajar java enterprise edition, dari mulai java web, servlet, java server pages, java server faces, enterprise java beans, java persistence api, web service, soap, restful, belajar disini ===> http://docs.oracle.com/javaee/7/tutorial/doc/home.htm

selamat belajar 

Merubah Label Tombol pada JOptionPane | StripBandunk


Seperti pada artikel sebelumnya, penggunaan <YES> dan <OK> tidaklah dianjurkan saat Anda membangun aplikasi. Disarankan untuk mengubahnya menjadi kata kerja seperti <Simpan>, <Ubah>, <Hapus> dan lain sebagainya.

Java Swing

Dalam teknologi Java, kita dapat menggunakan Java Swing untuk membuat aplikasi berbasis GUI. JOptionPane merupakan kelas yang dapat digunakan untuk membuat kotak pesan konfirmasi, seperti pada gambar dibawah ini

Baca lebih lanjur.

Resource untuk Belajar JavaSE, JavaEE, JavaDB, JavaME, JavaFX


Kadang suka banyak yang chating menanyakan resource untuk belajar Java, baik itu java desktop, java web dan lain-lain. Supaya gampang nanti ngasih link resourcenya, saya gabungkan saja diartikel ini :

  1. Java Standard Edition : http://download.oracle.com/javase/
  2. Java Enterprise Edition : http://download.oracle.com/javaee/
  3. Java Database : http://download.oracle.com/javadb/
  4. Java Micro Edition : http://download.oracle.com/javame/
  5. JavaFX : http://download.oracle.com/javafx/

Silahkan belajar….

Menghapus Hurup Vokal dengan String.replaceAll();


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

package khannedy.report.entity;

public class Main {

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

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

		System.out.println(data);
	}

}

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

Yup ada 😀 Baca lebih lanjut

Laporan JAMU (Java Meetup) Java User Group Bandung


Slideshow ini membutuhkan JavaScript.

Tadi pagi, baru saja diadakan JAMU JUG-Bandung, acaranya :

  1. Pengenalan JUG-Bandung itu sendiri yang dibawakan oleh Eko Kurniawan Khannedy (saya sendiri)
  2. Pengenalan Google Web Toolkit yang dibawakan oleh Muhammad Ghazali
  3. Sharing antar anggota (dalam acara banyak temen2 yang sharing, khususnya sharing temen-temen dari golongan IT Pro)
  4. Sharing dari Alex Budiyanto (Sun Oracle Community Leader )

jangan lupa buat JAMU-2 temen-temen pada datang y 😀

Memuat Data Secara Otomatis Saat JComboBox di Klik


Peralatan yang diperlukan :

  1. Java Development Kit 1.6
  2. NetBeans IDE 6.8
  3. MySQL Server 5.1

Pernah berurusan dengan JComboBox? Pastinya 😀 Biasanya untuk masukan data yang sudah fix atau sudah ada dalam database, kita selalu menggunakan JComboBox, atau jika masukan data boleh lebih dari satu, kita biasa menggunakan JList.

Pada artikel kali ini saya akan membahas tentang bagaimana cara meload (memuat) data otomatis saat JComboBox diklik.Mungkin hal ini tidak akan berpengaruh jika datanya fix, seperti jenis kelamin misalnya, yang pilihannya hanya “laki-laki” dan “perempuan’, tapi bagaimana jika dengan kategori barang? atau yang sejenisnya yang bisa mengalami penambahan data 😀

Membuat Database

Anggap saja kita sekarang akan membuat JComboBox untuk meload kategori barang, jadi sebelumnya kita buat dulu database untuk ini dan juga tabel kategori :

mysql> create database combobox;
Query OK, 1 row affected (0.01 sec)

mysql> use combobox;
Database changed
mysql> create table kategori_barang(
    -> id integer primary key auto_increment,
    -> nama varchar(45) not null
    -> );
Query OK, 0 rows affected (0.00 sec)

Setelah membuat database dan tabel, saatnya mengisi datanya, misal kita isi datanya dengan beberapa kategori seperti yang ada terlihat pada kode dibawah ini :

mysql> insert into kategori_barang (nama) values
    -> ('Makanan'),
    -> ('Minuman'),
    -> ('Alat Tulis'),
    -> ('Sayuran');
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

dan hasilnya :

mysql> select * from kategori_barang;
+----+------------+
| id | nama       |
+----+------------+
|  1 | Makanan    |
|  2 | Minuman    |
|  3 | Alat Tulis |
|  4 | Sayuran    |
+----+------------+
4 rows in set (0.00 sec)

Sekarang selesai membuat database, tabel dan mengisi datanya.

Membuat Koneksi

Setelah membuat database, saatnya membuat koneksi dari program ke database. Pada artikel ini saya menggunakan JDBC untuk koneksi ke database nya. Caranya dengan membuat kelas ConnectionHelper, atau apapun terserah 😀

package khannedy.comboboxotomatis;

import java.sql.Connection;
import java.sql.DriverManager;

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

    private static Connection connection;

    public static Connection getConnection() {
	if (connection == null) {
	    try {
		Class.forName("com.mysql.jdbc.Driver");
		connection = DriverManager.getConnection(
			"jdbc:mysql://localhost:3306/combobox",
			"username",
			"password");
	    } catch (Throwable t) {
	    }
	}
	return connection;
    }
}

Membuat Form

Sedernaha saja, kita langsung ke tujuan dari permasalahannya, yaitu meload otomatis data yang ada di database saat JComboBox di klik. Pertama buat JComboBox dengan nama comboKategori, atau apapu terserah 😀

Setelah itu tambahkan aksi ke JComboBox, tapi ingat!, aksinya bukan onMouseClick, tapi aksi untuk popup, caranya Klik Kanan pilih Events -> PopupMenu -> popupMenuWillBecomeVisible, dan setelah itu tambahkan kode dibawah ini untuk meload seluruh data kategori ke combobox :

    private void comboKategoriPopupMenuWillBecomeVisible(javax.swing.event.PopupMenuEvent evt) {

	// hapus seluruh data combobox
	comboKategori.removeAllItems();

	// load data dari database ke combobox
	Statement statement = null;
	ResultSet resultSet = null;
	try {
	    statement = DatabaseHelper.getConnection().createStatement();
	    resultSet = statement.executeQuery("select nama from kategori_barang");
	    while (resultSet.next()) {
		String kategori = resultSet.getString("nama");
		comboKategori.addItem(kategori);
	    }
	} catch (SQLException ex) {
	} finally {
	    try {
		if (resultSet != null) {
		    resultSet.close();
		}
	    } catch (SQLException ex) {
	    }
	    try {
		if (statement != null) {
		    statement.close();
		}
	    } catch (SQLException ex) {
	    }
	}
    }

Setelah itu jalankan… dan ow kok error?

run:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at khannedy.comboboxotomatis.DatabaseHelper.getConnection(DatabaseHelper.java:21)
        at khannedy.comboboxotomatis.Form.comboKategoriPopupMenuWillBecomeVisible(Form.java:89)
        at khannedy.comboboxotomatis.Form.access$000(Form.java:23)
        at khannedy.comboboxotomatis.Form$1.popupMenuWillBecomeVisible(Form.java:50)
        at javax.swing.JComboBox.firePopupMenuWillBecomeVisible(JComboBox.java:938)
        at javax.swing.plaf.basic.BasicComboPopup.firePopupMenuWillBecomeVisible(BasicComboPopup.java:330)
        at javax.swing.JPopupMenu.setVisible(JPopupMenu.java:730)
        at javax.swing.JPopupMenu.show(JPopupMenu.java:904)
        at javax.swing.plaf.basic.BasicComboPopup.show(BasicComboPopup.java:191)
        at javax.swing.plaf.basic.BasicComboPopup.togglePopup(BasicComboPopup.java:1110)
        at javax.swing.plaf.basic.BasicComboPopup$Handler.mousePressed(BasicComboPopup.java:807)
        at java.awt.Component.processMouseEvent(Component.java:6260)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4235)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at khannedy.comboboxotomatis.Form.comboKategoriPopupMenuWillBecomeVisible(Form.java:89)
        at khannedy.comboboxotomatis.Form.access$000(Form.java:23)
        at khannedy.comboboxotomatis.Form$1.popupMenuWillBecomeVisible(Form.java:50)
        at javax.swing.JComboBox.firePopupMenuWillBecomeVisible(JComboBox.java:938)
        at javax.swing.plaf.basic.BasicComboPopup.firePopupMenuWillBecomeVisible(BasicComboPopup.java:330)
        at javax.swing.JPopupMenu.setVisible(JPopupMenu.java:730)
        at javax.swing.JPopupMenu.show(JPopupMenu.java:904)
        at javax.swing.plaf.basic.BasicComboPopup.show(BasicComboPopup.java:191)
        at javax.swing.plaf.basic.BasicComboPopup.togglePopup(BasicComboPopup.java:1110)
        at javax.swing.plaf.basic.BasicComboPopup$Handler.mousePressed(BasicComboPopup.java:807)
        at java.awt.Component.processMouseEvent(Component.java:6260)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4235)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
BUILD SUCCESSFUL (total time: 7 seconds)

Tenang, tenang 😀 itu cuma driver MySQL nya belum di include ke Project, tinggal klik tambahkan MySQL Driver ke library project dan sekarang bisa dijalankan :

Sekarang coba tambahkan lagi datanya di database :

mysql> insert into kategori_barang (nama) values
    -> ('Data Baru Coy');
Query OK, 1 row affected (0.00 sec)

mysql> select * from kategori_barang;
+----+---------------+
| id | nama          |
+----+---------------+
|  1 | Makanan       |
|  2 | Minuman       |
|  3 | Alat Tulis    |
|  4 | Sayuran       |
|  5 | Data Baru Coy |
+----+---------------+
5 rows in set (0.00 sec)

Dan tanpa harus me restart aplikasi, otomatis data akan dimuat ulang saat popup menu JComboBox keluar :

Mudah bukan? 😀

Download SourceCode

Silahkan download sourcecode artikel ini –> disini <–

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8


Mau melakukan migrasi dari pure JDBC ke JPA?

Mungkin suatu saat kita akan melakukan migrasi dari aplikasi yang menggunakan JDBC ke JPA, namun yang menjadi permasalahan adalah, tabel-tabel sudah ada di database, dan tidak mungkin membuat ulang tabel-tablenya. Kalaupun mau, paling kita harus membuat entity-entity class nya secara manual, dan mapping nya harus sama dengan tabel yang ada di database. No problem selama banyak tabelnya dibawah 20 :D, tapi bagaiman jika total tabel nya ada 50? 😦 #capekkayaknya

Jika kita menggunakan NetBeans IDE, ini bukan masalah 😀 Kenapa? Karena NetBeans punya fitur otomatis pembuat class entity dari tabel yang ada di database, jadi kita tidak perlu membuatnya secara manual 😀 Keren kan!

Bagaimana caranya? Gampang Kok 😀

Membuat Project Baru

Untuk membuat project baru di NetBeans caranya cukup mudah, tingal lewat menu File -> New Project, maka tinggal kita pilih mau membuat project apa 😀

Saya anggap anda telah membuat sebuah project baru, atau sebenarnya project yang lama pun tidak mengapa 😀

Membuat Entity Class Otomatis

Untuk membuat class-class entity secara otomatis, caranya lewat menu File -> New File , atau Ctrl + N. Setelah itu akan muncul dialog, dan pada bagian Categories, pilih Persistence dan pada bagian File Types, pilih Entity Classes from Database :

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Setelah itu klik tombol Next untuk melanjutkan, maka akan keluar dialog untuk Database Table, pilihlah koneksi yang akan digunakan pada bagian Database Connection, jika belum tersedia silahkan membuat dulu koneksinya :

Tambahkan tabel-tabel yang sekiranya akan dibuatkan sebuah entity class, misal saya tambahkan semua tabelnya :

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Setelah itu klik tombol Next, dan sekarang saatnya di mapping dengan entity class. Ubahlah bagian Class Name dengan nama kelas yang kita inginkan :

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

dan jika terdapat warning “The project does not have persistence unit…“, maka klik tombol Create Persistence Unit :

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Beri nama persistence unitnya lalu klik tombol Create untuk membuat persistence unit tersebut. Dan sekarang tidak ada warning lagi 😀 :

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Setelah itu klik tombol Next dan sekarang kita harus melakukan konfigurasi relasi antar entitas. Ubah Assosiation Fetch dan Collection Type sesuai dengan yang kita inginkan, misal saya menggunakan fetch dan java.util.List :

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Setelah itu klik tombol Finish, dan tunggu sampai selesai :

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Sekarang semua Tabel sudah menjadi Entity Class,

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

mudah bukan, bahkan kita tidak perlu coding sedikitpun 😀

“Jangan membeli rumah di lingkungan keputusasaan. Harapan masih ada. Jangan pergi menuju kegelapan. Ada cahaya.”, Jallaludi Rumi.

Dari Mana Belajar Java?


Sering sekali ada teman-temen (yang gak kenal 😀 ) bertanya “Kalo mau belajar Java, harus mulai dari mana?” , dan setiap ditanya seperti itu saya selalu menjawab

DARI SEKARANG!!!!!!!!!!