Sorting (Pengurutan).

Slides:



Advertisements
Presentasi serupa
BAB III – ARRAY STATIS II
Advertisements

Algoritma Sorting Alpro-2.
- PERTEMUAN 11 - SORTING (PENGURUTAN)
STRUKTUR DATA (3) sorting array
ARRAY 1 DIMENSI #10 STIKOM Searching Pengantar Manfaat Inisialisasi
Sorting Algorithms Dr. Anto Satriyo Nugroho, M.Eng
STRUKTUR DATA sorting array
SORTING (PENGURUTAN) Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending.
PENGURUTAN (SORTING).
SORT (pengurutan) M. Ajir Muzakki, S.Si.
STRUKTUR DATA (3) sorting array
SORTING.
Pertemuan – 14 Sorting (Bab 8) Informatics Engineering Department
Sorting Pertemuan ke 14..
Source: Sorting Algorithms source:
BAB III PENGURUTAN DATA (SORTING) Tertia Avini, S. Kom tertiaavini
STRUKTUR DATA (4) Sorting dan Searching Array
Algoritma Sorting Tenia Wahyuningrum.
Pengurutan (Sorting) Diperlukan untuk mempercepat pencaharian suatu target dalam suatu daftar (list). Jenis Pengurutan:  Ascending Pengurutan dilakukan.
Metode Pengurutan (Sorting)
CS1023 Pemrograman Komputer Lecture 20 Array / Tabel [2]
Insertion Sort Dilakukan dengan cara membandingkan data ke-i (di mana i dimulai dari data ke-2 sampai dengan data terakhir) dengan data berikutnya.
KUG1A3 Algoritma& Pemrograman
LANJUTAN DARI SHORTING
Struktur Data Algoritma Sorting
PENGURUTAN (SORTING).
STRUKTUR DATA Chapt 07 : Sorting Oleh : Yuli Praptomo PHS, S.Kom.
Bubble Sort Metode pengurutan gelembung diinspirasikan oleh gelembung sabun yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan.
KUG1C3 Dasar Algoritma & Pemrograman
Pertemuan 10 SORTING.
Algoritma dan Pemrograman Sorting
KUG1A3 Algoritma& Pemrograman
Struktur Data Prio Handoko, S. Kom., M.T.I.
PENGURUTAN (SORTING) Pengurutan adalah proses mengatur sekumpulan objek menurut urutan atau susunan tertentu. Urutan objek tersebut dapat dilakukan secara.
PENGURUTAN (SORTING).
SORTING (Lanjut).
Pengurutan (Sorting).
STRUKTUR DATA (3) sorting array
CS1023 Pemrograman Komputer
Sorting.
Pengurutan pada Array Tim PHKI Modul Dasar Pemrograman
Sistem Berkas – Sesi 12 dan 13
STRUKTUR DATA (3) sorting array
Metode pemecahan masalah
STRUKTUR DATA sorting array
Algoritma dan Pemrograman Sorting
KUG1E3/ Pemrograman Terstruktur 1
Nama : Siti Hajar Unit : B Nim : No.Hp : 0852 – 2000 – 3786.
IT234 Algoritma dan Struktur Data
Algoritma dan Pemrograman Sorting
ARRAY STATIS Sri Nurhayati, MT.
Searching & Sorting Searching Sorting Oleh : Oman Somantri, S.Kom
Sorting.
Sorting (Pengurutan).
Pengurutan (Shorting)
STRUKTUR DATA (3) sorting array
SORTING ARRAY SESI 2.
ALGORITMA PENGURUTAN (SORTING)
ARRAY STATIS Sri Nurhayati, MT.
Pertemuan 4 Sorting (1) jual [Valdo] Lunatik Chubby Stylus.
SORTING (PENGURUTAN).
IT234 Algoritma dan Struktur Data
Sorting Dasar Pemrograman
STRUKTUR DATA (3) sorting array
Struktur Data Oleh: Suhendro
IT234 Algoritma dan Struktur Data
STRUKTUR DATA (3) sorting array
Pengurutan (sorting).
IT234 Algoritma dan Struktur Data
Sorting (Pengurutan).
Transcript presentasi:

