Upload
giseyaki
View
174
Download
0
Embed Size (px)
DESCRIPTION
Laporan Praktikum Sementara Algoritma dan Struktur Data 1 SORTING(Selection, Bubble)S1 Sistem InformasiSTIKOM Yos Sudarso PurwokertoAlbert SugihartonoNIM 201301018
Citation preview
LAPORAN PRAKTIKUM SEMENTARA
SORTING(SELECTION, BUBBLE)
Disusun oleh :
Albert Sugihartono
201301018
Dosen pengampu :
Yosef Murya Kusuma Ardhana.S.T., M.Kom
JURUSAN SISTEM INFORMASI
SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO
PURWOKERTO
2014
2
BAB I
TEORI DASAR
1. Pengantar
Sort atau sorting adalah suatu proses pengurutan data yang sebelumnya disusun
secara acak atau tidak teratur menjadi urut dan teratur menurut suatu aturan
tertentu. Biasanya pengurutan terbagi menjadi dua yaitu ascending dan
descending. Dalam melakukan proses sorting terdapat beberapa hal yang
mempengaruhi kecepatan sorting itu sendiri, diantaranya jumlah operasi
perbandingan yang dilakukan dan juga jumlah operasi pemindahan data yang
dilakukan. Pada praktikum yang akan dilakukan, digunakan 2 jenis short yaitu
selection sort dan bubble sort.
2. Selection sort
Selection sort adalah suatu metode pengurutan yang membandingkan elemen yang ada
sekarang dengan elemen atau bilangan berikutnya sampai ke elemen atau bilangan yang
terakhir. Jika diketemukan bilangan yang lebih kecil daripada bilangan yang ada sekarang,
maka akan dicatat dan dipertukarkan posisinya.
3. Bubble sort
Bubble sort merupakan suatu metode pengurutan yang membandingkan data yang sekarang
dengan data berikutnya. Apabila data yang sekarang lebih besar daripada data berikutnya
maka posisi akan ditukar, bila tidak maka tidak perlu ditukar.
3
BAB II
PENJELASAN PROGRAM
1. Latihan Praktikum
Pada bab ini membahas tentang listing program pada bagian modul yang akan digunakan
untuk latihan. Latihan yang akan dilakukan mencakup pada Listing
program_praktikum_6.1.cpp; dan program_praktikum_6.2.cpp.
Listing program_praktikum_6.1.cpp
/*
* program_praktikum_6.1.cpp
*
* Created on: Apr 18, 2014
* Author: ALBERT
*/
#include <iostream>
using namespace std;
int main()
{
int i,j,iMin;
int n,urut;
int tmp;
int arr[50];
cout<<"Inputkan banyak data yang akan diurutkan : ";
cin>>n;
urut=1;
for(i=0;i<n;i++)
{
cout<<"Masukkan data ke "<<i+1<<"=";
cin>>arr[i];
}
for(i=0;i<n-1;i++)
{
iMin=1;
for(j=urut;j<n;j++)
{
if(arr[j]<arr[iMin])
{
iMin=j;
if(arr[i]!=arr[iMin])
{
tmp=arr[i];
if(arr[i]>arr[iMin])
4
{
arr[i]=arr[iMin];
arr[iMin]=tmp;
}
}
}
}
urut=urut+1;
}
cout<<"\nSetelah Pengurutan\n";
for(i=0;i<n;i++)
{
cout<<"Elemen ke "<<i+1<<" = "<<arr[i]<<endl;
}
return 0;
}
Output program_praktikum_6.1.cpp
Hasil output dari program_praktikum_6.1.cpp adalah sebagai berikut :
Penjelasan program_praktikum_6.1.cpp
Berikut penjelasan dari Listing program_praktikum_6.1.cpp :
1. Pada awal program, dideklarasikan variable-variabel sorting yaitu i untuk data ke- atau
tepatnya untuk indeks array, j dan iMin untuk membandingkan data yang besar atau kecil,
n adalah jumlah data,variable tmp digunakan sebagai tempat penampungan array sementara
dan arr[50] digunakan untuk array data ke-.
5
2. Untuk input array digunakan perulangan for dimana variable i diset 0 dan apabila i<n
dimana n adalah jumlah yang diinputkan user, maka i bertambah sebanyak 1. Ini akan
memunculkan data ke-i untuk input data arraynya hingga i mencapai dibawah n.
3. Sorting diatas merupakan sorting selection secara ascending dimana dilakukan perulangan
for untuk membandingkan data yang ada yaitu iMin (indeks minimum) yang
diassignmentkan kondisinya sama dengan indeks array sekarang (i).
4. iMin dibandingkan dengan variable j yang dsudah diassignmentkan dengan Urut (value =
1) dengan menggunakan fungsi if. Jika j terbukti lebih kecil daripada iMin maka iMin akan
diassignmentkan sama dengan j.
Listing program_praktikum_6.2.cpp
/*
* program_praktikum_6.2.cpp
*
* Created on: Apr 18, 2014
* Author: Emporio-Ivankov
*/
#include <iostream>
using namespace std;
int main()
{
int j,i,n;
int tmp;
int arr[50];
cout<<"Inputkan banyak data yang akan diurutkan : ";
cin>>n;
for(i=0;i<n;i++)
6
{
cout<<"Masukkan data ke "<<i+1<<" = ";
cin>>arr[i];
}
for(i=1;i<n;i++)
{
for(j=0;j<n-1;j++)
{
if(arr[j]>arr[j+1])
{
tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
}
}
cout<<"\nSetelah Pengurutan Data\n";
for(i=0;i<n;i++)
{
cout<<"Elemen ke "<<i+1<<" : "<<arr[i]<<endl;
}
return 0;
}
7
Output program_praktikum_6.2.cpp
Penjelasan program_praktikum_6.2.cpp
Berikut penjelasan listing program_praktikum_6.2.cpp :
1. Pada awal program, dideklarasikan variable-variabel sorting yaitu i untuk data ke- atau
tepatnya untuk indeks array, j membandingkan data yang besar dengan kecil, n adalah
jumlah data,variable tmp digunakan sebagai tempat penampungan array sementara dan
arr[50] digunakan untuk array data ke-.
2. Untuk input array digunakan perulangan for dimana variable i diset 0 dan apabila i<n
dimana n adalah jumlah yang diinputkan user, maka i bertambah sebanyak 1. Ini akan
memunculkan data ke-i untuk input data arraynya hingga i mencapai dibawah n.
3. Untuk proses sort program diatas menggunakan metode bubble sort secara ascending.
Pertama akan dilakukan pengulangan for pada variable j dengan variable j diset 0 hingga j
lebih kecil dari jumlah n-1;n adalah jumlah input yang diberi user.
4. Kemudian variable j dimasukkan kedalam array dan variable j (arr[j]) akan dibandingkan
valuenya dengan value dari variable j setelahnya (arr[j + 1]). Jika ternyata variable j
sebelumya lebih besar dari variable j setelahnya, variable j sebelumnya akan ditampung
sementara pada variable tmp (tmp = ar[j]) sementara variabel j lama akan diassignmentkan
dengan value dari variable j yang baru, kemudian variable j yang baru akan
8
diassignmentkan dengan value dari variable j yang lama. Dengan begitu value akan
bertukar tempat.
9
BAB III
KESIMPULAN
Kesimpulan yang dapat diambil adalah sorting sangat berguna untuk mempermudah dalam
pengurutan data, karena biasanya data yang ada tidaklah sedikit. Metode sorting untuk praktikum
ini ada 2 macam yaitu metode selection sort dan bubble sort. Perbedaannya adalah selection sort
melakukan pengecekan pada data satu persatu. Lain dengan bubble sort, bubble sort memiliki ciri
khusus dimana bubble sort melakukan perbandingan data sebelum dan setelahnya yang mana
akan melakukan pertukaran jika terbukti tidak sesuai dengan aturan yang ada. Untuk kecepatan
sorting, apabila jumlah operasi perbandingan semakin banyak ataupun operasi pemindahan data
yang banyak maka kecepatan sorting melambat.
10
Sumber Referensi
Kristanto, Andi. 2003. Struktur Data Dengan C++
Yogyakarta : Graha Ilmu
Ardhana. YM Kusuma. 2013. Struktur Data Dalam Ilustrasi Eclipse Indigo C++
Yogyakarta : CAPS (Center of Academic Publishing Service)