Belajar Ibatis (menggunakan Netbeans)

3 April 2009

Kemarin saya mencoba Ibatis, framework untuk datamapping. Selama ini aplikasi Java yang saya buat langsung menggunakan JDBC saja karena memang aplikasinya kecil.

Sayangnya setelah mencoba beberapa tutorial Ibatis yang ada di internet, tidak ada yang menjelaskan secara mudah dan ringkas penggunaan Ibatis pada Netbeans. Butuh lumayan lama untuk membuat versi sederhana (ala “hello world”) dengan Ibatis. Masalah yang muncul adalah pengaturan classpath yang membuat getResourceAsReader gagal. Netbeans selalu mencari di /build/classes,  sehingga perlu ditambahkan beberapa penyesuaian.

Yang akan saya tulis di blog ini adalah tutorial yang paling minimalis yang menggunakan Ibatis. Aplikasinya menggunakan Netbeans (Windows). Tujuannya untuk referensi saya pribadi, jadi yang tidak-suka-tidak-boleh protes, walaupun silahkan saja memberikan masukan :-P Tapi syukur juga kalau posting ini dapat bermanfaat bagi orang lain.

Asumsikan MySQL dan Netbeans sudah ada di komputer. Ibatis dapat didownload di ibatis.apache.org. Buat database baru dengan nama dbtest dengan satu table Mahasiswa sebagai berikut:

create table mahasiswa ( id int auto_increment primary key, nim char(10), nama varchar(50) )

Isi dengan satu record:

insert into dbtest(nim,nama) values (’1111′,’Budi’);

Kemudian buka Netbeans, buat new project, pilih Java Application. Beri nama “TestIbatis”. Lalu tambahkan dua library yang dibutuhkan, yaitu Ibatis dan MySQL driver. Pilih libraries (gambar bawah), klik kanan, pilih “Add Library” lalu pilih “mysql JDBC driver”. Kemudian klik kanan sekali lagi, pilih “Add JAR/Folder”, lalu masuk ke direktori Ibatis dan pilihlan ibatis-x.x.x.xxx.jar.

Isi Libraries

Isi Libraries

Sekarang buat file XML konfigurasi untuk Ibatis. Klik kanan pada package testibatis (gambar bawah) –> new –> Other –> XML document

Tambah File XML

Tambah File XML

Kemudian pilih XML document

Tambah XML

Tambah XML

Beri nama SqlMapConfig.xml dengan isi sebagai berikut. Jangan lupa sesuaikan nama database (di contoh ini  namanya dbtest), username dan password .


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig
  PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
  "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
  <settings useStatementNamespaces="true"/>
<transactionManager type="JDBC">
    <dataSource type="SIMPLE">
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
<property name="JDBC.ConnectionURL"
        value="jdbc:mysql://localhost:3306/dbtest"/>
<property name="JDBC.Username" value="root"/>
<property name="JDBC.Password" value=""/>
    </dataSource>
  </transactionManager>
  <sqlMap resource="\testibatis\Mahasiswa.xml"/>
</sqlMapConfig>

Buat xml untuk table mahasiswa (caranya sama dengan buat xml diatas). Beri nama Mahasiswa.xml


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="Mahasiswa">
<select id="getMahasiswa" parameterClass="String" resultClass="testibatis.Mahasiswa">
SELECT
    NIM as nim,
    NAMA as nama
FROM MAHASISWA
    WHERE NIM = #value#
</select>
</sqlMap>

Buat Mahasiswa.java (caranya sama dengan menambah xml document, tapi pilih tipe java class). Isi sebagai berikut


public class Mahasiswa {
   private String nim;
   private String nama;
}

Lalu klik kanan (gambar bawah), pilih refactor –> Encapsulate Field untuk membuat method setter dan getter.

Refactor

Refactor

Pilih semua create getter dan create setter.

Kemudian buat SqlConfig.java untuk membuat map


import java.io.*;
public class SqlConfig {
private static final SqlMapClient sqlMap;
static {
   try {
      String resource = "\\testibatis\\SqlMapConfig.xml";
      Reader reader = Resources.getResourceAsReader (resource);
      sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
   } catch (Exception e) {
      e.printStackTrace();
      throw new RuntimeException ("Error initializing MyAppSqlConfig class. Cause: " + e);
   }
}

public static SqlMapClient getSqlMapInstance () {
    return sqlMap;
}
}

