Anda di halaman 1dari 61

SORTING

Achmad Jaka D. Putra, S.Kom


19960515 202321 1 007
SMAN 5 Mataram © 2023
Tentang Sorting
Pengurutan (Sorting) adalah proses menempatkan kumpulan
data atau elemen dalam aturan tertentu.

Terdapat dua aturan yang digunakan:


• Aturan Ascending (ASC), yaitu aturan untuk mengurutkan elemen dari
elemen terkecil sampai terbesar. Contohnya dari {2, 1, 9, 0} menjadi {0,
1, 2, 9};

• Aturan Descending (DSC), yaitu aturan untuk mengurutkan elemen dari


elemen terbesar sampai terkecil. Contohnya dari {2, 1, 9, 0} menjadi {9,
2, 1, 0};
A. ALGORITMA BUBBLE
SORT
Pengenalan Bubble Sort
Bubble Sort adalah algoritma pengurutan paling sederhana dan paling
mudah. Prosesnya yakni dengan cara menukarkan data di sebelahnya
secara terus menerus hingga dalam suatu iterasi tertentu tidak ada lagi
perubahan atau pertukaran.

Pada Slide berikutnya, kita akan mencoba mengurutkan angka di bawah ini
menggunakan Algoritma Bubble Sort. Berikut angkanya:
30 10 80 60 50 70 20 90 40
Ilustrasi Bubble Sort (ASC)
Proses 1 / Sub Proses 1
Index 0 1 2 3 4 5 6 7 8

30 10 80 60 50 70 20 90 40

Garis bawah
Apakah menandakan
30 lebih kecil dari pada 10?
kedua angka sedang
Tidak (False), maka tukar
dibandingkan. posisi.
Ilustrasi Bubble Sort (ASC)
Proses 1 / Sub Proses 2
Index 0 1 2 3 4 5 6 7 8

10 30 80 60 50 70 20 90 40

Apakah 30 lebih kecil dari pada 80?


Benar (True), maka jangan tukar posisi.
Ilustrasi Bubble Sort (ASC)
Proses 1 / Sub Proses 3
Index 0 1 2 3 4 5 6 7 8

10 30 80 60 50 70 20 90 40

Apakah 80 lebih kecil dari pada 60?


Tidak (False), maka tukar posisi.
Ilustrasi Bubble Sort (ASC)
Proses 1 / Sub Proses 4
Index 0 1 2 3 4 5 6 7 8

10 30 60 80 50 70 20 90 40

Apakah 80 lebih kecil dari pada 50?


Tidak (False), maka tukar posisi.
Ilustrasi Bubble Sort (ASC)
Proses 1 / Sub Proses 5
Index 0 1 2 3 4 5 6 7 8

10 30 60 50 80 70 20 90 40

Apakah 80 lebih kecil dari pada 70?


Tidak (False), maka tukar posisi.
Ilustrasi Bubble Sort (ASC)
Proses 1 / Sub Proses 6
Index 0 1 2 3 4 5 6 7 8

10 30 60 50 70 80 20 90 40

Apakah 80 lebih kecil dari pada 20?


Tidak (False), maka tukar posisi.
Ilustrasi Bubble Sort (ASC)
Proses 1 / Sub Proses 7
Index 0 1 2 3 4 5 6 7 8

10 30 60 50 70 20 80 90 40

Apakah 80 lebih kecil dari pada 90?


Benar (True), maka jangan tukar posisi.
Ilustrasi Bubble Sort (ASC)
Proses 1 / Sub Proses 8
Index 0 1 2 3 4 5 6 7 8

10 30 60 50 70 20 80 90 40

Apakah 90 lebih kecil dari pada 40?


Tidak (False), maka tukar posisi.
Ilustrasi Bubble Sort (ASC)
Hasil Proses 1
Index 0 1 2 3 4 5 6 7 8

10 30 60 50 70 20 80 40 90

Apakah angka dari Hasil Proses 1 sudah terurut?


