• Tidak ada hasil yang ditemukan

Think Different Materi ASD 2014 pertemuan_22

N/A
N/A
Protected

Academic year: 2017

Membagikan "Think Different Materi ASD 2014 pertemuan_22"

Copied!
34
0
0

Teks penuh

(1)
(2)

PENGERTIAN

Pengurutan data dalam struktur data sangat

penting untuk data yang bertipe data numerik ataupun karakter sehingga digunakan secara luas dalam aplikasi.

Pengurutan dapat dilakukan secara

ascending (urut naik) dan descending (urut turun)

Pengurutan (Sorting) adalah proses

(3)

Pengertian

Mengatur elemen berdasar urutan tertentu.

Beberapa algoritma sorting telah dibuat karena

proses tersebut sangat mendasar dan sering digunakan.

Pengurutan data (sorting) didefinisikan sebagai

suatu proses untuk menyusun kembali himpunan obyek menggunakan aturan tertentu.

Menurut Microsoft Book-shelf, definisi algoritma

(4)

DUA MACAM URUTAN

Ada dua macam urutan yang biasa

digunakan dalam proses

pengurutan yaitu:

Urut naik (ascending) yaitu dari data

yang mempunyai nilai paling kecil sampai paling besar

Urut turun (descending) yaitu data

(5)

CONTOH

Data bilangan 5, 2, 6 dan 4

Dapat diurutkan naik menjadi

2, 4, 5, 6

atau

(6)

MANFAAT

Keuntungan dari data yang terurut antara lain :

Data mudah dicari (misalnya dalam buku telepon atau kamus bahasa), mudah untuk

dibetulkan, dihapus, disisipi atau digabungkan. • Mudah melakukan pengecekan apakah ada

data yang hilang.

Melakukan kompilasi program komputer jika tabel-tabel simbol harus dibentuk.

(7)

Faktor Yang Berpengaruh

Pada Efektifitas Sorting

Banyak data yang diurutkan.

Kapasitas pengingat apakah mampu

menyimpan semua data yang kita miliki.

Tempat penyimpanan data, misalnya

(8)

BUBBLE SORT

Metode sorting termudah

Diberi nama “Bubble” karena proses

pengurutan secara berangsur-angsur bergerak/berpindah ke posisinya yang tepat, seperti gelembung yang keluar dari sebuah gelas bersoda.

Bubble Sort mengurutkan data dengan

cara membandingkan elemen

(9)

BUBBLE SORT

Pengurutan Ascending :Jika elemen

sekarang lebih besar dari elemen berikutnya maka kedua elemen

tersebut ditukar.

Pengurutan Descending: Jika elemen

sekarang lebih kecil dari elemen berikutnya, maka kedua elemen tersebut ditukar.

Algoritma ini seolah-olah menggeser

satu per satu elemen dari kanan ke kiri atau kiri ke kanan, tergantung jenis

(10)

BUBBLE SORT

Ketika satu proses telah selesai, maka

bubble sort akan mengulangi proses, demikian seterusnya sampai dengan iterasi sebanyak n-1.

Kapan berhentinya? Bubble sort

berhenti jika seluruh array telah

diperiksa dan tidak ada pertukaran lagi yang bisa dilakukan, serta tercapai

(11)
(12)
(13)
(14)

INSERTION SORT

Mirip dengan cara orang mengurutkan kartu,

selembar demi selembar kartu diambil dan

disisipkan (insert) ke tempat yang seharusnya.

Pengurutan dimulai dari data ke-2 sampai dengan

data terakhir, jika ditemukan data yang lebih kecil, maka akan ditempatkan (diinsert) diposisi yang seharusnya.

Pada penyisipan elemen, maka elemen-elemen lain

(15)

INSERTION SORT

Salah satu algoritma paling sederhana

Cukup intuitif dan prosesnya mirip dengan

mengurutkan kartu

Tujuan: mengurutkan kartu dari paling kecil hingga

terbesar

Terdapat: kartu, meja 1, meja 2

Awal: Kartu acak diletakkan pada meja 1

Teknik: Kartu berurutan diletakkan pada meja 2Ambil kartu pertama dari meja 1, bandingkan

dengan tabel 2 dan tempatkan sesuai posisi urutan di meja 2

(16)
(17)
(18)

INSERTION SORT: ALGORITMA

Bagi elemen data yang akan diurutkan

menjadi dua

Bagian yang belum diurutkanBagian yang telah terurutkan

Ulangi langkah tersebut hingga tidak ada

elemen tersisa dalam array

Elemen pertama dipilih dari bagian yang

belum diurutkan

Tempatkan elemen terpilih sesuai urutan

(19)

SELECTION SORT

Algoritma sorting yang lainnya

Intuitif dan mudah diimplementasikan

Juga mirip dengan cara lain dalam pengurutan kartuTujuan: mengurutkan kartu secara ascendingDiberikan: kartu, meja

– Awal: Kartu disebar secara acak pada tabel

Periksa nilai, kemudian pilih kartu dengan nilai terendahTukarkan posisi kartu ini dengan kartu pertama pada mejaCari kartu dengan nilai terendah dari sisa kartu yang adaTukarkan kartu terpilih dengan kartu pada posisi kedua

Ulangi proses hingga kartu kedua sebelum terakhir pada meja

(20)

SELECTION SORT

Merupakan kombinasi antara sorting dan searchingUntuk setiap proses, akan dicari elemen-elemen

yang belum diurutkan yang memiliki nilai terkecil atau terbesar akan dipertukarkan ke posisi yang tepat di dalam array.

Misalnya untuk putaran pertama, akan dicari data

