Cenadep.org - Mencari Bilangan Prima Dengan Delphi
-
Upload
buyut-rivai -
Category
Self Improvement
-
view
1.157 -
download
2
description
Transcript of Cenadep.org - Mencari Bilangan Prima Dengan Delphi
cenadep.o rg http://www.cenadep.org/2013/11/16/source-code-mencari-bilangan-dengan-delphi/
Source Code Mencari Bilangan Prima Dengan Delphi
Bilangan prima adalah bilangan yang dapat dibagi dengan bilangan 1 atau dibagi dengan dirinya sendiri,tanpa menghasilkan sisa pembagian. Contoh bilangan prima adalah: 1, 2, 3, 5, 7, 11, 13, 17, dan seterusnya.
Di Delphi, untuk mencari bilangan prima tidak sulit, asalkan dipahami logikanya. Trus bagaimana pula itulogikanya?
Begini.
Bila kita ingin mengetahui apakah sebuah bilangan adalah bilangan prima atau bukan, ikuti langkah berikut:
Kalau angkanya adalah 1, 2 dan 3, itu bilangan prima
Kalau angkanya lebih besar dari 3, anggap angka tersebut bilangan prima. Kemudian bagikan angkatersebut dengan setiap angka mulai dari 2 sampai angka sebelum angka yang dicari. Misal yang dicariadalah angka 10, maka bagikan angka tersebut dengan 2 sampai 9. Bila dalam proses pembagiandengan salah satu angka (2 sampai 9) terdapat sisa pembagian, maka angka 10 (yang dicari) tadibukan bilangan prima.
Sedangkan untuk mendapatkan angka-angka yang merupakan bilangan prima di antara batas tertentu,cukup dengan mengulangi dua langkah di atas untuk setiap angka yang berada dalam batasan ditentukan.Contoh, kita diminta menampilkan angka yang merupakan bilangan prima antara 10 sampai 100. Lakukanlooping mulai 10 sampai 100 dan cek apakah angka tersebut adalah bilangan prima.
Source Code Mencari Bilangan Dengan Delphi
Tidak enak kalau tidak pake kode. Untuk mencari bilangan prima dan deretan angka yang merupakanbilangan prima, mari kita mulai dengan sebuah projek baru. Di f orm utama, tambahkan dua buah TEdit,sebuah TButton dan sebuah TListBox. Lihat gambar:
Pertama, buat sebuah fungsi pencari bilangan prima yangmerupakan implementasi dari dua langkah logik di atas:
0001000200030004000500060007000800090010001100120013001400150016
function Prima(ANgka:Integer):Boolean;var i:Integer;begin if ANgka<0 then Result :=False else if ANgkain [1..3]then Result :=True else begin result :=True; for i:=2 to ANgka-1 do Result := Resultand ((angkamod i)<>0); end;end;
Bila angka yang diinputkan sebagai parameter adalah bilanganprima, f ungsi Prima( ) akan mengembalikan nilai True,sebaliknya, False.
Kedua, buat event onClick dari Button1 yang berisi looping (pengulangan) untuk mencari deretanbilangan prima jika ditentukan batasan-batasannya:
00010002000300040005000600070008000900100011001200130014001500160017001800190020002100220023
procedure TForm1.Button1Click(Sender: TObject);var i, start , finish:Integer;begin ListBox1.Clear; start := StrToIntDef(Edit1.Text,1); finish := StrToIntDef(Edit2.Text,20); if start>=finishthen begin ShowMessage('Batas bawah harus lebih kecil dari batas atas!'); exit ; end; ListBox1.Items.BeginUpdate; try for i:= startto finishdo if Prima(i)then ListBox1.Items.Add(IntToStr(i)); finally ListBox1.Items.EndUpdate; end;end;
Ingat, setiap angka dalam looping akan di- looping lagi dari angka 2 sampai (angka tersebut)-1, jadi janganmemasukkan angka terlalu besar sebagai batas.
Kode selengkapnya seperti berikut:
000100020003000400050006000700080009001000110012001300140015001600170018001900200021002200230024002500260027002800290030
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 =class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; ListBox1: TListBox; procedure Button1Click(Sender: TObject); private public end; var Form1: TForm1; implementation {$R *.dfm} function Prima(ANgka:Integer):Boolean;
00310032003300340035003600370038003900400041004200430044004500460047004800490050005100520053005400550056005700580059006000610062006300640065006600670068006900700071
var i:Integer;begin if ANgka<0 then Result :=False else if ANgkain [1..3]then Result :=True else begin result :=True; for i:=2 to ANgka-1 do Result := Resultand ((angkamod i)<>0); end;end; procedure TForm1.Button1Click(Sender: TObject);var i, start , finish:Integer;begin ListBox1.Clear; start := StrToIntDef(Edit1.Text,1); finish := StrToIntDef(Edit2.Text,20); if start>=finishthen begin ShowMessage('Batas bawah harus lebih kecil dari batas atas!'); exit ; end; ListBox1.Items.BeginUpdate; try for i:= startto finishdo if Prima(i)then ListBox1.Items.Add(IntToStr(i)); finally ListBox1.Items.EndUpdate; end;end; end.
Sekarang silahkan jalankan projeknya.
Bila t idak ada yang salah dalam pengetikan kode, berarti kita sudah mempunya sebuah program pencaribilangan prima dalam rentang batas tertentu.Source code untuk mencari bilangan prima dengan Delphi ini t idak saya siapkan untuk di-download karenacukup pendek dan mudah.
Berikut contoh tampilan projek di atas saat dijalankan:
Semoga bermanf aat. Viva Delphier