Anda di halaman 1dari 19

BAB 1

PENDAHULUAN PRAKTIKUM

1.1 Definisi Sorting


Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu.
Urutan objek tersebut dapat menaik (ascending = dari data kecil ke data lebih besar) atau
menurun (descending = dari data besar ke data lebih kecil).

1.2 Jenis-jenis Sorting


Terdapat beberapa jenis sorting dalam pemrograman, diantaranya bubble sort, selection sort,
insertion sort, quick sort, shell sort, heap sort, merge sort, tree sort, dan radix sort. Namun
dalam praktikum kali ini akan dibahas 3 jenis sorting, diantaranya bubble sort, selection sort,
dan insertion sort.
a. Bubble Sort
Bubble sort dilakukan dengan membandingkan data (bilangan) dengan data pada
urutan berikutnya, jika data pertama lebih besar dari data berikutnya maka data
dipertukarkan. Pembandingan dilanjutkan sampai data terakhir. Kemudian
pembandingan dimulai dari data pertama lagi, dan seterusnya.
Algoritma Bubble Sort:
1) Mulai dari elemen K=N,N-1,N-2,..2 bandingkan L[K] jika L[K] < L[K-1],
pertukarkan L[K] dengan L[K-1]. Pada akhir langkah 1, elemen L[1] berisi
harga minimum pertama.
2) Mulai dari elemen K=N,N-1,N-2,..3 bandingkan L[K] jika L[K] < L[K-1],
pertukarkan L[K] dengan L[K-1]. Pada akhir langkah 2, elemen L[2] berisi
harga minimum kedua dan L[1]..L[2] terurut.
3) Mulai dari elemen K=N,N-1,N-2,..4 bandingkan L[K] jika L[K] < L[K-1],
pertukarkan L[K] dengan L[K-1]. Pada akhir langkah 3, elemen L[3] berisi
harga minimum ketiga dan L[1]..L[3] terurut.
4) Mulai dari elemen K=N,N-1,N-2,..4 bandingkan L[K] jika L[K] < L[K-1],
pertukarkan L[K] dengan L[K-1].
Deskripsi Bubble Sort:
Jika data kedua memiliki nilai lebih kecil
dibandingkan data pertama, maka data keduanya
dilakukan pertukaran posisi (pengurutan ascending)

Gambar 6.1 Deskripsi Bubble Sort (Ascending)


b. Selection Sort
Metode ini memiliki konsep memilih data yang maksimum/minimum dari suatu
kumpulan data larik L, lalu menempatkan data tersebut ke elemen paling akhir atau
paling awal sesuai pengurutan yang diinginkan. Data maksimum/minimum yang
diperoleh, diasingkan ke tempat lain, dan tidak diikutsertakan pada proses pencarian
data maksimum/minimum berikutnya.
Algoritma Selection Sort:
1) Cari data terkecil dalam interval j = 0 sampai dengan j = N-1
2) Jika pada posisi pos ditemukan data yang terkecil, tukarkan data diposisi pos
dengan data di posisi i jika k.
3) Ulangi langkah 1 dan 2 dengan j = j + i sampai dengan j = N-1, dan seterusnya
sampai j = N - 1.
Deskripsi Selection Sort: Langkah kedua menentukan nilai maksimum dari
deretan data yang ada untuk diletakkan pada urutan
Langkah pertama dilakukan dengan membandingkan data paling akhir, dengan menukar data pada posisi data
pertama dengan data kedua, jika data kedua < data pertama yang ditukar, dalam hal ini dengan data “2”.
maka lakukan langkah kedua.

Gambar 6.2 Deskripsi Selection (Ascending)


