Sistem Output pada Bahasa Java

baca 5 menit
Sistem Output pada Bahasa Java

Pada kesempatan kali ini kita akan membahas tentang cara menampilkan tulisan di layar konsol dengan bahasa Java.

Kita sudah melihat method System.out.println pada program "Hello World", method ini adalah satu dari beberapa cara untuk mencetak sesuatu di layar konsol, atau yang kita sebut sebagai sistem output.

Selain method ini sebenarnya masih ada cara lainnya. Secara umum terdapat 3 method untuk menampilkan output pada Java yaitu:

  • System.out.print — Mencetak tanpa pindah baris
  • System.out.println — Mencetak dengan pindah baris
  • System.out.printf — Mencetak dengan format tertentu

Mari kita bahas lebih lanjut..

Sistem Output dengan System.out.print dan System.out.println

Karena mirip, kita bahas 2 method ini sekaligus saja.

Baik System.out.print maupun System.out.println memiliki fungsi yang sama, yaitu mencetak apapun yang dimasukkan sebagai argumen ke layar konsol atau standard output.

Bedanya adalah, System.out.print akan mencetak ke kanan, sedangkan System.out.println mencetak ke bawah (ganti baris / print line).

Biar jelas, kita coba langsung koding saja.

java
public class SistemOutput{
  public static void main(String[] args) {
    // output 4 baris pertama menggunakan println
    System.out.println("Dengan System.out.println: ");
    System.out.println("satu,");
    System.out.println("dua,");
    System.out.println("tiga.");
    
    // baris selanjutnya kita gunakan print
    System.out.print("Dengan System.out.print: ");
    System.out.print("empat,");
    System.out.print("lima,");
    System.out.print("enam.");
  }
}

Sekarang coba kita jalankan, maka kurang lebih hasilnya akan seperti ini:

Dengan System.out.println: 
satu,
dua,
tiga.
Dengan System.out.print: empat,lima,enam.

Terlihat bedanya kan.

Dengan println, tulisan satu, dua, dan tiga ada di baris berbeda. Sedangkan dengan print, tulisan empat, lima, dan enam ada dalam satu baris yang sama.

Baik method print maupun println dapat digunakan untuk mencetak literal, expression, maupun variabel.

Lebih lanjut tentang literal dan variabel akan kita bahas pada kesempatan selanjutnya. Sekarang kita coba lihat contohnya saja.

java
public class SistemOutput{
  public static void main(String[] args) {
    // mencetak string literal
    System.out.println("ini string literal");
    
    // mencetak integer literal
    System.out.println(24);
    
    // mencetak isi variabel
    String nama = "Inva";
    System.out.println(nama);
    
    // mencetak expression (operasi data)
    System.out.println("2 + 8 adalah " + (2+8));
  }
}

Jika dijalankan maka outputnya akan seperti ini:

ini string literal
24
Inva
2 + 8 adalah 10

Sistem Output dengan System.out.printf

Jika 2 method sebelumnya langsung mencetak apapun sebagai argumennya, printf ini sedikit berbeda.

System.out.printf bekerja dengan memberi format atau template sebagai argumen pertamanya. Nantinya format ini akan diisi dengan nilai-nilai yang ada pada argumen-argumen selanjutnya.

Format atau template ini berbentuk literal string biasa. Hanya saja, terdapat beberapa karakter spesial yang berfungsi sebagai placeholder yang ditandai dengan tanda % lalu diikuti angka dan huruf sesuai kebutuhan.

Mari kita lihat contoh kodingannya.

java
public class SistemOutput{
  public static void main(String[] args) {
    // %s akan digantikan dengan "Budi"
    // %d akan digantikan dengan 12
    System.out.printf("Nama saya %s saya kelas %d\n", "Budi", 12);
    
    String nama = "Adi";
    String kegiatan = "belajar Java";
    // %s pertama digantikan dengan isi dari variabel nama
    // %s kedua digantikan dengan isi variabel kegiatan
    System.out.printf("Saya %s sedang %s", nama, kegiatan);
  }
}

\n pada kode tersebut merupakan escape character new line fungsinya adalah untuk mencetak garis baru. Ada juga \t untuk mencetak karakter tab. Selengkapnya tentang escape character bisa dibaca di wikipedia.

Jika program dijalankan maka luarannya akan seperti ini:

