• Tidak ada hasil yang ditemukan

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

N/A
N/A
Protected

Academic year: 2021

Membagikan "SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida"

Copied!
30
0
0

Teks penuh

(1)

Struktur Data – S1 Sistem Informasi

Ld.Farida

(2)

INTRO

Sorting (Pengurutan) diartikan sebagai penyusunan kembali sekumpulan

objek ke dalam urutan tertentu

Tujuan:

Mendapatkan kemudahan dalam pencarian anggota dari suatu

himpunan

Mempercepat dalam mengetahui data terbesar/terkecil

Proses yang terjadi pada pengurutan adalah sebagai berikut:

Perbandingan Data

(3)

MACAM-MACAM METODE PENGURUTAN (SORTING)

11/10/2017

UNIVERSITAS AMIKOM YOGYAKARTA | lilisdfarida@amikom.ac.id 3

Bubble Sort

Selection Sort

Insertion Sort

Shell Sort

Merge Sort

Radix Sort

Quick Sort

Heap Sort

(4)

BUBLLE SORT / GELEMBUNG

Metode ini terinspirasi oleh gelembung sabun yang terdapat di permukaan air

Berat jenis gelembung lebih ringan dibanding berat jenis air, menyebabkan

gelembung sabun akan selalu mengapung

Prinsip pengapungan digunakan untuk pengurutan

Elemen dengan nilai paling kecil “diapungkan”, diangkat ke atas (atau ujung

paling kiri) melalui proses pertukaran

Proses pengapungan dilakukan sebanyak N kali langkah

Pada langkah ke-1, larik[1..N] akan terdiri menjadi dua bagian:

Bagian yang sudah terurut, yaitu L[1]... L[i]

(5)

ATURAN BUBLE SORT

11/10/2017

UNIVERSITAS AMIKOM YOGYAKARTA | lilisdfarida@amikom.ac.id 5

Mengurutkan data dengan cara membandingkan elemen sekarang

dengan elemen berikutnya.

Jika elemen sekarang lebih besar dari elemen berikutnya maka

kedua elemen tersebut ditukar, jika pengurutan ascending.

Jika elemen sekarang lebih kecil dari elemen berikutnya, maka

kedua elemen tersebut ditukar, jika pengurutan descending.

Bubble sort berhenti jika seluruh array telah diperiksa dan tidak ada

pertukaran lagi yang bisa dilakukan

(6)

ALGORITMA BUBBLE SORT

Langkah 1 Mulai elemen K=N, N-1, ...,2 Bandingkan L[k] dengan L[k-1]

Jika L[k] < L[k-1], maka tukarkan L[k] dengan L[k-1]

Pada akhir langkah 1, elemen L[1] berisi harga minimum pertama

Langkah 2 Mulai dari elemen K=N, N-1, ...,3 Bandingkan L[k] dengan L[k-1]

Jika L[k] < L[k-1], maka tukarkan L[k] dengan L[k-1]

Pada akhir langkah 2, elemen L[2] berisi harga minimum kedua Dan larik L[1...2] terurut, sedangkan L[3...N] belum terurut

Langkah 3 Mulai dari elemen k=N, N-1 ...,4 Bandingkan L[k] dengan L[k-1]

Jika L[k] < L[k-1], maka tukarkan L[k] dengan L[k-1]

Pada akhir langkah 3, elemen L[3] berisi harga minimum ketiga Dan larik L[1...3] terurut, sedangkan L[4...N] belum terurut

(7)

ATURAN BUBLE SORT (CON’T)

11/10/2017

UNIVERSITAS AMIKOM YOGYAKARTA | lilisdfarida@amikom.ac.id 7

22 10 15

3

8

2

Diketahui

Keterangan:

• Pengecekan dilakukan pada data

paling akhir, kemudian

dibandingkan dengan data di

depannya

• Jika data di depannya lebih

besar, maka akan ditukar

(8)

Proses kedua, pengecekan data dilakukan dengan data kedua,

karena data pertama sudah pasti paling kecil

(9)

11/10/2017

(10)

for i 1 to N-1 do for i 1 to N-1 do if L[k] > L[k-1] then tukar(L[k],L[k-1]) endif endfor endfor for i 1 to N-1 do for i 1 to N-1 do if L[k] < L[k-1] then tukar(L[k],L[k-1]) endif endfor endfor

DESKRIPSI BUBBLE SORT

(11)

CONTOH

11/10/2017

(12)
(13)

KESIMPULAN BUBBLE SORT

11/10/2017

