Wednesday, December 4, 2013

JavaServer Faces (JSF) - Facelets

Facelets adalah halaman deklarasi bahasa yang digunakan untuk membangun komponen UI JSF, facelets menggunakan gaya HTML. Facelets sangat powerfull tetapi ringan, hal itulah yang menjadikan facelets sebagai template default JSF.
Fitur facelets meliputi:

1.      Penggunaan XHTML untuk membuat halaman web.
2.      Mendukung penggunaan faceletes tag libraries, disamping JSF dan JSTL tag libraries.
3.      Memiliki dukungan untuk Expression Language (EL).
4.      Mampu sebagai template untuk komponen dan halaman.

Keuntungan dari Facelets untuk proyek-proyek pembangunan berskala besar meliputi:

1.      Mendukung untuk penggunaan kembali kode melalui template dan komponen komposit.
2.      Waktu kompilasi yang lebih cepat.
3.      Memiliki kinerja tinggi untuk proses rendering.

     Daftar tag libraries yang didukung oleh Facelets.


Tag Library
URI
Prefix
Example
Contents
JavaServer Faces Facelets Tag Library
http://java.sun.com/jsf/facelets
ui:
ui:component
ui:insert
Tag - tag untuk tamplate
JavaServer Faces HTML Tag Library
http://java.sun.com/jsf/html
h:
h:head
h:body
h:outputText
h:inputText
Tag – tag komponen JavaServer Faces untuk semua objek UIComponent
JavaServer Faces Core Tag Library
http://java.sun.com/jsf/core
f:
f:actionListener
f:attribute
Tag – tag untuk aksi JavaServer faces kustom, ini tidak terkait dengan render kit.
JSTL Core Tag Library
http://java.sun.com/jsp/jstl/core
c:
c:forEach
c:catch
JSTL 1.2 Core Tags
JSTL Functions Tag Library
http://java.sun.com/jsp/jstl/functions
fn:
fn:toUpperCase
fn:toLowerCase
JSTL 1.2 Functions Tags

Thursday, July 11, 2013

CRUD dengan JPA 2.0


Sebelumnya Saya ucapkan Selamat beribadah Puasa, semoga puasa kita diterima oleh Allah SWT. Amiinn.

       Java Persistence API, atau disingkat JPA, adalah kerangka bahasa pemrograman Java yang berfungsi untuk mengelola data relasional dalam aplikasi menggunakan Java Platform Stkandar Edition dan Java Platform Enterprise Edition untuk disimpan ke dalam database relasional. Versi terbaru JPA adalah versi 2.0 (Desember 2009).
         JPA tidak tergantung dengan database, apapun databasenya, kita tetap bisa mempraktekan tutorial ini. Disini saya akan membuat contoh sederhanan CRUD dengan menggunakan database Mysql.
Mari kita mulai ,yang pertama adalah membuat database, untuk membuat database di MySQL caranya cukup sederhana, menggunakan perintah : create database <Nama database>  pada kasus ini database kita bernama “jpa-crud”.
       Untuk tabel nya kita tidak perlu buat, biar nanti JPA yang akan membuatkannya,disini saya hanya membuat satu tabel yaitu tabel Mahasiswa, untuk bagaimana membuat banyak tabel yang saling berelasi dan bagaimana teknik query  di dalam JPA ?? InsyaAllah dipostingan selanjutnya dan mudah - mudahan masih dibulan yan penuh Berkah ini.
      Mari sekarang kita buat Project dari aplikasi kita. Kita buat sebuah project Java Application di NetBeans, caranya lewat menu : File -> New Project, lalu pada bagian Categories pilih Java dan bagian Project pilih Java Application. Setelah itu beri nama projectnya, dan jangan lupa untuk otomatis membuat Main Class seperti yang terlihat pada gambar dibawah ini :


Selanjutnya kita buat Persistence Unit
Caranya pilih Klik kanan pada Project yang kita buat - >File -> New File, lalu pada bagian Categories pilih Persistence dan pada bagian File Types pilih Persistence Unit. Beri nama persistence unitnya “JPA-CRUDPU” ini bisa disesuaikan dengan keinginan kita, setelah itu pilih Persistence Librarynya menjadi Eclipse Link (JPA2) , untuk Library yang lain seperti Hibernate hanya mendukung JPA1 maka dari itu disini kita pilih Eclipse Link (JPA 2.0).



Pada bagian Database Connection, klik comboboxnya lalu pilih Create New Database Connection untuk membuat koneksi baru. Koneksi yang akan dibuat adalah koneksi ke database yang sebelumnya kita buat :
Untuk Drivernya kita menggunakan MYSQL (Connector/J Driver) - > next
Pada textField jdbc url : isikan nama database yang telah kita buat sebelumnya.



Setelah selesai kita buat Persistence Unit maka otomatis terdapat file bernama persistence.xml pada paket META-INF.
Untuk selanjutnya kita buat Entity kelas pada paket model, jadi nantinya kelas – kelas inilah yang akan menjadi tabel pada database. Untuk membuat sebuah class Entity caranya lewat menu File -> New File. Lalu pada bagian Categories pilih Persistence dan pada bagian File Types pilih Entity Class. Kali ini saya membuat sebuah entitas Mahasiswa dan untuk primary key-nya saya gunakan String :



Modifikasi kelas Mahasiswa menjadi seperti dibawah ini :



