Revitalia purba

8
Array Sorting dan Searching Array Tugas Kuliah Algoritma dan Struktur Data Revitalia Purba Manajemen Informatika Politeknik Negeri Lampung Bandar Lampung, Lampung [email protected] 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 88 Descending : 88 77 66 55 44 33 22 11 II. KELEBIHAN DAN KEKURANGAN ARRAY SORTING Kelebihan dari Array Sorting, yaitu 1. Struktur data paling mudah 2. Memori ekonomis, bila semua elemen terisi 3. Waktu akses sama kesetiap elemen. Kekurangan Array Sorting , yaitu : 1. Boros memori jika banyak elemen yang tidak digunakan 2. Struktur data statis. III. MACAM-MACAM BENTUK SHORTING Berikut ini adalah macam-macam betuk shorting , yaitu : 1. Bubble Sort 2. Selection Sort 3. Insertion Sort 4. Marge Sort 5. Shell Short IV. BUBLE SORT Bubble S ort (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

Transcript of Revitalia purba

Page 1: Revitalia purba

Array Sorting dan Searching ArrayTugas Kuliah Algoritma dan Struktur Data

Revitalia PurbaManajemen Informatika

Politeknik Negeri LampungBandar Lampung, Lampung

[email protected]

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

Page 2: Revitalia purba

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

Page 3: Revitalia purba

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

Page 4: Revitalia purba

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

Page 5: Revitalia purba

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

Page 6: Revitalia purba

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.

Page 7: Revitalia purba