/** * Tantangan untuk kegiatan Praktikum 2 kelas SDA 2019/2020. * Baca deskripsi praktikum agar dapat menyelesaikan kegiatan ini dengan tepat. */ import java.util.InputMismatchException; import java.util.Scanner; import javax.swing.JOptionPane; /** * @author ? * @version 1.00 */ public class Tantangan1 { /** * Method ini akan meminta dua masukan dari pengguna, yaitu nama dan umur. * @param args masukan pengguna melalui konsol */ public static void main(String[] args) { // buat objek Scanner baru yang membaca masukan dari konsol Scanner scan = new Scanner(System.in); // baca nama yang diberikan pengguna System.out.print("Nama lengkap: "); String nama = scan.nextLine(); // baca umur yang diberikan pengguna int umur = Tantangan1.bacaUmur(scan); // tampilkan nama dan umur JOptionPane.showMessageDialog(null, nama + " dengan umur " + umur + " tahun.", "Data Pengguna", JOptionPane.INFORMATION_MESSAGE); } /** * Baca umur yang diberikan oleh pengguna. Untuk Praktikum 3 SDA, Anda * hanya perlu mengubah method ini. * @param scan objek Scanner untuk membaca input * @return umur */ public static int bacaUmur(Scanner scan){ // asumsikan umur pengguna -1 (belum ada data) int umur = -1; // bungkus try-catch untuk menghandle exception ketika pengguna tidak // memasukkan angka try{ // baca umur yang diberikan pengguna System.out.print("Umur: "); umur = scan.nextInt(); // baca sampai bertemu \n - siap untuk membaca data berikutnya scan.nextLine(); }catch(InputMismatchException e){ // beritahukan ada kesalahan System.out.println("Anda perlu memasukkan angka!\n"); // Bagian ini diperlukan karena method nextInt() hanya akan membaca karakter sebelum // white space (i.e., spasi, tab, atau enter), sedangkan karakter white space-nya // sendiri diabaikan oleh nextInt(). Dengan cara ini, Scanner bisa kembali membaca // karakter berikutnya setelah enter. scan.nextLine(); } // kembalikan umur yang dimasukkan pengguna return umur; } }