🔔 Aktifkan notifikasi disini Google News

Input dan Output Pada Java

Please wait 0 seconds...
Scroll Down and click on Go to Link for destination
Congrats! Link is Generated

Didalam suatu program komputer terdiri dari tiga komponen utama, yaitu:
  • Input adalah data yang kita masukan ke program
  • Proses adalah langkah yang dilakukan untuk mengelola input
  • Output adalah data yang telah diproses menjadi bentuk yang dapat digunakan.

Stream Standar
Pada Java, sama seperti pada bahasa pemrograman lainnya, memiliki dukungan untuk standar I/O. Ini berguna ketika user memberikan input melalui keyboard dan kemudian menghasilkan output melalui layar komputer. Java memiliki 3 standar streams, yaitu:
  • System.in menangani pembacaan dari keyboard (standar input)
  • System.out mengirimkan keluaran ke layar (standar output)
  • System.err mengirimkan kesalahan (standar error).


Metode input berbasis Console
Java sendiri sudah menyediakan tiga class untuk mengambil input berbasis console, yaitu:
  • Scanner Class kelas scanner berada di java.util dan digunakan untuk mendapatkan input dari keyboard dan dari seluruh file
  • BufferedReader Class kelas ini berada di java.io dan digunakan untuk mendapatkan input dari keyboard berbasis console
  • Console Class sama seperti kelas BufferedReader, kelas Console juga berada di java.io dan digunakan untuk mendapatkan input dari keyboard.


Membaca Input dari Keyboard
Dalam tutorial ini kita akan menggunakan Scanner Class (java.util.Scanner) dengan method sebagai berikut:
  • nextInt() untuk menerima tipe data integer
  • nextShort() untuk menerima tipe data short
  • nextLong() untuk menerima tipe data long
  • nextDouble() untuk menerima tipe data double
  • nextFloat() untuk menerima tipe data float
  • nextLine() untuk menerima tipe data string

Mengambil Input dengan Class Scanner

Scanner merupakan class yang menyediakan fungsi-fungsi untuk mengambil input dari keyboard.
Agar kita bisa menggunakan Scanner, kita perlu mengimpornya ke dalam kode:
import java.util.Scanner;
Praktiknya:
Klik kanan pada souce packages, kemudian pilih new package:
Kemudian isi nama paket dengan pertemuan2, lalu klik Finish:
Setelah itu, lanjutkan dengan membuat kelas (java class) baru di paket pertemuan2:
Berikan nama: DataKaryawan. Kemudian klik Finish:
Setelah itu, silahkan ikuti kode berikut ini:
package pertemuan2;
// mengimpor Scanner ke program
import java.util.Scanner;
public class DataKaryawan {
    public static void main(String[] args) {
        // deklarasi variabel
        String nama, alamat;
        int usia, gaji;
        // membuat scanner baru
        Scanner keyboard = new Scanner(System.in);
        // Tampilkan output ke user
        System.out.println("### Pendataan Karyawan PT. Petani Kode ###");
        System.out.print("Nama karyawan: ");
        // menggunakan scanner dan menyimpan apa yang diketik di variabel nama
        nama = keyboard.nextLine();
        // Tampilkan outpu lagi
        System.out.print("Alamat: ");
        // menggunakan scanner lagi
        alamat = keyboard.nextLine();
        System.out.print("Usia: ");
        usia = keyboard.nextInt();
        System.out.print("Gaji: ");
        gaji = keyboard.nextInt();

        // Menampilkan apa yang sudah simpan di variabel
        System.out.println("--------------------");
        System.out.println("Nama Karyawan: " + nama);
        System.out.println("Alamat: " + alamat);
        System.out.println("Usia: " + usia + " tahun");
        System.out.println("Gaji: Rp " + gaji);
    }
}

Perlu diperhatikan, penggunakan fungsi untuk mengambil data bergantung dari tipe data yang digunakan.
Misal, tipe datanya adalah String, maka fungsi atau method yang dipakai adalah nextLine().
Begitu juga dengan tipe data lain, Integer menggunakan nextInt(), Double menggunakan nextDouble(), dsb.
Setelah selesai membuat program, silahkan dijalankan. Klik kanan kemudian pilih Run File atau tekan tombol [Shift]+[F6].
Output program dengan scanner :
Output program dengan scanner