Terakhir, di Main.java, tambahkan kode berikut:


import com.ibatis.sqlmap.client.SqlMapClient;

public class Main {
public static void main(String[] args) {
   System.out.println("Coba Ibatis");
   SqlMapClient sqlMap = SqlConfig.getSqlMapInstance();
   try {
        Mahasiswa M = (Mahasiswa) sqlMap.queryForObject("Mahasiswa.getMahasiswa", "1111");
        System.out.println(M.getNama());
   } catch (Exception e) {
      e.printStackTrace();
   }
}
}

Jalankan, dan program akan menampilkan ‘Budi”.


Membuat Perusahaan

7 Februari 2009

Melanjutkan cerita saya menjadi freelancer selama mahasiswa:

Setelah 1.5 th menjadi freelance (thn 98-an) saya mulai berpikir bahwa menjadi freelance mempunyai batasan dari sisi jumlah proyek yang dapat ditangani. Kemampuan mental dan fisik tentu ada batasnya.  Solusinya saat itu adalah membuat perusahaan. Kalau kita memiliki perusahaan, harusnya tidak ada batas jumlah proyek lagi,  perusahaan dapat berkembang (dan mengkerut) mengikutinya.

Saya kontak teman sekelompok saya, dan kita sepakat untuk membuat perusahaan. Niatnya sih waktu itu cuma berempat.  Saya lupa kenapa, tapi  jumlahnya membengkak jadi 10 orang.  Perusahaan tersebut kami namakan Dasamitra Informatika.

Kesalahan utama dalam pembentukan perusahaan ini adalah kami belum memiliki satupun proyek.  Rencana pembuatan produk juga gagal karena kurang motivasi (lagipula waktu itu kami semua masih kuliah). Akhirnya kegiatannya cuma rapat saja.  Kami berdua (saya + calon istri),  kemudian mengundurkan diri.  Perusahan ini setahu saya juga akhirnya tutup.

Usaha kedua pembentukan perusahaan dilakukan setelah saya lulus dan menikah (2001-an) , waktu itu hanya kami berdua pegawainya. Istri menjadi programmer dan  saya merangkap menjadi direktur, sekretaris, sales, programmer sampai office boy :) .   Sesuai dengan jumlah pegawainya,  nama perusahaan ini adalah CV. Dwidata.

CV ini cukup lama hidup, tapi akhirnya tutup juga. Masalah utamanya adalah kami tidak mempunyai modal cukup untuk merekrut programmer full time. Masalah kedua, sulit mencari programmer part time yang berkualitas. Waktu itu saya dan istri belum bekerja sebagai dosen, sehingga tidak memiliki akses ke mahasiswa.  Kami sempat menyewa beberapa programmer part time. Ada yang code-nya begitu buruk sehingga harus saya tulis ulang, ada lagi yang ditengah-tengah tiba-tiba mengundurkan diri.  Masalah ketiga adalah saya malas mengurusi administrasi.  Setiap bulan harus ke kantor pajak, mengurusi tagihan dan lain-lain merupakan pekerjaan yang menyebalkan, tapi menyewa orang lain untuk ini juga terasa kagok karena pekerjaannya masih sedikit.

Walaupun gagal terus, pengalaman yang saya peroleh banyak. Saat ini, walaupun belum ada wujudnya, sebenarnya saya mulai merintis lagi perusahaan.  Di tahun ini saya bersama sembilan orang programmer (mahasiswa) sedang mengerjakan dua proyek,  salah satunya menghasilkan produk.   Bagaimana kelanjutannya? apakah dapat berkembang terus? atau gagal lagi seperti dua perusahaan sebelumnya?  Ya kita lihat saja, hidup adalah belajar kan?  :)


11 Tahun Kemudian ..

23 Januari 2009

Hari ini istri saya mendapat telepon dari Jurusan Teknik  Lingkungan (TL) ITB untuk memperbaiki sistem akademik (SIMAK) yang kami buat 11 tahun yang lalu. SIMAK ini kami kembangkan saat kami masih kuliah S1 dulu. Saat istri saya selesai bercerita, pertanyaan saya cuma satu “Lho, SIMAK itu masih dipake disana?”.  Saat ini sistem akademik ITB sudah terpusat dan software pengolahan nilai di jurusan sebenarnya sudah tidak diperlukan lagi.  SIMAK kami ternyata masih digunakan karena menghasilkan laporan yang spesifik untuk kebutuhan jurusan ini.

