Tugas kuliah PSBO buat besok (hehe..) adalah mencari tahu seputar Object Relational Mapping a.k.a ORM di Java. Ternyata lumayan banyak istilah-istilah yang ditemukan. Tapi usut punya usut, beberapa istilah ini sudah pernah dikenali sebelumnya, hanya saja karena waktu itu belum cukup umur (baca: pengetahuan sebelumnya masih kurang) gak bener-bener ngerti dan iya-iya aja waktu dijelasin.. Well, here it is..
ORM
Ini keyword pertama yang mendasari seluruh pencarian. ORM kependekan dari Objek Relational Mapping, adalah teknik pemrograman untuk menjembatani konsep yang berbeda dari database relasional dengan konsep pemrograman berorientasi objek (OOP). Menurut mbah yang ini, dengan ORM, basis data relasional itu digunakan untuk menyimpan data (memang iya), tetapi dalam bentuk objek.
um.. terus gimana teknik-tekniknya itu? ada beberapa teknik dan sebenernya lebih kompleks dari yang bakal dijelasin di contoh di bawah ini. Contoh ini hanya hasil interpretasi penulis, mungkin bisa (CMIIW) nunjukkin bagian kecil tentang gimana yang dimaksud menjembatani database dengan OOP ( hanya supaya konsepnya ga terlalu abstrak)
Dulu tugas kuliah rekayasa perangkat lunak, kelompok kami mengembangkan aplikasi yang namanya APPM (Aplikasi Pendeteksi Penyakit Manusia) (exSys-like application, kata orang2 c). Aplikasi ini menggunakan database untuk menyimpan hal-hal berikut :
- Pertanyaan-pertanyaan yang akan diajukan ke ‘pasien’ untuk mendeteksi penyakitnya. (tabel pertanyaan)
- Data pengguna, meliputi nama, umur, jenis kelamin, dll (tabel pengguna)
- Data obat-obatan herbal (tabel herbal)
Nah, lalu di program java-nya dibuatlah satu buah package (namanya model), yang isinya adalah kelas-kelas yang mendeskripsikan tabel-tabel yang tadi. Atribut-atribut dari kelas ini adalah kolom-kolom yang ada di tabel.
Misalnya tabel pengguna memiliki kolom user_name, password, jenis_kelamin. Maka kelas yang mendeskripsikannya kurang lebih seperti ini :
public class Pengguna {
private String userName;
private String password;
private String jenisKelamin;
//method getter dan setter
}
Jadi, kelas yang mendeskripsikan tabel Pengguna itu sederhana aja, cuma diisi oleh atribut-atribut (yang mewakili kolom di database) dan method getter-setter nya. Ternyata eh ternyata (kalo kata temen yang ini) kelas yang simpel kayak begitu bisa disebut sebagai…
POJO (Plain Old Java Object)
Istilah yang rada-rada berbau nama orang Indonesia ini mempunyai nama panjang yang keren ternyata: Plain Old Java Object. sederhananya sih, ini adalah objek yang sederhana, nggak kompleks. Kata Beliau, POJO itu nggak mau ribet, dia nggak diinstantiasi dari kelas yang rada-rada komplex gitu deh, mis.: merupakan turunan dari kelas lain, mengimplementasi suatu interface, atau mengandung anotasi.
Kalau kata yang ini,
Tapi rule of thumb yang bisa dipake adalah the simpler = the more POJO. Jadi suatu object yang dikatakan POJO atau POCO kalau dirinya tidak tergantung pada external framework (hence jadi complex)
Hm,, omong-omong tentang framework.. nah. konsep ORM nya kan udah, sekarang,, nge-implementasiinnya pake cara-cara apa aja ya,, berikut cuplikannya..
JPA
Tentunya kita tidak sedang membicarakan laki-laki karena JPA yang dimaksud di sini bukanlah Jenggot Pemikat Akhwat melainkan Java Persistence API.
Hibernate
Hibernate juga merupakan salah satu library yang menyediakan framework untuk ORM. lebih jelasnya ke sini aja, saya juga belum bener2 baca, dah malem.. baca sendiri aja ya.. (emang dari tadi dibacain gitu??) hehe..
yap, sekian. Besok pas kul kalo ternyata konsepnya salah, mudah2an bisa segera memperbaiki tulisan ini.. daag..