Halo lama nggak posting nih, pada kesempatan kali ini gue akan sedikit berbagi ilmu tentang gimana sih cara mengecek suatu bilangan itu prima atau nggak dengan menggunakan Java ? oke mari kita kupas dari awal.
-= Pengertian Bilangan Prima =-
Sebelum kita bikin programnya, kita perlu tau sebenernya apa sih bilangan prima itu ? nah, wikipedia udah jelasin gini :
Bilangan prima adalah bilangan asli yang lebih besar dari angka 1, yang faktor pembaginya adalah 1 dan bilangan itu sendiri. 2 dan 3 adalah bilangan prima. 4 bukan bilangan prima karena 4 bisa dibagi 2. Sepuluh bilangan prima yang pertama adalah 2, 3, 5, 7, 11, 13, 17, 19, 23 dan 29.
Masih ga paham juga ? Gini deh intinya bilangan prima itu bilangan yang lebih gede dari angka 1, yang hanya bisa dibagi oleh angka 1 dan bilangan itu sendiri. jadi kalau dibagi angka lain ada sisanya atau hasilnya koma koma ga bulet kayak oppai gitu. Masih belum ngerti juga ? langsung gue contoh 1 - 5
- Angka 1 = bukan merupakan bil prima karena syarat bilangan prima itu diatas 1
- Angka 2 = merupakan bil prima karena hanya bisa dibagi angka 1 dan angka 2 itu sendiri
- Angka 3 = merupakan bil prima karena hanya bisa dibagi angka 1 dan angka 3 itu sendiri, ga bisa dibagi dua soalnya ntar jadinya 1,5
- Angka 4 = bukan merupakan bil prima karena 4 bisa dibagi 2 hasilnya 2.
- Angka 5 = merupakan bil prima karena hanya bisa dibagi angka 1 dan angka 5 itu sendiri, ga bisa dibagi 2,3,4.
Nah gimana udah jelas tentang apa itu sebenarnya bilangan prima ? Sekarang bagaimana kalau ternyata angkanya ribuan,jutaan, atau bahkan milyaran ? Susah dong ngecek angka tersebut sendiri. Gimana dong ? kita bikin programnya aja pake java.
-= Logika / Algoritma Program Bilangan Prima =-
Gimana cara kerjanya kak ?
Berdasarkan penjabaran tentang bil prima gue diatas, jadi program ini akan membagi sebuah bilangan dari 2 hingga satu angka sebelum angka tersbut. apabila ada hasil bagi yang berupa bil bulat, maka bil tersebut bukan bil bulat. apabila semua hasil bagi koma koma / bersisa, maka angka tersbut merupakan bil prima. masih belum jelas ? cek perumpamaan berikut ini
- Angka 6 :
- 6 : 2 = 3
- 6 : 3 = 2
- 6 : 4 = 1,5
- 6 : 5 = 1,2
Karena 6 saat dibagi 2 / 3 ga bersisa / ga berkoma maka angka 6 tersebut bukan merupakan bil prima.
- Angka 7 :
- 7 : 2 = 3,5
- 7 : 3 = 2,33
- 7 : 4 = 1,75
- 7 : 5 = 1,4
- 7 : 6 = 1,167
Karena semua hasil bagi nggak ada yg biulet alias koma atau berkoma koma semua, maka angka 7 merupakan bil prima. gampang bukan ?
Lalu bagaimana kita menuliskan kode yang dapat mengetahui hasil bagi tersebut bersisa atau koma koma ?
Disinial bagian utamanya, kita akan menggunakan operasi modulo / modulus untuk mengetahui sisa pembagian. Menurut Wikipedia operasi modulus adalah sebuah operasi yang menghasilkan sisa pembagian dari suatu bilangan terhadap bilangan lainnya. Dalam bahasa pemrograman operasi ini umumnya dilambangkan dengan simbol %, mod atau modulo, tergantung bahasa pemrograman yang digunakan.
Kalau kalian belum paham, intinya operasi modulo itu mendapatkan sisa pembagian dari sebuah pembagian. Contoh aja 10 mod 3, maka kita harus mengalikan angka 3 dengan angka yang hasilnya sama dengan 10 atau kalau ga bisa, dikalikan sehingga hasilnya mendekati 10. Dalam kasus ini 3 dapat dikalikan dengan 3 sehingga hasilnya 9. Nah 10 - 9 =1, maka hasil 10 mod 3 = 1.
Beberapa contoh lain :
- 5 mod 3 = 2 -> 5 - (3x1)
- 10 mod 5 = 0 -> 10 - (5x2)
- 50 mod 7 = 1 -> 50 - (7x7)
Sudah mengerti ? apabila masih belum mengerti bisa brwosing browsing lagi mengenai modulo di google.
Bagaimana penerapannya dengan program kita nanti kak ?
Intinya cara kerja yang telah gue tulis diatas diganti oprasi pembagiannya dengan operasi modulo. Apabila hasil modulonya mennghasilkan angka 0, maka fix angka tersebut bukan merupakan bilangan prima. Biar lebih jelasnya gue tulis lagi gini :
- Angka 6 :
- 6 mod 2 = 0
- 6 mod 3 = 0
- 6 mod 4 = 2
- 6 mod 5 = 1
Karena pada hasil tersebut terdapat hasil yang menghasilkan angka 0, maka angka tersebut bukan merupakan bil prima
- Angka 7 :
- 7 mod 2 = 1
- 7 mod 3 = 1
- 7 mod 4 = 3
- 7 mod 5 = 2
- 7 mod 6 = 1
Karena semua hasil bagi nggak ada yang menghasilkan angka 0, maka angka 7 merupakan bil prima.
-= Yuk Ngoding Program =-
- Buka IDE java kalian, bisa netbeans, eclipse, notepad++,
pijat++ anything will be ok
- Bikin project baru dengan nama apapun terserah kalian
- Langsung aja siapkan aja 3 variabel angka, pembagi, dan status prima seperti berikut
int angka = 5, pembagi;
boolean status_prima = true;
//variabel angka digunakan untuk menyimpan angka yang akan dicek bisa diganti dengan angka berapapun yg ingin diuji, variabel poembagi untuk menampung angka pembagi dan status_prima untuk menunjukkan status angka tersebut, perlu dicatat untuk awal kita menganggap semua angka itu prima, hingga nanti apabila menghasilkan angka 0, maka status akan berubah.
- siapkan sebuah perulangan dengan nilai awal 2 (karena pembagian dimulai dari angka 2) hingga 1 angka sebelum angka yg diuji (selama pembagi lebih kecil dari angka yg diuji) seperti berikut:
for (pembagi = 2; pembagi < angka; pembagi++) {
}
- Masukkan kode seleksi kondisi didalam perulangan tersbut. Apabila angka dimodulo pembagi menghasilkan nilai 0, maka status_prima akan berubah jadi false dan melakukan break dari perulangan sehingga kodenya akan menjadi seperti ini
for (pembagi = 2; pembagi < angka; pembagi++) {
if ((angka % pembagi) == 0) {
status_prima = false;
break;
}
}
- Terakhir, tambahkan kode pencetakan dengan seleksi kondisi. Apabila status_prima true maka cetak "bilangan Primra" apabila status_prima sudah menjadi false maka cetak "bukan bilangan Prima" seperti berikut
if (status_prima == true) {
System.out.println("bilangan Prima");
} else {
System.out.println("bukan bilangan Prima");
}
- Sehingga hasil akhir kode akan seperti ini
Silakan di run / compile maka akan terlihat hasilnya, untuk mengecek angka lain, ganti nilai variabel angka dengan angkya yang akan lo uji misal 69 atau berapapun.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpQjalLbYvgA4A_Gec5EjUx7lzwVIjh8_TlmEa9u60l04RfjHnN_RNamW4oR9x2u6lHCGznL56Wv-0-TrfDnpVfl3hIMBWslQAhnRe6tCR0OgsCojhX7d2xXzumjk1sraifqGyVeFSL35i/s1600/sss.png)