Dalam perjalanan pulang, ingatan saya menerawang ke masa lalu.  Sekitar tahun 1997, kami mengembangkan SIMAK di jurusan perminyakan dan berlanjut ke fakultas (waktu itu FIKTM). Akibat salah perhitungan yang parah (rencana pengembangan yang 6 bulan, molor menjadi 1.5 tahun!) ,  pengembangan software ini dapat dikatakan rugi berat. Tapi walaupun secara finansial rugi, bagi kami waktu itu SIMAK ini  adalah software yang paling canggih:  dengan kemampuan masih pas-pasan, ratusan jam digunakan untuk develop, debug dan  fine tuning.  Walaupun tidak diminta, fitur-fitur yang kami anggap bagus kami tambahkan.  Uang bukan masalah waktu itu, motivasi utama cuma idealisme saja. Kepuasan yang paling tinggi bagi programmer adalah melihat programnya jalan, operasional dan berguna bagi orang lain.

Kemudian saya berpikir, bisa tidak software ini dijual ke jurusan lain (sekalian menutup kerugian :) ).  Lalu saya membuat semacam buku promosi berisi fitur-fitur SIMAK. Kemudian saya datangi ketua-ketua  jurusan.  Sempat grogi berat,  maklum masih mahasiswa dan belum pernah jadi sales door-to-door sebelumnya :)   Saya ingat masih menggunakan ransel saat bertemu dengan para ketua jurusan (kurang profesional pokoknya).   Modal utamanya cuma satu:  bukti bahwa software ini sudah operasional di FIKTM.

Umumnya sambutan dari ketua jurusan baik.  Hanya ketua jurusan Teknik Arsitektur yang menolak bertemu (ternyata mereka sudah buat sendiri).  Tapi waktu itu tetap agak sakit hati sih (lagi-lagi bukan sales profesional, harusnya bisa tabah terhadap penolakan :) ) .  Sampai saat ini saya tidak pernah mengusir sales dengan kasar,  paling hanya bilang  “tidak makasih”   tapi tetap dengan senyuman. Ingat masa lalu soalnya.

Jurusan TL adalah jurusan pertama yang menelepon dan tertarik untuk membeli. Wah loncat-loncat saya waktu mendapat telepon dari ketua jurusannya :)     Karena hanya customizing dan sedikit tambahan fitur,  software dapat running dalam 3  bulan dan secara finansial menguntungkan. Sekitar setahun kemudian  Sipil, FSRD, Geodesi dan (akhirnya) IF juga membeli software kami.   Selang 11 tahun,  setelah melewati satu kali upgrade,  yang masih menggunakan SIMAK hanyalah TM (untuk transkrip alumni),  Sipil (?) dan TL. Itupun hanya sebagian fitur saja.

Walaupun tinggal 3 jurusan dari 10, tapi  tetap menyenangkan melihat code yang dibuat waktu kuliah masih tetap berguna setelah 11 tahun.


Tentang Palestina

22 Januari 2009

Perang di Gaza beberapa waktu lalu saya pikir sudah banyak dibahas, terutama dari korban sipilnya yang memilukan.  Saya akan mencoba membahas dari sisi lain.

Menurut saya,  Palestina dan semua muslim pada umumnya perlu melihat lebih jauh ke arah dalam. Yaitu ke arah diri sendiri.  Salah satu akar permasalahan adalah lemahnya orang muslim itu sendiri.  Selama masih lemah, apapun yang akan diterima oleh Palestina pasti berat sebelah.  Mau perang digebukin, mau damaipun tetap ditindas.

