MAKALAH
Untuk memenuhi tugas matakuliah
Pemrograman Komputer
yang dibina oleh Bapak Mohamad Yasin, S.Kom., M.Kom.
Oleh :
Indah Rahayu Ningtyas
170312612073
Puji syukur kepada hadirat Tuhan Yang Maha Esa, karena dengan rahmat
dan karunia-Nya penulis dapat menyelesaikan makalah ini. Tujuan penulisan
makalah ini adalah untuk menambah pengetahuan dalam pembelajaran matakuliah
PemrogramanKomputer, khususnya pada materi searching.
Penulis mengharapkan tugas ini dapat memberikan pengalaman yang
berguna baik bagi pembaca, yang tentunya akan menambah ilmu dan wawasan
berfikir mahasiswa. Terima kasih pada pihak-pihak yang membantu penyusunan
makalah ini semoga makalah ini dapat berguna bagi mahasiswa khususnya,
maupun bagi masyarakat pada umumnya.
Penulis menyadari bahwa makalah ini masih jauh dari sempurna, oleh
karena itu kritik dan saran dari semua pihak yang bersifat membangun selalu kami
harapkan demi kesempurnaan penulisan selanjutnya.
Penulis
i
DAFTAR ISI
Halaman
KATA PENGANTAR..........................................................................................i
DAFTAR ISI.........................................................................................................ii
BAB I PENDAHULUAN
1.1 Rumusan Masalah..............................................................................1
1.2 Tujuan Penulisan................................................................................1
BAB II ISI
2.1 Definisi Searching..............................................................................2
2.2 Metode Searching...............................................................................3
2.2.1 Sequential Search......................................................................3
2.2.2 Binary Search............................................................................3
2.2.3 Interpolation Search..................................................................4
2.3 IlustrasiAlgoritma Searching.............................................................4
2.3.1 Sequential Search......................................................................4
2.3.2 Binary Search............................................................................5
2.3.3 Interpolation Search..................................................................8
2.4 Algoritma Searching..........................................................................10
2.4.1 Sequential Search......................................................................10
2.4.2 Binary Search............................................................................11
2.4.3 Interpolation Search..................................................................12
2.5 Program Searching.............................................................................13
ii
BAB I
PENDAHULUAN
penampilan data!
sebagai berikut.
tersebut.
searching tersebut.
1
BAB II
PEMBAHASAN
prosedur untuk nilai (data) tertentu di dalam sekumpulan data yang bertipe
data sama (baik bertipe dasar atau bertipe bentukan). Pencarian terbagi
algorithm) adalah algoritma yang menerima sebuah kata kunci dan dengan
Setelah proses pencarian dilaksanakan, akan diperoleh salah satu dari dua
2
3
search, binary search, dan interpolation search. Berikut ini akan dijelaskan
beruntun terbagi dua, yaitu pencarian beruntun pada larik terurut dan
menaik atau terurut menurun). Data yang disimpan di dalam larik harus
sudah terurut. Metode ini merupakan metode paling efisien. Metode ini
dengan waktu yang relatif cepat. Salah satu keuntungan data terurut
dilakukan pada kumpulan data yang sudah urut. Jika data belum urut,
maka data yang akan dipakai harus diurutkan terlebih dahulu, sebelum
Data:
7 10 13 16 18 21 76 81
1 2 3 4 5 6 7 8
(ditemukan)
Data:
7 10 13 16 18 21 76 81
1 2 3 4 5 6 7 8
Langkah 1 :
7 10 13 16 18 21 76 81
1 2 3 4 5 6 7 8
kiri kanan
Langkah 2 :
4 + 1 = 5 dan j = 8 (tetap)
18 21 76 81
i=5 6 7 8=j
Langkah 1’ :
18
5
Langkah 1 :
i = 1 dan j = 8
berwarna merah)
7 10 13 16 18 21 76 81
1 2 3 4 5 6 7 8
kiri kanan
Langkah 2 :
4 + 1 = 5 dan j = 8 (tetap)
7
18 21 76 81
i=5 6 7 8=j
Langkah 1’ :
i = 5 dan j = 8
18 21 76 81
5 6 7 8
(kiri)’ (kanan)’
Langkah 2’ :
1 = 5 dan i= 5 (tetap)
18
5
Langkah 1’’:
i = 5 dan j = 5
Langkah 2’’ :
Langkah 1’’’:
Data:
7 10 13 16 18 21 76 81
1 2 3 4 5 6 7 8
Langkah 1 :
Low =1
= 1
Langkah 2 :
high = 8 (tetap)
Langkah 1’ :
Low =2
= 2
Langkah 2’ :
high = 8 (tetap)
Langkah 1’’ :
Low =3
= 3
Langkah 2’’ :
high = 8 (tetap)
Langkah 1’’’ :
Low =4
= 4
Langkah 2’’’ :
high = 8 (tetap)
Langkah 1’’’’ :
2.4 AlgoritmaSearching
1. Mulai.
7. Selesai
1. Mulai.
Jika (data ke-i)>(data ke-j), maka (data ke-i) dan (data ke-j)
ditukar.
Terurut (DA).
nilai data yang dicari (C), untuk i=1 sampai N dan j=N,
12
ketika (i<=j) dan (a[i]< >C), cari posisi nilai data tengah (k)
10. Selesai
1. Mulai.
Jika (data ke-i)>(data ke-j), maka (data ke-i) dan (data ke-j)
ditukar.
Terurut (DA).
13
nilai data yang dicari (C), untuk i=1 sampai N, dengan nilai data
10. Selesai
1. Tampilan awal
14
5. Hasil pencarian
16
6. Program Delphi
unit USEARCH;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
Label1: TLabel;
TD: TEdit;
Label2: TLabel;
DATA: TStringGrid;
Label3: TLabel;
DA: TStringGrid;
Button3: TButton;
Button4: TButton;
Button5: TButton;
MS: TMemo;
MB: TMemo;
MI: TMemo;
Button2: TButton;
Button6: TButton;
Button7: TButton;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
TCARI: TEdit;
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
N,C,R: Integer;
17
a: Array[1..1000] of integer;
implementation
{$R *.dfm}
for j:=i+1 to N do
begin
if strtoint(DA.Cells[1,i])>strtoint(DA.Cells[1,j]) then
begin
Result:=strtoint(DA.Cells[1,i]);
DA.Cells[1,i]:=DA.Cells[1,j];
DA.Cells[1,j]:=inttostr(Result);
end;
end;
C:=strtoint(TCARI.Text);
for i:=1 to n do
a[i]:=strtoint(DA.Cells[1,i]);
i:=1;
j:=N;
while (i<=j) and (a[i]<>C) do
begin
k:=(i+j) div 2;
if a[k]=C then i:=k
else if a[k]>C then j:=k-1
else i:=k+1;
end;
if a[i]=C then
begin
MB.Lines.Add('Data ditemukan');
MB.Lines.Add(TCARI.Text + ' ' + 'ditemukan pada data
terurut no' + ' ' + inttostr(i));
end
else
begin
MB.Lines.Add('Data tidak ditemukan');
MB.Lines.Add(TCARI.Text + ' ' + 'tidak ada di data
terurut');
end;
end;
end.
BAB III
PENUTUP
1.1 Kesimpulan
nilai (data) tertentu di dalam sekumpulan data yang bertipe data sama (baik
1.1 Saran
matakuliah ini. Jika materi tersebut sudah dipahami dengan baik, maka
untuk materi selanjutnya dapat dipahami dengan baik juga oleh pembaca.
21
DAFTAR RUJUKAN
22