#include <LiquidCrystal_I2C.h>
// #include <LiquidCrystal.h>
// C++ code
//
// #include <Adafruit_LiquidCrystal.h>
int seconds = 0;
LiquidCrystal_I2C lcd(0x27, 20, 4);
// Fungsi untuk menukar dua nilai integer
void swap(int *xp, int *yp) {
int temp = *xp;
*xp = *yp;
*yp = temp;
}
// Fungsi untuk menjalankan algoritma Bubble Sort
void bubbleSort(int arr[], int n) {
int i, j;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
swap(&arr[j], &arr[j + 1]);
}
}
}
}
// Fungsi untuk mencetak array ke Serial Monitor
void printArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
lcd.print(arr[i]);
lcd.print("-");
}
// Serial.println();
}
void setup() {
// Memulai komunikasi serial
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.begin(20, 4);
// lcd_1.print("hello world");
lcd.setBacklight(1);
// Array yang akan diurutkan
int arr[] = {26, 76, 52, 93, 15, 49, 81};
int n = sizeof(arr)/sizeof(arr[0]);
// Menampilkan array sebelum sorting
// Serial.println("Array sebelum disortir:");
lcd.setCursor(0, 0);
lcd.print("ANGKA BELUM DIURUT:");
lcd.setCursor(0, 1);
// lcd.print("-");
printArray(arr, n);
// Menjalankan algoritma Bubble Sort
bubbleSort(arr, n);
// Menampilkan array setelah sorting
// Serial.println("Array setelah disortir:");
lcd.setCursor(0, 2);
lcd.print("ANGKA SUDAH TERURUT:");
lcd.setCursor(0, 3);
// lcd.print("-");
printArray(arr, n);
// delay(1000);
// lcd.setBacklight(0);
}
void loop() {
// put your main code here, to run repeatedly:
}