Mengapa lemah? ada beberapa faktor:

  1. Tidak bersatu.   Sunni vs Siah, Fatah vs Hamas,  Iran+ Suriah vs Mesir+Arab Saudi.   Pecah dulu baru jajah, teknik klasik yang masih tetap efektif untuk digunakan.  Indonesia sudah mengalaminya waktu dijajah Belanda (sampai sekarang saya masih kagum negara sekecil itu bisa menjajah Indonesia sampai ratusan tahun).  Untuk faktor ini Indonesia sudah bagus. Demokrasi dan pers bebas menjadi kuncinya.
  2. Moral. Salah satu alasan Hamas menang dalam pemilu lalu adalah karena Fatah yang korup. Negara-negara Arab dan Indonesia untuk urusan korupsi masih buruk.  Saya sendiri pernah mempunyai atasan yang saat menjadi imam sholat sangat fasih, tapi dengan mudahnya membagikan uang sogok ke client dan menindas pegawainya.
  3. Penguasaan ilmu dan teknologi. Adakah negara Arab ataupun negara yang mayoritasnya muslim yang dapat menghasilkan sendiri jet tempur? rudal anti pesawat? rudal anti tank?    Kualitas pendidikannya bagaimana? Saya sangat berharap semangat mahasiswa saat demonstrasi sama hebatnya  dengan semangat belajarnya.
  4. Penguasaan ekonomi.  Muslim harus kaya tapi tentu saja dengan cara yang halal.  Untuk Indonesia menurut saya parameter yang dapat digunakan:  kondisi mushola di mall-mall

Semua hal diatas tidak dapat diatasi dalam jangka pendek, butuh waktu belasan bahkan puluhan tahun.  Tapi tentu saja sudah dapat dimulai dari diri sendiri (bekerja, belajar dengan sungguh-sunguh, hindari korupsi),  dari keluarga (alokasikan dana lebih untuk pendidikan,  hidup sederhana untuk hal yang lain), dan dari tempat kerja (persulit mahasiswa mencotek,  ajarkan semangat berjuang).


Tulisan Furqon

10 Nopember 2008

Saat Furqon meminta jatah tambahan main game, dia diminta ibunya untuk menuliskan karangan. Karangan itu diketik sendiri, isinya bebas terserah Furqon. Ini karangannya, bagian awal sih standar tapi saya geli saat membaca paragraph terakhir:

“Hari ini aku pergi ke mall giant . aku ingin membeli mainan lego. aku  tidak menemukan di bagian mainan akhirnya aku mau beli di yens saja. jadi aku menemani mama belanja terus aku membeli donat terus aku pergi ke yens. aku juga tidak menemukan lego jadi aku membeli tas payung jashujan dan membeli tracks hot wheels. aku senang sekali.

Kenapa aku berhak mendapat tambahan 30 menit jatah game dan nonton ? Karena sudah bikin karangan karena aku dapat nilai bagus karena mama lagi baik karena aku suka sholat karena aku terlalu suka main game karena mama lagi senang kali ? “


Mengapa mau jadi dosen?

26 September 2008

Pertanyaan ini dilontarkan oleh rekan dosen setelah dia tahu latar belakang pendidikan saya. “Ngapain kamu jadi dosen? kalau kamu kerja di industri pasti lebih makmur”, begitu ucapnya.  Memang benar juga sih,   kalau dari ukuran uang,  penghasilan  teman-teman seangkatan saya sepertinya sudah mencapai belasan juta per bulan (bahkan lebih).

Menyesal dong? Jelas tidak :-)   Menjadi dosen bukan pilihan terakhir bagi saya. Sebelum saya memilih profesi dosen, saya sudah mendapat beberapa tawaran dari teman untuk bekerja, dengan gaji yang jauh lebih tinggi tentunya.

Pekerjaan menurut saya mirip seperti pasangan hidup. Setiap orang memiliki selera yang berbeda, dan harus ada trade off.  Agak lama juga ternyata untuk menemukan “selera” saya.  Saya termasuk orang yang sering gonta-ganti pekerjaan. Proyek pengembangan software pertama kali saya dapatkan saat SMA, berlanjut menjadi freelancer saat kuliah. Sempat jualan software, baik langsung maupun melalui internet.  Kemudian membuat perusahaan sendiri setelah lulus. Karena perusahaan tidak berkembang, beralih jadi karyawan.  Akhirnya menjadi dosen di tahun 2004 sampai dengan sekarang. Dari semua itu, menjadi dosen menurut saya merupakan  pekerjaan yang paling menyenangkan.

Kenapa bisa seperti itu? Setelah saya pikir-pikir, mungkin karena sifat saya yang cepat bosan. Dengan menjadi dosen, sulit untuk menjadi bosan. Mempersiapkan materi kuliah membuat saya harus terus belajar. Menghadapi mahasiswa yang selalu baru setiap semester memberikan masukan yang segar.  Melakukan penelitian memberikan kebebasan untuk melakukan apa yang kita inginkan (tanpa perlu khawatir hasilnya tidak laku).  Diluar kedua hal itu, profesi menjadi freelancer masih tetap dapat dijalankan :) Malah sekarang saya melibatkan mahasiswa sebagai programmer (saat ini ada 7 orang yang sedang bekerja) sehingga mirip mengelola perusahaan juga.