Nama saya Budi saya kelas 12
Saya Adi sedang belajar Java

Dalam contoh tersebut kita menggunakan 2 format string yaitu %s dan %d. Di sini, %s berguna untuk menampilkan literal bertipe kumpulan karakter (String), sedangkan %d untuk menampilkan literal angka (int).

String Format Placeholder pada Java

Selain 2 format pada kode di atas, masih ada format lainnya yang bisa kita gunakan.

  • %s — untuk kumpulan karakter (String)
  • %d — untuk bilangan bulat (int dan long)
  • %f — untuk bilangan pecahan (float dan double)
  • %c — untuk karakter unicode (char)
  • %t — untuk format waktu (Date / Time)

Mengatur Kelebaran Format String

Kita juga bisa mengatur kelebaran atau padding dari string format yang kita buat. Caranya adalah dengan memberi angka tepat setelah tanda %.

Angka positif berarti rata kanan, sedangkan angka negatif rata kiri. Mari kita coba ngoding.

java
public class SistemOutput{
  public static void main(String[] args) {
    System.out.println("Dengan println:");
    System.out.println("Nama     : Adi");
    System.out.println("Umur     : 19 tahun");
    System.out.println("Kegiatan : Belajar Java");
    
    System.out.println(); // println kosong untuk membuat baris kosong
    
    System.out.println("Dengan printf angka positif:");
    System.out.printf("%8s : %s\n", "Nama", "Adi");
    System.out.printf("%8s : %d tahun\n", "Umur", 19);
    System.out.printf("%8s : %s\n", "Kegiatan", "Belajar Java");
    
    System.out.println();
    
    System.out.println("Dengan printf angka negatif:");
    System.out.printf("%-8s : %s\n", "Nama", "Adi");
    System.out.printf("%-8s : %d tahun\n", "Umur", 19);
    System.out.printf("%-8s : %s\n", "Kegiatan", "Belajar Java");
  }
}

Jika dijalankan maka outputnya akan seperti ini:

Dengan println:
Nama     : Adi
Umur     : 19 tahun
Kegiatan : Belajar Java

Dengan printf angka positif:
    Nama : Adi
    Umur : 19 tahun
Kegiatan : Belajar Java

Dengan printf angka negatif:
Nama     : Adi
Umur     : 19 tahun
Kegiatan : Belajar Java

Terlihat hasilnya ya. Di sini dipilih angka 8 karena kata terpanjang yaitu "kegiatan" memiliki 8 karakter. Hasilnya bisa dilihat tanda ":" bisa sejajar tanpa perlu menambah spasi secara manual.

Selain angka bulat positif dan negatif, kita juga bisa menggunakan angka desimal. Angka desimal ini punya fungsi yang berbeda untuk format yang berbeda.

Untuk format %s, angka di belakang titik berfungsi untuk membatasi karakter yang ditampilkan. Sedangkan untuk format %f, angka di belakang koma menunjukkan presisi yang diinginkan.

Mari kita lihat contohnya

java
public class SistemOutput{
  public static void main(String[] args) {
    System.out.printf("| %5s |\n", "Senin");
    System.out.printf("| %5.3s |\n", "Senin");  // Tampil Sen rata kanan lebar 5
    System.out.printf("| %-5.3s |\n", "Senin"); // Tampil Sen rata kiri lebar 5
    System.out.printf("| %.3s |\n", "Senin");   // Tampil Sen
    
    System.out.println();
    
    System.out.printf("PI = %f\n", 3.141592);
    System.out.printf("PI = %.2f\n", 3.141592);  // Tampil 3.14 
    System.out.printf("PI = %8.2f\n", 3.141592); // Tampil 3.14 rata kanan lebar 8
  }
}

Jika kita jalankan maka hasilnya akan seperti ini:

| Senin |
|   Sen |
| Sen   |
| Sen |

PI = 3.141592
PI = 3.14
PI =     3.14

Selanjutnya

Sistem output ini penting untuk diingat, karena pasti akan digunakan pada setiap kodingan kita. Jadi jangan sampai lupa — kalau lupa bisa balik sini lagi hehe.

Pada kesempatan selanjutnya kita akan mulai bermain dengan data. Kita akan membahas tentang variabel dan tipe data pada bahasa Java.

Selamat berkoding ria 👋