Anda di halaman 1dari 10

LAPORAN PRAKTIKUM SEMENTARA ALGORITMA & STRUKTUR DATA 1 SORTING (SELECTION, BUBBLE)

Disusun oleh : Cintia Yosfin Samalle 201301041

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 Sorting adalah suatu proses pengurutan data yang sebelumnya disusun secara acak atau tidak teratur menjadi urut atau teratur menurut suatu aturan tertentu. Dalam melakukan proses sorting terdapat beberapa hal yang mempengaruhi kecepatan proses sorting itu sendiri, diantaranya adalah jumlah operasi perbandingan yang digunakan dan juga jumlah operasi pemindahan data yang dilakukan. Makin banyak jumlah operasi perbandingan maka makin lama proses sort itu berjalan. Begitu juga dengan operasi pemindahan data. Jika di dalam suatu file tersimpan sejumlah record yang mempunyai volume cukup besar, maka anda akan mengalami kesulitan saat mencari record atau data yang anda inginkan apabila data tersebut tidak diurutkan terlebih dahulu. Dengan menggunakan teknik Sorting maka permasalahan tersebut dapat dangan mudah diatasi.

2.

Selection Sort Selection sort mempunyai mekanisme sebagai berikut. Mula-mula suatu petunjuk (posAwal), yang menunjukan posisi atau lokasi awal pengurutan data, diatur agar berisi index pertama dalam larik. Kemudian dicari bilangan terkecil yang terletak antara posisi sesudah yang ditunjuk oleh penunjuk tersebut hingga elemen yang terakhir dalam larik. Lokasi bilangan tersebut ditunjuk oleh posMin. Selanjutnya, tukarkan nilai bilangan terkecil tersebut dengan nilai yang ditunjuk oleh posAwal. Proses tersebut diulang dari posAwal bernilai 0 hingga n-2, dengan n menyatakan jumlah elemen dalam larik.

3.

Bubble Sort Algoritma Bubble Sort memiliki ciri khusus, yaitu dengan melakukan pembandingan dan apabila urutan data tidak terpenuhi maka dilakukan pertukaran. Sekalipun teknik ini bukanlah termasuk jenis pertukaran yang cepat, teknikini juga bukan jenispertukaran yang paling lambat.
2

BAB II PENJELASAN PROGRAM

Pada penjelasan program bab ini akan dijelaskan mengenai bagaimana melakukan pemrograman C++ dengan menggunakan teknik sorting (selection, bubble) secara sederhana sesuai dengan modul praktikum. Program Praktikum 6.1
/* * Praktikum6.1.cpp * * Created on: Apr 22, 2014 * Author: STIKOM32 */

#include <iostream> using namespace std; int main(){ int i, j, iMin, n, Urut, Tmp, 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 = i; 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 6.1

Penjelasan Program 6.1 Berukut penjelasan dari Listing Program 6.1 : 1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang jika didalamnya terdapat sebuah perintah atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca oleh compiler. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai <iostream> untuk memanggil fungsi cout dan cin dalam C++. using namespace std; adalah standar deviasi dalam sebuah program dalam bahasa pemrograman C++. Tanda kurung kurawal {} dimaksudkan untuk mengawali dan mengakhiri bagian main. Tanda ; digunakan untuk mengakhiri sebuah pernyataan. int main(),menyatakan tipe nilai balik fungsi main. cout dipakai untuk menampilkan teks/data ke layar monitor sehingga menjadi output.
4

2.

3. 4.

5. 6. 7. 8.

9. 10.

