apa itu Java Beans? apa bedanya dengan POJO?


#IlmuJava

apa itu Java Beans? apa bedanya dengan POJO?

status sebelumnya saya cerita tentang POJO, sekarang saya akan cerita tentang Java Beans.

Java Beans adalah kelas POJO yang serializable (implements java.io.Serializable), kelas Java Beans memiliki default contructor (constructor tanpa parameter), atribut yang ada di Java Beans harus private dan diakses oleh metode getter dan setter.

Berikut adalah contoh kelas POHO

=============================
public class Person{

}
=============================

kalo udah diubah jadi Java Beans, hasilnya seperti ini :

=============================
public class Person implements java.io.Serializable {

private String name;

public Person(){
}

public String getName(){
return this.name;
}

public void setName(String name){
this.name = name;
}

}
=============================

sekian dan terimakasih, jangan lupa follow twitter kita di @PakarJava 

Download Source Code Buku Elektronik Swing Make Over


Sebelumnya kami telah memposting buku elektronik gratis berjudul Swing Make Over, buku yang membahas tentang desain tampilan aplikasi berbasis Java Swing.

Pada posting tersebut kami tidak menyertakan source code untuk buku elektronik Swing Make Over tersebut. Dan pada artikel ini kami akan memberitahukan bahwa, source code untuk buku elektronik Swing Make Over telah kami lampirkan pada posting ebook tersebut.

Anda dapat mengunduh source code nya pada posting artikel buku elektronik Swing Make Over di :

Download Source Code Buku Elektronik Swing Make Over | StripBandunk.

Servlet 3 – Penggunaan Redirect


Redirect adalah salah satu yang dapat dilakukan untuk memaksa browser untuk membuka halaman yang telah ditentukan. Misal saat orang mengakses halaman http://www.contoh.com/admin/, dikarenakan orang tersebut belum melakukan proses autentikasi, maka browser dipaksa untuk membuka halaman http://www.contoh.com/login untuk melakukan autentikasi terlebih dahulu. Hal ini dapat kita lakukan di Servlet, contoh :

package khannedy.web.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(name = "Redirect", urlPatterns = {"/Redirect"})
public class RedirectServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String url = request.getParameter("redirect_to");
        
        if(url == null){
            url = "http://www.google.co.id";
        }
        
        response.sendRedirect(url);
    }
}

Hasilnya saat pengguna membuka halaman http://localhost:8080/WebApplication/Redirect?redirect_to=http://www.facebook.com/ maka browser akan membuka halaman Facebook, atau jika pengguna membuka halaman http://localhost:8080/WebApplication/Redirect maka browser akan membuka halaman Google.

Screencast Membangun Aplikasi Client-Server Menggunakan Java


Video tutorial “Membangun Aplikasi Client-Server Menggunakan Java” membahas tentang cara membangun aplikasi berbasis client-server menggunakan bahasa pemrograman Java. Teknologi yang digunakan adalah Remote Method Invocation. Dalam video ini saya bahas tentang konsep client-server, contoh sederhana membangun aplikasi client-server sampai contoh yang lumayan kompleks yaitu membangun aplikasi crud (create, read, update, delete) menggunakan database berbasiskan client-server.

Video Tutorial Membangun Aplikasi Client Server Menggunakan JavaVideo Tutorial Membangun Aplikasi Client Server Menggunakan JavaVideo Tutorial Membangun Aplikasi Client Server Menggunakan JavaVideo Tutorial Membangun Aplikasi Client Server Menggunakan Java

Mudah-mudahan video tutorial ini bermanfaat untuk teman-teman yang akan belajar cara membangun aplikasi berbasis client-server. Silahkan unduh videonya pada link dibawah ini :

https://www.mediafire.com/folder/hm27fqnu82lhr/Client_Server

Selamat belajar

Memanfaatkan ConcurrentLinkedQueue sebagai Manajeman Tugas yang Multithreaded


Membangun sistem yang multithreaded tidaklah mudah, banyak sekali yang harus diperhatikan, seperti syncronisasi resource yang digunakan antar thread sampai jangan sampai terjadi deadlock pada sistem yang dibangun. Contohnya jika kita membangun sebuah sistem berbasis client-server, maka otomatis server harus dapat menangani permintaan client yang terjadi secara bersamaan.

