Sabtu, 21 Maret 2015

4 Tips Optimalisasi Java Programming

Kembali lagi dengan saya, kali ini saya akan berbagi sedikit tentang bagaimana menulis code program yang baik pada Java Programming. Terkadang kita memiliki suatu kebiasaan - kebiasaan saat menulis code yang mana sebenarnya kebiasaan-kebiasaan tersebut perlu diubah, karena kemungkinan dapat membebani proses waktu eksekusi ataupun membebani memory yang terpakai pada komputer kita. Selain itu, dari cara penulisan code yang kita buat tersebut, dapat mempengaruhi terciptanya bugs atau tidak pada program yang nanti kita develop. Berikut langsung saja saya utarakan tips-tips yang saya ketahui untuk dibagikan kepada teman-teman khususnya Java Developer.

1. Hindari membuat object yang tidak sedang dibutuhkan
Terkadang kita suka membuat object dari suatu kelas tanpa mempertimbangkan terlebih dahulu kapan dan dimana sebenarnya object tersebut digunakan. Misal lihat cuplikan code berikut ini.

1:  import java.util.ArrayList;  
2:  public class UnnecessaryObject {  
3:    private ArrayList listNama = new ArrayList();    
4:  }  

Dapat kita lihat pada contoh code tersebut, object dari kelas ArrayList dibuat langsung pada saat pendeklarasian variable dengan nama "listNama". Ini akan membebani penggunaan memory yang seharusnya akan lebih baik jika dituliskan seperti ini.

1:  import java.util.ArrayList;  
2:  public class UnnecessaryObject {  
3:    private ArrayList listNama;    
4:    void insertListNama(){  
5:      if(listNama == null){  
6:        listNama = new ArrayList();  
7:      }  
8:      /* code sesuai kebutuhan developer */  
9:    }  
10:  }  

Kita asumsikan saja, misal object listNama dari kelas ArrayList tersebut dibutuhkan saat pemanggilan fungsi insertListNama, kemudian barulah kita buat object listNama tersebut dari ArrayList. Penulisan seperti ini akan lebih baik dalam efisiensi penggunaan memory pada komputer kita.

2. Sebisa mungkin menggunakan Standard Library
Pada saat menulis code sebuah program, kita pasti sering menemui permasalahan dan saat mencari solusi dari permasalahan tersebut, kita memikirkan seperti apa langkah-langkah yang harus dilakukan dan fungsi apa yang harus dipakai, apakah ada fungsi dari Java yang dapat menjawab kebutuhan kita untuk menyelesaikan permasalahan tersebut atau tidak? kalau tidak ada, apakah kita harus membuatnya sendiri untuk menjawab kebutuhan kita dalam menyelesaikan permasalahan pada program kita tersebut?

Hemat saya, sebisa mungkin kita cari terlebih dahulu fungsi yang sudah tersedia pada Java yang kita miliki. Karena bagaimanapun, fungsi-fungsi yang sudah tersedia secara default dari Java telah teruji, telah melalui tahap debug yang baik, dan pastinya akan lebih meminimalisasi bugs pada program yang akan kita buat. Jika memang tidak ada pada Java itu sendiri, mungkin ada developer lain yang concern pada pembuatan library Java tambahan. Misalkan seperti Google, Dia membuat Library Collection sendiri Google Collection seperti yang dimiliki Library Java Collection, yang konon diperuntukan bagi developer Java yang lebih advanced. Karena Google Collection memiliki fungsi-fungsi yang lebih advanced lagi dibandingkan dari Library Java Collection itu sendiri.

3. Penggunaan String
Penggunaan String ternyata dapat mengurangi perfomance program, seperti saat melakukan penyambungan String atau Concatenation dengan menggunakan operator "+" di dalam loop. Selain itu pada saat membuat sebuah object dari String dengan menggunakan constructor dari kelas String itu sendiri dapat mengurangi pula perfomance program kita. Berikut seperti ini contoh codenya yang dimaksud.

1:  public class ObjectString {  
2:  //slow instantiation  
3:  String slow = new String("Satrio Wicaksono");  
4:  //fast instantiation  
5:  String fast = "Satrio Wicaksono";  
6:  }  

Pada inisialisasi di baris 3, pembuatan object seperti itu pada String dapat mengurangi perfomance program, sedangkan pada inisialisasi di baris 5 dapat memiliki perfomance lebih baik dibandingkan dengan inisialisasi di baris 3.

4. Sebisa mungkin menggunakan tipe data Primitif dari pada Wrapper class
Wrapper class tidak hanya menyimpan value saat melakukan assignment, sehingga jika dibandingkan dengan tipe data primitif jelas lebih cepat karena hanya menyimpan value saja. Selain itu, terkadang saat menggunakan Wrapper Class, seorang dapat saja lebih memungkinkan menemukan bugs, misalnya dapat dilihat pada contoh code berikut ini.

1:  public class WrapperClass {  
2:    public static void main(String[] args) {  
3:      int x = 28;  
4:      int y = 28;  
5:      Integer x1 = new Integer(28);  
6:      Integer y1 = new Integer(28);  
7:      System.out.println(x == y);  
8:      System.out.println(x1 == y1);  
9:    }  
10:  }  

pada baris ke 7 akan menghasilkan output "true", sedangkan pada baris ke 8 akan menghasilkan output "false". Lebih baik jika menggunakan Wrapper class saat inisialisasi langsung saja sehingga menjadi seperti ini "Integer x1 = 28". Namun tetap jika menggunakan Wrapper class, beban memory lebih banyak dibandingkan jika menggunakan tipe data primitif.

Sekian dari saya kurang lebihnya sekiranya dapat dimaafkan. Terimakasih dan semoga bermanfaat :D

Tidak ada komentar:

Posting Komentar