Anda di halaman 1dari 6

Praktikum Struktur Data

MODUL 2 – SORTING

I. TUJUAN
1. Mengetahui pengertian sorting.
2. Mengetahui macam-macam sorting.
3. Mengimplementasikan Sorting pada program.
II. TUGAS PENDAHULUAN
1. Jelaskan definisi dari Sorting!
2. Sebutkan dan jelaskan macam maca Sorting yang ada pada bahasa
pemrograman C!
III. DASAR TEORI

A. DEFINISI
Dalam arti bahasa sorting adalah penyortiran atau memilih-milih. Pada
struktur data Sorting adalah sebuah metode untuk pengurutan data, misalnya dari
data yang terbesar ke data yang terkecil. Dengan cara program yang dibuat harus
dapat membandingkan antar data yang di inputkan. Artinya jika ada deretan data,
maka data yang pertama akan membandingkan dengan data yang kedua. Jika data
yang pertama lebih besar dari pada data yang kedua maka data yang pertama akan
bertukar posisi dengan data yang kedua, begitu seterusnya sampai benar-benar
data terurut dari yang terbesar hingga yang terkecil.
Macam-Macam Sorting:
1. Buble Sort
Bubble Sort atau metode gelembung adalah metode pengurutan dengan cara
melakukan penukaran data dengan tempat disebelahnya jika data sebelum
lebih besar dari pada data sesudahnya secara terus menerus sampai bisa
dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan, atau telah
terurut dengan benar. Jika tidak ada perubahan berarti data sudah terurut.
Disebut pengurutan gelembung karena masing-masing kunci atau data akan
dengan lambat menggelembung atau membandingan data ke posisinya yang
tepat.
2. Insertion Sort

1|Page
Praktikum Struktur Data

MODUL 2 – SORTING
Insertion Sort adalah Metode Literasi (pengulangan) yang menginsert atau
menyisipkan setiap elemen ketempat yang sesuai(setelah dibandingkan dengan
elemen kiri dan kanannya) atau kita bisa mengumpamakan metode ini seperti
bermain kartu, yaitu satu demi satu akan menginsert ketempat yang sesuai.
3. Selection Sort
Selection Sort adalah metode yang digunakan dengan cara memilih data yang
akan diurutkan menjadi dua bagian, yang belum diurutkan, dan meja yang
telah diurutkan. Elemen pertama yang diambil dari bagian array yang belum
diurutkan dan kemudian diletakan pada posisinya sesuai dengan bagian lain
array yang telah di urutkan. Tahapan ini dilakukan secara berulang-ulang
hingga tidak ada lagi elemen yang tersisa pada bagian array yang belum
diurutkan.
4. Quick Sort
Quick Sort adalah Metode yang dimulai dengan menscan daftar yang disortir
untuk nilai median. Nilai ini yang disebut tumpuan atau (pivot), kemudian
dipindahkanke satu sisi pada daftar dan butir-butir yang nilainya lebih besar
dari tumpuan di pindahkan ke sisi lain.
5. Merge Sort
Merge Sort adalah metode yang digunakan untuk menyusun daftar dengan
cara membagi daftar menjadi dua bagian yang lebih kecil. Kemudian kedua
daftar yang baru tersebut disusun secara terpisah dan diurutkan masing-
masing. Kemudian hasil sortir dari setiap bagian tersebut digabungkan dan
diurutkan lagi hingga menghasilkan urutan yang sudah tersortir. Intinya
menggabungkan dua array yang sudah tersortir yaitu array A dan array B
kemudian membuat array ketiga yaitu array C yang berguna untuk
menampung nilai-nilai elemen dari array A dan array B.
B. IMPLEMENTASI
1. Procedure
#include <iostream>
#include <conio.h>
#include <iomanip>

2|Page
Praktikum Struktur Data

MODUL 2 – SORTING
#include<stdlib.h>
#include <windows.h>
using namespace std;
//agar gotoxy bisa digunakan di dev C++
/*===================================================
===================
====*/
void gotoxy(int x, int y)
{
COORD coord;
coord.X = x;
coord.Y = y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),
coord);
}
/*===================================================
===================
====*/
struct mhs
{
char nama[20], nim[15];
int umur;
};
mhs data[20];
int n;
void input()
{
system ("cls");
cout<<" Masukkan Jumlah Mahasiswa : ";cin>>n;
cout<<endl;

3|Page
Praktikum Struktur Data

MODUL 2 – SORTING
for (int i=0; i<n; i++)
{
system ("cls");
cout<<" Data ["<<(i+1)<<"]"<<endl;
cout<<" Nama : ";cin>>data[i].nama;
cout<<" NIM : ";cin>>data[i].nim;
cout<<" Umur : ";cin>>data[i].umur;
}
};
void urut()
{
mhs temp;
int max;
for(int i=0; i<n; i++)
{
for(int j=0; j<n-1; j++)
{
if(data[j].umur<data[j+1].umur)
{
temp=data[j];
data[j]=data[j+1];
data[j+1]=temp;
}
}
}
system ("cls");

cout<<"|==============================================
=====|"<<endl;
cout<<"| DATA MAHASISWA |"<<endl;

4|Page
Praktikum Struktur Data

MODUL 2 – SORTING
cout<<"|==============================================
=====|"<<endl;
cout<<"| No | Nama | NIM | Umur |"<<endl;

cout<<"|==============================================
=====|"<<endl;
for (int i=0; i<n; i++)
{
gotoxy(1,6+i);cout<<"| | | |
|"<<endl;
gotoxy(3,6+i);cout<<(i+1);
gotoxy(8,6+i);cout<<data[i].nama;
gotoxy(27,6+i);cout<<data[i].nim;
gotoxy(44,6+i);cout<<data[i].umur;
}
cout<<endl;

cout<<"|==============================================
=====|"<<endl;
getch();
};
main()
{
char pil;
do
{
system ("cls");
cout<<"|====================================|"<<endl;
cout<<"| DATA MAHASISWA |"<<endl;
cout<<"|====================================|"<<endl;
cout<<"| 1. Masukkan Data Mahasiswa |"<<endl;

5|Page
Praktikum Struktur Data

MODUL 2 – SORTING
cout<<"| 2. Urutkan Data Mahasiswa |"<<endl;
cout<<"| 3. Keluar |"<<endl;
cout<<"|====================================|"<<endl;
cout<<" Pilihan : ";cin>>pil;
if (pil == '1')
{
input();
}
else if (pil == '2')
{
urut();
}
else if (pil == '3')
{
}
else
{
cout<<"Salah input"<<endl;
getch();
}
}while(pil!='3');
}

IV. KEGIATAN PRAKTIKUM


Buatlah coding dari masing masing sorting.
V. TUGAS PRAKTIKUM
Buatlah sebuah program dengan menggunakan bahasa pemrograman C yang
mengimplementasikan salah satu dari algoritma sorting diatas.

6|Page

Anda mungkin juga menyukai