Setting Konfigurasi Aplikasi

Salah satu feature yang sering digunakan pada aplikasi terapan adalah kemampuan membaca dan menulis file konfigurasi. Sistem Windows biasa mengenal file konfigurasi dengan ekstension file .ini. Java sendiri tidak mempermasalahkan ekstension nama file. Dalam banyak contoh, kebanyakan malah menggunakan ekstension file yang cukup panjang, .properties.

Apa keuntungan penggunaan file konfigurasi ? Keuntungan utama adalah kemudahan dalam melakukan perubahan on the fly. Contohnya, jika kita menggunakan server ujicoba pada alamat tertentu dan server produksi untuk implementasinya, kita dapat dengan mudah melakukan perubahan pada file konfigurasi tanpa membuka maupun mengubah kode program. Fleksibilitas ini juga bermanfaat jika satu waktu kita harus menggunakan alamat server database yang lain.

Kita bisa mendefinisikan komponen dari file properties sesuai dengan keinginan. Bisa saja kita mendefinisikan nama aplikasi, setting default untuk email, setting konstanta tertentu dan lain sebagainya. Ada juga beberapa aplikasi yang bahkan menyimpan string koneksi database pada file konfigurasi. Hati-hati jika menggunakan hal seperti ini karena saya pernah melihat, password untuk koneksi ke database disimpan dalam bentuk plain text :-) .

Berikut adalah langkah-langkah membuat aplikasi untuk membaca dan menyimpan file konfigurasi :

  1. Buat 1 project Java Application pada Netbeans. Simpan dengan nama yang diinginkan.
  2. Tambahkan 1 buah JFrame Form, beri nama frmKonfigurasi, setting Title dan lengkapi dengan 1 Panel, 2 Label, 2 Text Field (txtNamaAplikasi dan txtHostServer) dan 1 Button (btnSimpanKonfigurasi) seperti pada contoh berikut :
  3. Buat 2 buah method. Method pertama untuk Load Properties sebagai berikut :
  4. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public static Properties loadProperties(String sFile) {
    Properties p = new Properties();
    try {
    FileInputStream in = new FileInputStream(sFile);
    p.load(in);
    System.out.println("File konfigurasi '" + sFile + "' berhasil dibuka");
    in.close();} catch (IOException iOException) {
    JOptionPane.showMessageDialog(null, iOException);
    }
    return p;}
  5. Method kedua adalah method untuk Simpan Properties. Berikut adalah kode untuk menyimpan konfigurasi.
  6. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public static void saveProperties(Properties p, String sFile) throws IOException{
    FileOutputStream out = null;
    try {
    out = new FileOutputStream(sFile);
    p.store(out, "Ini baris komentar\nFile konfigurasi");
    JOptionPane.showMessageDialog(null, "File konfigurasi '"+sFile+"' sudah disimpan");
    } catch (FileNotFoundException ex) {
    Logger.getLogger(frmKonfigurasi.class.getName()).log(Level.SEVERE, null, ex);
    JOptionPane.showMessageDialog(null, ex.getMessage());
    } finally {
    try {
    out.close();
    } catch (IOException ex) {
    Logger.getLogger(frmKonfigurasi.class.getName()).log(Level.SEVERE, null, ex);
    JOptionPane.showMessageDialog(null, ex.getMessage());
    }
    }}
  7. Berikutnya adalah kode yang akan dijalankan jika button di click. Letakkan kode ini pada event ActionPerformed pada btnSimpanKonfigurasi sehingga kode program menjadi sebagai berikut :
  8. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    private void btnSimpanKonfigurasiActionPerformed(java.awt.event.ActionEvent evt) {
    try {
    /**
    * Menyimpan file properties ke file
    * @param Properties p Object Properties
    * @param String sFile String path file tujuan
    */
    Properties p = new Properties();//Menetapkan key dan value draft
    p.setProperty("Nama Aplikasi", txtNamaAplikasi.getText());
    p.setProperty("Host Server", txtHostServer.getText());
    saveProperties(p, PROP_FILE);
    } catch (IOException ex) {
    Logger.getLogger(frmKonfigurasi.class.getName()).log(Level.SEVERE, null, ex);
    JOptionPane.showMessageDialog(null, ex.getMessage());
    }}
  9. Tambahkan kode untuk melakukan pengambilan data konfigurasi. Saya meletakkannya pada setelah init komponen. Untuk pemisahan kode, sebaiknya letakkan kode ini pada satu method tersendiri
  10. 1
    2
    3
    4
    Properties p2 = new Properties();
    p2 = loadProperties(PROP_FILE);//Mendapatkan nilai key
    txtNamaAplikasi.setText(p2.getProperty("Nama Aplikasi"));
    txtHostServer.setText(p2.getProperty("Host Server"));
  11. Jalankan form. Pada saat awal, form akan melakukan loading file konfigurasi. Jika tidak menemukannya, akan timbul pesan bahwa file konfigurasi.properties tidak ditemukan. Untuk aplikasi terapan, pesan ini bisa dinonaktifkan agar tidak membingungkan. Saya menambahkan messagebox sebagai perangkap kesalahan untuk kepentingan debug saja. Pesan ini bisa saja disampaikan pada konsole menggunakan System.out.println();
  12. Setelah mengisi dan menyimpan konfigurasi, akan terbentuk file konfigurasi.properties yang akan diletakkan di folder project kita. Isinya kira-kira sebagai berikut :

Silakan lakukan modifikasi program sesuai dengan tujuan yang diinginkan.

 

source  http://java.vavai.com/2008/01/25/tips-java-membaca-dan-menulis-file-properties-untuk-setting-konfigurasi-aplikasi/

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s