Memfilter List di Java 7 dan Java 8


Java Logo

Java Logo

Salah satu feature baru yang terdapat di Java 8 adalah lamda expression dan Stream. Salah satu contoh yang dapat di implementasikan adalah ketika kita mau memfilter atau menyaring data di List (atau collection).

Misal kita memiliki sebuah data List yang berisikan angka dari 1 sampai 10, dan sekarang kita ingin menyaring seluruh data yang habis jika dibagi 2.

Jika kita menggunakan Java 7 atau versi java sebelumnya, kita biasanya menggunakan perulangan for lalu mengecek datanya apakah habis dibagi dua, jika habis dibagi dua, simpan ke list yang isinya hanya data yang bisa dibagi 2. Baca lebih lanjut

Iklan

apa itu POJO (Plain Old Java Object)?


#IlmuJava

apa itu POJO (Plain Old Java Object)?

pojo adalah kelas java dimana kelas tersebut berdiri sendiri, tidak ketergantungan dengan kelas lain (tidak extends kelas lain, dan tidak implements interface lain)

berikut adalah contoh kelas POJO

public class Person{

}

simple kan?

lantas apa itu Java Beans? dan apa bedanya dengan POJO?

nanti kita bahas di status berikutnya 

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.

beginilah alur transformasi dari dunia nyata ke kode java


#InfoJava

beginilah alur transformasi dari dunia nyata ke kode java 

Apa bedanya Vector dan ArrayList di Java


#TanyaJava

Apa bedanya Vector dan ArrayList di Java, padahal tugasnya sama, sebagai kumpulan objek

#Vector merupakan implementasi dari List di java, gunakanya untuk menampung objek, dan untuk mengakses objek-nya dapat menggunakan index. Vector merupakan class yang thread-safe, yang artinya aman ketika diakses oleh lebih dari satu thread

#ArrayList juga sama seperti Vector, merupakan implementasi List di java. yang membedakan ArrayList dari Vector hanyalah, ArrayList tidak thread-safe, artinya tidak aman jika diakses oleh lebih dari satu thread.

Jadi saat kita membuat membutuhkan List yang diakses oleh banyak thread, gunakan Vector, namun jika hanya diakses oleh satu thread, gunakan saja ArrayList.

Jangan gunakan Vector ketika hanya untuk satu thread, karena kelas yang thread-safe itu sangat lambat dibandingkan dengan yang tidak thread-safe.

Jangan lupa follow twitter kita di @PakarJava 

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?