UNIVERSITAS AMIKOM YOGYAKARTA | lilisdfarida@amikom.ac.id 13

Pengurutan dengan metode bubble sort kurang efisien

Terlalu banyak proses penukaran yang dilakukan pada

setiap langkah

Membutuhkan banyak waktu serta proses lebih lama

Tidak direkomendasikan untuk dipakai.

(14)

SELECTION SORT (MAKSIMUM/MINIMUM)

Metode pengurutan dengan proses menyisipkan elemen larik

Ide dasarnya memilih elemen maksimum/minimum dari larik,

kemudian menempatkan max/min pada awal atau akhir larik (elemen

terujung)

Elemen terujung di “isolasi” dan tidak disertakan pada proses

selanjutnya

Proses selanjutnya untuk elemen larik yang tersisa, memilih max/min

dan melakukan hal yang sama seperti proses di atas

Proses memilih nilai max/min dilakukan pada setiap langkah. Larik

berukuran N, maka jumlah langkah adalah N-1

(15)

ALGORITMA SELECTION SORT

11/10/2017

UNIVERSITAS AMIKOM YOGYAKARTA | lilisdfarida@amikom.ac.id 15

Langkah 1 Tentukan harga maksimum di dalam L1[1..N]

Pertukarkan harga maksimum dengan L[N]

Langkah 2 Tentukan harga maksimum di dalam L1[1..N-1]

Pertukarkan harga maksimum dengan L[N-1]

Langkah 3 Tentukan harga maksimum di dalam L1[1..N-2]

Pertukarkan harga maksimum dengan L[N-2]

Langkah N-1 Tentukan harga maksimum di dalam L1[1..2]

Pertukarkan harga maksimum dengan L[N-2]

(16)

CONTOH SELECTION SORT

Contoh : Tinjau larik dengan N=6 buah elemen dibawah

ini yang belum terurut menjadi diurut naik.

30 14 25 7 10 11

0 1 2 3 4 5

Langkah 1

Cari elemen maksimum di dalam larik L[0..5]  maksimal L[0] = 30 Tukar maks dengan L[N], hasil akhir langkah 1:

(17)

11/10/2017

UNIVERSITAS AMIKOM YOGYAKARTA | lilisdfarida@amikom.ac.id 17

Langkah 2

• Cari elemen max di dalam larik L[0..4]

• Max = L[2] = 25

• Tukar nilai max dengan L[N-1], N=4, sehingga diperoleh:

Langkah 3

• Cari elemen max di dalam larik L[0..3]

• Max = L[1] = 14

• Tukar nilai max dengan L[N-1], N=3, sehingga diperoleh:

11 14 10 7 25 30

0 1 2 3 4 5

11 7 10 14 25 30

(18)

Langkah 4

• Cari elemen max di dalam larik L[0..2]

• Max = L[0] = 0

• Tukar nilai max dengan L[N-1], N=2, sehingga diperoleh:

Langkah 5

• Cari elemen max di dalam larik L[0..1]

• Max = L[0] = 10

• Tukar nilai max dengan L[N-1], N=1, sehingga diperoleh:

7 10 11 14 25 30

0 1 2 3 4 5

10 7 11 14 25 30

(19)

CONTOH

11/10/2017

(20)

Untuk algoritma Pengurutan Minimum

caranya sama persis dengan maksimum

hanya saja yang ditukar adalah nilai yang

(21)

KESIMPULAN

11/10/2017

UNIVERSITAS AMIKOM YOGYAKARTA | lilisdfarida@amikom.ac.id 21

dibandingkan dengan pengurutan gelembung

(bubble sort) pengurutan dengan metode selection

sort (maksimum/minimum) ini memiliki kinerja yang

lebih baik. Operasinya pertukaran hanya sekali

saja dilakukan pada setiap langkah sehingga

waktu pengurutan dapat lebih ditekan. Metode ini

(22)

PENGURUTAN SISIP / INSERTION SORT

Metode pengurutan dengan menyisipkan elemen larik

pada posisi yang tepat

Pencarian posisi yang tepat dilakukan dengan

pencarian beruntun

Selama proses pencarian posisi yang tepat dilakukan

pergeseran larik

(23)

ALGORITMA PENGURUTAN SISIP

11/10/2017

UNIVERSITAS AMIKOM YOGYAKARTA | lilisdfarida@amikom.ac.id 23

• Andaikan L[1] dianggap sudah pada tempatnya

Langkah 2 L[2] harus dicari tempatnya yang tepat pada L[1..2] dengan cara

menggeser elemen L[1] ke kanan bila L[1] lebih besar dari L[2]

