Bantu pliss soal ada di foto
Jawaban dan Penjelasan:
Soal a
Identifikasi Kesalahan
Kesalahan tidak terletak pada sintaks maupun logic program, tetapi terletak pada masukan. Dengan baris program "umur = input.nextInt();", yang diharapkan adalah masukan berupa bilangan bulat (integer).
Koreksi
Cara 1: menggunakan cara manual, katakan pada user bahwa inputnya harus bilangan bulat. 😀
Cara 2:
Lakukan isolasi terhadap exception yang mungkin terjadi karena kesalahan masukan dari user, misalnya dengan try…catch, dipadukan dengan looping sehingga program terus meminta masukan apabila terjadi kesalahan masukan.
Misalnya, untuk baris 7 dan 8 diganti menjadi seperti ini:
// —— koreksi
do {
try {
System.out.print("Masukkan umur : ");
umur = input.nextInt();
if (umur <= 0) {
throw new Exception("Mana mungkin umur bernilai negatif. Yang benar donk!");
}
} catch (InputMismatchException e) {
System.out.print("Masukan yang kamu berikan salah. Silahkan masukkan angka umur yang benar.");
} catch (Exception e) {
// untuk menangani jenis eksepsi lain
System.out.print(e.getMessage());
}
input.nextLine(); // clear buffer
} while (umur <=0);
// —— akhir koreksi
Soal b
Identifikasi Kesalahan
Kesalahan terletak pada logic program. Mungkin si programmer salah ketik operator, seharusnya operator kali (*), tapi diketik tambah (+).
Koreksi
Tinggal mengganti tanda operator tambah di baris ke-11 menjadi kali, sehingga baris ke-11 menjadi:
System.out.println("Luas persegi : " + (panjang*lebar));