return 0 dimaksudkan untuk menyatakan nilai balik main. Tanda << adalah tanda spesifik dalam cout. Tanda tersebut menyatakan bahwa nilai di kanannya akan dirim ke layar. cout dan cin disini maksudnya adalah sebagai fungsi input dan output sebuah program. \n digunakan untuk memindahkan kursor ke baris berikutnya.
int Tmp; Tmp penampung elemen array int Arr[50]; Deklarasi array Urut = 1; for(i=0; i<n; i++){ cout<<"Masukkan data ke " << i+1 << "="; cin>>Arr[i];

11. 12. 13. 14. 15.

Untuk menginputkan array 16. 17.


for(i=0; i<n; i++){

Perulangan untuk inputan array

for(i=0; i<n-1; i++){ iMin = i; 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; }

Proses yang dilakukan saat sorting ascending dengan metode selection sort. 18. 19. 20. 21. 22. 23. n-1 artinya elemen terakhir tidak dihitung. iMin = i; set min = index array. for(j=Urut; j<n; j++){ proses untuk melakukan perulangan sebagaipembanding. if(Arr[j] < Arr[iMin]){ proses untuk mencari data yang kecil. iMin = j; min diganti dengan yang lebih kecil. if(Arr[i] != Arr[iMin]){ proses untuk mencari data yang berbeda.
for(i=0; i<n-1; i++){

24. 25. 26. 27. 28. 29.

tempat untuk menampung array yang lama. if(Arr[i] > Arr[iMin]) proses ini akan dilakukan atau akan terjadi jika array yang lama lebih besar daripada array yang baru. Arr[i] = Arr[iMin]; jika pernyataan benar maka proses ini akan dilakukan, yaitu mengganti array yang lama dengan array yang baru. Arr[iMin] = Tmp; mengganti array baru dengan array lama. Urut = Urut+1; variable urut nilainya akan ditambah dengan 1.
Tmp = Arr[i]; cout<<"\nSetelah Pengurutan\n"; for(i=0; i<n; i++){ cout<<"Elemen ke " << i+1 <<"="<<Arr[i]<<endl;

Untuk menampilkan tampilan hasil program.

Program 6.2
/* * Praktikum6.2.cpp * * Created on: Apr 22, 2014 * Author: STIKOM32 */ #include<iostream> using namespace std; int main() { int i , j , 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<<"\nElemen ke " << i+1 << ":" <<arr[i]<<endl; } return 0; }

Output Program 6.2

Penjelasan Program 6.2 Berukut penjelasan dari Listing Program 6.2 : 1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang jika didalamnya terdapat sebuah perintah atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca oleh compiler. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai <iostream> untuk memanggil fungsi cout dan cin dalam C++. using namespace std; adalah standar deviasi dalam sebuah program dalam bahasa pemrograman C++. Tanda kurung kurawal {} dimaksudkan untuk mengawali dan mengakhiri bagian main. Tanda ; digunakan untuk mengakhiri sebuah pernyataan.
7

2.

3. 4.

5. 6.

7. 8. 9. 10.

int main(),menyatakan tipe nilai balik fungsi main. cout dipakai untuk menampilkan teks/data ke layar monitor sehingga menjadi output. return 0 dimaksudkan untuk menyatakan nilai balik main. Tanda << adalah tanda spesifik dalam cout. Tanda tersebut menyatakan bahwa nilai di kanannya akan dirim ke layar. cout dan cin disini maksudnya adalah sebagai fungsi input dan output sebuah program. \n digunakan untuk memindahkan kursor ke baris berikutnya.

11. 12.

BAB III KESIMPULAN

Sorting adalah suatu proses pengurutan data yang sebelumnya disusun secara acak atau tidak teratur menjadi urut atau teratur menurut suatu aturan tertentu. Dalam melakukan proses sorting terdapat beberapa hal yang mempengaruhi kecepatan proses sorting itu sendiri, diantaranya adalah jumlah operasi perbandingan yang digunakan dan juga jumlah operasi pemindahan data yang dilakukan. Makin banyak jumlah operasi perbandingan maka makin lama proses sort itu berjalan. Begitu juga dengan operasi pemindahan data. Sorting dibagi menajdi beberapa bagian, diantaranya : Selection sort mempunyai mekanisme sebagai berikut: Mula-mula suatu petunjuk (posAwal), yang menunjukan posisi atau lokasi awal pengurutan data, diatur agar berisi index pertama dalam larik. Kemudian dicari bilangan terkecil yang terletak antara posisi sesudah yang ditunjuk oleh penunjuk tersebut hingga elemen yang terakhir dalam larik. Lokasi bilangan tersebut ditunjuk oleh posMin. Bubble Sort memiliki ciri khusus, yaitu dengan melakukan pembandingan dan apabila urutan data tidak terpenuhi maka dilakukan pertukaran.

DAFTAR PUSTAKA 1. Ardhana, YM Kusuma. 2013. Struktur Data dalam Ilustrasi Eclups Indigo C ++. Yogyakarta: CAPS (Center of Academic Publishing Service). Kadir, Abdul. 2012. Buku Pintar C++ Untuk Pemula. Yogyakarta: MediaKom. Modul praktikum algoritma dan struktur data 1 (bab 6 sorting (selection, bubble)).

2. 3.

10

Anda mungkin juga menyukai