Tidak (False), maka lakukan Proses 2.
SEKARANG GILIRANMU!
Lakukan Proses ke 2, ke 3, dan seterusnya sampai angka tersebut terurut!
Evaluasi/Jawablah pertanyaan di bawah ini
1. Berapa banyak angka yang diurutkan?
2. Berapa nilai indeks yang paling besar?
3. Apakah jawaban nomor 2 sama dengan jawaban nomor 1?
4. Berapakah banyak Sub Proses yang terjadi setiap 1 Proses?
5. Apakah jawaban nomor 2 sama dengan jawaban nomor 4?
6. Berapakah banyak Proses yang terjadi?
7. Berapakah banyak Sub Proses yang terjadi pada seluruh Proses?
8. Apakah banyaknya Sub Proses pada masing-masing Proses sama?
9. Berapakah kira-kira Proses yang paling banyak terjadi?
10. Berapakah kira-kira Sub Proses yang paling banyak terjadi?
Evaluasi/Jawaban
1. Sembilan
2. Delapan
3. Tidak Sama
4. Delapan
5. Sama
6. Lima
7. Empat Puluh
8. Sama
9. Dibahas di Slide berikutnya
10. Dibahas di Slide berikutnya
Catatan
Jika banyaknya angka yang akan diurutkan sebanyak N:
1. Nilai indeksnya adalah M=N-1.
2. Banyak Proses yang paling sedikit adalah: 1.
3. Banyak Proses yang paling banyak adalah: M.
4. Banyak Sub Proses yang paling sedikit adalah: M.
5. Banyaknya Sub Proses yang paling banyak adalah: M2.
Catatan
Contoh:
30 10 80 60 50 70 20 90 40

•N=9
• M = N-1 = 9-1 = 8
• Proses Paling Sedikit, 1.
• Proses Paling Banyak, M = 8.
• Sub Proses Paling Sedikit, M = 8.
• Sub Proses Paling Banyak, M2 = 82 = 64.
B. ALGORITMA SELECTION
SORT
Pengenalan Selection Sort
Selection Sort adalah algoritma pengurutan dengan cara memilih elemen
yang paling terbaik berdasarkan aturan yang diminta, kemudian ditukar
dengan posisi elemen yang menjadi pembandingnya hingga proses
pengurutan berakhir.

Pada Slide berikutnya, kita akan mencoba mengurutkan angka di bawah ini
menggunakan Algoritma Selection Sort. Berikut angkanya:
30 10 80 60 50 70 20 90 40
Ilustrasi Selection Sort (ASC)
Proses 1 / Sub Proses 1
Index 0 1 2 3 4 5 6 7 8

30 10 80 60 50 70 20 90 40

Apakah 30 lebih kecil dari pada 10?


Garis Bawah adalah
Tanda kotak
Tidak
disebut (False),
sebagai makaangka
SELECT
yang dipindahkan ke 10.
dibandingkan
SELECT.
dengan SELECT.
Ilustrasi Selection Sort (ASC)
Proses 1 / Sub Proses 2
Index 0 1 2 3 4 5 6 7 8

30 10 80 60 50 70 20 90 40

Apakah
Warna Hijau 10 lebih kecil dari pada 80?
menunjukkan
Benar
POSITION (True), maka jangan pindahkan
yang SELECT.
akan diganti oleh
SELECT.
Ilustrasi Selection Sort (ASC)
Proses 1 / Sub Proses 3
Index 0 1 2 3 4 5 6 7 8

30 10 80 60 50 70 20 90 40

Apakah 10 lebih kecil dari pada 60?


Benar (True), maka jangan pindahkan SELECT.
Ilustrasi Selection Sort (ASC)
Proses 1 / Sub Proses 4
Index 0 1 2 3 4 5 6 7 8

30 10 80 60 50 70 20 90 40

Apakah 10 lebih kecil dari pada 50?


Benar (True), maka jangan pindahkan SELECT.
Ilustrasi Selection Sort (ASC)
Proses 1 / Sub Proses 5
Index 0 1 2 3 4 5 6 7 8

30 10 80 60 50 70 20 90 40

Apakah 10 lebih kecil dari pada 70?


Benar (True), maka jangan pindahkan SELECT.
Ilustrasi Selection Sort (ASC)
Proses 1 / Sub Proses 6
Index 0 1 2 3 4 5 6 7 8

