searching & sorting

21
Searching & Searching & Sorting Sorting Oleh : Oman Somantri, S.Kom Email : [email protected] Searching Sorting

Upload: magee

Post on 13-Jan-2016

160 views

Category:

Documents


9 download

DESCRIPTION

Searching & Sorting. Searching Sorting. Oleh : Oman Somantri, S.Kom Email : [email protected]. Searching. Pencarian (Searching) adalah proses pencarian nilai dari sebuah larik dengan membandingkan tiap-tiap elemennya berdasarkan algoritma pencarian yang digunakan. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Searching & Sorting

Searching & SortingSearching & Sorting

Oleh : Oman Somantri, S.KomEmail : [email protected]

Searching Sorting

Page 2: Searching & Sorting

Pencarian (Searching) adalah proses pencarian nilai dari sebuah larik dengan membandingkan tiap-tiap elemennya berdasarkan algoritma pencarian yang digunakan.

Ada 3 macam jenis search yang terdapat dalam pascal yaitu, Sequential search, Binary Search, dan Ekstrim Search.

SearchingSearching

Page 3: Searching & Sorting

1. Sequential Search

Algoritma pencarian ini yaitu membandingkan nilai yang dicari (didefenisikan) dengan setiap elemen array, mulai indeks terkecil sampai indeks terbesar yang terdefenisi.

Page 4: Searching & Sorting

program Sequential_Search ;uses wincrt;

label awal;var pil:char; lg :char;const nmin = 1; nmax = 100;type arrint = array [nmin..nmax] of integer;

var x : integer; tabint : arrint; n,i : integer; indeks : integer;

function seqsearch1(xx : integer): integer; var i : integer; begin i := 1; while ((i<n) and (tabint[i] <> xx)) do i:=i+1; if tabint[i] = xx then seqsearch1:=i else seqsearch1:=0; end;

CONTOH :CONTOH :

Page 5: Searching & Sorting

begin clrscr; write('input nilai n = '); readln(n); for i:=1 to n do begin write('Tabint[',i,'] = '); readln(tabint[i]); end; write('Nilai yang dicari = '); readln(x); indeks:=seqsearch1(x); if indeks <> 0 then write(x,' ditemukan pada indeks ke-',indeks) else write(x,' tidak ditemukan'); writeln;readln;end.

Page 6: Searching & Sorting

Apabila program ini dijalankan maka hasilnya adalah :

Penjelasan :Bila pada indeks “input nilai n=” diisi dengan angka 5 maka akan muncul “Tabint=” berjumlah 5. Misalkan ke-5 “Tabint” tersebut diisi dengan angka (1,3,5,7,8) secara berurutan, lalu pada indeks “Nilai yang dicari =” diisi dengan angka 5 maka pencarian akan berhenti pada (1,3,5) karena angka 5 telah ditemukan pada tabint ke 3.

Page 7: Searching & Sorting

Algoritma ini juga disebut dengan dikotomik ide dasarnya adalah membandingkan harga x, dengan elemen tengah array, jika lebih besar dari elemen tengah array,

Karena elemen-elemen terurut membesar, maka pencarian dilakukan pada setengah bagian yang nilainya lebih besar dari x sampai elemen terakhir.

2. Binary Search

Page 8: Searching & Sorting

Program binary_search;Uses crt;const nmin = 1; nmax = 100;type arrint = array [nmin..nmax] of integer;var x : integer; tabint : arrint; n,i : integer; indeks : integer; function binarysearch(xx : integer): integer; var i : integer; atas, bawah, tengah : integer; ditemukan : boolean; indeksxx : integer;

begin atas := 1; bawah := n; ditemukan:=false; indeksxx:=0; while ((atas <= bawah) and (not ditemukan)) do begin tengah:= (atas+bawah) div 2; if xx = tabint[tengah] then begin ditemukan:= true; indeksxx := tengah; end else begin if xx = tabint[tengah] then bawah:= tengah - 1 else atas:= tengah + 1; end; end; binarysearch:=indeks; end;

CONTOH :CONTOH :

Page 9: Searching & Sorting

begin clrscr; write('input nilai n = '); readln(n); for i:= 1 to n do begin write('Tabint[',i,'] = '); readln(tabint[i]); end; write('Nilai yang dicari = '); readln(x); indeks:=binarysearch(x); if indeks <> 0 then write(x,' ditemukan pada indeks ke-',indeks) else write(x,' tidak ditemukan'); readln;end.

