Latihan Kode Program C++: Mengurutkan Angka dengan Algoritma Bubble Sort

Latihan kode program C++ kali ini akan membahas cara mengurutkan angka menggunakan algoritma bubble sort. Algoritma sorting sendiri menjadi materi standar dalam pembahasan materi algoritma di kampus-kampus IT.


Soal Mengurutkan Angka dengan Algoritma Bubble Sort

Buatlah kode program C++ untuk mengurutkan angka menggunakan algoritma bubble sort. Program meminta 1 nilai input untuk menentukan jumlah angka yang akan diurutkan, kemudian user memasukkan angka tersebut satu per satu. Setelah itu program menampilkan hasil urutan dari nilai terkecil ke terbesar (ascending).

Soal bonus: buat juga dalam bentuk function.

Berikut contoh tampilan akhir yang diinginkan (1):

##  Program C++ Mengurutkan Angka (Bubble Sort) ##
==================================================

Input jumlah element array: 5

Input 5 angka (dipisah dengan enter):
Angka ke-1: 95
Angka ke-2: 61
Angka ke-3: 69
Angka ke-4: 22
Angka ke-5: 87

Array setelah diurutkan: 22 61 69 87 95

Berikut contoh tampilan akhir yang diinginkan (2):

##  Program C++ Mengurutkan Angka (Bubble Sort) ##
==================================================

Input jumlah element array: 8

Input 8 angka (dipisah dengan enter):
Angka ke-1: 71
Angka ke-2: 83
Angka ke-3: 22
Angka ke-4: 65
Angka ke-5: 19
Angka ke-6: 54
Angka ke-7: 11
Angka ke-8: 96

Array setelah diurutkan: 11 19 22 54 65 71 83 96

Silahkan coba sebentar membuat kode program ini.


Tips Membuat Kode Program Mengurutkan Angka

Soal ini melatih pemahaman terkait array dan algoritma sorting. Berikut tutorial pendahuluan yang bisa diikuti:

Setiap angka yang akan diurutkan perlu di simpan ke dalam sebuah array. Array inilah yang akan kita proses menggunakan algoritma bubble sort.

# Pengertian Algoritma Bubble Sort

Bubble sort adalah algoritma pengurutan yang bekerja dengan membandingkan pasangan element yang saling berdampingan. Jika urutan pasangan element tersebut tidak sesuai, tukar posisinya.

Proses ini dilakukan berulang kali hingga seluruh element dalam array terurut secara menaik (ascending) atau menurun (descending), tergantung keinginan programmer yang merancangnya.

Berikut adalah langkah-langkah dalam algoritma bubble sort:

  1. Mulai dari indeks pertama array.
  2. Bandingkan element pertama dengan element kedua. Jika element pertama lebih besar dari element kedua, tukar posisi keduanya.
  3. Lanjutkan dengan membandingkan element kedua dengan element ketiga, dan seterusnya hingga satu element sebelum element terakhir.
  4. Setelah mencapai element terakhir, element terbesar akan berada di posisi terakhir.
  5. Ulangi langkah-langkah 2-4 untuk element-element yang belum terurut, tetapi kali ini hanya hingga element sebelum element terakhir yang sudah terurut pada iterasi sebelumnya.
  6. Algoritma berhenti ketika tidak ada lagi pertukaran posisi element yang dilakukan pada iterasi.
Ilustrasi cara kerja algoritma bubble sort

Ilustrasi cara kerja algoritma bubble sort

Keuntungan dari bubble sort adalah algoritma ini mudah dipahami dan diimplementasikan. Namun kelemahannya, bubble sort memiliki kompleksitas waktu yang relatif tinggi, yaitu O(n2), di mana n adalah jumlah element di dalam array.

Oleh karena itu, bubble sort lebih cocok digunakan untuk mengurutkan array yang kecil atau hampir terurut secara alami.


Kode Program C++ Mengurutkan Angka dengan Algoritma Bubble Sort

Berikut salah satu solusi dari soal mengurutkan angka array dengan algoritma bubble sort menggunakan bahasa pemrograman C++:

#include <iostream>
using namespace std;

