Java Programming‎ > ‎Java I/O‎ > ‎

05. Format pada PrintStream

posted Oct 9, 2011, 3:14 AM by Editor KursusInternet   [ updated Oct 9, 2011, 8:45 AM ]

Pendahuluan

PrintStream adalah salah satu jenis OutputStream yang menambahkan beberapa fungsionalitas seperti melakukan format. Lain halnya dengan stream output lainnya, PrintStream tidak menghasilkan exception tetapi kita dapat menghasilkan dan memeriksa error dengan method setError dan checkError. 

Objek statis System.out barangkali merupakan PrintStream yang paling terkenal. Dan pada artikel ini, penulis akan coba memberikan beberapa contoh penggunaan formatting pada objek System.out ini. 

Syntax untuk string formatting pada PrintStream adalah sebagai berikut (selalu didahului tanda persen) :

%[argument_index$][flags][width][.precision]conversion
 
Keterangan
  • syntax format ini bisa digunakan pada method format maupun printf.
  • argument_index$ : merupakan angka yang menunjukkan urutan / index dari argument yang digunakan (opsional). Sebagai contoh, untuk merujuk ke argumen ke 2 maka kita tuliskan 2$.
  • flags : merupakan karakter yang akan memodifikasi bagaimana output dari hasil conversion ingin dihasilkan, sebagai contoh  jika kita ingin merapikan secara kiri atau kanan (left / right justify). Karakter flags ini bersifat opsional.
  • width : adalah jumlah digit angka / karakter yang ingin ditampilkan (opsional).
  • .precision : adalah jumlah angka desimal yang ingin ditampilkan, jumlah ini akan mengurangi porsi dari width (opsional).
  • conversion : adalah karakter utama yang menentukan konversi output. Sebagai contoh : karakter b akan mengkonversi nilai argumen menjadi true dan false saja.
Untuk daftar lengkap dari flags maupun conversion adalah di luar cakupan artikel singkat ini. Untuk referensi selengkapnya silahkan melihat artikel pada alamat berikut : http://download.oracle.com/javase/6/docs/api/java/util/Formatter.html#syntax.

Contoh Penggunaan

Berikut adalah contoh potongan program Java untuk variasi penggunaan formatting yang telah dijelaskan di atas.

package com.kursusinternet.io;

public class TulisFormat {
  public static void main(String[] args) {
    int angka1 = 159;
    Integer angka2 = 220;
    double angka3 = 3.14159265358979323846;
    Integer angka4 = null;
    
    System.out.format("Desimal biasa : %d \r\n",angka1);
    System.out.format("Hexadecimal : %X \r\n",angka1);
    System.out.format("Hexadecimal dengan prefix : %#X \r\n",angka1);
    System.out.format("Desimal (argumen kedua) : %2$d \r\n",angka1, angka2);
    System.out.format("Hexadecimal dengan prefix (argumen kedua) : %2$#X \r\n",angka1, angka2);
    System.out.format("Angka pecahan (rata kanan) : %8.5f \r\n",angka3);
    System.out.format("Angka pecahan (rata kiri)  : %-8.5f \r\n",angka3);
    System.out.format("Angka pecahan (rata kiri)  : %-8.5f \r\n",angka4);
    System.out.format("Null = %b \r\n",angka4);
    System.out.format("220 = %b \r\n",angka2);
  }
}

Hasil Eksekusi

Desimal biasa : 159 
Hexadecimal : 9F 
Hexadecimal dengan prefix : 0X9F 
Desimal (argumen kedua) : 220 
Hexadecimal dengan prefix (argumen kedua) : 0XDC 
Angka pecahan (rata kanan) :  3.14159 
Angka pecahan (rata kiri)  : 3.14159  
Angka pecahan (rata kiri)  : null     
Null = false 
220 = true 

Sumber Referensi

Comments