revitalia purba
Post on 15-Aug-2015
16 Views
Preview:
TRANSCRIPT
Array Sorting dan Searching ArrayTugas Kuliah Algoritma dan Struktur Data
Revitalia PurbaManajemen Informatika
Politeknik Negeri LampungBandar Lampung, Lampung
revitalap@gmail.com
Sorting adalah proses proses menyusun kembali data yang sebelumnya telah disusun dengan suatu pola tertentu ataupun secara acak, sehingga menjadi tersusun secara teratur menurut aturan tertentu
I. PENGERTIAN SORTING .
Sorting pada pemrograman adalah proses mengurutkan data yang berada dalam suatu tempat penyimpanan, dengan urutan tertentu yaitu
- Urutan naik (ascending) dari nilai terkecil hingga terbesar atau
- Urutan turun (descending) dari nilai terbesar hingga nilai terkecil.
Contoh :
Misal suatu kumpulan DATA berisi 8 elemen :
DATA : 77, 33, 44, 11, 88, 22, 66, 55
Setelah diurutkan :
Ascending : 11 22 33 44 55 66 77 88Descending : 88 77 66 55 44 33 22 11
II. KELEBIHAN DAN KEKURANGAN ARRAY SORTING
Kelebihan dari Array Sorting, yaitu 1. Struktur data paling mudah2. Memori ekonomis, bila semua elemen terisi3. Waktu akses sama kesetiap elemen. Kekurangan Array Sorting , yaitu :1. Boros memori jika banyak elemen yang tidak
digunakan2. Struktur data statis.
III. MACAM-MACAM BENTUK SHORTING
Berikut ini adalah macam-macam betuk shorting , yaitu :1. Bubble Sort2. Selection Sort3. Insertion Sort4. Marge Sort5. Shell Short
IV. BUBLE SORT
Bubble Sort (metode gelembung) adalah metode pengurutan dengan cara melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan.
Kelebihan dan Kekurangan Bubble Sort
- Kelebihan :
1. Metode Bubble Sort merupakan yang paling simple
2. Metode Bubble Sort muda di pahami algoritmanya
- Kelemahan :
Meskipun simpel metode Bubble Sort merupakan metode
pengurutan yang paling tidak efisien.
CONTOH MENCARI DATA MENGGUNAKAN BUBBLE SORT
Data yang ingin di sorting :
10 52 5 7 9 8
CONTOH PEMOGRAMAN BUBLE SORT
for (K = 0 ; K < N-1 ; K++){
for (i = 0 ; i < N-2-K ; i++){
if ( A[i] > A[i+1] ) {
x = A[i];A[i] = A[i+1];A[i+1] = x;}
} }
V. SELECTION SORT
Selection sort merupakan perbaikan dari metode bubble sort dengan mengurangi jumlah perbandingan. Selection sort merupakan metode pengurutan dengan mencari nilai data terkecil dan nilai data terbesar dimulai dari data diposisi 0 hingga diposisi N-1.
Algoritma penyisipan langsung dapat dituliskan sebagai berikut :
1. i ← 12. selama (i < N) kerjakan baris 3 sampai dengan 93. x ← Data[i]4. j ← i – 15. selama (x < Data[j]) kerjakan baris 6 dan 76. Data[j + 1] ← Data[j]7. j ← j – 18. Data[j+1] ← x9. i ← i + 1
CONTOH MENCARI DATA MENGGUNAKAN SELECTION SORT
Data yang ingin di sorting :
10 52 5 7 9 8
Proses 1
0 1 2 3 4 5
10 52 5 7 9 8
Pembanding Posisi
10 < 52 0
10 > 5 (tukar idx) 2
5 < 7 2
5 < 9 2
5 < 8 2
Tukar data ke-0 (10) dengan data ke-2 (5)
Proses 2
0 1 2 3 4 5
5 52 10 7 9 8
Pembanding Posisi
52 > 10 2
10 > 7 (Tukar idx) 3
7 < 9 3
7 < 8 3
Tuker data ke -2 (10) dengan data ke 3 (7).
Proses 3
0 1 2 3 4 5
5 7 10 52 9 8
Pembanding Posisi
10 < 52 0
10 > 9 (Tuker idx) 4
9 > 5 5
Tuker data ke-4(9) dengan data ke-5 (10).
Proses 4
0 1 2 3 4 5
5 7 8 52 9 10
Pembanding Posisi
52 > 9 (Tuker idx) 4
9 > 10 0
Tuker data ke-3 (52) dengan data ke-4 (9).
Proses 5
0 1 2 3 4 5
5 7 8 9 52 10
Pembanding Posisi
52 > 10 (Tuker idx) 5
Tuker data ke-4(52) dengan data ke-5(10).
5 7 8 9 10 52
RUMUS SELECTION SORT
for ( i=0 ; i <= N-2 ; i++)
{
j = i;
for ( k = i+1 ; k <= N-1 ; k++ )
{
if (A[k] > A[j])
{
j = k;
}
}
x = A[i];
A[i] = A[j];
A[j] = x;
}
VI. Selection Sort
Cara pengurutannya yaitu dimulai dari data ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih kecil,maka akan ditempatkan (diinsert) diposisi yang se-harusnya.- Ascending : ketika perbandingan ambil data yang paling kecil. - Descending : ketika perbandingan ambil data yang paling besar.
Algoritma penyisipan biner dapat dituliskan sebagai berikut :1. i ← 12. selama (i < N) kerjakan baris 3 sampai dengan 143. x ← Data[i]4. l ← 05. r ← i – 16. selama (l<=r) kerjakan baris 7 dan 87. m ← (l + r) / 28. jika (x < Data[m]) maka r ← m – 1, jika tidak l ← m
+ 19. j ← i – 110. selama ( j >=l) kerjakan baris 11 dan 1211. Data[j+1] ← Data[j]12. j ← j – 113. Data[l] ← x14. I ← i + 1
CONTOH MENCARI DATA MENGGUNAKAN INSERTION SORT
Data yang ingin di sorting :
10 52 5 7 9 8
RUMUS INSERTION SORT
Void insertSort()
{
int i, j, x;
for (i=1; i<max; i++) {
x = data[i];
j = i – j;
while (x < data[j]) {
data[j+1] = data[j];
j--;
}
data[j+1] = x;
}
}
VII. MERGE SORT
Metode pengurutan merge sort adalah metode pengurutan lanjut, sama dengan metode Quick Sort. Metode ini juga menggunakan konsep devide and conquer yang membagi data S dalam dua kelompok yaitu S1 dan S2 yang tidak beririsan (disjoint). Proses pembagian data dilakukan secara rekursif sampai data tidak dapat dibagi lagi atau dengan kata lain data dalam sub bagian menjadi tunggal. Setelah data tidak dapat dibagi lagi, proses penggabungan (merging) dilakukan antara sub-sub bagian dengan memperhatikan urutan data yang diinginkan (ascending/kecil ke besar atau descending/besar ke kecil).
Algoritma penggabungan dapat dituliskan sebagai berikut :1. i ← 02. j ← 03. J3 ← 04. Kerjakan baris 5 sampai dengan 7 selama (i < J1)
atau (j < J2)5. J3 ← J3 + 16. Jika (T1[i] < T2[j]) maka T3[J3] ← T1[i], i ← i + 7. 1Jika (T1[i] >= T2[j]) maka T3[J3] ← T2[j], j ← j +
18. Jika (i > J1) maka kerjakan baris 9, jika tidak
kerjakan baris 159. i ← j10. Selama (i < J2) kerjakan baris 11 sampai dengan 1311. J3 ← J3 + 112. T3[J3] ← T2[i]13. i ← i + 114. Selesai15. j ← i16. Selama (j < J1) kerjakan baris 17 sampai dengan 1917. J3 ← J3 + 118. T3[J3] ← T1[j]19. j ← j + 1
CONTOH MENCARI DATA MENGGUNAKAN MERGE SORT
Data yang ingin di sorting :
15 12 45 56 13 10
RUMUS MERGE SORT
static void mergeSort(int l,int r)
{
if(l==r) return;
else{
int mid = (l+r)/2;
mergeSort(l, mid);
mergeSort(mid+1,r);
Merging(l,mid+1,r);
}
}
VIII.SHELL SORT
Metode ini disebut juga dengan metode pertambahan menurun (diminishing increment). Metode ini dikembangkan oleh Donald L. Shell pada tahun 1959, sehingga sering disebut dengan Metode Shell Sort. Metode ini mengurutkan data dengan cara membandingkan suatu data dengan data lain yang memiliki jarak tertentu, kemudian dilakukan penukaran bila diperlukan
Algoritma metode Shell dapat dituliskan sebagai berikut :1. Jarak ← N2. Selama (Jarak > 1) kerjakan baris 3 sampai dengan 93. Jarak ← Jarak / 2. Sudah ← false4. Kerjakan baris 4 sampai dengan 8 selama Sudah =
false5. Sudah ← true6. j ← 0
7. Selama (j < N – Jarak) kerjakan baris 8 dan 98. Jika (Data[j] > Data[j + Jarak] maka tukar Data[j],
Data[j + Jarak]. Sudah ← true9. j ← j + 1
Prosedur yang menggunakan metode Shell.
void ShellSort(int N)
{
int Jarak, i, j;
bool Sudah;
Jarak = N;
while(Lompat > 1){
Jarak = Jarak / 2;
Sudah = false;
while(!Sudah){
Sudah = true;
for(j=0; j<N-Jarak; j++){
i = j + Jarak;
if(Data[j] > Data[i]){
61
Tukar(&Data[j], &Data[i]);
Sudah = false;
}
}
}
}
}
DAFTAR PUSTAKA
Kutipan dari beberapa sumber. [1]. Assalah “Sorting pada pemrograman adalah proses mengurutkan data yang berada dalam suatu tempat penyimpanan, dengan urutan tertentu” [2]. MPD “Bubble Sort Diberi nama “Bubble” karena proses pengurutan secara berangsur-angsur bergerak/berpindah ke posisinya yang tepat, seperti gelembung” . [3] Dr. Taufik Fuadi Abidin, M.Tech , Irvanizam Zamanhuri “Metode pengurutan merge sort adalah metode pengurutan lanjut, sama dengan metode Quick Sort. Metode ini juga menggunakan konsep devide and conquer yang membagi data S dalam dua kelompok yaitu S1 dan S2 yang tidak beririsan (disjoint). Proses pembagian data dilakukan secara rekursif sampai data tidak dapat dibagi lagi atau dengan kata lain data dalam sub bagian menjadi tunggal”. [4] Komplikita “Sorting salah satu bagian penting dari struktur data adalah proses pengurutan data-data itu sendiri. Data akan terkadang akan berada dalam bentuk yang tidak berpola ataupun dengan pola tertentu yang tidak kita inginkan, namun dalam penggunaanya, kita akan selalu ingin menggunakan data-data tersebut dalam bentuk yang rapi atau berpola sesuai dengan yang kita inginkan” . [1] Dr. Taufik Fuadi Abidin, M.Tech , Irvanizam Zamanhuri, M.Sc.
Metode Sorting. http://www.informatika.unsyiah.ac.id/tfa/ds /mergesort.pdf. 31 Mei 2015. 19:20.
[2] Komplikita. Sorting Array. http://www.kompikita.net/2013/01/ sorting-array-java.html. 1 Juni 2015. 12:13. .
[3] Asalasah. Algoritma dan Contoh Metode Sorting Insertion Sort. http://asalasah.net/algoritma-dan-contoh-metode-sorting-insertion-sort/. 31 Mei 2015. 21:15.
[4] MDP. Algoritma dan Struktur Data. http://www.mdp.ac.id/ materi/2012-2013-2/sp244/121076/SP244-121076-510-18.pdf. 1 Juni 2015. 11:10.
top related