Berikut ini adalah pertanyaan dari vynnn31 pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas
Jawaban dan Penjelasan
Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.
Jawaban dan Penjelasan:
Perbedaan utama Bubble Sort, Selection Sort, dan Insertion Sortterletak padacara menentukan elemen data yang perlu ditukar tempatnya.
Penjelasan lebih rincinya, untuk jenis pengurutan menaik (dari yang terkecil hingga yang terbesar, atau ascending order) adalah sebagai berikut.
BUBBLE SORT
Prinsip utama: pembandingan elemen data yang bersebelahan.
Pada setiap tahapan (pass), dari elemen data pertama hingga terakhir dibandingkan secara berpasangan, antara dua elemen data yang bersebelahan (adjacent). Jika nilai elemen data yang sedang dievaluasi lebih dari nilai elemen data berikutnya, maka lakukan pertukaran elemen data. Begitu seterusnya hingga elemen data terakhir, lalu lanjutkan proses ke tahapan (pass) berikutnya, mulai dari elemen data pertama.
SELECTION SORT
Prinsip utama: seleksi elemen data yang bernilai terbesar.
Pada setiap tahapan (pass), dilakukan seleksi elemen data yang bernilai terbesar. Lalu tukar tempat elemen data terbesar itu dengan elemen terakhir data, sesuai dengan tahapannya, jika elemen data terbesar itu bernilai lebih dari elemen terakhir.
Sebagai contoh:
Ukuran data = n elemen.
- Pada tahapan ke-1, elemen data terbesar yang ditemukan ditukar dengan elemen ke-n.
- Pada tahapan ke-2, elemen data terbesar yang ditemukan ditukar dengan elemen ke-(n–1).
- Pada tahapan ke-3, elemen data terbesar yang ditemukan ditukar dengan elemen ke-(n–2).
- Dan seterusnya
INSERTION SORT
Prinsip utama: penyisipan elemen data yang lebih kecil, hingga posisi yang sesuai.
Insertion sort hampir sama dengan bubble sort. Yang membedakan adalah setelah elemen data bersebelahan dibandingkan, dan elemen yang dievaluasi bernilai lebih dari elemen berikutnya, maka elemen berikutnya (yang lebih kecil) "disisipkan" ke kiri hingga menemukan elemen yang lebih kecil darinya. Hal ini menyebabkan bagian data sebelum (di sebelah kiri dari) elemen data yang sedang dievaluasi selalu berada dalam kondisi sudah terurut, pada setiap tahapan.
______________
Untuk memperjelas, kita gunakan contoh ilustrasi.
Diberikan data: 7 5 6 2 3
Bubble Sort
Pass 1:
- 7 ↔ 5 6 2 3
- 5 7 ↔ 6 2 3
- 5 6 7 ↔ 2 3
- 5 6 2 7 ↔ 3
- 5 6 2 3 7
Pass 2:
- 5 6 2 3 7
⇒ tetap ada pembandingan data 5 dan 6, namun tidak ditukar karena 5 < 6 - 5 6 ↔ 2 3 7
- 5 2 6 ↔ 3 7
- 5 2 3 6 7
Pass 3:
- 5 ↔ 2 3 6 7
- 2 5 ↔ 3 6 7
- 2 3 56 7
⇒ tetap ada pembandingan data 5 dan 6, namun tidak ditukar karena 5 < 6
Pass 4
- 23 5 6 7
⇒ tetap ada pembandingan data 2 dan 3, namun tidak ditukar karena 2 < 3
Selesai : 2 3 5 6 7
Pada algoritme bubble sort original (tidak dioptimasi), elemen data akan terus diperbandingkan hingga yang terakhir. Jadi, pada setiap pass, terjadi n–1 kali pembandingan nilai.
____________
Selection Sort
Pass 1:
- Inisialisasi: maxIndex = 1
- 7 5 6 2 3: 7 > 5 ⇒ maxIndex = 1
- 7 5 6 2 3: 7 > 6 ⇒ maxIndex = 1
- 7 5 6 2 3: 7 > 2 ⇒ maxIndex = 1
- 7 5 6 2 3: 7 > 3 ⇒ maxIndex = 1
- Tukar 7 dan 3
⇒ 3 5 6 2 7
Pass 2:
- Inisialisasi: maxIndex = 1
- 3 5 6 2 7: 3 < 5 ⇒ maxIndex = 2
- 3 5 6 2 7: 5 < 6 ⇒ maxIndex = 3
- 3 5 6 2 7: 6 > 2 ⇒ maxIndex = 3
- Tukar 6 dan 2
⇒ 3 5 2 6 7
Pass 3:
- Inisialisasi: maxIndex = 1
- 3 5 2 6 7: 3 < 5 ⇒ maxIndex = 2
- 3 5 2 6 7: 5 > 2 ⇒ maxIndex = 2
- Tukar 5 dan 2
⇒ 3 2 5 6 7
Pass 4:
- Inisialisasi: maxIndex = 1
- 3 2 5 6 7: 3 < 2 ⇒ maxIndex = 1
- Tukar 3 dan 2
⇒ 2 3 5 6 7
Selesai : 2 3 5 6 7
____________
Insertion Sort
Pass 1:
- 7 5 6 2 3: 7 > 5
- Tukar 7 dan 5:
⇒ 5 7 6 2 3 - 5 berada pada posisi indeks pertama, maka pass 1 selesai.
Pass 2:
- 5 7 6 2 3: 7 > 6
- Tukar 7 dan 6:
⇒ 5 6 7 2 3 - 5 < 6 maka pass 2 selesai.
Pass 3:
- 5 6 7 2 3: 7 > 2
- Tukar 7 dan 2:
⇒ 5 6 2 7 3 - Tukar 6 dan 2 karena 6 > 2:
⇒ 5 2 6 7 3 - Tukar 5 dan 2 karena 5 > 2:
⇒ 2 5 6 7 3 - 2 berada pada indeks pertama, maka pass 3 selesai.
Pass 4:
- 2 5 6 7 3: 7 > 3
- Tukar 7 dan 3:
⇒ 2 5 6 3 7 - Tukar 6 dan 3:
⇒ 2 5 3 6 7 - Tukar 5 dan 3:
⇒ 2 3 5 6 7 - 2 < 3, maka pass 4 selesai
Selesai : 2 3 5 6 7
Semoga dengan pertanyaan yang sudah terjawab oleh henriyulianto dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.
Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact
Last Update: Tue, 08 Nov 22