Page 266 - MODUL ALGORTIMA DAN PEMROGRAMAN
P. 266

5.  Program
                  #include <iostream>

                  using namespace std;

                  void exchange_sort(int nilaiUjian[], int n) {
                    bool swapped = true; // Bendera untuk menandakan adanya pertukaran

                    for (int i = 0; i < n - 1 && swapped; i++) { // Loop baris
                      swapped = false; // Asumsi awal tidak ada pertukaran pada iterasi ini
                      for (int j = 0; j < n - i - 1; j++) { // Loop kolom
                        if (nilaiUjian[j] > nilaiUjian[j + 1]) { // Bandingkan nilai
                          swap(nilaiUjian[j], nilaiUjian[j + 1]); // Tukar nilai
                          swapped = true; // Tandai adanya pertukaran
                        }
                      }
                    }
                  }

                  int main() {
                    int n; // Jumlah siswa
                    cout << "Masukkan jumlah siswa: ";
                    cin >> n;

                    int nilaiUjian[n]; // Array untuk menyimpan nilai ujian
                    cout << "Masukkan nilai ujian siswa (dipisahkan dengan spasi): ";
                    for (int i = 0; i < n; i++) {
                      cin >> nilaiUjian[i];
                    }

                    exchange_sort(nilaiUjian, n); // Mengurutkan nilai ujian

                    cout << "\nHasil pengurutan nilai ujian (ascending):" << endl;
                    for (int i = 0; i < n; i++) {
                      cout << nilaiUjian[i] << " ";
                    }

                    return 0;
                  }
                  Output:

                  Masukkan jumlah siswa: 5
                  Masukkan nilai ujian siswa (dipisahkan dengan spasi): 80 88 85 84 89

                  Hasil pengurutan nilai ujian (ascending):
                  80 84 85 88 89

                  Penjelasan:

                  1)  Parameter:
                       •  nilaiUjian: Array yang berisi nilai ujian siswa (tipe int).

                       •  n: Jumlah siswa (tipe int).

                  2)  Alur kerja:

                       •  Bendera swapped:



                                                                                                         243
   261   262   263   264   265   266   267   268   269