Misal ada sebuah Bank, bank tersebut tidak melakukan sistem antrian untuk nasabah yang datang ke Bank tersebut, sehingga nasabah dapat seenaknya datang ke teller. Bisa dibayangkan apa yang akan terjadi saat teller hanya ada 5 dan nasabah sekaligus datang sebanyak 50 orang, maka bisa dipastikan teller akan kewalahan menanganinya, bahkan bisa jadi teller salah melakukan pelayanan.

Namun berbeda jika Bank tersebut menggunakan sistem antrian, maka otomatis dengan begitu, satu teller akan menangani satu nasabah. Bahkan walaupun pada Bank tersebut hanya ada satu teller, maka jika yang datang ada 100, maka teller tersebut tetap dapat menanganinya karena adanya sistem antrian, sehingga hanya satu nasabah yang dapat datang ke teller, dan nasabah yang lainnya harus menunggu sampai nasabah yang berada didepannya selesai bertransaksi dengan teller.

Sekarang kembali ke topik…

Misal kita membangun sebuah sistem berbasiskan client-server, dimana terdapat sebuah server dan banyak client. Client dapat melakukan permintaan ke server, permintaan tersebut bisa berupa request data atau perintah menjalankan tugas. Request dari client bisa datang kapan saja, sehingga bisa saja pada saat yang bersamaan beberapa client melakukan request ke server. Jika kita tidak menggunakan sistem antrian, maka kejadian pada Bank sebelum menggunakan proses antrian dapat terjadi. Dengan begitu perlu dilakukan sistem antrian pada sistem server, sehingga proses request dari client dapat dieksekusi satu per satu oleh server.

Dalam java, struktur data antrian adalah Queue, namun Queue tidaklah thread safe. Karena sistem yang dibangun berbasiskan miltithread, maka kita dapat menggunakan ConcurrentLinkedQueue, yang merupakan Queue thread safe.

package khannedy.learning.queue;

import java.util.concurrent.ConcurrentLinkedQueue;

public class Server implements Runnable {

	private ConcurrentLinkedQueue<Tugas> queue = new ConcurrentLinkedQueue<Tugas>();
	private Thread thread;

	public Server() {
		thread = new Thread(this);
	}

	public void tambahTugas(Tugas tugas) {
		queue.offer(tugas);
	}

	public void startServer() {
		thread.start();
	}

	public void stopServer() {
		thread.interrupt();
	}

	@Override
	public void run() {
		while (!thread.isInterrupted()) {
			Tugas tugas = queue.poll();
			if (tugas != null) {
				// eksekusi tugas...
			}
		}
	}

}

Kode diatas adalah contoh sederhana dari sistem server, metode startServer() digunakan untuk menjalankan server, metode stopServer() digunakan untuk menghentikan server dan metode tambahTugas(Tugas) digunakan untuk menambah tugas, metode tambahTugas(Tugas) digunakan oleh client untuk menambahkan tugas ke server.

Menampilkan Waktu Secara Realtime pada JLabel


Java Programming

Java Programming

Peralatan yang diperlukan :

  1. Java Development Kit 1.6
  2. Integrated Development Environtment (NetBeans, Eclipse, dll)

Tadi ada yang bertanya bagaimana cara menampilkan waktu secara realtime di JLabel, maksudnya menampilkan waktu saat ini dalam sebuah JLabel. Jadi seiring dengan berjalannya waktu, tulisan pada JLabel ini pun akan ikut berubah, menunjukkan waktu saat ini.

Caranya tidak terlalu sulit, kita cukup membuat sebuah kelas JLabel baru 😀 Setelah itu gunakan Timer untuk membuat timer yang mengupdate tulisan pada JLabel dan juga menggunakan SimpleDateFormat untuk mengubah Date ke String agar dapat ditampilkan dalam sebuah JLabel. Baca lebih lanjut

Menampilkan JCheckBox di JTable


Java Programming

Java Programming

Peralatan yang diperlukan :

  1. Java Development Kit 1.6

