Keluarga Infokom

Keluarga Infokom

Prediksi Soal UTS Algoritma tentang Mencari Bilangan Prima

Di sini temen2 aku coba memapaparkan bagaimana cara mencari bilangan prima yang mudah. Untuk setiap baris sudah coba aku beri keterangan. Untuk algoritma simpel mencari bilangan prima adalah, bilangan prima adalah bilangan yang mempunyai faktor 1 dan bilangan itu sendiri maka tentulah bukan bilangan genap, dan bila dibagi dengan 2 maka sisanya tidak sama dengan 0. Pertama-tama kita akan memberi input batas atas dan batas bawah, bila min>max maka kita akan terus diminta memasukkan nilai max yang lebih besar
bila min
Contoh bila kita memasukkan 4 bila dibagi 2 sisanya 0 maka langsung keluar dari loop. Tetapi bila merupakan bilangan prima akan terud digunakan sebagai pembagi nilai baru yang dimasukkan. Contoh bila kita memasukkan angka 9 maka 9 bila dibagi 2 sisanya adalah 1. Primakah bilangan 9? Tidak karena bila dibagi bilangan prima setelah 2 yaitu 3 sisanya adalah 0. Untuk yang belum jelas bisa comment2 temen2. Berikut source codenya langsung dicopy ke JCreator aja ya biar jelas.

import java.util.Scanner;
//alternatif untuk menginput data selain buffered reader, inputstream reader, io exception
//Scanner lebih banyak digunakan untuk program yang berjalan tanpa penanganan error
public class bilanganprima
{
public static void main(String[] args)
{
Scanner input = new Scanner (System.in);
//kalau temen2 mengenal System.out di sini ada System.in untuk memasukkan nilainya         
int i, j, min, max, jum=0, total=0;//ingat untuk jumlah dan total harus diberi index 0
//kadang2 kesalahan seorang programmer adalah tidak memberi nilai awal
float rata;//untuk menghitung nilai rata2 nanti
boolean prima;//karena di sini algoritmanya melakukan pengecekan maka menggunakan booelan
System.out.print("Masukkan nilai batas bawah: ");
min = input.nextInt();
//disini agar inputan bisa dikenali sebagai integer bukan sebagai karakter
System.out.print("Masukkan nilai batas atas: ");
max = input.nextInt();    
while (min > max)
{
System.out.print("\n\nBatas atas harus lebih besar dari batas bawah.\nMasukkan nilai batas atas: ");
max = input.nextInt();//kalau batas atasnya lebih kecil maka kita memasukkan nilai ulang
}
System.out.print("\n");//ganti baris
for (i=min;i<=max;i++)//di sini akan melakukan looping sampai nilai min sama dengan nilai max
{
prima=false;//karena belum ditentukan sebagai nilai prima maka kondisinya false
//kalau true berarti semua bilangan yang dimasukkan adalah bilangan prima
if (i==2)//kita memberi suatu keadaan bahwa bila nilai yang dimasukkan adalah 2
prima=true;//kondisinya adalah true
else//atau kalau i tidak 2 alias lebih besar
{
for (
j=2;j<i;j++)
//kuncinya adalah kita harus membagi nilai-nilai yang dimasukkan dengan nilai bilangan prima yang sudah ditemukan sebelumnya
{
if (i % j==0)//jika nilai yang telah ditentukan di bagi oleh bilangan-bilangan prima
//jadi bila kita memasukkan nilai i=11 maka 11 akan dicek dengan dibagi 2, 3, 5, dan 7
//11 tidak dibagi dengan 4, 6, 8, dan 9 karena bilangan itu langsung keluar dari loop
{
prima=false;//maka bukanlah bilangan prima
break; // keluar dari looping j++ berarti tidak dimasukkan dalam bilangan prima
}
else
prima=true;//jika sisanya tidak 0 maka adalah bilangan prima
}
}
if (prima) // bila prima dalam kondisi true
{
System.out.printf("%d\t",i);//untuk %d berfungsi untuk menampilkan seluruh nilai i
//\t adalah untuk memberi tab setiap nilai, bila tidak ada %d nilainya tidak muncul
jum+=1; // menghitung banyaknya bilangan prima
total+=i; // total jumlah dari seluruh bil. prima
}
}
rata=(float)total/jum; //menghitung rata2 dari seluruh bilangan prima
System.out.printf("\n\nTerdapat %d bilangan dengan total %d.",jum,total);
System.out.printf("\nRata-ratanya%5.2f\n",rata);
//%5.2f adalah untuk menampilkan 5 angka di depan koma dan 2 angka di belakang koma
}
}

2 Response to "Prediksi Soal UTS Algoritma tentang Mencari Bilangan Prima"

  1. ecaiseng Says:

    thx Bro,,
    btw stLh running..source_nya hny jadi pembaca "angka 2" dLm interval batas atas - bwh,,
    bukan pembaca bil. prima spt fngsi yG seharusnya

    contoh:
    Configuration:prima2-JDK v1.6.0_19 -

    Masukkan nilai batas bawah: 1
    Masukkan nilai batas atas: 8



    Terdapat 0 bilangan dengan total 0.
    Rata-ratanya NaN

    Process completed.

    PdhL mestinya ad 4 bil. prima dLm batas intrval 1-8, yaitu 2, 3, 5, dan 7

  2. infokers Says:

    mohon maaf karena copy paste dari jcreator maka terjadi sedikit kesalahan di line
    for (j=2; j<max; i++)
    seharusnya (j=2; j<i; j++)
    thanks buat koreksinya

Posting Komentar