Masih ingat dengan definisi Bilangan Prima? Menurut Wikipedia:
“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.”. Angka dua(2) adalah bilangan prima yang satu-satunya genap.
Kali ini saya akan menjelaskan bagaimana cara mencetak bilangan prima menggunakan javascript.
Berikut kondisi bilangan prima yang harus dipenuhi:
- Bilangan harus lebih besar dari angka 1
- Bilangan yang hanya bisa dibagi dengan angka 1 dan bilangan itu sendiri.
Yang perlu diperjelas adalah point ke 2 supaya lebih mudah diimplementasikan di pemprogramman.
#1 Metode Pertama – Menggunakan Bantuan Counter
Menggunakan counter dalam membantu perhitungan. Counter ini akan menghitung berapa banyak pembagi yang sudah dilakukan. Jika counter lebih dari 2 maka dia bukan bilangan prima.
var n = 5;
var i = 0;
var counter = 0;
for (i = 1; i <= n; i++)
if (n % i === 0)
counter++;
if (counter == 2)
document.write('Angka ' + n + ' adalah bilangan prima');
#2 Metode Kedua – Tanpa Bantuan Counter
Kali ini tidak menggunakan counter, tetapi melakukan pembagiannya mulai diatas angka 1 sampai N – 1. Jika berhasil sekali saja dibagi, maka dapat dipastikan gagal.
Contoh: Jika diinputkan angka 5, maka yang perlu dicheck pembagiannya adalah 2, 3, 4.
Contoh: Jika diinputkan angka 10, maka yang perlu dicheck pembagiannya adalah 2, 3, 4, 5, 6, 7, 8, 9.
var isPrime = true;
for (i = 2; i <= (n - 1); i++)
if (n % i === 0) {
isPrime = false;
break;
}
if (isPrime)
document.write('Angka ' + n + ' adalah bilangan prima' + '<br />');
#3 Metode Ketiga – Pengembangan Dari Metode Pertama
Metode ini adalah pengembangan dari metode kedua. Jika kalian perhatikan, saat mulai melakukan pengecheckan angka, dimana angka nya > N/2
tidak perlu di lakukan pengecheckan.
Contoh: Jika diinputkan angka 5, maka yang perlu dicheck adalah 2 saja. Kenapa? Karena 5 / 2 = 2,5
. Angka 3 sudah lebih dari 2,5. Coba kalian hitung jika 3 * 1 = 3
, 3 * 2 = 6
. Sudah pasti bukan kadidat untuk membagi, apalagi angka 4 dst. Ingat bilangan prima harus habis dibagi dengan 1 dan angka ybs.
var isPrime = true;
for (i = 2; i <= Math.floor(n /2); i++)
if (n % i === 0) {
isPrime = false;
break;
}
if (isPrime)
document.write('Angka ' + n + ' adalah bilangan prima' + '<br />');
#4 Metode Keempat – Pengembangan dari Metode Ketiga
Metode ini mirip dengan metode ke 3. Hanya saja kondisinya adalah dimana angkanya > akar_dari(n)
tidak perlu dicheck.
var isPrime = true;
for (i = 2; i <= Math.floor(Math.sqrt(n)); i++)
if (n % i === 0) {
isPrime = false;
break;
}
if (isPrime)
document.write('Angka ' + n + ' adalah bilangan prima' + '<br />');
Klik disini untuk melihat full source codenya.
One Response