0% menganggap dokumen ini bermanfaat (0 suara)
200 tayangan

Modul 07-Sorting

Dokumen tersebut membahas tentang modul sorting pada praktikum algoritma dan pemrograman. Modul ini menjelaskan tujuan pembelajaran sorting, konsep dasar beberapa algoritma sorting seperti insertion sort, bubble sort, dan selection sort beserta contoh kode programnya dalam bahasa C++. Modul ini juga berisi tugas-tugas yang berkaitan dengan penerapan algoritma sorting untuk mengurutkan data mahasiswa berdasarkan IPS dan nama-nama warga menggunakan bubble sort dan selection sort

Diunggah oleh

Carissa Putri
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
200 tayangan

Modul 07-Sorting

Dokumen tersebut membahas tentang modul sorting pada praktikum algoritma dan pemrograman. Modul ini menjelaskan tujuan pembelajaran sorting, konsep dasar beberapa algoritma sorting seperti insertion sort, bubble sort, dan selection sort beserta contoh kode programnya dalam bahasa C++. Modul ini juga berisi tugas-tugas yang berkaitan dengan penerapan algoritma sorting untuk mengurutkan data mahasiswa berdasarkan IPS dan nama-nama warga menggunakan bubble sort dan selection sort

Diunggah oleh

Carissa Putri
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 5

Praktikum Algoritma dan Pemrograman

MODUL VII
SORTING

I. TUJUAN
1. Memahami dan menerapkan beberapa algoritma sorting dalam menyelesaikan berbagai studi kasus

II. DASAR TEORI


1. Konsep Dasar Sorting
 Algoritma Sorting adalah algoritma untuk meletakkan kumpulan elemen data ke dalam urutan
tertentu, berdasarkan satu atau beberapa kunci ke dalam tiap-tiap elemen
 Berdasarkan data terurutnya, algoritma sorting dibagi menjadi dua jenis, yaitu:
o Ascending; pengurutan dari terkecil hingga terbesar. Contoh: a, b, c, d, e.
o Descending; pengurutan dari nilai terbesar hingga terkecil. Contoh: e, d, c, b, a

2. Insertion Sort
Konsep dasar Algoritma Insertion Sort

 Cara mengurutkannya adalah dicek satu persatu mulai dari yang kedua sampai
dengan yang terakhir.
 Apabila ditemukan data yang lebih kecil dari data sebelumnya, maka data tersebut
disisipkan pada posisi yang sesuai.

Pseudocode Algoritma Insertion Sort:

for i = 1 to n-1
set j = i
set t = a[j]
repeat while j > 0 and a[j-1] > t
move a[j-1] to right
end repeat
set a[j] = t
end for

Prosedur Insertion Sort dalam bahasa C++:

void insertion_sort(int arr[], int length) {


int i, j ,tmp;

for (i = 1; i < length; i++) {


j = i;

while (j > 0 && arr[j - 1] > arr[j]) {


tmp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = tmp;
j--;
}//end of while loop
}//end of for loop
}

VII - 1
Praktikum Algoritma dan Pemrograman

Contoh
Diketahui array suatu integer terdiri dari 6 elemen sebagai berikut; {22, 10, 15, 3, 8, 2}. Contoh
Program untuk mengurutkan ke-6 elemen tersebut adalah sebagai berikut:

#include <iostream>

using namespace std;

void insertion_sort(int arr[], int length) {


int i, j ,tmp;

for (i = 1; i < length; i++) {


j = i;

while (j > 0 && arr[j - 1] > arr[j]) {


tmp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = tmp;
j--;
}//end of while loop
}//end of for loop
}

void print_array(int a[], int length) {

for(int i=0; i<length; i++) {


cout << a[i] << "\t";
}
cout << endl;
}
int main() {

int length = 6;
int a[length] = {22, 10, 15, 3, 8, 2};

insertion_sort(a, length);
print_array(a, length);
}

3. Bubble Sort
Konsep dasar Algoritma Bubble Sort

 Cara mengurutkannya adalah membandingkan elemen yang sekarang dengan elemen yang
berikutnya.
 Jika elemen sekarang> elemen berikutnya, maka tukar

Contoh Prosedur Bubble Sort dalam bahasa C++