c. Insertion Sort
Insertion sort adalah sebuah algoritma pengurutan yang membandingkan dua elemen
data pertama, mengurutkannya, kemudian mengecek elemen data berikutnya satu
persatu dan membandingkannya dengan elemen data yang telah diurutkan. Karena
algoritma ini bekerja dengan membandingkan elemen-elemen data yang akan
diurutkan, algoritma ini termasuk pula dalam comparison-based sort.
Proses pengurutan dengan menggunakan algoritma Insertion Sort dilakukan dengan
cara membandingkan data ke-i (dimana i dimulai dari data ke-2 sampai dengan data
terakhir) dengan data berikutnya. Jika ditemukan data yang lebih kecil maka data
tersebut disisipkan ke depan sesuai dengan posisi yang seharusnya.
Algoritma Insertion Sort:
1) i  1
2) Selama (i < n) maka kerjakan bari ke-3 sampai dengan baris ke-9
3) key  A[i]
4) j  i – 1
5) Selama j >= 0 dan (A[j] > key) maka kerjakan baris ke-6 dan 7
6) A[j + 1]  A[j]
7) j  j – 1
8) A[j+1]  key
9) i  i + 1
Deskripsi Selection Sort.
1) Bagian yang berwarna abu-abu (dua bilangan pertama) sekarang dalam
keadaan terurut secara relatif.

2) Berikutnya, kita perlu menyisipkan bilangan ketiga (4) ke dalam bagian


biru/abu-abu sehingga setelah penyisipan tersebut, bagian biru/abu-abu tetap
dalam keadaan terurut secara relatif.

3) Langkah pertama dengan mengambil bilangan ketiga (4).

4) Langkah Kedua dengan menggeser bilangan kedua (10) shg ada ruang untuk
disisipi.

5) Langkah Ketiga dengan menyisipkan bilangan 4 ke posisi yang tepat.

6) Sekarang, tiga bilangan pertama sudah terurut secara relatif dan kita sisipkan
bilangan keempat kepada tiga bilangan pertama tsb. Setelah penyisipan,
empat bilangan pertama haruslah dalam keadaan terurut secara relatif.
7) Ulangi proses tsb sampai bilangan terakhir disisipkan.

8) Proses Sorting Selesai


BAB II

TUGAS PENDAHULUAN

2.1 Buatlah program pengurutan data menggunakan metode Bubble Sort, Selection
Sort, dan Insertion Sort secara Descending!
 Bubble Sort
Listing Program
#include <iostream>
#include <conio.h>
using namespace std;

int data[100],data2[100];
int n;
int tukar (int a,int b)
{
int t;
t=data[b];
data[b]=data[a];
data[a]=t;
}
int input ()
{
cout<<"masukkan jumlah data = ";
cin>>n;
for (int i=0; i<n; i++)
{
cout<<"masukkan data ke-"<<(i+1)<<"=";
cin>>data[i];
data2[i]=data[i];
}
cout<<endl;
}
int tampil ()
{
for (int i=0; i<n; i++)
{
cout<<data[i]<<" ";
}
cout<<endl;
}

int bubble_sort ()
{
for (int i=1; i<n; i++)

{
for (int j=n-1; j>=i; j--)
{
if (data[j]>data[j-1])tukar(j,j-1);
}
tampil ();
}
cout<<endl;
}

int main ()
{
cout<<"-=-= Bubble Sort =-=-"<<endl; cout<<" "<<endl;
cout<<"NAMA : SEPTIAN LUKAS C"<<endl;
cout<<"KELAS : TI A"<<endl;
cout<<"NIM : 15104410020"<<endl; cout<<" "<<endl;
cout<<"*===========*"<<endl;
cout<<"*bubble sort*"<<endl;
cout<<"*===========*"<<endl;
input ();
cout<<"=================="<<endl;
cout<<"proses bubble sort"<<endl;
cout<<"=================="<<endl;
tampil ();
bubble_sort ();
cout<<"==========="<<endl;
cout<<"terimakasih"<<endl;
cout<<"==========="<<endl;
getch();
}
Input Program
Compile Program

Output Program

Logika program:
Pertama program akan menjalankan perintah program, kemudian program akan
memerintahkan berapa banyak jumlah data yang ingin di masukkan, kemudian program
akan memerintahkan untuk memasukkan data, sejumlah yang di masukkan tadi, kemudian
program akan menampilkan hasil data berupa pengurutan secara descending, setelah itu
program pun selesai.

 Insertion Sort
Listing Program
#include <conio.h>
#include <iostream>
using namespace std;

