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 

Java adalah memiliki fitur automatic garbage collection? wah apaan tuh?


#FaktaJava

salah satu kelebihan java adalah memiliki feature automatic garbage collection? wah apaan tuh?

#BahasaAwam
kalo dijelaskan secara awam, kurang lebih seperti ini. jika aplikasi kita diibaratkan sebuah rumah, maka pasti didalamnya ada tempat sampah. automatic garbace collection itu artinya, secara otomatis sampah2 yang ada di dalam rumah akan dimasukkan ke tong sampah, tanpa kita melakukannya sendiri (manual), dan yang paling keren, automatic GC itu secara otomatis akan menghilangkan sapah yang ada, hilang, tanpa tersisa sedikitpun.

#BahasaTeknis
JVM adalah sistem yang pintar, dimana dia bisa mendeteksi apakah ada objek yang masih digunakan atau tidak, seandainya ada objek yang sudah tidak digunakan lagi, maka otomatis objek tersebut akan dihapus dari memori secara otomatis, kita tidak perlu menghilangkan objek itu secara manual seperti ti C/C++, di JVM semuanya otomatis.

#KapanGCTerjadi
garbage collection akan terjadi ketika aplikasi sudah menyentuh batas maksimal memori, seandainya aplikasi kita set batas maksimal memorinya adalah 500MB, maka saat aplikasi kita menggunakan memori menyentuh 500MB maka otomatis GC akan berjalan, menghapus seluruh objek yang tidak dibutuhkan dari memori, sehingga penggunaan memori lebih efektik

#OutOfMemoryError
seandainya aplikasi kita sudah mencapat batas maksimal memori, lalu GC akan menghapus objek yang tidak diperlukan. Namun kadang ada kejadian tidak ada objek yang tidak terpakai, dengan kata lain tidak ada yang bisa dihapus lagi, pada saat ini, JVM akan menyatakan error OutOfMemoryError, artinya tidak ada memori yang bisa digunakan untuk objek baru. Jika ini terjadi, hal yang bisa dilakukan hanyalah menaikkan kapasitas memori.

apakah benar java itu lambat? kalo benar, kenapa bisa lambat?


#FaktaJava

apakah benar java itu lambat? kalo benar, kenapa bisa lambat?

jawabannya bisa YA, bisa TIDAK | kok bisa?

YA jika dibandingkan hanya ketika aplikasi pertama kali dijalankan. Aplikasi hasil java itu tidak berbentuk aplikasi native (seperti EXE untuk Windows misal). hasil dari aplikasi java adalah .class atau .jar. aplikasi java tidak akan jalan tanpa ada JVM.

Hal inilah kenapa proses startup aplikasi java lebih lambat dibandingkan aplikasi native (buatan c++ misalnya). Lambat sebenarnya bukan karena aplikasinya jelek, tapi memang dikarenakan, saat pertama kali startup, JVM harus menghidupkan seluruh sistem, ibarat sistem operasi, kita gak bisa langsung nyalain PC, trus langsung bisa pake, perlu ada proses startup dulu, load semua komponen dulu sampai siap, kalo semua udah siap, baru deh bisa kita pake. begitu pula java.

TIDAK jika aplikasi sudah berjalan. tidak mungkin facebook, twitter, airbnb dan lain2 pake java, kalo java memang lambat ketika aplikasinya udah jalan. Java itu sangat cepat kalo aplikasinya udah jalan, bahkan performanya sangat baik.

#JavaLambat

follow twitter kita juga di @PakarJava 

beginilah alur transformasi dari dunia nyata ke kode java


#InfoJava

beginilah alur transformasi dari dunia nyata ke kode java 

ada berapakah tipe data primitif di Java


ada berapakah tipe data primitif (bukan objek) di java? silahkan lihat pada diagram ini.

kapan perlu pake JDBC dan kapan pake ORM (hibernate, jpa)?


#TanyaJava

kapan perlu pake JDBC dan kapan pake ORM (hibernate, jpa)?

jawabannya sih relatif, suka2 yang coding. tapi pasti ada alasan dibalik coder pilih pake jdbc atau orm seperti hibernate atau jpa.

kapan perlu pake jdbc? saat memang kita sangat ketergantungan sama fasilitas database, contohnya, store procedure, trigger, dan fungsi2 bawaan databasenya. hal ini akan sangat sulit dilakukan di orm. pake jdbc juga dengan ketentuan, sampai kapanpun gak akan pernah ganti database, karena kalo sampai ganti, berarti harus rewrite ulang seluruh perintah sql nya.

kapan perlu pake orm? saat memang kita gak terlalu butuh fitur2 bawaan database, orm saat ini hanya bisa perintah sql standar (insert, update, delete, select, create table), untuk membuat trigger, function dan store procedure, belum bisa, walaupun ada beberapa orm yang mampu, hanya memanggil store procedure saja. salah satu kelebihan orm, kita mudah ganti2 database, karena memang seluruh perintah sql nya di lakukan oleh orm.

tapi orm itu lambat? selambat2nya bukan berarti operasi jdbc itu 1 detik, orm itu 1 menit  perbedaan kecepatan paling hanya beberapa milisecond, dan itu seperti kedipan mata, jadi gak berpengaruh juga  apalagi semakin kesini hardware semakin canggih, jadi kecepatan milisecond benar2 gak kan kerasa.

sekian, follow juga twitter kita di @PakarJava

Apa itu NullPointerException dan kapan terjadinya?


#FaktaJava

exception yang sering sekali dilakukan oleh coder java adalah NullPointerException, kenapa ex ini bisa terjadi?

NullPointerException adalah ex yang terjadi ketika pada saat runtime, terjadi pemanggilan atribut atau metode terhadap sebuah objek yang belum diinisialisasi (bukan gaya viky ya :P), alias masih NULL

contohnya ada sebuah metode dengan isi seperti ini :

public void show(Barang barang){
System.out.println(barang.getNama());
}

seandainya metode show() tersebut dipanggil dengan parameter objek yang masih null :

Barang barang = null;
show(barang);

sudah jelas bahwa akan terjadi NullPointerException.

begitulah NullPointerException terjadi, jadi mulai sekarang kalo membuat method yang sekiranya tidak siap menerima objek null, gunakan pengecekan terlebih dahulu, misal kita ubah metode show() menjadi :

public void show(Barang barang){
if(barang != null){
System.out.println(barang.getNama());
}
}

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

apa bedanya statement dan prepare-statement dalam jdbc?


#TanyaJava

apa bedanya statement dan prepare-statement dalam jdbc?

#statement merupakan objek untuk manipulasi data di jdbc, namun tidak mendukung parameter, pembuatan parameter secara manual di statement bisa menyebabkan sql injection, statement disarankan hanya untuk perintah sql tanpa parameter.

#prepareStatement merupakan objek untuk manipulasi data di jdbc yang mendukung parameter, prepare-statement menjamin parameter yang dimasukkan tidak akan dapat menyebabkan sql injection

#contoh SQL INJECTION :

String username = …
String password = …

String sql = “select * from table_user where username = ‘” + username + “‘ and password = ‘” + password + “‘”;

jika
username = “admin”, dan
password = “admin or ‘A’ = ‘A”

maka hasilnya :

sql = “select * from table_user where username = ‘admin’ and password = ‘admin’ or ‘A’ = ‘A'”

dengan begitu orang bisa login, tanpa harus memasukkan username dan password yang benar.

BAHAYA BUKAN?