Latihan soal algoritma kode program Java kali ini akan membahas cara memeriksa apakah sebuah angka merupakan bilangan prima atau tidak.
Materi ini berhubungan dengan logika matematika serta konsep perulangan for dan if else.
Soal Cek Bilangan Prima
Buatlah kode program Java yang menerima satu inputan angka bulat. Kemudian kode program akan menampilkan pesan apakah angka tersebut termasuk bilangan prima atau bukan.
Bonus: Selain menampilkan iya atau tidak, tuliskan pula alasan kenapa bilangan tersebut bukan bilangan prima.
Berikut contoh tampilan akhir yang diinginkan :
Input sebuah angka bulat: 79 79 adalah angka prima
Berikut contoh tampilan akhir yang diinginkan (soal bonus) :
Input sebuah angka bulat: 77 77 bukan angka prima karena bisa dibagi 7
Tips Membuat Kode Program Cek Bilangan Prima
Soal ini melatih pemahaman terkait logika matematika dan konsep perulangan (looping)Â serta kondisi if else. Berikut tutorial pendahuluan yang bisa diikuti:
- Pengertian dan Cara Penulisan Variabel Bahasa Java
- Tipe Data Integer Bahasa Java
- Percabangan Kondisi IF ELSE Java
- Perulangan FOR Bahasa Java
- Jenis-jenis Operator Aritmatika Bahasa Java
Suatu angka disebut sebagai bilangan prima jika angka tersebut tidak bisa dibagi dengan angka lain, selain angka itu sendiri dan 1.
Sebagai contoh, 3 adalah bilangan prima karena hanya bisa dibagi dengan 3. 7 juga bilangan prima karena hanya bisa dibagi dengan angka 7 saja. Sedangkan 12 bukan bilangan prima karena bisa dibagi dengan angka 2.
Pemeriksaan apakah suatu angka habis dibagi dengan angka lain bisa dilakukan dengan operator modulus ( %
). Dalam bahasa Java, 12 % 2
akan menghasilkan angka 0, yang berarti 12 habis dibagi dengan 2. Konsep inilah yang bisa kita pakai untuk membuat kode program pemeriksa bilangan prima.
Idenya adalah, buat sebuah perulangan untuk memeriksa setiap kemungkinan. Jika diinput angka 17, cek apakah 17 habis dibagi 2. Jika tidak, lanjut apakah 17 habis dibagi 3, jika tidak cek lagi apakah 17 habis dibagi 4, dst.
Silahkan anda coba sebentar membuat kode program ini.
Kode Program Java Cek Bilangan Prima
Berikut salah satu solusi dari soal cek bilangan prima menggunakan bahasa pemrograman Java:
import java.util.Scanner; class CekBilanganPrima { public static void main(String args[]){ Scanner input = new Scanner(System.in); System.out.println("## Program Java Cek Bilangan Prima ##"); System.out.println("======================================="); System.out.println(); int n,i; boolean angka_prima = true; System.out.print("Input sebuah angka bulat: "); n = input.nextInt(); // 0 dan 1 bukan angka prima if (n == 0 || n == 1) { angka_prima = false; } else { for (i = 2; i <= n / 2; i++) { if (n % i == 0) { angka_prima = false; break; } } } if (angka_prima) System.out.println( n + " adalah angka prima"); else System.out.println( n + " bukan angka prima"); } }
Dalam kode program ini variabel n akan menampung angka yang diinput oleh user. Proses pembacaan dilakukan di baris 16 dengan perintah n = input.nextInt().
Selain itu saya membuat sebuah flag atau penanda yang disimpan di dalam variabel angka_prima. Variabel angka_prima bertipe boolean sehingga hanya bisa diisi dengan nilai true atau false.
Pada saat proses deklarasi, variabel angka_prima langsung diisi boolean true. Variabel ini akan jadi penentu apakah sebuah angka merupakan bilangan prima atau tidak.
Proses pemeriksaan pertama ada di baris 19. Jika angka yang diinput user adalah 0 atau 1, maka langsung isi angka_prima dengan false. Karena dalam matematika, 0 dan 1 tidak dianggap sebagai angka prima.
Jika angka yang diinput bukan 0 atau 1, maka masuk ke blok else yang berisi perulangan for antara baris 23 – 28.
Perulangan for ini mulai dari 2 hingga n / 2. Dalam setiap iterasi, cek apakah n habis dibagi dengan i melalui perintah n % i == 0. Jika kondisi ini terpenuhi, update isi variabel angka_prima menjadi false dan langsung hentikan perulangan.
Perulangan hanya perlu dilakukan sampai n / 2 karena secara logika kita tidak perlu cek pembagian dengan setiap angka.
Setelah perulangan selesai, cek kembali isi variabel angka_prima. Jika berisi boolean true, yakni if (angka_prima), maka n adalah angka prima. Jika tidak, maka n bukanlah angka prima.
Kode Program Cek Bilangan Prima Java Dengan Alasan
Untuk bonus soal, kita bisa menambah satu variabel ke dalam perulangan for untuk menampung angka yang membuat perulangan itu berhenti. Angka inilah yang menjadi alasan kenapa sebuah bilangan bukan bilangan prima.
Berikut modifikasi yang diperlukan:
import java.util.Scanner; class CekBilanganPrima { public static void main(String args[]){ Scanner input = new Scanner(System.in); System.out.println("## Program Java Cek Bilangan Prima ##"); System.out.println("======================================="); System.out.println(); int n,i,pembagi=0; boolean angka_prima = true; System.out.print("Input sebuah angka bulat: "); n = input.nextInt(); // 0 dan 1 bukan angka prima if (n == 0 || n == 1) { angka_prima = false; } else { for (i = 2; i <= n / 2; i++) { if (n % i == 0) { pembagi = i; angka_prima = false; break; } } } if (angka_prima) System.out.println( n + " adalah angka prima"); else System.out.println( n + " bukan angka prima karena bisa dibagi " +pembagi); } }
Penambahan ada di baris 12, 25 dan 35. Variabel pembagi dipakai untuk menampung angka i saat perulangan berhenti.
Demikian kode program cek bilangan prima menggunakan bahasa pemrograman Java. Seperti yang terlihat, logika dan sedikit teori matematis sangat berperan untuk mencari solusi kode program. Semoga tutorial ini bisa bermanfaat.