Kelebihan yang lain adalah fleksibilitas waktu dan tempat kerja.  Urusan kuliah tatap muka memang tidak dapat ditinggalkan (harus di dalam kelas dalam waktu tertentu). Tapi diluar itu, saya dapat bekerja dimana saja.  Penggunaan e-learning membuat saya dan mahasiswa dapat berkomunikasi tanpa perlu dibatasi ruang kelas. Kadang-kadang saya chatting dengan mahasiswa mengenai kuliah sampai jam 1 pagi (tapi kalau ada yang berani menelpon jam 12 malam, ya saya getok).  Kenikmatan seperti bisa bermain dengan anak di pagi hari, mengantar dan menjemput dia dari sekolah dan les, dan… tidur siang merupakan hal yang saya yakin jarang dimiliki orang yang bekerja di perusahaan lain :)

Kelebihan yang lain (lagi) adalah dari sisi politik kantor. Di universitas, walaupun ada, intrik antar dosen relatif sedikit dan lunak.  Dengan jabatan fungsional, dosen suatu saat bisa menjadi ketua jurusan, bahkan rektor. Tapi di saat yang lain dapat menjadi dosen biasa lagi. Ini berbeda dengan di tempat lain yang sekali diatas akan terus naik jabatannya.

Ada yang berminat? :)   Ilkom UPI tahun ini membuka lowongan untuk dosen. Sayangya  mungkin pendaftarannya sudah ditutup (27 sep 08). Tapi tahun-tahun mendatang saya yakin akan terus menerima karena kami masih kekurangan dosen.


Manfaat Air Kelapa Muda

18 September 2008

Puasa ini saya memiliki hobi baru, yaitu membeli kelapa muda. Saya beli masih berbentuk buah, dan hanya dipotong sedikit dibagian atas (lalu ditutup lagi). Beli di sore hari dan baru dikeluarkan airnya dan dikerok dagingnya menjelang buka dan dimasukkan ke  kulkas sebentar.  Langsung diminum tanpa tambahan apapun. Wuih rasanya enak sekali. Jauh lebih enak dibandingkan beli yang sudah dikeluarkan oleh tukangnya dengan tambahan susu dan gula. Ternyata setelah saya baca, air kelapa memang harus diminum secepatnya setelah dikeluarkan dari buah.

Rasanya juga membuat badan lebih enak dan bersemangat, mirip seperti efek kopi tapi tanpa efek samping seperti berdebar dan mulut kering. Kopi bagi saya juga cuma sebentar saja efeknya, setelah itu malah lebih mengantuk. Mungkin mirip mobil yang dipaksa lalu malah ngos-ngosan. Itulah sebabnya saya biasanya hanya minum kopi disaat libur (setelah minum kopi langsung tidur siang :-) ).

Penasaran dengan efeknya, setelah cari di internet ternyata manfaat air kelapa muda banyak sekali. Berikut rangkuman dari sumber ini (tapi perlu dicek lagi ya, tidak yakin juga apakah pengarangnya netral):

  1. Mengandung nutrisi, vitamin dan terutama mineral. Cocok untuk melawan dehidrasi. Mirip seperti cairan yang banyak diiklankan tapi jauh lebih bagus karena lebih lengkap dan tanpa tambahan bahan kimia. Bahkan di dalam keadaan darurat, air kelapa muda yang steril dapat digunakan langsung sebagai cairan infus.
  2. Boleh dikatakan fat free dan tanpa kolesterol.
  3. Rendah gula tapi rasanya enak (dalam volume yang sama, kadar gulanya hanya 20% dari jus apel).
  4. Bagus untuk sistem urinari (dapat menghilangan batu ginjal) dan reproduksi (ehm).
  5. Mengurangi plak pada arteri (setidaknya pada anjing percobaan) sehingga bagus untuk jantung. Menyeimbangkan kolesterol jahat dan baik.
  6. Bagus untuk sirkulasi darah sehingga mengurangi tekanan darah (statement ini diapprove oleh FDA) dan baik untuk penderita diabet. Tapi ada paper dari peneliti Indonesia yang mengatakan bahwa tidak ada pengaruh kelapa mudah pada tekanan darah (papernya perlu riset lebih lanjut menurut saya karena diukur dalam jangka pendek dan samplenya cuma 20 orang-an).
  7. Mengandung Cytokinin yang dipercaya sebagai bahan anti penuaan dan anti kanker.