Sorting (Pengurutan)

Pengantar Sorting merupakan sebuah proses untuk mengatur item dalam suatu urutan tertentu ( menaik atau menurun ). Misalnya untuk mengurutkan NIM, mengurutkan IPK, mengurutkan nama dsb. Operasi dasar sorting : Membandingkan nilai Untuk membandingkan nilai hanya digunakan operator : =, <, > atau kombinasi diantara operator tersebut untuk membandingkan nilai-nilai yang akan diurutkan. Memindahkan nilai-nilai dalam daftar ke posisi yang sesuai

Contoh-contoh algoritma sorting Bubble Sort Insertion Sort Selection Sort Counting Sort Maximum Sort Shaker Sort Quick Sort Radix Sort Shell Sort Heap Sort Merge Sort Empat algoritma pertama akan dibahas dalam pertemuan kita.

Counting Sort Pengurutan dengan pencacahan adalah pengurutan yang paling sederhana. Jika diketahui bahwa data ( nilai elemen array ) yang akan diurut mempunyai batas tertentu dan merupakan bilangan bulat, misalnya MIN...MAX maka cara paling sederhana untuk mengurut adalah : 1. Sediakan array TabCount[MIN...MAX] yang diinisialisasikan dengan nol dan pada akhir proses TabCount[i] berisi banyaknya data pada tabel asal yang berharga i. 2. Tabel dibentuk kembali dengan menuliskan kembali nilai-nilai yang ada

Algoritma cont…. procedure CountSort(var TabInt:array[1..N] of integer); var i,j,k,Min, Max : integer; TabCount : array[Min..Max] of integer; begin for ( i:=Min to Max ) do begin TabCount[i]:=0; end;

Algoritma cont…. for ( i:=1 to n ) do begin TabCount[TabInt[i]]:=TabCount[TabInt[i]]+1; end; k:=0; for(i:=Min to Max) do if TabCount[i] <> 0 then for(j:=1 to TabCount[i]) do begin k:=k+1; TabInt[k]:=i;

Tracing Algoritma Original : TabInt[1..7] berisi data : 2 3 5 6 5 1 2 Nilai MIN = 1 dan nilai MAX = 6 Maka akan diinisialisasikan array TabCount[1..6] = { 0, 0, 0, 0, 0, 0 } Isi TabCount pada : Pass 1 : { 0, 1, 0, 0, 0, 0 } Pass 2 : { 0, 1, 1, 0, 0, 0 } Pass 3 : { 0, 1, 1, 0, 1, 0 } Pass 4 : { 0, 1, 1, 0, 1, 1 } Pass 5 : { 0, 1, 1, 0, 2, 1 } Pass 6 : { 1, 1, 1, 0, 2, 1 } Pass 7 : { 1, 2, 1, 0, 2, 1 } Sehingga pada saat dituliskan kembali ke TabInt[1..7] = { 1, 2, 2, 3, 5, 5, 6 }