Page 10: Searching & Sorting

3. Ekstrim Search (Mencari nilai terbesar dan terkecil)

Ide dasar algoritma mencari nilai ekstrim adalah dengan membandingkan nilai elemen pertama array (diasumsikan sebagai nilai ekstrim) dengan nilai elemen-elemen sesudahnya.

Page 11: Searching & Sorting

begin clrscr; write('jumlah elemen = '); readln(nn); for i:= 1 to nn do begin write('elemen ke-',i,' = '); readln(tabint[i]); end; maks:= maksimum(tabint, nn); writeln('nilai Maksimum = ',maks);writeln;writeln('andihasdialam.blogspot.com');readln;end.

program cari_maks;uses crt;type arrint = array [1..100] of integer;var maks : integer; tabint : arrint; nn, i : integer; function maksimum(tabint : arrint; n : integer) : integer; var i : integer; max : integer; begin for i:=2 to n do if max< tabint[i] then max:= tabint[i]; maksimum:=max; end;

CONTOH :CONTOH :

Page 12: Searching & Sorting

SortingSorting( Pencarian )( Pencarian )

Page 13: Searching & Sorting

Buble Sort

Pengurutan biasa diterapkan pada isi tipe data array. Misalnya kita punya 100 orang mahasiswa lalu kita ingin urutkan data tersebut mulai dari nilai tertinggi sampai nilai terendah disitulah kita gunakan pengurutan.

Buble Sort adalah suatu metode pengurutan yang sederhana. Prinsip kerjanya seperti namanya (buble yang berarti gelembung).

Page 14: Searching & Sorting

Misalnya kita punya setumpuk data, akan kita urutkan dari yang paling kecil. Ambil data yang paling bawah bandingkan dengan yang atasnya kalau atasnya lebih kecil tukar poisisi yang kecil naik ke atas. Lakukan langkah tersebut seterusnya sampai semua data terurutkan.

Lihat tabel berikut :

Page 15: Searching & Sorting

Program Urut_BubleSort ;Uses wincrt;Var data: array [1..100] of integer; i,j,temp,x,n: integer;Begin clrscr; write('Masukan jumlah data : '); readln(x); for i:=1 to x dobegin write('Masukan data ke ',i,': '); readln(data[i]); end; clrscr; writeln('Data yang belum terurut');

for i:=1 to n do begin write(data[i]); end;for i:=1 to x do begin for j:= n downto 2 do begin if (data[j]<data[j-1]) then begin temp:=data[j-1]; data[j-1]:=data[j]; data[j]:=temp; end; end; end; writeln;

CONTOH :CONTOH :

Page 16: Searching & Sorting

writeln('Data yang sudah terurut'); for i:=1 to n do begin write(data[i]); end; readln;end.

Page 17: Searching & Sorting

Insertion SortInsertion Sort

• Insertion Sort adalah contoh lain dari metode pengurutan yang sederhana yaitu kebalikan dari buble sort yang mengurutkan data dari belakang, Insertion Sort mengurutkan data dari depan.

• Ambil dua data pertama, urutkan sesuai yang diinginkan. Lalu sisipkan data ketiga ditempat semestinya lalu sisipkan data keempat ditempat semestinya diantara 3 data sebelumnya dan begitu seterusnya sampai semua data selesai diurutkan.

Page 18: Searching & Sorting
Page 19: Searching & Sorting

Program insertion_sort;Uses crt;var data : array [1..100] of integer; i,j,temp,jumlah : integer;begin clrscr; write('Masukan jumlah data : '); readln(jumlah); for i:=1 to jumlah dobegin write('Masukan data ke-',i,' : '); readln(data[i]); end;

clrscr; writeln('Data yang belum

terurut'); for i:=1 to jumlah do begin write(data[i]); end; for i:=1 to jumlah do

CONTOH :CONTOH :

Page 20: Searching & Sorting

begin temp:=data[i]; j:=i-1; while (j>=1) and (temp<data[j]) do begin data[j+1]:=data[j]; j:=j-1; end; data[j+1]:=temp; end; writeln; writeln('Data yang sudah terurut'); for i:=1 to jumlah do begin write(data[i]); end;readln;end.

Page 21: Searching & Sorting

SELESAI