30 10 80 60 50 70 20 90 40

Apakah 10 lebih kecil dari pada 20?


Benar (True), maka jangan pindahkan SELECT.
Ilustrasi Selection Sort (ASC)
Proses 1 / Sub Proses 7
Index 0 1 2 3 4 5 6 7 8

30 10 80 60 50 70 20 90 40

Apakah 10 lebih kecil dari pada 90?


Benar (True), maka jangan pindahkan SELECT.
Ilustrasi Selection Sort (ASC)
Proses 1 / Sub Proses 8
Index 0 1 2 3 4 5 6 7 8

30 10 80 60 50 70 20 90 40

Apakah 10 lebih kecil dari pada 40?


Benar (True), maka jangan pindahkan SELECT.
Ilustrasi Selection Sort (ASC)
Hasil Proses 1
Index 0 1 2 3 4 5 6 7 8

30 10 80 60 50 70 20 90 40

Di akhir proses SELECT akan dipindahkan ke POSITION


karena SELECT lebih kecil daripada POSITION.
Ilustrasi Selection Sort (ASC)
Hasil Proses 1
Index 0 1 2 3 4 5 6 7 8

10 30 80 60 50 70 20 90 40

Apakah angka dari Hasil Proses 1 sudah terurut?


Tidak (False), maka lakukan Proses 2.
Ilustrasi Selection Sort (ASC)
Proses 2 / Sub Proses 1
Index 0 1 2 3 4 5 6 7 8

10 30 80 60 50 70 20 90 40

Apakah 30 lebih kecil dari pada 80?


Karena urutan
Benar
pertama (True), maka
terisi jangan pindahkan SELECT.
angka terkecil,
maka angka
pertama diabaikan
dan POSITION
digeser
Ilustrasi Selection Sort (ASC)
Proses 2 / Sub Proses 2
Index 0 1 2 3 4 5 6 7 8

10 30 80 60 50 70 20 90 40

Apakah 30 lebih kecil dari pada 60?


Benar (True), maka jangan pindahkan SELECT.
Ilustrasi Selection Sort (ASC)
Proses 2 / Sub Proses 3
Index 0 1 2 3 4 5 6 7 8

10 30 80 60 50 70 20 90 40

Apakah 30 lebih kecil dari pada 50?


Benar (True), maka jangan pindahkan SELECT.
Ilustrasi Selection Sort (ASC)
Proses 2 / Sub Proses 4
Index 0 1 2 3 4 5 6 7 8

10 30 80 60 50 70 20 90 40

Apakah 30 lebih kecil dari pada 70?


Benar (True), maka jangan pindahkan SELECT.
Ilustrasi Selection Sort (ASC)
Proses 2 / Sub Proses 5
Index 0 1 2 3 4 5 6 7 8

10 30 80 60 50 70 20 90 40

Apakah 30 lebih kecil dari pada 20?


Tidak (False), maka SELECT dipindahkan ke 20.
Ilustrasi Selection Sort (ASC)
Proses 2 / Sub Proses 6
Index 0 1 2 3 4 5 6 7 8

10 30 80 60 50 70 20 90 40

Apakah 20 lebih kecil dari pada 90?


Benar (True), maka jangan pindahkan SELECT.
Ilustrasi Selection Sort (ASC)
Proses 2 / Sub Proses 7
Index 0 1 2 3 4 5 6 7 8

10 30 80 60 50 70 20 90 40

Apakah 20 lebih kecil dari pada 40?


Benar (True), maka jangan pindahkan SELECT.
Ilustrasi Selection Sort (ASC)
Hasil Proses 2
Index 0 1 2 3 4 5 6 7 8

10 30 80 60 50 70 20 90 40

Di akhir proses SELECT akan dipindahkan ke POSITION


karena SELECT lebih kecil daripada POSITION.
Ilustrasi Selection Sort (ASC)
Hasil Proses 2
Index 0 1 2 3 4 5 6 7 8

10 20 80 60 50 70 30 90 40

Apakah angka dari Hasil Proses 2 sudah terurut?