Setelah membuat kelas Entity, sekarang kita buat class Service. Seperti dibawah ini :


Pada konstruktor kita menciptakan variable bertipe EntityManagerFactory, pada method CreateEntityManagerFactory memiliki satu parameter disana kita isi dengan “JPA-CRUDPU” ini disesuaikan dengan Presistence Unit Name pada file Persistence.xml yang terdapat pada paket META-INF yang sudah kita buat sebelumnya.
      Selanjutnya kita buat kelas Controller pada paket controller, isi kelas Controller seperti dibawah ini :

 
Selanjutnya kita buat User Interface, disini kita beri nama DataMahasiswa, penampakannya  seperti dibawah ini :

Untuk penamaan variablenya kita samakan seperti dibawah ini :



Beri aksi setiap Button seperti dibawah ini :

  • Button  Simpan :
  • Button Ubah :

  • Button Hapus :

Pada konstruktor kelas DataMahasiswa kita modifikasi sedikit menjadi seperti dibawah ini :

Masih di kelas  DataMahasiswa kita tambahkan method reset seperti dibawah ini :







Semua langkah – langkah sudah kita buat, mari kita coba untuk menjalankannya, jika sudah sesuai harusnya sudah bisa melakukan CRUD :

Sekian Tutorial CRUD dengan menggunakan JPA 2.0, Semoga bermanfaat.



Saturday, March 30, 2013

Tutorial aplikasi Client - Server menggunakan Teknologi Socket


Apa itu Soket?
Soket merupakan fasilitas IPC (Inter Proses  Communication) untuk  aplikasi jaringan.
Model komunikasi dengan soket  digambarkan pada gambar dibawah ini.



Agar suatu soket dapat berkomunikasi dengan soket lainnyanya, maka soket butuh diberi suatu alamat unik sebagai identifikasi. Alamat soket terdiri dari  Alamat IP dan Nomer Port. Contoh alamat soket adalah  192.10.10.1 :  5000, dimana nomer 5000 adalah nomer portnya. Alamat IP dapat menggunakan alamat Jaringan Lokal (LAN) maupun alamat internet. Jadi soket dapat digunakan  untuk IPC pada LAN maupun Internet.  Mengapa dibutuhkan nomer port? Apakah nomer IP komputer tujuan saja tidak cukup? Nomer port dibutuhkan karena proses yang berjalan pada suatu komputer umumnya lebih dari satu. Sehingga dibutuhkan tambahan informasi sebagai identifikasi proses yang hendak dihubungi. Jika IP computer diibaratkan adalah nomer telepon suatu perusahaan, maka nomer port adalah nomer ekstensinya.  Suatu proses yang hendak berkomunikasi dengan proses lain lewat mekanisme soket haruslah mengikatkan dirinya dengan salah satu port pada komputerny.  Pengikatan diri ini disebut dengan  binding.
Java menyediakan obyek  Socket  dan  ServerSocket  untuk komunikasi soket TCP. ServerSocket digunakan pada sisi aplikasi server, sedangkan  Socket digunakan baik pada sisi aplikasi server maupun  client. Berikut ini akan saya demokan pengiriman objek melalui socket, namun syaratnya objek yang akan dikirimkan melalui socket haruslah mengimplementasikan Serializable.
Pertama buat 3 buah project.
  1. Sebagai server
  2. Sebagai client
  3.  Sebagai tempat penampung kelas yang objeknya akan dikirim.

Mengapa harus di buatkan project untuk menampung kelas yang akan dikirim ?? dari beberapa pengalaman menggunakan teknologi socket ini ada beberapa kejadian error, dikarenakan bedanya serializable objek yang dikirim dengan objek yang menerima,jadi untuk menjaga konsistensi serializable dari tiap – tiap objek dibuatkanlah satu project yang menampung kelas – kelas yang akan dikirm, lalu project tersebut dijadikan library di project client dan server, jadi dengan cara seperti itu aplikasi client dan server mengacu pada objek yang sama dan tentunya konsistensi serializable dari kelas yang akan dikirim akan terjaga. Oke mari kita ke coding.
  •  Buat 3 project dengan nama seperti gambar dibawah ini.
 

  • Buat paket dalam project common seperti gambar dibawah ini, lalu buat kelas Mahasiswa dalam paket tersebut, rencananya kelas Mahasiswa ini yang nanti objeknya akan dikirim dari client ke srever



Isi kelas Mahasiswa sebagai berikut :


Clean and Build project SocketCommon  lalu include kan kedalam project client dan Server sebagai library


    

  •       Sekarang kita pindah ke project client, buat paket seperti gambar dibawah ini, lalu buat kelas Client pada paket tersebut.


Isi Kelas Client sebagai berikut
  •       Yang terakhir, mari kita ke project server, buat paket seperti gambar dibawah ini, lalu buat kelas ServerBeta pada paket tersebut.
 
Isi kelas ServerBeta sebagai berikut :



Sekarang mari kita test, pertama jalankan aplikasi server lalu disusul aplikasi client. Setiap running harus seperti itu.
Jika sudah benar, penampakannya seperti ini :
Sekian Tutorial aplikasi Client - Server dengan teknologi socket. Semoga bermanfaat, amiinn.

Perhatian !!
Tutorial diatas hanya bisa digunakan dengan satu client dan satu kali proses, lalu bagai mana caranya untuk menghandle banyak client dan dengan banyak proses ? nantikan Tutorial Socket part II.

Adsense