Mengambil Input dengan Class BufferReader
Class BufferReader sebenarnya tidak hanya untuk mengambil input dari keyboard saja.
Class ini juga dapat digunakan untuk membaca input dari file dan jaringan.
Class ini terletak di dalam paket java.io.
Silahkan diimpor untuk dapat menggunakan class BufferReader.
import java.io.BufferedReader;
Mari kita coba…
Silahkan buat class baru bernama ContohBufferReader, kemudian isi dengan kode berikut ini.
package pertemuan2;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ContohBufferReader {
    public static void main(String[] args) throws IOException {
        String nama;
        // Membuat objek inputstream
        InputStreamReader isr = new InputStreamReader(System.in);
        // membuat objek bufferreader
        BufferedReader br = new BufferedReader(isr);
        // Mengisi varibel nama dengan Bufferreader
        System.out.print("Inputkan nama: ");
        nama = br.readLine();
        // tampilkan output isi variabel nama
        System.out.println("Nama kamu adalah " + nama);
    }
}
Ternyata class BufferReader tidak bisa bekerja sendirian. Dia juga butuh teman yaitu: class InputStreamReader dan class IOException.
Sekarang mari kita coba jalankan programnya:
Menjalankan program Java

Perbedaan BufferReader dengan Scanner terlihat dari fungsi atau method yang dipakai.
Scanner menggunakan next(), sedangkan BufferReader menggunakan readLine().
Lalu untuk tipe data integer, BufferReader menggunakan fungsi read() saja. Hal ini dapat kita lihat dalam hint autocomplete .
hint buffer

Tips: Tekan Ctrl+Spasi saat menulis kode untuk menampilkan hint autocomplete .
Mengambil Input dengan Class Console
Class Console hampir sama dengan BufferReader. Dia juga menggunakan fungsi readLine() untuk mengambil input.
Akan tetapi…
Class ini hanya bisa digunakan di lingkungan console saja, seperti Terminal dan CMD.
Class Console tidak bisa digunakan langsung di Netbeans.
Maka dari itu, kita harus kompilasi secara manual.
Untuk menggunakan class ini, kita perlu mengimpornya terlebih dahulu.

import java.io.Console;


Mari kita coba…
Buatlah file baru bernama InputConsole.java dengan isi sebagai berikut:
import java.io.Console;

public class InputConsole {
    public static void main(String[] args) {
        String nama;
        int usia;
        // membuat objek console
        Console con = System.console();
        // mengisi variabel nama dan usia dengan console
        System.out.print("Inputkan nama: ");
        nama = con.readLine();
        System.out.print("Inputkan usia: ");
        usia = Integer.parseInt(con.readLine());
        // mengampilkan isi variabel nama dan usia
        System.out.println("Nama kamu adalah: " + nama);
        System.out.println("Saat ini berusia " + usia + " tahun");
    }
}
Perhatikan: dalam kode di atas, kita menggunakan fungsi Integer.parseInt(con.readLine()) untuk tipe data integer. Artinya, kita merubah tipe data String ke Integer.
Karena Console tidak memiliki nilai kembalian berupa integer untuk fungsi read().
Lanjut…
Setelah itu, lakukan kompilasi melalui Terminal atau CMD. Buka terminal, kemudian masuk ke direktori tempat menyimpan kodenya.
Ketik perintah: javac InputConsole.java untuk melakukan kompilasi.
Setelah itu, ketik perintah java InputConsole untuk menjalankannya:
Input console Java
Menampilkan Output
Kita sudah mengenal beberapa cara mengambil input dari keyboard untuk program berbasis teks.
Sekarang bagaimana dengan outputnya?
Ada beberapa fungsi yang sudah disediakan oleh Java:
Fungsi System.out.print()
Fungsi System.out.println()
Fungsi System.out.format()
Apa saja perbedaan dari fungsi-fungsi tersebut?
Mari kita bahas…
Fungsi print() vs println()
Fungsi print() dan println() sama-sama digunakan untuk menampilkan teks.
Lalu apa bedanya?
Fungsi print() akan menampilkan teks apa adanya. Sedangkan println() akan menampilkan teks dengan ditambah baris baru.
Mari kita coba dalam kode:
package eksperimen;
public class PrintVsPrinln {
    public static void main(String[] args) {
        System.out.print("ini teks yang dicetak dengan print()");
        System.out.println("sedangkan ini teks yang dicetak dengan println()");
        System.out.print("pake print() lagi");
    }
}
Sekarang lihat hasil outputnya:

