STMIK RAHARJA
JL. Jenderal Sudirman No. 40 Modern Cikokol-Tangerang 15117
Telp. (021)5529692
2016/2017
KATA PENGANTAR
Segala puji hanya milik Allah SWT. Shalawat dan salam semoga selalu
tercurahkan kepada Rasulullah SAW. Berkat rahmat dan nikmat-Nya penyusun mampu
menyelesaikan tugas makalah ini guna memenuhi tugas mata kuliah Struktur Data. Makalah
ini membahas tentang Macam Macam Metode Pencarian Data. Dengan tujuan
penulisan makalah ini sebagai sumber bacaan yang dapat dipergunakan untuk memperdalam
Makalah ini penyusun akui masih memiliki banyak kekurangan dan jauh dari kata
sempurna, oleh karena itu kritik dan saran yang bersifat membangun sangat penyusun
Penyusun
Sorting
Sorting bisa didefinisikan sebagai suatu pengurutan data yang sebelumnya disusun
secara acak, sehingga menjadi tersusun secara teratur menurut aturan tertentu. sorting yang
kita terapkan menggunakan tipe data array agar pemahaman serta pengimplementasiannya
lebih mudah.
Pada umumnya metode yang digunakan untuk sorting adalah :
1. Buble\Exchange sort
2. Selection Sort
3. Shell Sort
4. Quick Sort
5. Insertion Sort
6. Sequential Sort
7. Merge Sort
1. BUBBLE/EXCHANGE SORT
Contoh pengurutan data yang dilakukan dengan metode bubble sort sebagai berikut :
Proses 1 :
22 10 15 3 8 2
22 10 15 3 2 8
22 10 15 2 3 8
22 10 2 15 3 8
22 10 2 15 3 8
22 2 10 15 3 8
2 22 10 15 3 8
Pengecekan dimulai dari data yang paling akhir, kemudian dibandingkan dengan data
di depannya,jika data didepannya lebih besar maka akan di tukar.
Proses 2:
2 22 10 15 3 8
2 22 10 15 3 8
2 22 10 3 15 8
2 22 3 10 15 8
2 3 22 10 15 8
Pengecekan dilakukan sampai dengan data ke-2 karena data pertama pasti sudah
paling kecil.
Proses 3 :
2 3 22 10 15 8
2 3 22 10 8 15
2 3 22 8 10 15
2 3 8 22 10 15
Proses 4 :
2 3 8 22 10 15
2 3 8 22 15 10
2 3 8 15 22 10
Proses 5 :
2 3 8 15 22 10
2 3 8 15 10 22
Pengurutan berhenti.
Contoh Program Bubble Sort :
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
bubble_acak()
{
clrscr();
int arr[1000];
int x, i; //untuk array
int s, t, temp; //untuk sorting
bubble_manual()
{
clrscr();
int arr[1000];
int x, i; //untuk array
int s, t, temp; //untuk sorting
//input jumlah data yang diproses
cout<<angka yang akan dimasukkan : ; cin>>x;
//sorting
cout<<endl<<endl<<endl<<endl;
cout<<====== sorting ======<<endl<<endl;
s = 0;
for (s=0; s<x; s++){
for (t = s+1; t<x; t++){
if (arr[s]>arr[t]){
temp = arr[s];
arr[s] = arr[t];
arr[t] = temp;
}
}
}
cout<<setelah sorting :<<endl;
for (i=0; i<x; i++)
cout<<arr[i]<<, ;
//mission complete
getch();
}
main ()
{
int pilih;
char ulang;
do{
clrscr ();
cout<<tekan 1 : bilangan yang disorting dimasukan secara
acak<<endl;
cout<<tekan 2 : bilangan yang disorting dimasukan secara
manual<<endl;
cout<<masukkan pilihan : ; cin>>pilih;
switch (pilih){
case 1:
bubble_acak();
break;
case 2:
bubble_manual();
break;
default:
clrscr();
cout<<\maaf\<<endl;
cout<<\pilihan yang dimasukkan salah\;
break;
}
cout<<endl<<endl<<tekan \Y\ lalu \ENTER\ untuk ulang > ;
cin>>ulang;
}
while (ulang==Y);
}
Dalam Procedure Pascal :
Procedure Bubble(Var Temp : Data; JmlData : Integer);
Var I,J : Integer;
Begin
For I:=2 To JmlData Do
For J:=JmlData DownTo I Do
If Temp[J] < Temp[J-1] Then {Untuk Descending
>}
SWAP(Temp[J], Temp[J-1]);
End;
Cara kerja metode ini didasarkan pada pencarian elemen dengan nilai terkecil.
kemudian dilakukan penukaran dengan elemen ke-I. Secara singkat metode ini bisa
dijelaskan sebagai berikut. Pada langkah pertama, dicari data yang terkecil dari data
pertama sampai terakhir. Kemudian data tersebut kita tukar dari data pertama. Dengan
demikian, data pertama sekarang mempunyai nilai paling kecil dibanding dengan data
lain. Pada langkah kedua, data terkecil kita cari mulai dari data kedua sampai data
terakhir. Data terkecil yang kita peroleh kita tukar dengan data kedua. Demikian
seterusnya sampai seluruh data terurut.
Contoh dari proses sorting dengan menggunakan metode Selection sort :
3. SHELL SORT
Metode ini dikembangkan oleh Donald L. Shell pada tahun 1959. Dalam
metode ini jarak antara dua elemen yang dibandingkan dan ditukarkan tertentu.
Secara singkat metode ini dijelaskan sebagai berikut. Pada langkah pertama, kita
ambil elemen pertama dan kita bandingkan dan kita bandingkan dengan elemen pada
jarak tertentu dari elemen pertama tersebut. Kemudain elemen kedua kita bandingkan
dengan eleen lain dengan jarak yang sama seperti jarak yang sama seperti diatas.
Demikian seterusnya sampai seluruh elemen dibandingkan. Pada langkah kedua
proses diulang dengan langkah yang lebih kecil, pada langkah ketiga jarak tersebut
diperkecil lagi seluruh proses dihentikan jika jarak sudah sama dengan satu.
Contoh dari proses Sorting dengan menggunakan metode Shell Sort :
4. QUICK SORT
Metode ini dikembangkan oleh CAR Hoare. Secara garis besar metode ini
dijelaskan sebagai berikut. Misalnya kita ingin mengurutkan data A yang membunyai
N elemen. Kita pilih sembarang elemen dari data tersebut, biasanya elemen pertama,
misalnya X. Kemudain semua elemen tersebut disusun dengan menempatkan X pada
posisi J sedemikian rupa shingga elemen ke 1 sampai ke J-1 mempuyai nilai lebih
besar dari X. Sampai berikutnya diulang untuk setiap sub data.
Contoh dari proses Soring dengan menggunakan metode Quick Sort
Berikutnya, kita perlu menyisipkan bilangan ketiga (4) ke dalam bagian biru/abu-abu
sehingga setelah penyisipan tersebut, bagian biru/abu-abu tetap dalam keadaan terurut
secara relatif;
CARANYA :
1 pertama : Ambil bilangan ketiga (4).
2 Kedua : Geser bilangan kedua (10) shg ada ruang untuk disisipi.
4 Sekarang, tiga bilangan pertama sudah terurut secara relatif dan kita sisipkan
bilangan keempat kepada tiga bilangan pertama tsb. Setelah penyisipan,
empat bilangan pertama haruslah dalam keadaan terurut secara relatif.
5 Ulangi proses tsb sampai bilangan terakhir disisipkan
6. SEQUENTIAL SORT
Suatu teknik pencarian data dalam array dimensi 1 yang akan menelusuri semua
elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan
terlebih dahulu (acak).
Kemungkinan terbaik (best case) adalah jika data yang dicari terletak di index
array terdepan sehingga waktu yang dibutuhkan untuk pencarian data sangat
singkat (waktu minimal).
Kemungkinan terburuk (worst case) adalah jika data yang dicari terletak di index
array terakhir sehingga waktu yang dibutuhkan untuk pencarian data sangat lama
(waktu maksimal)
7. MERGE SORT