Minggu, Januari 24, 2010

Bilangan prima di daerah yang dibatasi

Algoritma dan program untuk mencari bilangan prima dalam daerah yang dibatasi


أسلام عليكم ورحمة الله وبركاته


Wahid, isnan, salasah, GO!! (seperti lomba lari saja). Ok, sekarang kita akan membuat program untuk mendapatkan bilangan prima dalam daerah yang dibatasi, misalnya bilangan prima antara 5 dan 17, maka jawabannya adalah 7, 11 dan 13, hanya itu yang akan dibahas pada kesempatan kali ini, hanya dengan memasukkan batas bawah dan batas atas dengan bilangan terserah kita, maka akan langsung didapatkan bilangan prima yang terletak antara batas bawah dengan batas atas tersebut.
Kita mulai ya... , kita kan tahu bilangan prima itu adalah bilangan yang tidak bersisa nol bila dibagi dengan bilangan selain 1 dan dirinya sendiri, contoh:
  • 7 adalah bilangan prima, karena 7 hanya bersisa nol bila dibagi dengan bilangan 1 dan bilangan 7 itu sendiri
  • 11 adalah bilangan prima, karena 11 hanya bersisa nol bila dibagi dengan bilangan 1 dan bilangan 11 itu sendiri
  • 8 bukan bilangan prima, karena selain dibagi dengan bilangan 1 dan bilangan 8 itu sendiri, 8 juga bersisa nol bila dibagi dengan bilangan 2 dan 4
  • 15 bukan bilangan prima, karena selain dibagi dengan bilangan 1 dan bilangan 15 itu sendiri, 15 juga bersisa nol bila dibagi dengan bilangan 3 dan 5
Sampai di sini ngertilah ya?? (kalau belum tahu ditanyain dulu), kalau sudah ngerti ayo kita come on Terlebih dahulu kita akan membahas bagaimana cara memeriksa apakah suatu bilangan itu merupakan bilangan prima atau bukan. Di atas sudah dikatakan bahwa bilangan prima adalah bilangan yang tidak bersisa nol bila dibagi dengan bilangan selain 1 dan dirinya sendiri. Jika kita anggap c adalah bilangan yang akan diperiksa apakah merupakan bilangan prima atau bukan, berarti:
  • c adalah bilangan prima jika dan hanya jika c tidak bersisa nol bila dibagi dengan bilangan selain 1 dan bilangan c itu sendiri
  • pernyataan di atas dapat juga ditulis dengan kalimat berikut: c adalah bilangan prima jika dan hanya jika c tidak bersisa no bila dibagi denga bilangan 2, 3, ..., c-1
  • pernyataan di atas dapat juga ditulis dengan kalimat berikut: jika kita misalkan bahwa d = 2, 3, ..., c-1 maka, c dikatakan bilangan prima jika c mod d = 0
Untuk mulai membuat algoritmanya, terlebih dahulu kita harus mengetahui bahwa apapun bilangan yang akan diperiksa termasuk prima atau bukan, pasti bilangan itu memenuhi salah satu dari 3 kondisi berikut:
  1. Bilangan yang dimasukkan lebih kecil dari 2 (c < 2)
  2. Bilangan yang dimasukkan adalah 2 (c = 2)
  3. Bilangan yang dimasukkan lebih besar dari 2 (c > 2)
Dan untuk bilangan yang besar dari 2 ini, baru akan dilakukan pemeriksaan lebih lanjut (kayak kasus pidana aja, hahaha ), karna untuk kondisi nomor 1, sudah pasti bilangan itu bukan bilangan prima (karna bilangan prima dimulai dari 2) dan kondisi nomor 2, sudah pasti merupakan bilangan prima (karna 2 adalah bilangan prima pertama)
Hasil akhir dari algoritma ini adalah suatu pernyataan, yaitu: c merupakan bilangan prima atau c bukan merupakan bilangan prima. Hasil akhir dari algoritma di atas bisa kita ubah dengan menampilkan c hanya jika c bilangan prima, jika c bukan bilangan prima maka tidak akan ditampilkan apa-apa, maka algoritmanya akan menjadi seperti berikut.
Dan untuk menampilkan bilangan prima antara a dengan b, maka kita cukup menambahkan bahwa nilai c bermula dari a+1 hingga b-1, dan yang menjadi masukan bukan lagi nilai c, tetapi nilai a dan b, sehingga algoritmanya menjadi seperti ini:
Jika algoritma tersebut kita tulis di dalam bahasa pemrograman Pascal, maka akan didapat sintaks sebagai berikut:
uses crt; 
var a,b,c,d:longint; 
begin clrscr; 
writeln('PROGRAM MENAMPILKAN BILANGAN PRIMA DALAM DAERAH YANG DIBATASI'); 
writeln(#10); 
write('Program ini akan meminta input atau masukan 2 bilangan yaitu 1 bilangan sebagai'); 
write(' batas bawah dan 1 bilangan lagi sebagai batas atas, dan secara otomatis akan'); 
writeln(' ditampilkan bilangan prima yang ada antara 2 bilangan itu'); 
writeln; 
write('masukkan batas bawah: '); 
readln(a); 
write('masukkan batas atas: '); 
readln(b); 
writeln(#10); 
writeln('Bilangan prima antara ',a,' dengan ',b,' adalah:');
for c:=a+1 to b-1 do
if c=2 then writeln(c) else
for d:=2 to c-1 do
begin
if c mod d = 0 then d:=c-1 else
if d=c-1 then writeln(c);
end;
readln end.
Hasil dari sintaks di atas adalah suatu file aplikasi berekstensikan .exe yang dapat di download di sini, dan untuk file .pas nya (file yang dibuka dalam bahasa pemrograman Pascal) dapat didownload di sini, dan untuk file .doc (file yang dibuka dengan Microsoft Word) dari postingan ini juga dapat didownload di sini.
الحمدلله
selesai, mau tidur dulu ah...... ingin dapat update dari algoritma pemrograman pascal lainnya? silakan Join Group facebook sahabat-informasi.com dan Like fanpage sahabat informasi dengan dengan account facebook kamu, lihat juga algoritma dan program pascal lainnya di sini

2 komentar:

waaaa mantab sob... pemrograman yang dikombinasikan dengan nuansa hijaiyah ya?

thanks mas ilmunya...

salam kenal