Perbedaan fungsi print dengan println

Event
Event adalah objek yang dibuat ketika ada perubahan state (sesuatu yang berubah) pada GUI (Graphical User Interface).
Model Delegasi Event
Model delegasi event ini terdiri dari dua bagian, yaitu:
  • Sources atau sumber terjadinya event (ketika event terjadi maka objek event akan di buat)
  • Listener atau yang akan menangani event Jadi setiap event yang dihasilkan oleh sources itu akan ditangani oleh Listener.
  • Sources atau sumber terjadinya event itu adalah berbagai komponen yang ada pada GUI. Ketika suatu event terjadi maka event tersebut sebagai objek akan dikirim ke Listener.
Hal penting yang perlu Anda ketahui adalah bahwa semua Listener itu adalah intrface
Java memiliki beberapa tipe event dan juga listener. Setiap tipe dari event tersebut terikat dengan listener yang terkait.
  • Dalam event handling pada Java ada empat bagian penting yang harus diketahui:
  • Event Object merupakan object yang mendiskripsikan sebuah event yang di-trigger oleh event source.
  • Event Handler merupakan method yang menerima event object dan melakukan respond yang sesuai dengan event object tersebut.
  • Event Listener merupakan interface yang akan meng-handle event yang terjadi. setiap type event mempunyai interface yang bersesuaian. Listener tersebut harus diimplementasikan oleh class yang akan meng-handle event
  • Event Source merupakan pembangkit / trigger sebuah event objects
  • setiap event object mempunyai  type event yang berbdea beda. sehingga kita harus menentukan type event sebelum menentukan jenis interface listener. karena setiap type event mempunyai jenis interface listener yang bersesuaian.
berikut ini type type event yang ada di Java :
  1. ActionEvent
  2. ItemEvent
  3. WindowEvent
  4. ContainerEvent
  5. ComponentEvent
  6. FocusEvent
  7. TextEvent
  8. KeyEvent
  9. MouseEvent
  10. AdjustmentEvent
Berikut ini Interface Listener
  1. ActionListener
  2. ItemListener
  3. WindowListener
  4. ContainerListener
  5. ComponentListener
  6. FocusListener
  7. TextListener
  8. KeyListener
  9. MouseListener
  10. MouseMotionListener
  11. AdjustmentListener
Berdasarkan tulisan diatas, setiap type event mempunyai satu jenis interface listener kecuali MouseEvent yang mempunyai dua jenis interface listener. dan setiap interface mempunyai method abstract yang harus di override class yang meng-impletasikan interface. event listener dan event handler terdapat pada package java.awt.event
Bagaimana event handling dalam Java? ada tiga langkah penting dalam event handling
Deklarasikan class yang akan meng-handle event yang terjadi dan tuliskan code yang menyatakan class tersebut meng-implement interface listener
Event source mendaftarkan sebuah listener melalui method add<type>Listener
Kode yang mengimplementasikan method pada interface listener pada class yang akan meng-handle event. [ Override ]

Contoh Program
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class FrameUtama extends JFrame implements ActionListener{
private JButton tombol;
private JTextArea myTextArea;
public FrameUtama(){
super("Hello World");
setLayout(new BorderLayout());//Membuat objek BorderLayout
myTextArea = new JTextArea();//Membuat objek tombol
tombol = new JButton("Klik Tombol");//Membuat objek tombol
//Meregistrasikan listener pada source event
tombol.addActionListener(this);
add(myTextArea, BorderLayout.CENTER);//menambahkan text area di bagian tengah
add(tombol, BorderLayout.SOUTH);//menambahkan tombol di bagian bawah
setSize(600, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
//Mengimplentasikan method dari interface ActionListener
@Override
public void actionPerformed(ActionEvent e) {
myTextArea.append("Tombol ditekan\n");
}
}

import javax.swing.SwingUtilities;
public class MyApp {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() { 
@Override
public void run() { 
new FrameUtama();

});
}
}

Output




Sumber: 
http://bahasajava.com/gui-event-handling-java/
https://www.petanikode.com/java-input-output/
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.