Tidak (False), maka lakukan Proses 3.
SEKARANG GILIRANMU!
Lakukan Proses ke 3, ke 4, dan seterusnya sampai angka tersebut terurut!
Evaluasi/Jawablah pertanyaan di bawah ini
1. Berapa banyak angka yang diurutkan?
2. Berapa nilai indeks yang paling besar?
3. Apakah jawaban nomor 2 sama dengan jawaban nomor 1?
4. Berapakah banyak Sub Proses yang terjadi setiap 1 Proses?
5. Apakah jawaban nomor 2 sama dengan jawaban nomor 4?
6. Berapakah banyak Proses yang terjadi?
7. Berapakah banyak Sub Proses yang terjadi pada seluruh Proses?
8. Apakah banyaknya Sub Proses pada masing-masing Proses sama?
9. Berapakah kira-kira Proses yang paling banyak terjadi?
10. Berapakah kira-kira Sub Proses yang paling banyak terjadi?
Evaluasi/Jawaban
1. Sembilan
2. Delapan
3. Tidak Sama
4. Delapan s.d Satu
5. Sama
6. Delapan
7. Tiga Puluh Enam
8. Tidak
9. Dibahas di Slide berikutnya
10. Dibahas di Slide berikutnya
Catatan
Jika banyaknya angka yang akan diurutkan sebanyak N:
1. Nilai indeksnya adalah M=N-1.
2. Banyak Proses yang paling sedikit adalah: 1.
3. Banyak Proses yang paling banyak adalah: M.
4. Banyak Sub Proses yang paling sedikit adalah: M.
5. Banyaknya Sub Proses yang paling banyak adalah:
(M-0)+(M-1)+(M-2)+(M-3)+ …. +(M-(M-1)).
Catatan
Contoh:
30 10 80 60 50 70 20 90 40

• N=9
• M = N-1 = 9-1 = 8
• Proses Paling Sedikit, 1.
• Proses Paling Banyak, M = 8.
• Sub Proses Paling Sedikit, M = 8.
• Sub Proses Paling Banyak,
(M-0)+(M-1)+(M-2)+(M-3)+(M-4)+(M-5)+(M-6)+(M-7)
=(8-0)+(8-1)+(8-2)+(8-3)+(8-4)+(8-5)+(8-6)+(8-7)
=8+7+6+5+4+3+2+1 = 36
C. ALGORITMA INSERTION
SORT
Pengenalan Insertion Sort
Algoritma Insertion Sort adalah algoritma yang melakukan pengurutan
dengan cara membandingkan dan memindahkan elemen array selanjutnya
disisipkan pada posisi yang tepat.

Pada Slide berikutnya, kita akan mencoba mengurutkan angka di bawah ini
menggunakan Algoritma Insertion Sort. Berikut angkanya:
30 10 80 60 50 70 20 90 40
Ilustrasi Insertion Sort (ASC)
Proses 1 / Sub Proses 1
Index 0 1 2 3 4 5 6 7 8

30 10 80 60 50 70 20 90 40

Garis bawah
Apakah menandakan
30 lebih kecil dari pada 10?
kedua angka sedang
Tidak (False), maka tukar
dibandingkan. posisi.
Ilustrasi Insertion Sort (ASC)
Hasil Proses 1 Pada Insertion, Proses 1
hanya terjadi 1 kali Sub
Index 0 1 2 3 4 5 6 7 8
Proses.
10 30 80 60 50 70 20 90 40

Apakah angka dari Hasil Proses 1 sudah terurut?


Tidak (False), maka lakukan Proses 2.
Ilustrasi Insertion Sort (ASC)
Proses 2 / Sub Proses 1
Index 0 1 2 3 4 5 6 7 8

10 30 80 60 50 70 20 90 40

Apakah 30 lebih kecil dari pada 80?


Benar (True), maka jangan tukar posisi.
Ilustrasi Insertion Sort (ASC)
Pada Insertion, Angka yang
Proses 2 / Sub Proses 2 dibandingkan akan maju satu
Index 0 1 2 3 4 5 6 7 8 indeks ke kanan dan
dibandingkan ke kiri.
10 30 80 60 50 70 20 90 40

Apakah 10 lebih kecil dari pada 30?


