Buatlah program Java..mohon bantuannya dong ka​

Berikut ini adalah pertanyaan dari rivki2327 pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas

Buatlah program Java..mohon bantuannya dong ka​
Buatlah program Java..mohon bantuannya dong ka​

Jawaban dan Penjelasan

Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.

Kode Program Java

import java.util.Scanner;

class Pembagi {
   private static Scanner in = new Scanner(System.in);

   // Method untuk meminta masukan berupa angka
   private static int inputAngka(String teks, boolean closeScanner) {
       int tmp = 0;        
       try {
           System.out.print(teks);
           tmp = in.nextInt();
       } catch (Exception e) {
           System.out.println("Terjadi kesalahan.");
       } finally {
           if (closeScanner) in.close();
       }
       return tmp;
   }

   // PROGRAM UTAMA
   public static void main(String args[]) {
       String pembagiPart1 = "", pembagiPart2 = "";
       int bilangan = inputAngka("Input sebuah angka: ", true);
       // Mencari angka yang habis membagi bilangan
       int i = 1;
       do {
           // Jika bilangan % i == 0, i adalah pembagi
           if (bilangan % i == 0) {
               // Masukkan i ke string pembagiPart1
               pembagiPart1 += i + " ";
               // Masukkan bilangan/i ke string pembagiPart2
               if (i != bilangan/i)
                   pembagiPart2 = " " + (bilangan/i) + pembagiPart2;
           }
           i++;
       } while (i <= Math.sqrt(bilangan));
       // OUTPUT
       System.out.println("========================================");
       System.out.println("Angka yang dapat membagi " + bilangan + " tanpa sisa adalah:");
       // Konkatenasi/Gabungkan string pembagiPart1 dan pembagiPart2
       // dan ganti spasi antar angka dengan ", "
       System.out.println((pembagiPart1.trim() + pembagiPart2).replace(" ", ", "));
   }
}
________________

Pembahasan

Pertama, kita rancang algoritma atau dasar pemikirannya terlebih dahulu.

Untuk mencari bilangan yang habis membagi sebuah bilangan lain, katakanlah \tt x, kita dapat menggunakan operator modulo (%), dengan perulangan dari nilai 1 hingga bilangan \tt x. Untuk setiap \tt i yang dievaluasi, jika \tt x\ \%\ i\ ==\ 0, maka \tt ihabis membagi\tt x.

Namun, metode tersebut masih dapat dioptimasi lagi, karena untuk setiap \tt iyang habis membagi\tt x, \tt ipasti berpasangan dengan\tt x/i.

Misalkan \tt xadalah bilangan kuadrat sempurna sehingga dapat dinyatakan oleh\tt x=\sqrt{x}\sqrt{x}. Faktor dari \tt xyang kurang dari\tt \sqrt{x}pasti berpasangan dengan faktor dari\tt xyang lebih dari\tt \sqrt{x}. Jadi, hanya dibutuhkan perulangan hingga bilangan bulat terbesar yang kurang dari atau sama dengan \tt \sqrt{x}. Oleh karena itu, dalam hal efisiensi algoritma, akan lebih baik menggunakan metode ini, seperti yang digunakan pada program di atas.

Namun, perlu diperhatikan bahwa agar outputnya terurut dari angka terkecil hingga terbesar, kita memerlukan “teknik khusus”. Silahkan mencermati program tersebut.

Contoh hasil eksekusi program dapat dilihat pada gambar yang dilampirkan. Terdapat 3 contoh kasus, yaitu untuk masukan bilangan 30 (seperti contoh pada soal), 3000, dan 4096.

Kode Program Javaimport java.util.Scanner;class Pembagi {    private static Scanner in = new Scanner(System.in);    // Method untuk meminta masukan berupa angka    private static int inputAngka(String teks, boolean closeScanner) {        int tmp = 0;                try {            System.out.print(teks);            tmp = in.nextInt();        } catch (Exception e) {            System.out.println(Kode Program Javaimport java.util.Scanner;class Pembagi {    private static Scanner in = new Scanner(System.in);    // Method untuk meminta masukan berupa angka    private static int inputAngka(String teks, boolean closeScanner) {        int tmp = 0;                try {            System.out.print(teks);            tmp = in.nextInt();        } catch (Exception e) {            System.out.println(Kode Program Javaimport java.util.Scanner;class Pembagi {    private static Scanner in = new Scanner(System.in);    // Method untuk meminta masukan berupa angka    private static int inputAngka(String teks, boolean closeScanner) {        int tmp = 0;                try {            System.out.print(teks);            tmp = in.nextInt();        } catch (Exception e) {            System.out.println(Kode Program Javaimport java.util.Scanner;class Pembagi {    private static Scanner in = new Scanner(System.in);    // Method untuk meminta masukan berupa angka    private static int inputAngka(String teks, boolean closeScanner) {        int tmp = 0;                try {            System.out.print(teks);            tmp = in.nextInt();        } catch (Exception e) {            System.out.println(

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: Thu, 20 Oct 22