dengan nilai terkecil dan data ini akan ditempatkan di indeks terkecil (data[0]), pada putaran kedua

akan dicari data kedua terkecil, dan akan ditempatkan di indeks kedua (data[1]).

Selama proses, pembandingan dan pengubahan

hanya dilakukan pada indeks pembanding saja, pertukaran data secara fisik terjadi pada akhir

(21)
(22)

SELECTION SORT:

ALGORITMA

Pilih elemen dengan nilai terendahTukarkan elemen terpilih dengan

elemen pada posisi ke - ii dimulai dari 1 hingga n

Dimana n adalah total elemen yang ada

(23)

MERGE SORT

Merge sort merupakan algoritma

pengurutan dalam ilmu komputer yang dirancang untuk memenuhi kebutuhan pengurutan atas suatu rangkaian data yang tidak memungkinkan untuk

ditampung dalam memori komputer karena jumlahnya yang terlalu besar.

Algoritma ini ditemukan oleh John von

(24)

ALGORITMA MERGE SORT

Prinsip utama yang diimplementasikan

pada algoritma merge-sort seringkali disebut sebagai pecah-belah dan

taklukkan (bahasa Inggris: divide and conquer).

Cara kerja algoritma merge sort adalah

membagi larik data yang diberikan menjadi dua bagian yang lebih kecil. Kedua larik yang baru tersebut

(25)

ALGORITMA MERGE SORT

Setelah kedua buah list tersusun,

maka akan dibentuk larik baru sebagai hasil penggabungan dari dua buah

(26)

CONTOH PENERAPAN

Data sumber yang akan diurutkan {3, 9, 4, 1, 5, 2} adalah sebagai berikut:

Larik tersebut dibagi menjadi dua bagian, {3, 9, 4} dan {1, 5, 2}

Kedua larik kemudian diurutkan secara terpisah sehingga menjadi {3, 4, 9} dan {1, 2, 5}

Sebuah larik baru dibentuk yang sebagai

penggabungan dari kedua larik tersebut {1},

sementara nilai-nilai dalam masing larik {3, 4, 9}

(27)

langkah berikutnya adalah

penggabungan dari masing-masing larik ke dalam larik baru yang dibuat sebelumnya.

{1, 2} <-> {3, 4, 9} dan {5}{1, 2, 3} <-> {4, 9} dan {5}{1, 2, 3, 4} <-> {9} dan {5}

{1, 2, 3, 4, 5} <-> {9} dan {null}

(28)

QUICK SORT

Metode quick sort adalah metode

pengurutan yang menggunakan partisi.

Pada metode ini, data dibagi menjadi

dua bagian, yaitu data disebelah kiri partisi selalu lebih kecil dari data

disebelah kanan.

Proses pengurutan dilakukan pada

(29)

ALGORITMA QUICKSORT

1. Tentukan unsur partisi yang diperlukan (gunakan data tengah sebagai unsur partisi).

2. Partisi data dalam dua bagian yang dipisahkan oleh unsur partisi.

3. Secara rekursif sort terhadap kedua bagian data diatas dengan dengan

(30)

CONTOH

Diberikan data berikut :

44 - 55 - 12 - 42 - 94 - 6 - 18 - 67

Unsur partisi yang digunakan adalah

42 yang merupakan data tengah pada deretan data tersebut. Dengan

menggunakan prosedur partisi urutan data menjadi:

(31)

Data 18, 6, 12 lebih kecil dari 42 dan

data 94, 55, 44, 67 lebih besar dari 42.

Data kiri: 18 6 12

Data kanan: 42 94 55 44 67

Untuk data kiri dilakukan partisi lagi,

unsur partisinya adalah 6.

Sub data kiri: tidak ada karena tidak

(32)

Sub data kanan: 6 12 18

Untuk sub data kanan dilakukan

partisi lagi, unsur partisinya adalah 12.

Sub data kiri: 6

Sub data kanan: 12 18

Proses rekursif selesai dan data telah

(33)

Proses partisi untuk data kanan.

Data di sebelah kanan dipartisi lagi,

dengan unsur partisinya adalah 55.

Sub data kiri: 44 42

Sub data kanan: 55 94 67

Untuk sub data kiri dilakukan partisi lagi,

dengan unsur partisinya adalah 44.

Sub data kiri: 42

(34)

Untuk sub data kanan dilakukan partisi lagi, dengan

unsur partisinya adalah 94.

Sub data kiri: 67 55Sub data kanan: 94

Selanjutnya, dilakukan partisi lagi, dengan unsur

partisinya adalah 67.

Sub data kiri: 55Sub data kanan: 67

Proses rekursif untuk tabel kanan selesai.Data setelah pengurutan menjadi:

Referensi

Dokumen terkait

Algoritma dan Struktur Data. Indriati

1.Menentukan apakah suatu bilangan termasuk bilangan prima atau bukan 2.Menampilkan 10 bilangan prima.

Atribut ini menunjukan bahwa fungsi atau method bisa diakses oleh kelas lain dalam satu paket dan hanya kelas lain yang merupakan subclass nya pada paket yang berbeda. •

termasuk operasi yang dapat dilakukan pada data

hapus adalah pointer bantu yang akan mencari node yang dimaksud

node downward, swapping with its larger child until the new node reaches an acceptable location.. Removing the Top of

node yang didelete memiliki 1 anak berwarna merah maka ganti warna anak tersebut menjadi hitam. • Jika proses delete tersebut

node yang didelete memiliki 1 anak berwarna merah maka ganti warna anak tersebut menjadi hitam. • Jika proses delete tersebut