Dari forum ada yang mengatakan kerugian air kelapa muda adalah meningkatkan asam urat walaupun saya agak meragukan karena sumbernya anonim. Dari pengalaman saya pribadi sih tidak terasa efek pegal-pegal. Coba nanti kalau dites dalam jangka panjang ya. Kalau anda mau mencoba, jangan beli yang sudah jadi, beli yang berbentuk masih buah dan langsung diminum secepatnya setelah dibuka.

Mengingat di Indonesia mudah sekali memperoleh air kelapa muda, sangat disayangkan penelitiannya masih sedikit (atau tidak tersedia online?).


Belajar JSF (Java Server Face)

31 Agustus 2008

Ini berawal dari pekerjaan yang sebenarnya harus saya selesaikan beberapa bulan lalu (yang saya pending untuk menyelesaikan S2).  Tidak terlalu diburu deadline tapi harus selesai. Jadi cocok untuk eksperimen hal yang baru :-)

Saya ingin sekali membuat aplikasi web berbasis Java.  Sebelumnya saya belajar PHP, sampai membuat sendiri framework MVC sederhana  (tidak dari nol sih).  Di Java saya pernah mencoba sekilas servlet dan JSP, kemudian men-debug aplikasi web Java yang cukup besar (servlet, JSP, taglib) buatan orang lain.  Yang belum adalah mencoba sendiri salah satu framework.

Berdasarkan pencarian di internet, sepertinya ada dua framework yang paling populer, yaitu Spring dan Struts.  Dari yang saya baca, Struts tampaknya merupakan perbaikan dari Spring, jadi saya tentukan akan menggunakan itu. Saya baca sekilas tutorialnya, tetapi saat saya akan membuat new project di Netbeans saya lihat ada opsi Java Server Face.  Hmm kalau sampai menjadi bagian dari Netbeans pasti lumayan penting nih.  Akhirnya saya coba lihat-lihat tutorial dan …  sepertinya lebih menarik dari Struts :-) .  Struts menurut saya  (dari sudut pandang awam) sekilas seperti MVC biasa, sedangkan pada JSF yang menarik adalah sistemnya yang component based, event based dan statefull.  Saya dulu adalah programmer Delphi (pernah jualan component juga), jadi wajar juga jika saya tertarik dengan konsep JSF ini.

Ada beberapa tutorial, tetapi menurut saya yang paling bagus adalah: http://www.ibm.com/developerworks/library/j-jsf1/ Dia membahas perbandingan JSF dengan Struts plus contoh software pada tutorialnya pas sekali.  Tidak terlalu kompleks tapi juga tidak menggampangkan. Setelah baca tutorial ini Jadi lebih mantap belajar JSF

Berdasarkan apa yang saya baca,  inti JSF mirip dengan dev. tools desktop seperti Delphi atau VB. Kita letakan komponen user interface, kemudian input/outputnya kita hubungkan dengan sumber data, sedangkan  buttonnya kita hubungkan dengan method yang akan menangani event “onclik”.  Saat “button” ditekan, sumber data kita manipulasi dan otomatis komponen di layar yang terhubung dengan sumber data tersebut (Label) akan menampilkan hasilnya.  Bagi pengembang aplikasi dekstop hal ini sangat intuitif ‘kan?

Di JSF, sumber data ini disebut Managed Bean. Jika kita menggunakan  Netbeans meletakan UI-nya  jelas tidak semudah IDE Delphi, menghubungkan komponen dengan sumber data dan event handler juga harus dilakukan secara manual. Tapi ini sudah lebih baik menurut saya.

Untuk selanjutnya saya perlu baca lebih detil lagi, tutorial J2EE di Sun sepertinya bagus. Bab 18-21 membahas JSF secara lebih detil.  Baca dulu ah, nanti akan saya lanjutkan :)

