1. Sorting
Sorting adalah operasi pengurutan elemen-elemen.
Pada pengurutan data terdapat beberapa istilah, yaitu pengurutan ascending dan descending- Ascending
Pengurutan dengan dasar dari nilai yang kecil menuju ke nilai yang besar (urutan naik)
- Descending
Macam - macam Sorting (Pengurutan), diantaranya :
1. Selection Sort (Elemen diurutkan dengan memilih elemen
yang paling kecil, kemudian
ditukar dengan data awal)
2. Insertion Sort (Elemen diurutkan dengan membandingkan
data 1 dan 2 kemudian disisipkan diposisi yang seharusnya, sisanya bergeser ke
kanan)
3. Bubble Sort (Elemen dijadikan gelembung udara, diurutkan
dengan memilih elemen terkecil, kemudian dibandingkan dengan elemen sebelumnya.
Jika lebih kecil dipindah ke posisi sebelumnya)
4. Quick Sort (Elemen diurutkan dengan cepat. Ditentukan
terlebih dulu Lower Bound dan Upper Bound)
5. Merge Sort (Elemen diurutkan dengan cara digabung.
Pengurutan elemen dengan cara dikelompokkan menjadi 2,4,6,... bagian)
6. Heap Sort (Elemen diurutkan untuk dicari bilangan
terbesar dari data dalam deret bilangan)
Dari Teknik Sorting di atas, masing - masing memiliki
kelebihan dan kekurangan.
Kecepatan Algoritma Sorting --> Iterasi , dipengaruhi
oleh :
1. Perbandingan Data
2. Pemindahan Data
Pada kesempatan kali ini akan coba dibahas Teknik Sorting
" QUICK SORT ".
Quick Sort adalah metode pengurutan data yang sangat baik,
terutama untuk tabel data yang sangat besar. Dengan data yang sangat banyak
teknik pengurutan Quick Sort sangat baik, karena data dapat diurutkan secara
lebih cepat.Algorithma atau Prosedure Quick Sort adalah sebagai berikut :
1. Tentukan Lower Bound (LB) atau posisi awal dan Upper
Bound (UB) atau posisi akhir
2. Syarat perpindahan adalah bandingkan LB dan UB
Jika UB < LB
--> Tukar
Jika UB > LB
--> Next Upper Bound
3. Lakukan langkah 1 dan 2 untuk bilangan selanjutnya sampai
didapatkan urutan yang optimal
Contoh Kasus :
Terdapat data acak : 12
8 25 9
12 8 25
9 4 ,
n=5
LB UB
4 8 25
9 12 ,
i=1
LB/UB
4 8 25
9 12 ,
i=2
LB/UB
4 8 25
9 12 ,
i=3
LB UB
4 8 12
9 25 ,
i=4
LB UB
4 8 9
12 25 ,
i=5
Hasil Pengurutan : 4
8 9 12 25
Contoh coding Quick Sort dalam Java :
public class Quick_Sort{
public static void
main(String a[]){
//mendeklarasikan
tipe data untuk pencetakan data
int i; //sbg
indeks
//mendeklarasikan
data array dan menentukan nilai data yang ingin diurutkan
int array[] =
{12,8,25,9,4};
//sbg judul
System.out.println("..:: Teknik Sorting dengan Quick Sort
::..\n\n");
System.out.print("Nilai sebelum diurutkan: ");
//pencetakan data
tidak berurut
for(i = 0; i <
array.length; i++)
System.out.print(
array[i]+"\t");
System.out.println();
quick_srt(array,0,array.length-1);
//pencetakan data yg
telah berurut
System.out.print("Nilai setelah diurutkan: ");
for(i = 0; i
<array.length; i++)
System.out.print(array[i]+"\t");
System.out.println();
}
//perapan teknik
Quick Sort
public static void
quick_srt(int array[],int lower, int upper){
//menetukan lower bound dan upper bound
int lb = lower;
int ub = upper;
// Jika LB>UB
maka tukar posisi
if (lb >=
upper)
{return;}
int mid =
array[(lb + ub) / 2];
while (lb < ub)
{
while
(lb<ub && array[lb] < mid)
{lb++;}
while (lb<ub
&& array[ub] > mid)
{ub--;}
// Jika LB<UB
maka next UB
if (lb < ub)
{
int dinar =
array[lb];
array[lb] =
array[ub];
array[ub] =
dinar;
}
}
if (ub < lb)
{
int dinar = ub;
ub = lb;
lb = dinar;
}
quick_srt(array,
lower, lb);
quick_srt(array,
lb == lower ? lb+1 : lb, upper);
}
}
...Hasil...
..:: Teknik Sorting dengan Quick Sort ::..
Nilai sebelum diurutkan: 12 8 25
9 4
Nilai setelah diurutkan: 4
8 9 12
25
2. Searching
Searching adalah operasi pencarian elemen data
Terbagi menjadi :
A. Pencarian Tunggal
1). Linear Search/ Sequential Search
Cara : Dimulai
dari record 1 sampai data ditemukan
Data : Acak, Urut
2). Binary Search
Cara : Pencarian
dilakukan dari tengah (middle)
Data : Harus
Terurut
B. Pencarian Nilai Max Min
1). Strait Max Min
Berbentuk Array
Linier :
- Best Case (N-1)
Urut Asc
- Worst Case
2(N-1) Urut Desc
- Average Case
(3N/2)-1 Acak
2). D and C
Cara :
Dikelompokkan, mencari nilai max dan min
Pada kesempatan kali ini akan coba dibahas Teknik Searching
" LINEAR SEARCH ".
Linear Search adalah teknik pencarian yang dimulai dari
record ke 1 diteruskan ker record berikutnya yaitu record ke 2, ke 3, dst,
sampai diperoleh isi record sama dengan
bilangan yang dicari.
Contoh Kasus :
Terdapat data acak : 10
15 18 4
12 , n=5
diketahui x=4, maka iterasi=4
diketahui x=15, maka iterasi=2
Maksimal iterasi=5, karena banyak elemen ada 5
Contoh coding Linier Search dalam Java :
import java.io.*;
public class LinearSearch
{
public static void main(String[] args) throws Exception
{
//membuat objek
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
//mendeklarasikan data array secara acak
int DataArray [] = {10, 15, 18, 4, 12, 9};
int x, NilaiX;
boolean Ketemu;
//Menampilkan nilai data array
System.out.println("\nData Array :");
for (x=0; x<=DataArray.length-2; x++)
{
System.out.print(DataArray[x]+" ");
}
System.out.println("\n");
//Masukan data yang ingin dicari
System.out.print("Masukan angka yang ingin dicari :
");
String Input = br.readLine();
NilaiX = Integer.parseInt(Input);
Ketemu = false;
for (x=0; x<=DataArray.length-2; x++){
if (DataArray[x] == NilaiX){
Ketemu = true;
break;
}
}
//Jika data ada maka akan ditampilkan
if (Ketemu == true){
System.out.println("Angka "+NilaiX+"
ditemukan pada Index Array ke-"+(x+1)+ "\n");
System.out.println("Iterasi = "+(x+1));
}else
//Jika data tidak ada tampil pesan berikut
{
System.out.println("Angka tidak ditemukan \n");
}
}
}
::: Hasil :::
Data Array :
10 15 18 4 12
Masukan angka yang ingin dicari : 10
Angka 10 ditemukan pada Index Array ke-1
Iterasi = 1

Tidak ada komentar:
Posting Komentar