Page 245 - MODUL ALGORTIMA DAN PEMROGRAMAN
P. 245

2)  Fungsi main:
                      •  Fungsi ini merupakan titik awal program.
                      •  Mendeklarasikan variabel:
                          o  n: Jumlah elemen dalam array (tipe int).
                          o  array: Array untuk menyimpan data (tipe int).
                      •  Meminta input dari pengguna:
                          o  Jumlah elemen array (n).
                          o  Nilai-nilai elemen array (sebanyak n elemen).
                      •  Memanggil fungsi exchangeSort untuk mengurutkan array dengan parameter array dan
                         jumlah elemen.
                      •  Menampilkan hasil pengurutan:
                          o  Array yang telah diurutkan (ascending) ditampilkan elemen per elemen.

                  4.  Langkah-langkah Algoritma:
                      •    Iterasi: Lakukan perulangan sebanyak n - 1 kali, di mana n adalah jumlah elemen
                           dalam array.
                      •    Penyisipan:  Pada  setiap  iterasi,  ambil  elemen  pada  indeks  i  (elemen  yang  akan
                           disisipkan).
                      •    Perbandingan:  Bandingkan  elemen  yang  akan  disisipkan  dengan  elemen-elemen
                           dalam array yang telah terurut (dari indeks j = i - 1 ke bawah).
                      •    Pergeseran:  Jika  elemen  yang  akan  disisipkan  lebih  kecil  dari  elemen  yang
                           dibandingkan,  geser  elemen-elemen  dalam  array  ke  kanan  (satu  indeks)  untuk
                           membuat ruang.
                      •    Penyisipan: Sisipkan elemen yang akan disisipkan pada posisinya yang benar dalam
                           array.
                  Program

                  #include <iostream>
                  using namespace std;

                  void insertionSort(int array[], int n) {
                    for (int i = 1; i < n; i++) {
                      int valueToInsert = array[i]; // Elemen yang akan disisipkan
                      int j = i - 1; // Indeks elemen yang dibandingkan

                      while (j >= 0 && array[j] > valueToInsert) {
                        array[j + 1] = array[j]; // Geser elemen ke kanan
                        j--;
                      }

                      array[j + 1] = valueToInsert; // Sisipkan elemen pada posisinya yang
                  benar
                    }
                  }

                  int main() {
                    // Deklarasi variabel
                    int n; // Jumlah elemen dalam array
                    int array[100]; // Array untuk menyimpan data

                    // Meminta input jumlah elemen
                    cout << "Masukkan jumlah elemen array: ";
                    cin >> n;
                                                                                                         236
                      // Meminta input data array
                    for (int i = 0; i < n; i++) {
                      cout << "Masukkan data ke-" << i + 1 << ": ";
                      cin >> array[i];
                    }
   240   241   242   243   244   245   246   247   248   249