Page 165 - MODUL ALGORTIMA DAN PEMROGRAMAN
P. 165
sama dilakukan kembali terhadap elemen array yang tersisa, yaitu memilih elemen minimum
kemudian mempertukarkan elemen minimum tersebut dengan elemen paling akhir/pertama dari
array yang tersisa tadi. Kemudian diisolasi kembali. Demikian seterusnya hingga semua
elemen terurut.
D. Metode Exchange Sort
Algoritma exchange merupakan algoritma yang mirip dengan bubble sort, perbedaan
keduanya ada pada bagaimana membandingkan antar elemen. Pada Bubble Sort, elemen yang
dibandingkan adalah elemen yang berdekatan, sedangkan algoritma ini membandingkan suatu
elemen dengan elemen lainnya dalam array dan melakukan pertukaran jika diperlukan. Jadi ada
elemen yang selalu menjadi elemen pusat (pivot). Untuk jelasnya mari kita lihat ilustrasi
selanjutnya.
E. Metode Insertion Sort
Insertion berasal dari kata insert yang kalo kita artikan ke bahasa indonesia adalah
memasukkan atau menyisipkan. Jadi insertion sort adalah algoritma pengurutan yang cara
kerjanya adalah dengan mengambil elemen pada array, kemudian menyisipkan data tersebut
pada posisi yang tepat. Algoritma ini membandingkan 2 elemen yaitu elemen pertama dengan
elemen yang sudah diurutkan. Perbandingan akan terus dilakukan hingga tidak ada elemen yang
tersisa.
Pertama akan dilakukan perulangan, dimana setiap perulangan, Insertion Sort ini akan
memindahkan nilai elemen kemudian menyisipkannya secara berulangan hingga nilai elemen
berada di posisi yang tepat. Untuk lebih mudah memahami, yuk kita lihat ilustrasi selanjutnya.
F. Contoh Program
1. Contoh 1 – Program penggunaan bubble sort
KODE PROGRAM
#include <iostream>
using namespace std;
void tukar(int *, int *);
void cetakArray(int arr[], int ukuranArray);
int main() {
int ukuranArray = 5;
int arr[ukuranArray] = {3, 7, 1, 9, 5};
cout << "Keadaan awal array" << endl;
cetakArray(arr, ukuranArray);
cout << endl;
// algoritma Bubble Sort
for (int i = 0; i < ukuranArray-1; i++) {
cout << "\nPerulangan ke #" << i+1 << endl;
for (int j = 0; j < ukuranArray-i-1; j++) { 142
// menampilkan keadaan array
cetakArray(arr, ukuranArray);
// logika pertukaran
if (arr[j] > arr[j+1]) {