• Tidak ada hasil yang ditemukan

Materi Kuliah : Struktur Data & Algoritma

N/A
N/A
Protected

Academic year: 2022

Membagikan "Materi Kuliah : Struktur Data & Algoritma"

Copied!
32
0
0

Teks penuh

(1)

Materi Kuliah : Struktur Data & Algoritma

Fakultas Teknik UPI – Y.A.I

# 05

(2)

PENGERTIAN SORTING

Pengurutan data dalam struktur data sangat penting untuk data yang beripe data numerik ataupun karakter.

Pengurutan (Sorting) adalah proses menyusun kembali data yang sebelumnya telah disusun dengan suatu pola tertentu, sehingga tersusun secara teratur menurut aturan tertentu.

Pengurutan dapat dilakukan secara Ascending (urut naik) dan Descending (urut turun)

Contoh:

Data Acak : 5 6 8 1 3 25 10

Ascending : 1 3 5 6 8 10 25

Descending : 25 10 8 6 5 3 1

(3)

METODE SORTING

Pengurutan berdasarkan perbandingan (Comparison-based sorting)

Bubble sort, Exchange sort

Pengurutan berdasarkan prioritas (Priority Queue sorting method)

Selection sort, Heap sort (menggunakan tree)

Pengurutan berdasarkan penyisipan dan penjagaan terurut (Insert and keep sorted method)

Insertion sort, Tree sort

Pengurutan berdasarkan pembagian dan penguasaan (Devide and Conquer method)

Quick sort, Merge sort

Pengurutan berkurang menurun (Diminishing increment sort method)

Shell sort (pengembangan insertion)

Materi Kuliah Struktur Data & Algoritma - SORTING 3

(4)

ALGORITMA PERTUKARAN DATA

Pertukaran merupakan bagian dari proses pengurutan

Algoritma pertukaran sbb :

1. Salin nilai variabel_1 ke variabel_3

2. Salin nilai variabel_2 ke variabel_1

3. Salin nilai variabel_3 ke variabel_2

Tukar (A,B)

Temp  A

atau

A  B

B  Temp

Temp  B B  A

A  Temp

(5)

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 sekarang dengan elemen berikutnya.

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.

Materi Kuliah Struktur Data & Algoritma - SORTING 5

(6)

BUBBLE SORT

Algoritma ini seolah-olah menggeser satu per satu elemen dari kanan ke kiri atau kiri ke kanan, tergantung jenis pengurutannya, ascending atau descending.

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 perurutan yang telah diinginkan.

“The bubble sort is an easy algorithm to program, but it is slower than many other sorts”

(7)

BUBBLE SORT

Ilustrasi Bubble Sort, jika diberikan data acak sbb :

22 10 15 3 8 2, akan diurutkan secara Ascending

Iterasi 1 :

Mulai dari elemen terakhir, bandingkan 2 dengan 8, 2 < 8 maka 2 bertukar dengan 8. Perbandingkan ini terus dilakukan sampai elemen pertama

Materi Kuliah Struktur Data & Algoritma - SORTING 7

(8)

BUBBLE SORT

Iterasi 2 :

Mulai dari elemen terakhir, bandingkan 8 dengan 3, 8 > 3 maka tidak ada pertukaran. Kemudian bandingkan 3 dengan 15. Perbandingkan ini terus dilakukan sampai elemen kedua

(9)

BUBBLE SORT

Iterasi 3 :

Mulai dari elemen terakhir, bandingkan 8 dengan 15, 8 < 15 maka tukar 8 dengan 15. Kemudian bandingkan 8 dengan 10. Perbandingkan ini terus dilakukan

sampai elemen ketiga

Materi Kuliah Struktur Data & Algoritma - SORTING 9

(10)

BUBBLE SORT

Iterasi 4 :

Mulai dari elemen terakhir, bandingkan 15 dengan 10, 15 > 10 maka tidak ada pertukaran. Kemudian bandingkan 10 dengan 22. Perbandingkan ini terus

dilakukan sampai elemen keempat

(11)

BUBBLE SORT

Iterasi 5 :

Mulai dari elemen terakhir, bandingkan 15 dengan 22, 15 < 22 maka tukarkan 15 dengan 22.

Materi Kuliah Struktur Data & Algoritma - SORTING 11

(12)

BUBBLE SORT

Jumlah data 6 jumlah iterasi 5

Hasil sorting : 2 3 8 10 15 22

