• 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

Hasil penelitian: bahwa (1) faktor-faktor yang menjadi dasar perjanjian Paroan (bagi hasil Pemeliharaan kerbau) Menurut Hukum Adat Lembak di Kecamatan Talang Empat

%embuatan cream cheese  pada praktikum teknologi pengolahan susu  pembuatan cream cheese pada praktikum mendapatkan hasil yang gagal atau tidak berhasil&#34; Cream cheese yang

Sistem pemeliharaan secara intensif ini dapat memperbaiki pertambahan bobot badan harian (PBBH) karena pemberian pakan dasar dan pakan tambahan cukup sesuai dengan kebutuhan

Oleh karena itu, perlunya Pusat Seni Musik Jazz, dimana wadah berkumpulnya komunitas musik jazz di Surabaya agar peminat musik ini makin banyak serta komunitas-komunitas

•• Sel lemak dalam tubuh (sel adipose) yang ada di pinggang,pinggul Sel lemak dalam tubuh (sel adipose) yang ada di pinggang,pinggul atau tempat lain mensekresi leptin ke dalam

Oleh karena itu tujuan penelitian adalah untuk menguji dan menganalisis faktor-faktor yang meliputi kesadaran membayar pajak, pengetahuan dan pemahaman peraturan

Maka dari itu, penelitian ini bertujuan untuk melihat apakah terpaan berita mengenai pandemik COVID-19 dan umur mempengaruhi perubahan perilaku masyarakat Kota Semarang

Dengan mengingat nilai sinus, cosinus dan tangen dari tiap sudut tersebut tentu akan sangat membantu kita dalam melakukan perhitungan.. Misalkan seorang tukang