Page 246 - MODUL ALGORTIMA DAN PEMROGRAMAN
P. 246
cin >> n;
// Meminta input data array
for (int i = 0; i < n; i++) {
cout << "Masukkan data ke-" << i + 1 << ": ";
cin >> array[i];
}
// Proses pengurutan
insertionSort(array, n);
// Menampilkan hasil pengurutan
cout << "\nHasil pengurutan (ascending):" << endl;
for (int i = 0; i < n; i++) {
cout << array[i] << " ";
}
return 0;
}
Output:
Masukkan jumlah elemen array: 4
Masukkan data ke-1: 8
Masukkan data ke-2: 6
Masukkan data ke-3: 4
Masukkan data ke-4: 2
Hasil pengurutan (ascending):
2 4 6 8
Penjelasan:
1) Fungsi insertionSort:
• Fungsi ini menerima dua parameter:
o array: Array yang akan diurutkan (tipe int).
o n: Jumlah elemen dalam array (tipe int).
• Fungsi ini tidak memiliki nilai kembalian.
• Algoritma bekerja dengan cara menyisipkan elemen-elemen array ke posisinya yang
benar secara berurutan.
o Loop for luar (i) diulang sebanyak n - 1 kali. Pada setiap iterasi, elemen pada indeks
i akan disisipkan ke posisinya yang benar.
o Variabel valueToInsert menampung nilai elemen yang akan disisipkan pada iterasi
saat ini.
o Loop while dalam (j) diulang selama indeks j masih valid dan nilai pada array[j] lebih
besar dari valueToInsert.
▪ Di dalam loop while:
▪ Elemen pada array[j] digeser ke kanan satu posisi menggunakan array[j + 1]
= array[j].
▪ Indeks j dikurangi satu (j--) untuk memeriksa elemen sebelumnya.
o Setelah loop while selesai, elemen valueToInsert disisipkan pada indeks j + 1 yang
merupakan posisinya yang benar.
2) Fungsi main:
237