Misalkan posisi elemen yang tepat adalah K sisipkan pada L[2] pada K

Langkah 3 L[3] harus dicari tempatnya yang tepat pada L[1..3] dengan cara

menggeser elemen [l1..3] ke kanan bila L[1..3] lebih besar dari L[3] Misalkan posisi elemen yang tepat adalah K sisipkan pada L[3] pada K

Langkah 4 L[4] harus dicari tempatnya yang tepat pada L[1..4] dengan cara

menggeser elemen [l1..4] ke kanan bila L[1..4] lebih besar dari L[4] Misalkan posisi elemen yang tepat adalah K sisipkan pada L[4] pada K

Langkah N-1 L[N] harus dicari tempatnya yang tepat pada L[1..N] dengan cara

menggeser elemen [l1..N] ke kanan bila L[1..N] lebih besar dari L[N] Misalkan posisi elemen yang tepat adalah K sisipkan pada L[N] pada K

(24)

Pencarian posisi metode ini dimulai dari data kedua, sampai

dengan data terakhir, karena data pertama dianggap sudah berada

pada posisi yang tepat. Jika ditemukan data yang lebih kecil, akan

ditempatkan (disisipkan/di insert kan) di posisi yang seharusnya

(25)

11/10/2017

(26)
(27)

11/10/2017

UNIVERSITAS AMIKOM YOGYAKARTA | lilisdfarida@amikom.ac.id 27

#include <iostream>

using namespace std;

main(){

int i,j,k, temp; int L[5]; L[1]=1; L[2]=25; L[3]=10; L[4]=30; L[5]=2; for(k=2;k<=5;k++){

temp=L[k];/* ambil elemen L[k] supaya tidak tertimpa penggeseran*/

(28)

/* Cari Posisi Yang tepat dalam L[1..k-1] sambil menggeser*/ j=k-1; while(temp<=L[j]) { L[j+1]=L[j]; j--; cout<<L[j+1]<<endl; } if((temp >= L[j])|| ( j=1)){

L[j+1]=temp; /*posisi yg tepat untuk L[k] ditemukan*/ }else{ L[j+1]=L[j]; L[j]=temp; } } for(i=1;i<=5;i++){ cout<<L[i]<<" "; }

(29)

KESIMPULAN

11/10/2017

UNIVERSITAS AMIKOM YOGYAKARTA | lilisdfarida@amikom.ac.id 29

Kelemahan metode sisip terletak pada banyaknya

operasi yang diperlukan dalam mencari posisi

yang tepat untuk elemen larik. Untuk larik yang

jumlahnya besar ini tidak praktis. Dari ketiga

metode tersebut, pengurutan maksimum/minimum

memiliki kinerja yang terbaik

.

(30)

Terima Kasih

Referensi

Dokumen terkait

Menurut Sugiyono (2012), sumber data sekunder ini dapat berupa hasil pengolahan lebih lanjut dari data primer yang disajikan dalam bentuk lain atau dari orang lain.

JMLH SAT 1 Penetapan rasio dosen dan mahasiswa sesuai standar ideal Terealisasi rasio dosen dibanding mahasiswa 1 : 20 1:20 Rasio 2 Meningkatnya penyerapan

Disimpulkan bahwa interaksi antara dosis inokulum dan umur mulai digembalakan ternyata mempengaruhi kemampuan pertumbuhan kembali arbila, inokulum rizobium

komunitas global dalam bidang ilmu pengetahuan, (4) peningkatan budaya ilmiah masyarakat Indonesia, dan (5) pelaksanaan dukungan manajemen. 2) Indikator jumlah industri

RITA DESWITA PUTRI, NIM.1730108064, JUDUL SKRIPSI “PERILAKU AGRESIF ANAK USIA 4-6 TAHUN DI DUSUN SELINGKUNG DESA BUKIT GADANG KECAMATAN TALAWI KOTA

Berdasarkan hasil penelitian yang telah dilakukan dapat disimpulkan bahwa komposisi optimum ESI sulfat berbasis piropilit diperoleh dengan perbandingan 49% : 3% : 16% : 32% (b/b)

K endaraan bermotor 3 L angk ah-langk ah yang harus dilakuk an untuk persiapan 4 4 4 4 4 4 4 4 T utup pintu dan jendela T empatkan handuk atau kain basah di ventilasi

Setelah elemen terbesar ditempatkan pada posisi elemen terbawah, maka elemen-elemen tabel yang belum terurut adalah dari elemen ke-1 sampai elemen ke( N-1). Diperinci dengan