int main ()
{
cout<<"-=-= INSERTION SORT =-=-"<<endl; cout<<" "<<endl;
cout<<"NAMA : SEPTIAN LUKAS C"<<endl;
cout<<"KELAS : TI A"<<endl;
cout<<"NIM : 15104410020"<<endl; cout<<" "<<endl;
int i, j, a;
int n,urut,temp;
int data[100];

cout<<"\n Masukkan jumlah data : ";


cin>>n;
cout<<endl;
urut = 1;
for(i=1; i<=n; i++)
{
cout<<" Masukan data ke "<<i<<"=";
cin>>data[i];
}
for(i=0; i<=n; i++)
{
a = i;
for(j=urut; j<=n; j++)
{
if(data[j] > data[a])
{
a = j;
if(data[i] != data[a])
{
temp = data[i];
if(data[i] < data[a])
{
data[i] = data[a];
data[a] = temp;
}
}
}
}
urut=urut+1;
}
cout<<"\n Data setelah di urutkan (descending) : ";
for(i=1; i<=n; i++) {
cout<<" "<<data[i];
}
getche();
}
Input Program
Compile Program

Output Program

Logika Program
Pertama program akan menjalankan perintah program, kemudian program akan
memerintahkan berapa banyak jumlah data yang ingin di masukkan, kemudian program
akan memerintahkan untuk memasukkan data, sejumlah yang di masukkan tadi, kemudian
program akan menampilkan hasil data berupa pengurutan secara descending, setelah itu
program pun selesai.

 Selection Sort
Input Program
#include <iostream>
using namespace std;
int main()
{
cout<<"-=-= SELECTION SORT =-=-"<<endl; cout<<" "<<endl;
cout<<"NAMA : SEPTIAN LUKAS C"<<endl;
cout<<"KELAS : TI A"<<endl;
cout<<"NIM : 15104410020"<<endl; cout<<" "<<endl;
int i,j,n,data[10],temp;
cout<<"\n Masukan jumlah data= ";
cin>>n;
cout<<endl;
for(i=1;i<=n;i++)
{
cout<<" Masukkan data ke "<<i<<"=";cin>>data[i];
}
for(i=1;i<=n;i++)
{
for(j=i+1;j<=n;j++)
{
if(data[i]<data[j])
{
temp=data[i];
data[i]=data[j];
data[j]=temp;
}
}
}
cout<<"\n Data setelah di urutkan (descending) = ";
for(i=1;i<=n;i++)
cout<<data[i]<<" ";
}
Input Program
Compile Program

Output Program

Logika Program
Pertama program akan menjalankan perintah program, kemudian program akan
memerintahkan berapa banyak jumlah data yang ingin di masukkan, kemudian program
akan memerintahkan untuk memasukkan data, sejumlah yang di masukkan tadi, kemudian
program akan menampilkan hasil data berupa pengurutan secara descending, setelah itu
program pun selesai.
BAB III

PEMBAHASAN PRAKTIKUM

3.1 Latihan 1
Listing Program
#include <iostream>
#include <conio.h>
#include <stdio.h>
using namespace std;

int data[10], data2[10];


int n;
int tukar (int a, int b)

{
int t;
t=data[b];
data[b]=data[a];
data[a]=t;
}
void input ()
{
cout<<"Masukkan jumlah data = ";
cin>>n;
cout<<"------------------------"<<endl;
for(int i=0;i<n;i++)
{
cout<<"Masukkan data ke- " <<(i+1)<<" = ";
cin>>data[i];
data2[i]=data[i];
}
cout<<endl;
}
void tampil ()
{
for(int i=0;i<n;i++)
{
for(int i=0;i<n;i++)
{
cout<<data[i]<<" ";
}
cout<<endl;
}
cout<<endl;
}
void bubble_sort()
{
for(int i=1;i<n;i++)
{
for (int j=n-1;j>=i;j--)
{
if(data[j]<data[j-1]) tukar(j,j-1);
}
tampil ();
}
cout<<endl;
}
int main()
{
cout<<"*--------------------------*"<<endl;
cout<<"*Bubble Sort "<<endl;
cout<<"*--------------------------*"<<endl;
input();
cout<<"Proses Buuble Sort"<<endl;
cout<<"*--------------------------*"<<endl;
tampil ();
bubble_sort();
cout<<"--------------------------"<<endl;
cout<<"TERIMA KASIH "<<endl;
cout<<"--------------------------"<<endl;
getch ();
}
Input Program
Compile Program

Output Program

