MODUL 7
“SORTING”
DISUSUN OLEH :
MUTIA RANI ZAHRA MEILANI
2311102182
S1-IF-11-E
DOSEN PEMBIMBING :
IBU YOHANI SETYA RAFIKA NUR, S.KOM
Sorting adalah proses sederetan data ke dalam suatu urutan atau susunan tertentu. Data
yang diurutkan dapat berupa data bilangan, karakter maupun string. Hal yang dapat
mempengaruhi kecepatan Algoritma sorting adalah jumlah operasi perbandingan dan jumlah
operasi pemindahan data. Terdapat macam macam metode sorting, antara lain yaitu :
1. Selection Sorting
Metode ini membagi daftar menjadi dua bagian, bagian yang sudah diurutkan dan yang
belum diurutkan. Di setiap iterasi, mencari elemen terkecil dari bagian yang belum
diurutkan dan menukarnya dengan elemen di posisi terdepan dari bagian yang belum
diurutkan. Proses ini berlanjut hingga seluruh daftar terurut.
2. Bubble Sorting
Proses dari metode ini adalah membandingkan elemen berpasangan, dan menukar
mereka jika urutannya tidak benar. Iterasi ini terus berlanjut sampai tidak ada lagi
pertukaran yang perlu dilakukan, yang menunjukkan daftar sudah terurut.
3. Insertion Sorting
Metode ini memperlakukan daftar sebagai bagian terurut dan bagian yang belum
diurutkan. Pada setiap langkahnya, mengambil elemen dari bagian belum diurutkan dan
memasukkannya ke posisi yang benar dalam bagian yang terurut, sehingga bagian terurut
bertambah satu elemen setiap langkahnya.
while (not_sorted)
{
not_sorted = false;
j++;
for (int i = 0; i < lenght-j; i++)
{
if (arr[i]>arr[i+1])
{
temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
not_sorted = true;
}
DESKRIPSI PROGRAM
Program ini mengurutkan larik bilangan pecahan dari kecil ke besar dengan cara melakukan
perbandingan antara pasangan-pasangan elemen dalam larik dan menukar posisi jika diperlukan.
Fungsi bubble_sort mengimplementasikan algoritma tersebut, sementara fungsi print_array
digunakan untuk mencetak elemen-elemen larik sebelum dan sesudah pengurutan
GUIDED 2
SOURCE CODE
#include <iostream>
int main(){
int length = 6;
char a[length] = {'c', 'f', 'a', 'z', 'd', 'p'};
cout << "Urutan char sebelum sorting : " << a << endl;
print_array(a, length);
insertion_sort(a, length);
cout << "Urutan char setelah sorting : " << a << endl;
print_array(a, length);
}
SCREENSHOT OUTPUT
DESKRIPSI PROGRAM
Program ini bekerja dengan cara membandingkan elemen-elemen yang ada dengan elemen-
elemen sebelumnya, lalu menyisipkan elemen tersebut ke posisi yang tepat sesuai dengan urutan
yang diinginkan. Proses ini terus berlanjut hingga seluruh elemen dalam array terurut. Setelah
proses pengurutan selesai, program akan menampilkan urutan karakter sebelum dan sesudah
proses pengurutan dilakukan.
UNGUIDED 1
SOURCE CODE
#include <iostream>
if (pos_min != i)
{
temp = arr[i];
arr[i] = arr[pos_min];
arr[pos_min] = temp;
}
}
}
int main(){
int length = 5;
double a[] = {3.8, 2.9, 3.3, 4.0, 2.4};
selection_sort(a, length);
cout << "Nilai Mahasiswa Kelas IF2016 G (sorted): " << endl;
print_array(a, length);
return 0;
}
SCREENSHOT OUTPUT
DESKRIPSI PROGRAM
Program ini bekerja dengan cara mencari elemen terkecil dari array dan menukarnya dengan
elemen pertama, lalu mencari elemen terkecil kedua dari sisa array dan menukarnya dengan
elemen kedua, dan begitu seterusnya hingga seluruh array terurut. Setelah proses pengurutan
selesai, program akan menampilkan nilai-nilai mahasiswa kelas tertentu sebelum dan sesudah
pengurutan dilakukan.
UNGUIDED 2
SOURCE CODE
#include <iostream>
while (not_sorted) {
not_sorted = false;
j++;
for (int i = 0; i < length - j; i++) {
if (arr[i] > arr[i + 1]) {
temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
not_sorted = true;
}
}
}
}
print_array(names,
length);
bubble_sort(names,
length);
print_array(names,
length);
return 0;
}
DESKRIPSI PROGRAM
Program ini bekerja dengan cara membandingkan pasangan elemen berturut-turut dalam array
dan menukarnya jika tidak berada dalam urutan yang benar. Proses ini terus berlanjut,
menggeser elemen-elemen yang lebih kecil atau lebih besar ke ujung array sampai seluruh array
terurut. Setelah proses pengurutan selesai, program akan menampilkan daftar nama sebelum dan
sesudah proses pengurutan dilakukan.
UNGUIDED 3
SOURCE CODE
#include <iostream>
while (not_sorted)
{
not_sorted = false;
j++;
for (int i = 0; i < length - j; i++)
{
if (arr[i] > arr[i + 1])
{
temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
not_sorted = true;
}
}
}
}
while (not_sorted)
{
not_sorted = false;
j++;
for (int i = 0; i < length - j; i++)
{
int main()
{
int length;
// INPUT JUMLAH
cout << "= INPUTKAN JUMLAH =" << endl;
cin >> length;
char arr[length];
// INPUT KARAKTER
cout << "= MASUKAN KARAKTER =" << endl;
for (int i = 0; i < length; i++)
{
cout << "Karakter ke - " << i + 1 << " : ";
cin >> arr[i];
}
// PRINT ARRAY
cout << "Urutan Karakter : " << endl;
for (int i = 0; i < length; i++)
{
cout << arr[i] << " ";
}
// ASCENDING
bubble_sort_asc(arr, length);
// DESCENDING
bubble_sort_des(arr, length);
return 0;
}
SCREENSHOT OUTPUT
DESKRIPSI PROGRAM
Program ini menggunakan bubble sort yang meminta pengguna memasukkan jumlah karakter
dan karakter-karakternya, lalu menampilkan urutan awal. Fungsi bubble_sort_asc mengurutkan
karakter dari kecil ke besar, sementara bubble_sort_des mengurutkan dari besar ke kecil. Setelah
kedua pengurutan selesai, program menampilkan urutan karakter secara menaik dan menurun
sesuai fungsi yang dipanggil.
DAFTAR PUSTAKA