Anda di halaman 1dari 10

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

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.

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])

{ 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-.

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++)

{ 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; }

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

diassignmentkan dengan value dari variable j yang lama. Dengan begitu value akan bertukar tempat.

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.

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)

10