–update 1 sep 08 — Tutorial Sun ternyata tidak terlalu bagus, sekarang saya sedang mencoba membuat aplikasi guestbook. Kena bug  “Cannot find FacesContext “, ternyata jangan lupa tambahkan path /faces pada saat mengeset URL untuk run. Bug kedua “Target Unreachable”: Disebabkan karena saya me-rename nama bean, walaupun sudah dengan refaktor ternyata tetap harus me-rename secara manual di faces-config.xml  –

– update 2 sep 08 –
Buku tamu saya menggunakan satu page, di atas input dan di bawah adalah daftar tamu beserta komentar berbentuk tabel. Untuk sementara tidak menggunakan database, karena saya pikir beans di JSF persistent. OK, jadi ada dua beans, satu TamuBeans untuk input dan DaftarBeans untuk isi tabel.  Saat user submit, action-nya adalah “DaftarBeans.tambahTamu”. Nah, masalahnya bagaimana DaftarBeans mengambil data TamuBeans? Setelah googling ternyata bisa melalui injected bean. Jadi faces.config.xml-nya dibuat sbb:

    <managed-bean>
        <managed-bean-name>TamuBean</managed-bean-name>
        <managed-bean-class>com.yuliadi.bukutamu.TamuBean</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    <managed-bean>
        <managed-bean-name>DaftarTamu</managed-bean-name>
        <managed-bean-class>com.yuliadi.bukutamu.DaftarTamu</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
        <managed-property>
            <property-name>currentTamu</property-name>
            <value>#{TamuBean}</value>
        </managed-property>
    </managed-bean>

Scope juga harus dibuat jadi “session”, karena jika menggunakan “request” maka DaftarTamu seperti dicreate ulang untuk setiap submit. Untuk menampilkan info mengenai dataTable tag dapat dilihat di http://www.roseindia.net/jsf/dataTable.shtml,  tapi array di contoh tersebut saya ganti dengan List.  Tahap berikutnya saya akan mencoba koneksi dengan database.


Review Asuransi Kesehatan Bumida

31 Agustus 2008

Istri saya ikut asuransi kesehatan Bumida Bumiputra yang diberikan oleh ITB.  Seperti halnya asuransi lain, kalau bisa sih jangan sampai harus menggunakan fasilitas ini. Tapi tahun 2007, istri saya harus masuk rumah sakit untuk sebuah operasi.

Sebelum masuk rumah sakit saya menelepon pihak asuransi untuk mengetahui mekanisme klaimnya . Saya kemudian diminta untuk menelpon agen yang khusus memegang ITB.  Ternyata ada dua cara, bayar sendiri baru kemudian mengajukan klaim, atau meminta jaminan (istilah mereka jaminan dari provider) sehingga tidak perlu keluar biaya di depan (jika ada kekurangan dibayar kemudian). Tentu saja saya memilih yang terakhir, daripada repot minta klaim.

Kami memilih rumah sakit Boromeus, ternyata administrasinya sangat mudah. Tinggal tunjukkan kartu asuransi dan beres. Obat, test, perawatan semuanya tinggal pakai, tidak perlu pengurusan administrasi lagi. Saya hanya perlu dua kali ke PMI untuk mengambil darah karena persediaan di RS habis, itupun tidak keluar biaya.  Saat keluar juga demikian, tinggal lapor dan langsung bisa keluar.  Jadi kami tidak keluar biaya sepeserpun.

Setelah istri saya keluar dari RS saya kontak pihak asuransi untuk menanyakan apakah ada biaya yang perlu saya bayar, karena saya tahu memang ada batasan dari jumlah pertanggungan.  Pihak asuransi mengatakan bahwa hal tersebut sedang dihitung dan nanti akan dikabari. Sekitar 3 bulan kemudian,  baru ada tagihan beserta rincian.  Ternyata 85%  dibayar oleh pihak asuransi dan sisanya kemudian kami lunasi dengan transfer.  Walaupun tidak full, tapi jelas ini sangat membantu.

Saya terkesan dengan prosesnya yang cepat dan tidak berbelit-belit, terutama saat berada di RS.  Semua dapat dilakukan melalui telepon.  Berdasarkan pengalaman ini saya beserta anak sekarang juga  bergabung dengan asuransi kesehatan Bumida,  walaupun saya sendiri sebagai PNS juga memiliki Askes.