0 1 2 3 4 5

Data Acak : 22 10 15 3 8 2

0 1 2 3 4 5

Hasil Iterasi - 1 : 2 22 10 15 3 8

0 1 2 3 4 5

Hasil Iterasi - 2 : 2 3 22 10 15 8

0 1 2 3 4 5

Hasil Iterasi - 3 : 2 3 8 22 10 15

0 1 2 3 4 5

Hasil Iterasi - 4 : 2 3 8 10 22 15

0 1 2 3 4 5

Hasil Iterasi - 5 : 2 3 8 10 15 22

(13)

BUBBLE SORT

Algoritma Bubble Sort secara Ascending :

Materi Kuliah Struktur Data & Algoritma - SORTING 13

(14)

SELECTION SORT

Merupakan kombinasi antara sorting dan searching

Untuk 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 jika diurutkan secara Ascending, 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 proses.

(15)

SELECTION SORT

Data Awal : 32 75 69 58 21 40 (diurutkan Ascending)

Iterasi – 1 → cari posisi nilai terkecil dari elemen ke-0 s.d ke-5 lalu tukarkan elemen ke-0 dgn elemen terkecil tsb

Hasil iterasi-1 : 21 75 69 58 32 40

Materi Kuliah Struktur Data & Algoritma - SORTING 15

(16)

SELECTION SORT

Hasil iterasi-1 : 21 75 69 58 32 40

Iterasi – 2 → cari posisi nilai terkecil dari elemen ke-1 s.d ke-5 lalu tukarkan elemen ke-1 dgn elemen terkecil tsb

Hasil iterasi-2 : 21 32 69 58 75 40

(17)

SELECTION SORT

Hasil iterasi-2 : 21 32 69 58 75 40

Iterasi – 3 → cari posisi nilai terkecil dari elemen ke-2 s.d ke-5 lalu tukarkan elemen ke-2 dgn elemen terkecil tsb

Hasil iterasi-3 : 21 32 40 58 75 69

Materi Kuliah Struktur Data & Algoritma - SORTING 17

(18)

SELECTION SORT

Hasil iterasi-3 : 21 32 40 58 75 69

Iterasi – 4 → cari posisi nilai terkecil dari elemen ke-3 s.d ke-5 lalu tukarkan elemen ke-3 dgn elemen terkecil tsb

Hasil iterasi-4 : 21 32 40 58 75 69

(19)

SELECTION SORT

Hasil iterasi-4 : 21 32 40 58 75 69

Iterasi – 5 → cari posisi nilai terkecil dari elemen ke-4 s.d ke-5 lalu tukarkan elemen ke-4 dgn elemen terkecil tsb

Hasil iterasi-5 : 21 32 40 58 69 75

Materi Kuliah Struktur Data & Algoritma - SORTING 19

(20)

SELECTION SORT

Jumlah data 6 jumlah iterasi 5

Hasil sorting : 21 32 40 58 69 75

0 1 2 3 4 5

Data Acak : 32 75 69 58 21 40

0 1 2 3 4 5

Hasil Iterasi - 1 : 21 75 69 58 32 40

0 1 2 3 4 5

Hasil Iterasi - 2 : 21 32 69 58 75 40

0 1 2 3 4 5

Hasil Iterasi - 3 : 21 32 40 58 75 69

0 1 2 3 4 5

Hasil Iterasi - 4 : 21 32 40 58 75 69

0 1 2 3 4 5

Hasil Iterasi - 5 : 21 32 40 58 69 75

(21)

SELECTION SORT

Algoritma Selection Sort secara Ascending

Materi Kuliah Struktur Data & Algoritma - SORTING 21

(22)

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 akan bergeser ke belakang

(23)

INSERTION SORT

Data Awal : 22 10 15 3 8 2 (Diurutkan Ascending)

Iterasi – 1 → Elemen ke-1 dianggap sebagai kartu yang masuk. Urutkan elemen ke-0 s.d ke-1

Hasil iterasi-1 : 10 22 15 3 8 2

Materi Kuliah Struktur Data & Algoritma - SORTING 23

(24)

INSERTION SORT

Hasil Iterasi-1 : 10 22 15 3 8 2

Iterasi – 2 → Elemen ke-2 dianggap sebagai kartu yang masuk.

Urutkan elemen ke-0 s.d ke-2

Hasil iterasi-2 : 10 15 2

(25)

INSERTION SORT

