Modul 4 โ€” Input & Output

Pelajari cara menampilkan output ke konsol dan membaca input dari pengguna menggunakan Scanner di Java.
PemulaInput/OutputScannerJava 21 LTS

๐Ÿ“ฅ Modul 4 โ€” Input & Output

Setiap program yang interaktif perlu berkomunikasi dengan pengguna: menampilkan informasi (output) dan menerima data (input). Java menyediakan berbagai cara untuk melakukan keduanya.

Tujuan Modul: Setelah mempelajari modul ini, Anda akan mampu menampilkan output terformat dengan printf dan String.format(), serta membaca input dari keyboard menggunakan Scanner dengan benar.

๐Ÿ“ค Output di Java

Ada beberapa cara untuk menampilkan output ke konsol. Mari kita bahas yang paling umum.

1. System.out.println() dan System.out.print()

Cara paling sederhana untuk mencetak teks.

Contoh Println
String nama = "Siti";
int umur = 22;
double ipk = 3.85;

System.out.println("Nama: " + nama + ", Umur: " + umur);
// Output: Nama: Siti, Umur: 22

2. System.out.printf() โ€” Output Terformat

printf memungkinkan kita mengontrol format tampilan, terutama untuk angka.

Contoh Printf
System.out.printf("Nama: %s, Umur: %d, IPK: %.2f%n", nama, umur, ipk);
// Output: Nama: Siti, Umur: 22, IPK: 3.85

3. String.format() โ€” Menyimpan String Terformat

Jika ingin menyimpan hasil format ke dalam variabel (untuk digunakan nanti), gunakan String.format().

Contoh String.format
String pesan = String.format("%-10s | %3d | %.2f", nama, umur, ipk);
System.out.println(pesan);
// Output: Siti       |  22 | 3.85

::

๐Ÿ“‹ Format Specifier Penting

Berikut adalah format specifier yang paling sering digunakan. Klik tab untuk melihat kategori:

SpecifierTipe DataContoh
%sString"Budi"
%dint / long42
%ffloat / double3.140000
%cchar'A'
%bbooleantrue
%nnewline (lintas platform)โ€”
Demo Format Specifier
int angka = 42;
double pi = 3.14159;
String teks = "Java";

System.out.printf("1. %d%n", angka);        // 42
System.out.printf("2. %05d%n", angka);      // 00042
System.out.printf("3. %.2f%n", pi);         // 3.14
System.out.printf("4. %-10s|%10s%n", teks, teks); // Java      |      Java
int angka = 42;
double pi = 3.14159;
String teks = "Java";

System.out.printf("1. %d%n", angka);        // 42
System.out.printf("2. %05d%n", angka);      // 00042
System.out.printf("3. %.2f%n", pi);         // 3.14
System.out.printf("4. %-10s|%10s%n", teks, teks); // Java      |      Java

๐Ÿ“ฅ Input dengan Scanner

Untuk membaca input dari pengguna, kita menggunakan kelas Scanner yang berada dalam paket java.util.

๐Ÿงฑ Struktur Dasar

Contoh Scanner
import java.util.Scanner; // โ† wajib di baris paling atas file!

public class ContohInput {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Masukkan nama Anda: ");
        String nama = scanner.nextLine(); // baca satu baris penuh

        System.out.print("Masukkan umur: ");
        int umur = scanner.nextInt();     // baca integer

        System.out.print("Masukkan IPK: ");
        double ipk = scanner.nextDouble(); // baca double

        System.out.printf("Halo %s! Umur %d, IPK %.2f%n", nama, umur, ipk);
        scanner.close(); // tutup scanner setelah selesai
    }
}

๐Ÿ“Œ Method-Method Penting Scanner

MethodKegunaan
nextLine()Baca satu baris penuh (termasuk spasi)
next()Baca satu kata (berhenti di spasi)
nextInt()Baca nilai integer
nextDouble()Baca nilai double
nextFloat()Baca nilai float
nextBoolean()Baca nilai boolean (true/false)
nextLong()Baca nilai long

โš ๏ธ Bug Klasik โ€” nextInt() lalu nextLine()

Ini adalah jebakan yang sering membuat pemula bingung.

Kode Bermasalah
Scanner scanner = new Scanner(System.in);

System.out.print("Masukkan umur: ");
int umur = scanner.nextInt();

System.out.print("Masukkan nama: ");
String nama = scanner.nextLine(); // โ† langsung membaca Enter kosong!

System.out.printf("Umur: %d, Nama: %s%n", umur, nama);

Jika dijalankan, setelah memasukkan umur, program langsung lanjut tanpa memberi kesempatan mengetik nama.

Penyebab: nextInt() hanya membaca angka, tetapi meninggalkan karakter newline (\n) di buffer. nextLine() kemudian membaca newline tersebut sebagai input kosong.

Solusi: Tambahkan scanner.nextLine() setelah nextInt() untuk membuang sisa newline.
Kode Benar
Scanner scanner = new Scanner(System.in);

System.out.print("Masukkan umur: ");
int umur = scanner.nextInt();
scanner.nextLine(); // โ† buang sisa Enter

System.out.print("Masukkan nama: ");
String nama = scanner.nextLine(); // โ† sekarang baca dengan benar

System.out.printf("Umur: %d, Nama: %s%n", umur, nama);
Selalu ingat: setelah memanggil nextInt(), nextDouble(), atau next() yang tidak membaca newline, panggil nextLine() sekali untuk membersihkan buffer sebelum membaca baris teks berikutnya.

๐Ÿงช Latihan Praktik

Buat program Java yang:

  1. Meminta pengguna memasukkan:
    • Nama lengkap (bisa terdiri dari dua kata)
    • Usia (integer)
    • Tinggi badan dalam meter (double)
    • Apakah sudah menikah? (boolean: true/false)
  2. Menampilkan semua data tersebut dalam format tabel yang rapi menggunakan printf, dengan lebar kolom yang sesuai.
  3. Menampilkan usia dalam format "XX tahun" dengan padding nol (misal: 05 tahun).

Contoh interaksi:

Masukkan nama lengkap: Andi Saputra
Masukkan usia: 5
Masukkan tinggi (m): 1.65
Sudah menikah? (true/false): false

+----------------+----------+--------+-----------+
| Nama           | Usia     | Tinggi | Menikah?  |
+----------------+----------+--------+-----------+
| Andi Saputra   | 05 tahun | 1.65 m | false     |
+----------------+----------+--------+-----------+
Gunakan System.out.printf() dengan format seperti "| %-14s | %02d tahun | %.2f m | %-9s |%n" untuk mencetak baris tabel.

๐Ÿ“บ Video Penjelasan

Tonton video berikut untuk penjelasan lebih detail tentang input/output di Java (25 menit):


โœจ Kesimpulan

Apa yang Telah Dipelajari

  • โœ… Output dengan println, printf, dan String.format()
  • โœ… Format specifier untuk berbagai tipe dan format angka
  • โœ… Input dengan Scanner dan method-methodnya
  • โœ… Bug klasik nextInt() diikuti nextLine() dan solusinya

Selanjutnya

Modul 5: Struktur Kontrol (Percabangan) โ€” if, else if, switch, dan logika percabangan.

Selamat! Modul 4 selesai. Praktikkan input dan output dalam program-program kecil Anda. ๐ŸŽ‰