Masih ingat dengan bilangan prima? Bilangan prima adalah bilangan yang hanya
bisa dibagi oleh 1 dan bilangan itu sendiri. Konsep ini telah diajarkan sejak
kelas 5 SD di zaman saya. Mungkin di zaman kamu diajarkan bukan di kelas 5
SD.
Bilangan prima ini adalah bilangan yang sangat menarik. Sebagian besar bilangan
prima adalah bilangan ganjil. Namun, bilangan prima juga ada yang genap, yaitu
angka 2.
Berbicara mengenai masalah bilangan prima, kamu akan mulai menebak bilangan
berapa saja yang masuk ke dalam bilangan prima. Dulu, dengan berbekal perangkat
kalkulator, saya biasanya mengecek bilangan prima dengan membaginya dengan
angka-angka pembagi semisal 2, 3, 5, 7 dan seterusnya.
Nah kali ini, saya
akan berbagi mengenai aplikasi web buatan saya yang bisa mendeteksi bilangan
prima.
Mendeteksi Bilangan Prima dengan Mudah
Bagi kamu yang tertarik dalam bidang web, tentu sangat akrab dengan JavaScript.
Dengan bermodal sedikit pengetahuan tentang JavaScript dan algoritma komputer
yang saya pelajari di kuliah, saya membuat aplikasi pendeteksi bilangan prima
dengan JavaScript. Berikut ini adalah aplikasi
Bilangan Prima.
Kamu bisa mencobanya dengan memasukkan angka sembarang. Nantinya akan dideteksi
apakah angka tersebut termasuk bilangan prima atau bukan. Jika kamu penasaran
dengan algoritma yang saya gunakan, kamu bisa melakukan
inspect elements untuk melihat
source code-nya.
Aplikasi di atas mempunyai algoritma yang biasa dan belum dioptimasi. Jika kamu
memasukkan 10 digit bilangan prima, maka bisa jadi
browser kamu akan
hang. Hal ini disebabkan karena komputasi perulangan yang begitu banyak
(10 digit). Coba bayangkan jika manusia disuruh menghitung sebanyak itu. Tentu
saja manusia akan pusing.
Optimasi Algoritma Detektor Bilangan Prima
Untuk menambah performa aplikasi, saya merombak sedikit algoritma pada aplikasi
sebelumnya. Saya menamakannya versi 2. Algoritma yang saya rombak adalah
pengurangan komputasi perulangan yang terjadi. Kamu bisa mencobanya dan
membedakan kecepatan pendeteksiannya. Berikut ini adalah
Bilangan Prima versi ke-2.
Pada versi kedua ini saya memangkas beberapa perulangan yang menurut saya tidak
penting. Karena bilangan prima ini hanya bisa dibagi dengan 1 dan bilangan itu
sendiri, maka ketika bilangan tersebut sudah bisa dibagi dengan 2 maka
perulangan pembagian selanjutnya dibatalkan. Pembatasan pembagian ini sangat
memangkas komputasi.
Selain itu, saya juga memangkas di sisi yang lain. Jika bilangan tersebut tidak
berhasil habis dibagi dengan bilangan perulangan, maka jumlah perulangan akan
dibagi dengan bilangan perulangan. Hal ini sangat memangkas komputasi perulangan
yang terjadi. Jika kamu bingung dengan kalimat penjelasanku, kamu bisa melakukan
inspect elements untuk membaca algoritmanya.
Tingkat Ketilitian Detektor Bilangan Prima
Setiap aplikasi tentu memiliki tingkat ketelitian. Begitu juga dengan aplikasi
web buatan saya ini. Detektor bilangan prima yang saya buat ini memiliki
tingkat ketelitian hingga 15 digit. Ini berdasarkan percobaan yang saya lakukan.
Jika lebih dari 15 digit angka yang kamu masukkan, akan menghasilkan galat.
Bilangan yang seharusnya termasuk bilangan prima, dideteksi bukan prima.
Saya juga tidak tahu penyebab dari keterbatasan ketelitian ini. Mungkin juga
tergantung dari tingkat ketelitian perhitungan fungsi Number() milik JavaScript.
Mungkin jika kamu menggunakan Matlab, tingkat ketelitiannya akan lebih dari 15
digit.
intinya bilangan prima itu ga bisa dibagi secara normal .. itu pikiranku paling sederhana
ReplyDeletega bisa dibagi secara normal gimana yo? *bingung*
Delete