Benar (True), maka jangan tukar posisi.
Ilustrasi Insertion Sort (ASC)
Hasil Proses 2
Index 0 1 2 3 4 5 6 7 8

10 30 80 60 50 70 20 90 40

Apakah angka dari Hasil Proses 2 sudah terurut?


Tidak (False), maka lakukan Proses 3.
Ilustrasi Insertion Sort (ASC)
Proses 3 / Sub Proses 1
Index 0 1 2 3 4 5 6 7 8

10 30 80 60 50 70 20 90 40

Apakah 80 lebih kecil dari pada 60?


Salah (False), maka tukar posisi.
Ilustrasi Insertion Sort (ASC)
Proses 3 / Sub Proses 2
Index 0 1 2 3 4 5 6 7 8

10 30 60 80 50 70 20 90 40

Apakah 30 lebih kecil dari pada 60?


Benar (True), maka jangan tukar posisi.
Ilustrasi Insertion Sort (ASC)
Proses 3 / Sub Proses 2
Index 0 1 2 3 4 5 6 7 8

10 30 60 80 50 70 20 90 40

Apakah 10 lebih kecil dari pada 30?


Benar (True), maka jangan tukar posisi.
Ilustrasi Insertion Sort (ASC)
Hasil Proses 3
Index 0 1 2 3 4 5 6 7 8

10 30 60 80 50 70 20 90 40

Apakah angka dari Hasil Proses 3 sudah terurut?


Tidak (False), maka lakukan Proses 4.
SEKARANG GILIRANMU!
Lakukan Proses ke 4, ke 5, dan seterusnya sampai angka tersebut terurut!
Evaluasi/Jawablah pertanyaan di bawah ini
1. Berapa banyak angka yang diurutkan?
2. Berapa nilai indeks yang paling besar?
3. Apakah jawaban nomor 2 sama dengan jawaban nomor 1?
4. Berapakah banyak Sub Proses yang terjadi setiap 1 Proses?
5. Apakah jawaban nomor 2 sama dengan jawaban nomor 4?
6. Berapakah banyak Proses yang terjadi?
7. Berapakah banyak Sub Proses yang terjadi pada seluruh Proses?
8. Apakah banyaknya Sub Proses pada masing-masing Proses sama?
9. Berapakah kira-kira Proses yang paling banyak terjadi?
10. Berapakah kira-kira Sub Proses yang paling banyak terjadi?
Evaluasi/Jawaban
1. Sembilan
2. Delapan
3. Tidak Sama
4. Satu s.d Delapan
5. Sama
6. Delapan
7. Tiga Puluh Enam
8. Tidak
9. Dibahas di Slide berikutnya
10. Dibahas di Slide berikutnya
Catatan
Jika banyaknya angka yang akan diurutkan sebanyak N:
1. Nilai indeksnya adalah M=N-1.
2. Banyak Proses yang paling sedikit adalah: 1.
3. Banyak Proses yang paling banyak adalah: M.
4. Banyak Sub Proses yang paling sedikit adalah: 1.
5. Banyaknya Sub Proses yang paling banyak adalah:
(M-(M-1))+(M-(M-2))+(M-(M-3))+ …. +(M-0).
Catatan
Contoh:
30 10 80 60 50 70 20 90 40

• N=9
• M = N-1 = 9-1 = 8
• Proses Paling Sedikit, 1.
• Proses Paling Banyak, M = 8.
• Sub Proses Paling Sedikit, M = 8.
• Sub Proses Paling Banyak,
(M-7)+(M-6)+(M-5)+(M-4)+(M-3)+(M-2)+(M-1)+(M-0)
=(8-7)+(8-6)+(8-5)+(8-4)+(8-3)+(8-2)+(8-1)+(8-0)
=1+2+3+4+5+6+7+8 = 36
Latihan Persiapan Ujian
Urutkan Angka Berikut menggunakan ketiga Algoritma, Bubble Sort,
Insertion Sort, dan Selection Sort, baik secara ASC maupun DSC
1. 33 97 75 6 58 12
2. 62 74 12 11 96 0 84 40

Anda mungkin juga menyukai