Mungkin karena dianggap masuk ke keluarga ITB (saya dan anak dianggap ikut istri), proses pendaftaran asuransi juga tidak sulit.  Saya tinggal  mengirimkan data nama, umur kemudian transfer preminya via bank. Kemudian polis+kartu asuransinya dikirim lewat kantor istri saya.

Jelas kami tidak berharap akan menggunakan fasilitas ini,  tapi persiapan untuk menghadapi musibah tentu harus tetap dilakukan. Mudah-mudahan UPI kedepannya juga menambahkan asuransi model ini sebagai pelengkap Askes.

Mengapa harus ada tambahan selain Askes?  Hmm saya tidak tahu kondisinya sekarang, tapi setahu saya pengurusan Askes masih lebih rumit dibandingkan model asuransi seperti ini.  Cakupan Askes juga lebih banyak di RS negeri yang pelayanannya masih kurang optimal.


Review Asuransi Kendaraan Allianz

28 Agustus 2008

Ini bermula dari mobil saya yang menabrak trotoar dan mengalamai kerusakan lumayan parah.  Untungnya saya ikut asuransi all risk dari Allianz, jadi saya berencana untuk memanfaatkannya.

Masalahnya, saat polis Allianz datang via pos sekitar bulan Jan  08, ada kesalahan satu digit di nomor mesin yang tertulis di polis. Khawatir dengan masalah ini saya minta tolong kepada sales mobil (yang waktu itu kebetulan datang) untuk mengurus hal ini.  Sekitar sebulan kemudian saat saya kontak sales tersebut, dia mengatakan sudah diurus dan harusnya sudah dikirim via pos oleh Allianz.  Sayangnya sampai sekarang polis itu belum datang juga.

Hmm,  sepertinya harus diurus sendiri pikir saya. Ya sudah, mulai mencari telepon yang bisa dihubungi. Sialnya nomor kontak pihak Allianz yang diberikan oleh pihak bank ternyata hilang :-( , akhirnya coba mengontak nomor Allianz Bandung.. tidak diangkat. OK, ke internet, googling, oh ternyata cabang Bandung sudah pindah, telp lagi, tidak diangkat.  Ya sudah, kontak call centre Jakarta. Setelah menunggu cukup lama, akhirnya saya diberikan nomor dan nama yang harus dihubungi di Bandung. Setelah saya hubungi, ternyata di database mereka nomor mesin saya masih tetap salah.  Wah apa sales itu belum mengurus ya?  Setelah bicara bahwa niat saya ingin mengajukan klaim, saya diminta untuk menelpon ke bagian klaim saja, tidak perlu menunggu nomor mesin yang salah itu diperbaiki terlebih dulu.

Sekarang kontak bagian klaim, tadinya saya diminta datang ke kantor mereka di Bandung terlebih dulu, tetapi untungnya kemudian dia mengajurkan untuk membawa saja ke langsung bengkel. Tidak perlu bawa lembar polis, cukup nomor polisnya  saja , katanya mudah-mudahan polisnya selesai diperbaiki setelah mobil selesai. Setelah saya bawa mobil ke bengkel Otto Cemerlang, ternyata semua lancar, walaupun mobil harus diinapkan selama dua minggu.

Sementara itu, sales saya mengontak lagi, katanya dia sekarang mengurus dan dia sendiri yang akan mengambil (tidak dikirim via pos). Ya saya tunggu saja deh.  — update 2 sep 08 –  Sudah diurus oleh dia dan perbaikannya diantar langsung ke rumah, nah itu baru support yang bagus :-)   –

Kesimpulannya:

  • Nomor mesin dan nomor rangka pada polis sepertinya tidak terlalu penting. Berbeda dengan di STNK.
  • Sistem klaim di Allianz  menurut saya sudah bagus, cepat dan praktis (nanti saya update setelah urusan bengkel selesai, apa saat mengambil mobil juga sepraktis seperti memasukkan mobil)
  • Seharusnya pihak Allianz memiliki mekanisme yang lebih mudah untuk memperbaiki kesalahan data di polis,  atau sekalian saja disampaikan bahwa itu tidak perlu diperbaiki. Saat di telpon terasa mereka seperti bingung harus menanganinya seperti apa (tidak ada SOP-nya?). Karena mereka memiliki copy STNK, memperbaiki kesalahan nomor mesin dan rangka harusnya mudah dan dapat dilakukan via telepon oleh client.  Client memberitahu, cek copy STNK, diperbaiki di database, dicetak, kirim.