Logika Program
Pertama program akan menjalankan perintah program, kemudian program akan
memerintahkan berapa banyak jumlah data yang ingin di masukkan, kemudian program
akan memerintahkan untuk memasukkan data, sejumlah yang di masukkan tadi, kemudian
program akan menampilkan hasil data berupa pengurutan secara ascending, setelah itu
program pun selesai.

3.2 Latihan 2
Listing Program
#include <conio.h>
#include <iostream>
using namespace std;
int data[10],data2[10];
int n;

void tukar (int a,int b)


{
int t;
t=data[b];
data[b]=data[a];
data[a]=t;
}

void selection_sort ()
{
int pos,i,j;
for (i=1; i<=n-1; i++)
{
pos=i;
for (j=i+1; j<=n; j++)
{
if (data[j]<data[pos])pos=j;
}
if (pos!=i) tukar (pos,i);
}
}

int main ()
{
cout<<"==PROGRAM SELECTION SORT=="<<endl;
cout<<" Masukkan jumlah data :";
cin>>n;
for(int i=1; i<=n; i++)
{
cout<<" Masukkan data ke "<<i<<" : ";
cin>>data[i];
data2[i]=data[i];
}
selection_sort ();
cout<<"\n Data setelah di sort :";
for (int i=1; i<=n; i++)
{
cout<<" "<<data[i];
}
cout<<"\n\n Sorting selesai";
cout<<"\n\n TERIMA KASIH";
getch ();
}

Input Program
Compile Program

Output Program

Logika program:
Pertama program akan menjalankan perintah program, kemudian program akan
memerintahkan berapa banyak jumlah data yang ingin di masukkan, kemudian program
akan memerintahkan untuk memasukkan data, sejumlah yang di masukkan tadi, kemudian
program akan menampilkan hasil data berupa pengurutan secara ascending, setelah itu
program pun selesai.

3.3 Latihan 3
Listing Program
#include <iostream>
#include <conio.h>
using namespace std;
int data [10],data2 [10];
int n;
int tukar (int a,int b)
{
int t;
t=data[b];
data[b]=data[a];
data[a]=t;

}
int insertion_sort ()
{
int temp,i,j;
for (i=1; i<=n; i++)
{temp=data[i];
j=i-1;
while (data[j]>temp&&j>=0)
{
data[j+1]=data[j]; j--;
}
data[j+1]=temp;
}
}
int main ()
{
cout<<" PROGRAM INSERTION SORT"<<endl;
cout<<" ======================"<<endl;
cout<<" Masukkan jumlah data : ";
cin>>n;
cout<<" ======================"<<endl;
for (int i=1; i<=n; i++)
{
cout<<" Masukkan data ke "<<i<< ":";
cin>>data[i];
data2[i]=data[i];
}
insertion_sort ();
cout<<"_____________________"<<endl;
cout<<" Data setelah di sort ";
for (int i=1; i<=n; i++)
{cout<<" "<<data[i];
}
getch ();
}
Input Program

Compile Program

Output Program

Logika Program:
Pertama program akan menjalankan perintah program, kemudian program akan
memerintahkan berapa banyak jumlah data yang ingin di masukkan, kemudian program
akan memerintahkan untuk memasukkan data, sejumlah yang di masukkan tadi, kemudian
program akan menampilkan hasil data berupa pengurutan secara ascending, setelah itu
program pun selesai.
BAB IV

PENUTUP

4.1 Kesimpulan
Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu.
Urutan objek tersebut dapat menaik (ascending = dari data kecil ke data lebih besar) atau
menurun (descending = dari data besar ke data lebih kecil). Banyak sekali jenis sorting,
di antaranya adalah Bubble sort, Selection sort, Insertion sort, dll. Jenis-jenis sorting
tersebut memiliki aturan atau metode sendiri-sendiri dalam mengatur sekumpulan objeck
tersebut.

4.2 Saran
Sebaiknya kita dapat mempelajari bagaimana logika atau algoritma sorting, karena akan
membantu kita dalam mengatur data, terutama pada data skala besar. Sedikit saran untuk
teknis, sebaiknya modul pada latihan benar-benar program yang sudah benar, jadi kami
mahasiswa tidak mengkoreksi untuk membenarkannya atau kalau tidak sebaiknya tidak
usah ada latihan, langsung tugas saja, karena lebih baik membuat program baru dari
pada harus mengkoreksi program yang sudah ada, terima kasih.

Anda mungkin juga menyukai