Hasil Iterasi-2 : 10 15 22 3 8 2

Iterasi – 3 → Elemen ke-3 dianggap sebagai kartu yang masuk.

Urutkan elemen ke-0 s.d ke-3

Hasil iterasi-3 : 3 10 15 22 8 2

Materi Kuliah Struktur Data & Algoritma - SORTING 25

(26)

INSERTION SORT

Hasil Iterasi-3 : 3 10 15 22 8 2

Iterasi – 4 → Elemen ke-4 dianggap sebagai kartu yang masuk.

Urutkan elemen ke-0 s.d ke-4

Hasil iterasi-4 : 3 8 10 15 22 2

(27)

INSERTION SORT

Hasil Iterasi-4 : 3 8 10 15 22 2

Iterasi – 5 → Elemen ke-5 dianggap sebagai kartu yang masuk.

Urutkan elemen ke-0 s.d ke-5

Hasil iterasi-5 : 2 3 8 10 15 22

Materi Kuliah Struktur Data & Algoritma - SORTING 27

(28)

INSERTION SORT

Hasil Iterasi-4 : 3 8 10 15 22 2

Iterasi – 5 → Elemen ke-5 dianggap sebagai kartu yang masuk.

Urutkan elemen ke-0 s.d ke-5

Hasil iterasi-5 : 2 3 8 10 15 22

(29)

INSERTION SORT

Jumlah data 6 jumlah iterasi 5

Hasil sorting : 2 3 8 10 15 22

Materi Kuliah Struktur Data & Algoritma - SORTING 29

0 1 2 3 4 5

Data Acak : 22 10 15 3 8 2

0 1 2 3 4 5

Hasil Iterasi - 1 : 10 22 15 3 8 2

0 1 2 3 4 5

Hasil Iterasi - 2 : 10 15 22 3 8 2

0 1 2 3 4 5

Hasil Iterasi - 3 : 3 10 15 22 8 2

0 1 2 3 4 5

Hasil Iterasi - 4 : 3 8 10 15 22 2

0 1 2 3 4 5

Hasil Iterasi - 5 : 2 3 8 10 15 22

(30)

INSERTION SORT

Algoritma Insertion Sort secara Ascending

(31)

LATIHAN #1

Diberikan data acak sebanyak 9 buah sbb :

Tuliskan hasil masing-masing iterasi yang terjadi, jika data tsb diurutkan menggunakan metode / algoritma :

1. Bubble Sort secara Ascending

2. Bubble Sort secara Descending

3. Selection Sort secara Ascending

4. Selection Sort secara Descending

5. Insertion Sort secara Ascending

6. Insertion Sort secara Descending

Materi Kuliah Struktur Data & Algoritma - SORTING 31

0 1 2 3 4 5 6 7 8

Data Acak : 5 4 9 3 8 2 1 6 7

(32)

LATIHAN #2

Tuliskan algoritma pengurutan :

1. Bubble Sort secara Descending

2. Selection Sort secara Descending

3. Insertion Sort secara Descending

Referensi

Dokumen terkait

Semua data dibandingkan terhadap data pertama, jika data pertama lebih besar dari data kedua maka kedua data ditukar. Pada iterasi pertama data paling kecil ada di urutan

Interpolation search merupakan salah satu metode pencarian yang dapat digunakan. Seperti pada binary search, data yang harus diurutkan terlebih dahulu, sebelum dapat

Array adalah suatu tipe data terstruktur yang berupa sejumlah data sejenis (bertipe data sama) yang jumlahnya tetap dan diberi suatu nama tertentu.. Array dapat berupa array 1

 Kedua kemungkinan pertama (1, 2) merupakan permasalahan yang sama tapi dengan input lebih kecil maka dapat dihitung secara rekursif dengan input baru?. Kemungkinan 1

Langkah ketiga adalah mencari data terkecil ketiga dari seluruh data kecuali data pertama dan kedua, dan kemudian ditempatkan pada posisi urutan ketiga.. Demikian secara

Pengurutan dimulai dari data ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih kecil, maka akan ditempatkan (di-insert) diposisi

Misalnya ada N elemen data yang akan disimpan di dalam larik, maka dari NMAX elemen larik yang efektif terpakai untuk menyimpan ada hanya N elemen.. N disebut indeks efektif

Contoh dengan menggunakan operasional LinkList java kita bisa memasukkan data pada indeks yang terkecil dengan menggunakan operasi addFirst ataupun pula pada