Anda di halaman 1dari 31

Java Foundations

3-5:
Input Keyboard

Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang.
Tujuan
• Pelajaran ini akan membahas tujuan berikut:
−Memahami input pengguna
−Membuat JOptionPane untuk mengumpulkan input
pengguna
−Menggunakan Pemindai untuk mengumpulkan input dari
konsol
−Menggunakan Pemindai untuk
mengumpulkan input dari file
−Memahami bagaimana Pemindai
menangani token dan pembatas

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 3
Topik
• Input Pengguna
• JOptionPane
• Pemindai

Apa yang Mengonversi


Jenis Jenis Input
Dimaksud Antara Jenis
Data Data Keyboard
Dengan Data
Numerik Tekstual
Variabel?

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 4
Mengapa Anda Harus Mendapatkan Input Pengguna?
• Jika Anda menetapkan nilai secara manual terhadap
variabel, ini dikenal sebagai nilai hard-coding:
String input = "This is a String";

• Anda dapat dengan mudah mengubah nilai hard-code


karena Anda memiliki kode sumber dan NetBeans:
String input = "This is a different String";
−Tetapi bila Anda mendistribusikan perangkat lunak, pengguna
tidak akan mendapatkan kemewahan yang sama

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 5
Jenis Input Pengguna
• Contoh input pengguna termasuk …
−Menekan tombol di pengontrol game
−Memasukkan alamat pada GPS
−Memasukkan angka dan fungsi ke dalam kalkulator
−Memberi tahu orang lain nama Anda
• Namun tanpa input pengguna …
−Apakah game tersebut membuat karakter Anda melompat?
−Ke mana GPS akan memandu Anda?
−Angka apakah yang akan dimuat kalkulator Anda?
−Bagaimana orang-orang akan menyebut Anda?

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 6
Cara Mendapatkan Input Pengguna
• Ada banyak cara untuk mendapatkan input pengguna:
−Tombol (fisik atau virtual)
−Roda dan dial
−Pengenalan suara
−Kotak dialog teks
−File properti
• Java menawarkan banyak cara mendapatkan masukan
pengguna, termasuk …
−JOptionPane Swing
−JavaFX (pengganti Swing, dibahas nanti)
−Pemindai

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 7
Topik
• Input Pengguna
• JOptionPane
• Pemindai

Apa yang Mengonversi


Jenis Jenis Input
Dimaksud Antara Jenis
Data Data Keyboard
Dengan Data
Numerik Tekstual
Variabel?

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 8
JOptionPane
• Ini adalah cara sederhana untuk mendapatkan
masukan dari pengguna:
JOptionPane.showInputDialog("Type something:");

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 9
JOptionPane Menghasilkan String
• Input dapat disimpan sebagai String:
String input = JOptionPane.showInputDialog("Type something:");

• Ini setara dengan menulis:


String input = "This is a String";

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 10
Latihan 1, Bagian 1:
• Impor dan edit proyek Input01
• Buat JOptionPane:
−NetBeans akan mengirim keluhan
−Ikuti saran NetBeans untuk mengimpor
javax.swing.JOptionPane
−Kita akan membahas pengimporan di bagian lain

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 11
Latihan 1, Bagian 2:
• Simpan input ini sebagai String
• Cetak Variabel String
• Uraikan String sebagai variabel int terpisah
−Anda perlu memasukkan nilai yang dapat diuraikan
−Cetak nilai ini +1
• Cobalah membuat kotak dialog, menguraikannya, dan
memulai int dalam satu baris. Anda hanya akan
memiliki titik-koma (;)

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 12
Kode Kondensasi
• Anda dapat menyebarkan input, menguraikannya, dan
menghitung dengan beberapa baris:
String inputString = JOptionPane.showInputDialog("??");
int input = Integer.parseInt(inputString);
input++;

• Atau mengkondensasinya ke dalam satu baris:


int input = Integer.parseInt(JOptionPane.showInputDialog("??")) +1;

• Pilihan ini merupakan preferensi pribadi


−Tetapi jika Anda perlu mereferensikan kembali nilai-nilai
tertentu, penting untuk menyimpan nilai ini dalam variabel

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 13
InputDialogs Berbeda
• Kita sudah membuat InputDialog yang sederhana:

• Dengan kode yang lebih rumit, kita dapat


menyesuaikan InputDialog terlebih dulu:

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 14
Opsi Lainnya dengan InputDialogs
• Versi InputDialog ini tidak menghasilkan String

• Hasilnya harus disebut String


yang dapat digunakan:

String input = (String)JOptionPane.showInputDialog(null,


"Is this a question?",
"Dialog Title",
2,
null,
null,
"Type something here.");

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 15
Opsi Lainnya dengan InputDialogs
• Untuk menghindari input yang tidak diinginkan, kita
dapat memberikan nilai yang
dapat diterima oleh
pengguna saja
• Beberapa sintaks ini dibahas
secara lebih detail di Bagian 8
String[] acceptableValues = {"Choice 1", "Choice 2", "Choice 3"};
Input2 string= (String)JOptionPane.showInputDialog(null,
"Is this a question?",
"Dialog Title",
2,
null,
acceptableValues,
acceptableValues[1]);

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 16
showMessageDialog
• showMessageDialog tidak memberikan bidang untuk
input