void bubble_sort(int arr[], int length){
bool not_sorted = true;
int j=0,tmp;

while (not_sorted){
not_sorted = false;
j++;
for (int i = 0; i < length - j; i++){
if (arr[i] > arr[i + 1]) {
VII - 2
Praktikum Algoritma dan Pemrograman

tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
not_sorted = true;
}//end of if
}//end of for loop
}//end of while loop
}//end of bubble_sort

4. Selection Sort
Konsep dasar Algoritma Selection Sort:
 Cara mengurutkannya adalah dengan membandingkan elemen sekarang dengan elemen yang
berikutnya sampai terakhir.
 Jika ditemukan elemen paling kecil, kemudian ditukar dengan elemen sekarang.

Contoh prosedur Selection Sort:

void selectSort(int arr[], int n) {


int pos_min,temp;
for (int i=0; i < n-1; i++) {
pos_min = i;
for (int j=i+1; j < n; j++) {
if (arr[j] < arr[pos_min])
pos_min=j;
}

if (pos_min != i) {
temp = arr[i];
arr[i] = arr[pos_min];
arr[pos_min] = temp;
}
}
}

III. GUIDED
1. Mengurutkan secara ascending untuk data numerik bertipe double menggunakan
Algoritma Bubble Sort
#include <iostream>

using namespace std;

void bubble_sort(double arr[], int length){


bool not_sorted = true;
int j=0;
double tmp;

while (not_sorted){
not_sorted = false;
j++;
for (int i = 0; i < length - j; i++){
if (arr[i] > arr[i + 1]) {
tmp = arr[i];
VII - 3
Praktikum Algoritma dan Pemrograman

arr[i] = arr[i + 1];


arr[i + 1] = tmp;
not_sorted = true;
}//end of if
}//end of for loop
}//end of while loop
}//end of bubble_sort

void print_array(double a[], int length) {

for(int i=0; i<length; i++) {


cout << a[i] << "\t";
}
cout << endl;
}

int main() {

int length = 5;
double a[] = {22.1, 15.3, 8.2, 33.21, 99,99};

cout << "Urutan bilangan sebelum sorting: " << endl;


print_array(a, length);

bubble_sort(a, length);

cout << "\nUrutan bilangan setelah sorting: " << endl;


print_array(a, length);
}

2. Mengurutkan karakter secara descending (dari terbesar hingga terkecil) menggunakan


Algoritma Insertion Sort
#include <iostream>

using namespace std;

void insertion_sort(char arr[], int length) {


int i, j;
char tmp;

for (i = 1; i < length; i++) {


j = i;

while (j > 0 && arr[j - 1] < arr[j]) {


tmp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = tmp;
j--;
}//end of while loop
}//end of for loop
}

void print_array(char a[], int length) {

for(int i=0; i<length; i++) {


cout << a[i] << "\t";
}
cout << endl;
}

VII - 4
Praktikum Algoritma dan Pemrograman

int main() {

int length = 6;
char a[length] = {'c', 'f', 'a', 'z', 'd', 'p'};

cout << "Urutan karakter sebelum sorting: " << endl;


print_array(a, length);

insertion_sort(a, length);

cout << "\nUrutan karakter setelah sorting: " << endl;


print_array(a, length);
}

IV. TUGAS
1. Kelas S1 IF 2016 G memiliki 5 mahasiswa. Pada akhir semester mereka menerima
lembar Indeks Prestasi Semester (IPS), masing-masing mahasiswa tersebut memiliki IPS
sebagai berikut: {3.8, 2.9, 3.3, 4.0, 2.4}. Buatlah program untuk mengurutkan IPS
mahasiswa tersebut dari yang terbesar hingga terkecil dengan menggunakan algoritma
Selection Sort! (Score: 30)

2. Pak RT memiliki 10 warga dengan nama: siti, situ, sana, ana, ani, caca, cici, dida, dodo,
dan dadi. Supaya mudah dalam melakukan pencarian, Pak RT akan mengurutkan nama-
nama tersebut sesuai dengan alfabet. Buatlah program untuk membantu Pak RT dengan
menggunakan algoritma Bubble Sort! (Score: 30)

3. Buatlah program yang meminta user menginputkan suatu bilangan n dan meminta user
untuk menginputkan sejumlah n karakter. Kemudian program akan melakukan sorting
secara menaik (ascending) dan menurun (descending)! (Score: 40)

VII - 5

Anda mungkin juga menyukai