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
   241   242   243   244   245   246   247   248   249