Input dan Output pada Java

Hai, selamat datang kembali di blog saya. Kali ini saya akan sedikit membagi pemahaman tentang input dan output pada pemrograman java.

Input adalah suatu jalur masuk (Input Stream) yang digunakan untuk memasukkan data yang dibutuhkan dalam program. Sementara output adalah jalur keluar (Output Stream) yang digunakan untuk mencetak atau menampilkan data.

Oh ya, ada satu macam lagi jalur, yaitu jalur keluar untuk error, jadi jika ada pengecualian atau kesalahan, pesan error akan ditampilkan melalui jalur error standar (stderr). Dan jalur output dan error itu berbeda ya.

Input Standar (stdin)

Standard Input (stdin) adalah sebuah jalur input yang digunakan untuk memasukkan data dari user. Pada Java, jika ingin mengambil input, kita harus membuat object dari class Scanner, dengan parameter System.in pada konstruktornya, contohnya sebagai berikut,

import java.util.*;

class JavaInput
{
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
	System.out.println("Masukkan nama: ");
	String nama = input.nextLine();
	System.out.println("Halo " + nama + "!!, senang bertemu denganmu");
    }
}

Running dan Hasilnya,

Penjelasan kode:

1. Bagian import:

import java.util.*;

Di bagian ini kita mengimport semua class yang ada di folder java/util/, yang ada di sistem (atau di path data aplikasi AIDE). Bisa juga ditulis,

import java.util.Scanner;

Artinya kita hanya mengimpor class Scanner yang ada di folder java/util/.

2. Bagian method main()

Scanner input = new Scanner(System.in);

Di bagian ini, kita membuat objek bernama input dari class Scanner. System.in disini maksudnya adalah inputstream standar dari sistem.

System.out.println("Masukkan nama: ");

Disini kita menampilkan teks untuk memberitahu user bahwa disitu kita harus memasukkan nama. Ini opsional, tidak ditambahkan juga tidak apa apa.

String nama = input.nextLine();

Kode ini digunakan untuk menyimpan satu baris input teks setelah teks Masukkan nama: kedalam variabel nama, maka dari itu kita menggunakan method nextLine() dari objek input.

Adapun method-method yang ada di class Scanner. Method-method itu adalah sebagai berikut,

  • next(), membaca input berikutnya sebagai String.
  • nextInt(), membaca input berikutnya sebagai int.
  • nextBoolean(), membaca input berikutnya sebagai boolean.
  • nextLong(), membaca input berikutnya sebagai long.
  • nextShort(), membaca input berikutnya sebagai short.
  • nextByte(), membaca input berikutnya sebagai byte.

Baca lebih banyak method dari class scanner.


Output Standar (stdout)

Standard Output (stdout) adalah sebuah jalur output atau keluaran, yang digunakan untuk mencetak keluaran atau text dengan jalur output standar. Berikut ini adalah macam macam Output Stream pada Java,

  • System.out.print(); yang mencetak keluaran tanpa baris baru.
  • System.out.println(); yang mencetak keluaran dengan menambahkan baris baru setelahnya.
  • System.out.printf(); sama seperti System.out.print(); cuma outputnya bisa diformat.

Berikut contohnya,

System.out.print();

class JavaOutput
{
    public static void main(String[] args)
    {
	System.out.print("Hello");
	System.out.print("World!");
    }
}

Hasilnya,

HelloWorld!

Kita coba tambahkan line break (\n) setelah kata Hello,

class JavaOutput
{
    public static void main(String[] args)
    {
	System.out.print("Hello\n");
	System.out.print("World!");
    }
}

Maka hasilnya,

Hello
World!


System.out.println();

class JavaOutput
{
    public static void main(String[] args)
    {
	System.out.println("Hello,");
	System.out.println("World!");
    }
}

Kode di atas menghasilkan Output sebagai berikut,

Hello,
World!

Jadi, println() langsung membuat baris baru tanpa harus menambahkan \n pada akhir kalimatnya.

System.out.printf();

import java.util.*;

class JavaOutput
{
    public static void main(String[] args)
    {
        System.out.printf("Hello");
	System.out.printf("World!");
    }
}

Dan hasilnya,

HelloWorld!

Loh, terus apa bedanya dengan print()?. Jadi begini, jika ingin menggabungkan nilai variable dengan string, biasanya begini,

import java.util.*;

class JavaOutput
{
    public static void main(String[] args)
    {
        int harga = 2000;
	System.out.println("Harga: " + harga + " IDR");
    }
}

Begitu kan ya, tutup dulu stringnya kemudian pake operator + buat nempelin variable harga terus di sambung lagi ke string yang lain.

Tapi kalau pakai printf, bisa ditulis begini.

import java.util.*;

class JavaOutput
{
    public static void main(String[] args)
    {
        int harga = 2000;
	System.out.printf("Harga: %d IDR", harga);
    }
}

Maksudnya bagaimana?, nah begini, %d itu digunakan untuk mewakili variable harga. Jadi %d akan diganti dengan nilai variable harga. (%d maksudnya decimal atau untuk mewakili nilai angka).

Berikut beberapa converter lain selain %d,

%f, untuk tipe data floating point (float dan double

%s, untuk tipe data String.

%n, untuk menambahkan baris baru

Lihat lainnya tentang,

Number Formatting.

Formatting with printf().


Nah untuk latihan, berikut saya akan buat program sederhana dengan Java untuk menghitung luas Layang-Layang.

Program Menghitung Luas Layang-Layang

Berikut kodenya, bisa dicoba sendiri (disarankan jangan copy-paste, ketik sendiri saja, biar lebih paham).

import java.util.*;

class LuasLayangan
{
    public static void main(String[] args)
    {
	// Tampilan judul, biar keren hehe..
        System.out.println("==================");
	System.out.println("LUAS LAYANG LAYANG");
	System.out.println("==================\n");
		
	// Membuat objek yang dari class Scanner untuk mengambil input
	Scanner data = new Scanner(System.in);
	// Deklarasi variabel untuk menampung nilai
	double d1, d2, luas;
		
	// Mengambil nilai D1 dan memasukkan nilainya ke variabel d1
	System.out.print("Masukkan panjang d1 (cm): ");
	d1 = data.nextDouble();
	// Mengambil nilai D2 dan memasukkan nilainya ke variabel d2
	System.out.print("Masukkan panjang d2 (cm): ");
	d2 = data.nextDouble();
	// Menghitung luas
	luas = 0.5 * d1 * d2;
		
	// Menampilkan hasil
	System.out.printf("%nLuas layangan adalah %.2f cm%nDari d1=%.2f dan d2=%.2f", luas, d1, d2);
    }
}

Oke Saya akan menjelaskan sedikit baris kode untuk menampilkan output.

System.out.printf("%nLuas layangan adalah %.2f cm%nDari d1=%.2f dan d2=%.2f", luas, d1, d2);

Maksud dari %n adalah untuk menambahkan baris baru sebelum menampilkan output, sementara %.2f untuk menampilkan pecahan yang dibulatkan menjadi dua angka dibelakang koma.


Oke, sekian post kali ini, semoga bisa dipahami, Terima Kasih dan sampai jumpa lagi.

Komentar

Postingan populer dari blog ini

Setup Apache2 Server dan PHP 8 di Android menggunakan Termux

Programming: Kreatifitas atau Logika?

Memasang dan menjalankan PHPMyAdmin pada Android