• Ada banyak variasi lain dari


JOptionPane
JOptionPane.showMessageDialog(
null,
"There's no input here, just a message",
"Title",
0);

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 17
Latihan 2
• Impor dan edit proyek Input02
• Bereksperimen dengan kode dan coba mengubah …
−Judul pesan
−Pesan
−Semua teks input default
−Ikon kotak dialog
• Uraikan, manipulasi, dan cetak input

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 18
Topik
• Input Pengguna
• JOptionPane
• Pemindai

Apa yang Mengonversi


Jenis Jenis Input
Dimaksud Antara Jenis
Data Data Keyboard
Dengan Data
Numerik Tekstual
Variabel?

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 19
Mendapatkan Input dengan Pemindai
• Objek Pemindai membuka alur untuk mengumpulkan
input:
−System.in mempersiapkan Pemindai untuk mengumpulkan
input dari konsol
−Ketikkan input Anda di jendela output NetBeans
−Anda juga dapat menggunakan Pemindai tanpa IDE
• Praktik terbaik adalah dengan menutup alur Pemindai
apabila sudah selesai
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

sc.close();
}//end method main

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 20
Membaca Input dengan Pemindai
• Pemindai mencari token
• Token dipisahkan dengan pembatas
−Pembatas default adalah spasi

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 21
Kelas Pemindai
• Pemindai, seperti kelas lainnya, memiliki bidang dan
metode
• Beberapa metode Pemindai yang berguna ...
−nextInt() membaca token berikutnya sebagai int
−nextDouble() membaca token berikutnya sebagai double
−next() membaca token berikutnya sebagai String
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
double y = sc.nextDouble();
String z = sc.next();
sc.close();
}//end method main

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 22
Latihan 3
• Impor dan edit proyek Input03
• Buat Pemindai:
−NetBeans akan mengirim keluhan
−Ikuti saran NetBeans untuk mengimpor java.util.Scanner
−Ingat untuk menutup Pemindai
• Gunakan Pemindai dan Sistem.in untuk menulis
program yang …
−Menemukan dan mencetak jumlah tiga bilangan bulat yang
dimasukkan oleh pengguna
• Coba masukkan kurang dari tiga token
• Coba masukkan token yang tidak dapat diuraikan
sebagai token

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 23
Pengecualian: InputMismatchException

• Terjadi karena input tidak dapat diuraikan sebagai jenis


yang diharapkan:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(sc.nextInt());
sc.close();
}//end method main

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 24
Pengecualian: IllegalStateException

• Terjadi karena alur diakses setelah ditutup:

public static void main(String[] args) {


Scanner sc = new Scanner(System.in);
sc.close();
System.out.println(sc.nextInt());
} //end method main

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 25
Pengecualian: NullPointerException

• Terjadi karena "fakeFile.txt" tidak ada, melupakan


ekstensi .txt adalah kesalahan yang lazim terjadi
public static void main(String[] args) {
Scanner sc = new Scanner(
Input04.class.getResourceAsStream("fakeFile.txt"));
sc.close();
} //end method main

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 26
Membaca dari File
• Java menawarkan beberapa cara untuk membaca file
• Beberapa metode Pemindai berguna lainnya meliputi:
−nextLine() mendorong Pemindai ini melewati baris saat ini
dan menghasilkan input yang dilewati
−findInLine("StringToFind") Mencoba untuk menemukan
kemunculan pola berikutnya yang disusun dari String yang
ditetapkan, dengan mengabaikan pembatas
public static void main(String[] args) {
Scanner sc = new Scanner(
Input04.class.getResourceAsStream("fakeFile.txt"));
int x = sc.nextInt();
String entireLine = sc.nextLine();
sc.close();
} //end method main

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 27
Latihan 4, Bagian 1:
• Impor dan edit proyek Input04
• Jalankan kode dan periksa output
• Baca setiap baris berikutnya hingga Anda menemukan
"BlueBumper"
• Dua angka di belakang "BlueBumper" merupakan
xPosition dan yPosition objek. Simpan koordinat ini
sebagai bilangan bulat dan cetak
• Periksa input04text.txt, jika perlu

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 28
Latihan 4, Bagian 2:
• Pelajari Level05.txt jika Anda ingin tahu:
−Ini adalah cara data level disimpan untuk Java Puzzle Ball
−Membaca dan menguraikan data level sedikit lebih rumit
dibandingkan yang telah Anda lakukan Dalam pelajaran ini
−Tetapi jika Anda sudah menyelesaikan latihan ini, Anda sudah
hampir memahami cara melakukannya

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 29
Rangkuman
• Dalam pelajaran ini, Anda seharusnya sudah belajar
cara:
−Memahami input pengguna
−Membuat JOptionPane untuk mengumpulkan input
pengguna
−Menggunakan Pemindai untuk mengumpulkan input dari
konsol
−Menggunakan Pemindai
untuk mengumpulkan input
dari file
−Memahami bagaimana
Pemindai menangani token
dan pembatas

JFo 3-5
Input Keyboard Hak Cipta © 2020, Oracle dan/atau afiliasinya. Semua Hak Dilindungi Undang-Undang. 30

Anda mungkin juga menyukai