Bubble Sort Idenya adalah : Lakukan pengulangan ( pass ) pada array, tukar elemen yang bersebelahan jika diperlukan ( perbandingan nilainya tidak sesuai ); jika tidak ada pertukaran elemen maka array sudah terurut. Dalam pass pertama, temukan elemen dengan nilai tertinggi ( maksimal ) dalam array dan tukarkan dengan elemen di sebelah kanannya dan seterusnya sampai dengan mencapai posisinya di ujung array sebelah kanan. Kemudian dalam pass kedua, nilai tertinggi kedua dalam array akan ditempatkan dalam posisinya ( di sebelah kiri elemen dengan nilai tertinggi ( maksimal ). Teruskan langkah ketiga sampai semua elemen array terurut.

Algoritma procedure bubbleSort(var a : array[1..size] of integer ); int i,j, tmp; begin for ( i: = size downto 2) do begin for (j := 2 to i) do begin if (a[j-1] > a[j]) then begin tmp = a[j-1]; a[j-1] = a[j]; a[j] = tmp; end; end; {end of procedure}

Tracing Algoritma cont… Array asal : 34 8 64 51 32 21 P = 6 : 34 8 64 51 32 21 j = 2 8 34 64 51 32 21 j = 3 8 34 64 51 32 21 j = 4 8 34 51 64 32 21 j = 5 8 34 51 32 64 21 j = 6 akhir pass 6 : 8 34 51 32 21 64 p = 5: 8 34 51 32 21 64 j = 2 8 34 51 32 21 64 j = 3 8 34 51 32 21 64 j = 4 8 34 32 51 21 64 j = 5 akhir pass 5 : 8 34 32 21 51 64

Tracing Algoritma cont… P = 4: 8 34 32 21 51 64 j = 2 8 34 32 21 51 64 j = 3 8 32 34 21 51 64 j = 4 akhir pass 4 : 8 32 21 34 51 64 P = 3 : 8 32 21 34 51 64 j = 2 8 32 21 34 51 64 j = 3 akhir pass 3 : 8 21 32 34 51 64 P = 2: 8 21 32 34 51 64 j = 2 akhir pass 2 : 8 21 32 34 51 64 j = 2

Selection Sort Mirip dengan bubble sort, namun algoritma ini lebih sedikit usaha untuk menempatkan setiap elemen ke posisinya Idenya : Pertama temukan elemen array terkecil ( minimum ) dan pertukarkan dengan elemen array di posisi ( indeks ) pertama Kemudian temukan elemen array terkecil kedua dan pertukarkan dengan elemen array di posisi ( indeks ) kedua Ulangi langkah-langkah diatas sampai semua array terurut

Algoritma Procedure selectionSort(var a : array[1..size] of integer ); var integer i,j, min, tmp; begin for( i:=1 to size-1) do begin min = i; for (j = i + 1 to size ) do begin if (a[j] < a[min]) then min = j; tmp = a[min]; a[min] = a[i]; a[i] = tmp; end; end; { end of procedure }

Tracing Algoritma Original : 34 8 64 51 32 21 after p = 1 : 8 34 64 51 32 21 after p = 2 : 8 21 64 51 32 34 after p = 3 : 8 21 32 51 64 34 after p = 4 : 8 21 32 34 64 51 after p = 5 : 8 21 32 34 51 64

Insertion Idenya : Perhatikan elemen-elemen array pada setiap saat, penyisipan dilakukan pada tempat yang tepat untuk setiap elemen array dengan menggunakan sequential search ( untuk menjaga elemen-elemen array tetap terurut ). Elemen array yang akan disisipkan ke posisi yang tepat akan memindahkan elemen array yang lebih besar satu posisi ke kanan dan kemudian akan menempati posisi yang ditinggalkan ( pencarian posisi yang tepat akan dilakukan selama masih ada elemen array yang di sebelah kirinya yang mempunyai nilai lebih besar ).

Algoritma procedure insertionSort(var a : array[1..size] of integer ); int i,j,tmp; bagin for(i:=2 to size)do begin tmp:=a[i]; j=i; while ((j>1) and ( tmp < a[j-1])) do begin a[j]:=a[j-1]; j:=j-1; end; a[j]:=tmp

Tracing Algoritma Original : 34 8 64 51 32 21 after p = 1 : 8 34 64 51 32 21 positions moved: 1 after p = 2 : 8 34 64 51 32 21 positions moved: 0 after p = 3 : 8 34 51 64 32 21 positions moved: 1 after p = 4 : 8 32 34 51 64 21 positions moved: 3 after p = 5 : 8 21 32 34 51 64 positions moved: 4