int main() {
  cout << "##  Program C++ Mengurutkan Angka (Bubble Sort) ##" << endl;
  cout << "==================================================" << endl;
  cout << endl;

  int i, j, n;

  // Baca angka input dari user
  cout << "Input jumlah element array: ";
  cin >> n;
  cout << endl;

  int arr[n];
  cout <<  "Input "<< n << " angka (dipisah dengan enter): ";
  cout << endl;

  for(i = 0; i < n; i++){
    cout << "Angka ke-" << i+1 <<": ";
    cin >> arr[i];
  }

  // Urutkan array dengan algoritma bubble sort
  for (i = 0; i < n - 1; i++) {
    for (j = 0; j < n - i - 1; j++) {
      if (arr[j] > arr[j + 1]) {
        // Tukar posisi element jika element sebelumnya lebih besar
        int temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;
      }
    }
  }

  // Tampilan hasil pengurutan
  cout << endl;
  cout << "Array setelah diurutkan: ";
  for (i = 0; i < n; i++) {
    cout << arr[i] << " ";
  }
  cout << endl;

  return 0;
}

Latihan Kode Program Cpp - Mengurutkan Angka dengan Algoritma Bubble Sort

Pada awal kode program di baris 9 terdapat deklarasi 3 variabel: i, j dan n dengan tipe data integer. Variabel i dan j nantinya akan kita pakai di dalam perulangan sebagai variabel counter, sedangkan variabel n dipakai untuk menyimpan jumlah angka.

Lalu di baris 12-13 user diminta untuk menginput jumlah angka yang ingin diurutkan. Angka ini akan disimpan ke dalam variabel n.

Kode program lalu membuat array sejumlah n dengan perintah int arr[n] di baris 16. Perulangan for dipakai untuk membaca setiap data dan disimpan ke dalam variabel arr.

Algoritma bubble sort ada di baris 26-35. Algoritma ini bekerja dengan membandingkan element-element array secara berdampingan, lalu menukar posisinya jika element sebelumnya lebih besar dari element sesudahnya.

Algoritma ini diulangi sebanyak n – 1 kali, dengan n adalah jumlah element dalam array.

Hasilnya, variabel arr akan berisi array yang sudah terurut, untuk selanjutnya ditampilkan dengan perulangan for di baris 40-42.


Kode Program C++ Algoritma Bubble Sort dengan Function

Sebagai bonus latihan, kita bisa membuat function terpisah untuk algoritma bubble sort. Berikut modifikasi dari kode program sebelumnya:

#include <iostream>
using namespace std;

// Buat function dengan algoritma bubble sort
void bubbleSort(int arr[], int n) {
  for (int i = 0; i < n - 1; i++) {
    for (int j = 0; j < n - i - 1; j++) {
      if (arr[j] > arr[j + 1]) {
        // Tukar posisi element jika element sebelumnya lebih besar
        int temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;
      }
    }
  }
}

int main() {
  cout << "##  Program C++ Mengurutkan Angka (Bubble Sort) ##" << endl;
  cout << "==================================================" << endl;
  cout << endl;

  int i, n;

  // Baca angka input dari user
  cout << "Input jumlah element array: ";
  cin >> n;
  cout << endl;

  int arr[n];
  cout <<  "Input "<< n << " angka (dipisah dengan enter): ";
  cout << endl;

  for(i = 0; i < n; i++){
    cout << "Angka ke-" << i+1 <<": ";
    cin >> arr[i];
  }

  // Urutkan array dengan algoritma bubble sort
  bubbleSort(arr, n);

  // Tampilan hasil pengurutan
  cout << endl;
  cout << "Array setelah diurutkan: ";
  for (i = 0; i < n; i++) {
    cout << arr[i] << " ";
  }
  cout << endl;

  return 0;
}

Sekarang di baris 5-16 terdapat pendefinisian function bubbleSort(). Function ini memiliki 2 parameter arr[] dan n yang dipakai untuk menampung array asal dan jumlah element array yang akan diurutkan.

Kode yang diperlukan kurang lebih sama seperti versi sebelumnya.

Pemanggilan function ini dilakukan di baris 40 dengan perintah bubbleSort(arr, n). Hasilnya, isi variabel arr akan langsung terurut.


Itulah bahasan kita tentang implementasi algoritma sorting bubble sort dalam bahasa pemrograman C++. Untuk lebih memahami cara kerjanya, silahkan ambil kertas lalu buat tabel tentang apa isi variabel arr, i dan n dalam setiap iterasi.

Untuk algoritma sorting lain seperti selection sort dan insertion sort akan kita bahas di tutorial terpisah.

Add Comment