Biasanya jika kita akan menghapus sebuah baris di JTable, kita menseleksinya lalu tekan delete atau klik tombol hapus, tapi bagaimana jika kita akan menghapus beberapa baris? Dan barisnya itu terpisah-pisah? Hmm, salah satunya adalah dengan memberi kolom Hapus, jika bernilai TRUE, maka baris tersebut akan dihapus 😀 Dan supaya lebih bermakna kita ubah tampilan kolom hapusnya itu dengan JCheckBox, daripada menggunakan tulisan true atau false 😀 Baca lebih lanjut

Sistem Pencarian untuk Milis-Milis Linux di Indonesia berbasis Java


Pengumuman Sebelum Menggunakan

Temen-temen, sekarang saya sedang butuh bantuan untuk mengisi kuisioner, jadi setelah temen-temen DOWNLOAD Sistem Pencarian untuk Milis-Milis Linux di Indonesia ini, saya membutuhkan bantuan temen-temen untuk mengisi kuisioner. Dimana disini terdapat 2 kuisioner :

  1. Kuisioner untuk pengguna, disini temen-temen berperan sebagai pengguna sistem pencarian, dimana disini temen-temen hanya bertugas sebagai pencari.
  2. Kurisioner untuk administrator, disini temen-temen berperan sebagai administrator sistem pencarian, dimana disini temen-temen bertugas sebagai orang yang menjalankan sistem pencarian dan menambah data.

Alamat kuisionernya disini :

  1. Untuk pengguna : http://tiny.cc/pengguna-sistem-pencarian
  2. Untuk administrator : http://tiny.cc/admin-sistem-pencarian

Untuk waktunya saya ucapkan terima kasih

Cara Penggunaan

  1. Pertama, silahkan download project NetBeans nya disini –>> DOWNLOAD<<–.
  2. Buka semua project yang sudah temen-temen download tersebut menggunakan NetBeans, maka akan ada 4 project, yaitu searchengine, searchengine-admin, searchengine-api dan searchengine-datanode.

    Project NetBeans

    Project NetBeans

  3. Setelah itu jalankan project searchengine-datanode, project ini berguna sebagai sistem yang menampung data. Jadi agar sistem website berjalan, sistem datanode harus jalan terlebih dahulu, caranya klik kanan project searchengine-datanode, lalu pilih menu Run.
    Running DataNode

    Running DataNode

    Pastikan datanode telah berjalan, jika telah berjalan maka akan muncul tulisan seperti ini di output :

    Output DataNode

    Output DataNode

  4. Setelah itu jalankan project searchengine, caranya klik kanan project searchengine lalu pilih menu Run.
    Running Website

    Running Website

    Tunggu sampai Glassfishnya berjalan.

  5. Setelah berjalan buka alamat url ini lewat browser –> http://localhost:8080/searchengine/search/search , maka sistem pencarian siap digunakan :

    SearchEngine

    SearchEngine

  6. Masukkan kriteria yang akan dicari, misal jika temen-temen memasukkan kata “ubuntu”, maka hasilnya seperti ini :

    SearchEngine - Ubuntu

    SearchEngine - Ubuntu

  7. Jika temen-temen ingin mencari Linux namun tidak ingin mencari ubuntu, temen-temen bisa menggunakan kriteria seperti berikut “+Linux -Ubuntu”, artinya nanti hasil pencariannya akan menampilkan data linux namun tidak ada ubuntunya 😀
  8. Jika temen-temen akan menambahkan data milis baru ke Sistem, temen-temen dapat melakukannya melalui project searchengine-admin, dimana pada sitem ini baru 2 milis group yang didukung, yaitu Google Groups dan Yahoo Groups. Untuk menambah data milis, temen-temen dapat melakukannya dengan cara merubah parameter runnning sistem searchengine-admin, caranya klik kanan project searchengine-admin, lalu pilih Properties.
    Properties Admin

    Properties Admin

    Ubah parameter running argsnya, misal jika kita akan menambahkan data milis jug-bandung yang ada di google groups, kita dapat mengubah argumennya menjadi “google indeks jug-bandung” :

    Properties Running

    Properties Running

    Jika temen-temen akan menggunakan yahoo, temen-temen bisa mengganti google menjadi yahoo.

  9. Setelah itu jalankan project searchengine-admin tersebut caranya klik kanan project searchengine-admin lalu pilih Run.

    Running Admin

    Running Admin

  10. Ok selesai…
  11. Jangan Lupa Isi Kuisionernya Ya!……….