Berikut ini adalah pertanyaan dari rivki2327 pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas
Jawaban dan Penjelasan
Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.
Kode Program Java
import java.util.Scanner;
public class LatihanNestedLoops {
// Method untuk meminta masukan berupa angka
private static int inputAngka(String teks, boolean closeScanner) {
int tmp = 0;
Scanner in = new Scanner(System.in);
try {
System.out.print(teks);
tmp = in.nextInt();
} catch (Exception e) {
System.out.println("Terjadi kesalahan.");
} finally {
if (closeScanner) in.close();
}
return tmp;
}
// Method untuk menentukan karakter X atau O
// dari parameter baris dan kolom
private static char xAtauO(int b, int k) {
if (b % 2 != 0)
// Untuk baris ganjil, X pada kolom ganjil
return (k % 2 != 0) ? 'X' : 'O';
else
// Untuk baris genap, X pada kolom genap
return (k % 2 == 0) ? 'X' : 'O';
}
// PROGRAM UTAMA
public static void main(String args[]) {
// Meminta masukan jumlah baris dan kolom
int baris = inputAngka("Input jumlah baris: ", false);
int kolom = inputAngka("Input jumlah kolom: ", true);
System.out.println("=======================");
for (int b = 1; b <= baris; b++) {
for (int k = 1; k <= kolom; k++) {
System.out.print(xAtauO(b, k) + " ");
}
System.out.println();
}
}
}
__________________
Pembahasan
Karena tidak ada spesifikasi yang lebih rinci, maka diasumsikan karakter X dan O dicetak bergantian setiap berganti nomor kolom, juga setiap berganti nomor baris. Jadi, pada baris bernomor ganjil, karakter X dicetak pada kolom bernomor ganjil. Pada baris bernomor genap, karakter X dicetak pada kolom bernomor genap.
Algoritma utama penentuan karakter X atau O yang akan dicetak pada baris dan kolom tertentu terletak pada method xAtauO, sehingga pada method main, kita hanya perlu memanggil method xAtauO pada loop for bagian dalam, dengan parameter variabel loopin baris dan kolomnya.
Contoh hasil eksekusi program dapat dilihat pada gambar yang disertakan. Terdapat 3 contoh kasus, yaitu untuk jumlah baris dan kolom berturut-turut 3 dan 5, 4 dan 6, serta 11 dan 15.
Semoga dengan pertanyaan yang sudah terjawab oleh henriyulianto dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.
Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact
Last Update: Wed, 19 Oct 22