Anda di halaman 1dari 2

Algoritma dan flowchart untuk menentukan bilangan prima atau bukan

1. 2. 3.

4. 5. 6. 7. 8. 9. 10. 11. 12. 13.

Algoritma : Deklarasikan variable i untuk iterasi, variable bil untuk bilangan yang ingin ditentukan apakah bilangan prima atau bukan, dan variabel x. Masukkan bilangan yang ingin ditentukan apakah bilangan prima atau bukan dan nyatakan ke variabel bil. Apabila bilangan yang dimasukkan tadi kurang dari atau sama dengan 0 maka cetak Bukan Bilangan Prima, namun bila bilangan tersebut lebih dari 0 maka lakukan langkah 4 s/d 8. Kemudian lanjutkan ke langkah 9. Isi variabel i dengan nilai 2. Selama nilai pada variabel i masih kurang dari nilai pada variabelbil, lakukan langkah 6 s/d 8. Hitung sisa hasil bagi nilai pada variabel bil dengan i dan nyatakan ke variabel x. Bila hasil bagi tersebut sama dengan 0, cetak Bukan Bilangan Prima dan langsung ke langkah 10. Tambahkan nilai pada variabel i dengan 1. Cetak Bilangan Prima . Tanya apakah user masih ingin menentukan suatu bilangan apakah merupakan bilangan prima. Bila jawabannya iya, maka kembali ke langkah ke-2. Bila jawabannya tidak, maka program dapat langsung diakhiri. Namun jika bukan keduanya, tanyalah kembali (kembali ke langkah 9). Flowchart :

Program C++ untuk Menampilkan Bilangan Prima


#include<iostream> using namespace std; main() { int x,i,count=0; cout<<"\nMasukkan sebuah angka : "; cin>>x; for(i=2;i<=x/2;i++) { if(x%i==0) count++; } if(count>0 || x<2) cout<<x<<"bukan bilangan prima\n"; else

cout<<x<<"\n bilangan prima\n"; }

Penjelasan:

main() ==>Ini adalah fungsi main dimana akan dipanggil pertamakali jika program dieksekusi. { int x,i,count=0; ==>kita bikin 3 variable dengan tipe integer. variable count diisi dengan nol cout<<"\nMasukkan sebuah angka : ==> menampilkan dilayar cin>>x; ==> meminta input for(i=2;i<=x/2;i++) ==> ini loop mulai dari 2 sampai n/2 kenapa? nanti saya jelaskan { if(x%i==0) ==> ini kondisi yang artinya, jika sisa pembagian x dengan i sama dengan 0 count++; ==> count yang kita isi dengan nol pertama kali tadi ditambah terus kalau kondisi "if" benar } /* loop for ini akan mengecek apakah bilangan tersebut dapat dibagi 2 (apakah sisa pembagian x dengan 2 = 0). Jika ya, maka kita tambah counter "count". count++ sama artinya dengan count=count+1. Jadi, jika count bertambah maka bilangan ini bukan bilangan prima. Kenapa mulai dari 2. Karena 2 adalah bilangan prima yang paling kecil. Inilah kenapa kita pakai batas atasnya adalah n/2 karena kita sudah mengecek 2 pertama kali. Jika bilangan yang kita periksa merupakan kelipatan 2, maka pada pemeriksaan ke n/2 kita akan mendapatkan sisa pembagian 0. Artinya bilangan tersebut bukan prima dan kita tidak perlu melakukan pengecekan selanjutnya (hemat 1/2 langkah ^_^ ) Apakah 2 masuk jadi bilangan prima (seharusnya masuk)? Ya, kita tidak mengecek 2 karena loop dimulai dari 2 sampai 2/2. Loop gak jalan, Yang artinya count tidak bertambah(tetap 0), dan 2 masuk sebagai bilangan prima. */ if(count>0 || x<2) ==> artinya jika count nilanya lebih dari 0 atau x lebih kecil dari 2 (0 atau 1) cout<<x<<"bukan bilangan prima\n"; else cout<<x<<"\n bilangan prima\n"; }

Anda mungkin juga menyukai