LAPORAN PRAKTIKUM
ALGORITMA DAN STRUKTUR DATA I
SORTING
Modul VII
Disusun Oleh : Syukur Jaya Mendrofa
201501072
Dosen Pengampu :
Oskar Ika Adi Nugroho S.T., MT
JURUSAN SISTEM INFORMASI
SEKOLAH TINGGI ILMU KOMPUTER (STIKOM)
“YOS SUDARSO”
PURWOKERTO
2016
BAB I
Bubble Sort
Bubble sort (metode gelembung) adalah metode/algoritma pengurutan dengan cara melakukan penukaran data dengan tepat sebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada lagi perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci akan dengan lambat menggelembung ke posisi yang tepat. Ilutrasi konsep dari bubble sort ini adalah sebagai berikut: Cara pengurutannya : bandingkan dua data kemudian swap. Prinsip kerja dari bubble sort adalah:
1. Pengecekan mulai dari data ke satu sampai data ke-n.
2. Bandingkan data ke-1 sampai data ke-n dengan data setelahnya. 3. Jika lebih besar maka tidak terjadi pemindahan atau swap.
4. Jika data sebelumnya kecil bila dibandingkan dengan data setelahnya besar maka tidak akan terjadi pemindahan atau no swap.
5. Ulang langkah diatas sampai data bisa tersusun baik secara ascending maupun descending. Sampai data terurutkan.
Metode pengurutan gelembung (Bubble Sort) diinspirasikan oleh gelembung sabun yang berada di permukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan. Prinsip di atas dipakai pada pengurutan gelembung
Selection Sort
Selection sort adalah metode sorting dimana elemen di perbandingkan satu-persatu sampai pada elemen terakhir dan disusun berdasarkan ketentuan-ketentuan berlaku (terbesar atau terkecil). Ilutrasi konsep dari selection sort ini adalah sebagai berikut : Prinsip kerja selection short:
1. Pengecekan dimulai data ke-1 sampai dengan ke-n.
2. Tentukan bilangan dengan indeks terkecil dari bilangan tersebut.
3. Tukar bilangan dengan indeks terkecil tersebut dengan bilangan pertama (I=1) dari data bilangan tersebut.
Insertion Sort
Insertion sort adalah sebuah metode pengurutan data dengan menempatkan setiap elemen data pada pisisinya dengan cara melakukan perbandingan dengan data – data yang ada. Indeks algoritma dari metode insertion sort ini dapat dianalogikan sama seperti mengurutkan kartu, dimana jika suatu kartu dipindah tempatkan menurut posisinya, maka kartu yang lain akan bergeser mundur atau maju sesuai kondisi pemindahanan kartu tersebut. Dalam pengurutan data, metode ini dipakai bertujuan untuk menjadikan bagian sisi kiri array terurutkan sampai dengan seluruh array diurutkan. Penganalogian Insertion Sort dengan pengurutan kartu. Berikut menjelaskan bagaimana algoritma Insertion Sort bekerja dalam pengurutan kartu, Anggaplah kita ingin mengurutkan satu set kartu dari kartu yang bernilai paling kecil hingga yang paling besar.
1. Dimulai dengan posisi tangan kosong, dan semua kartu berada diatas meja. Dan anggaplah kita akan menyusun kartu ke tangan kiri kita.
2. Mengamil kartu pertama dari meja dan meletakannya ke tangan kiri.
3. Mengambil kartu kedua dan membandingkannya dengan kartu yang sudah ada di tangan kiri.
4. Jika kartu yang diambil dari meja memenuhi syarat perbandingan, maka kartu tersebut akan diletakan didepan kartu yang dibandingkan, serta kartu yang lain yang telah dibandingkan akan bergeser mundur (ke belakang).
Proses ini akan berlangsung sampai semua kartu akan terurutkan dengan benar sesuai criteria pengurutannya. Demikian juga halnya dalam pengurutan data. Jika data sudah ada, maka pengurutan dimulai dengan mengambil satu data dan membandingkannya dengan data-data yang ada didepannya. Jika data yang diambil memenuhi syarat perbandingan, maka data yang diambil tersebut akan diletakan di depan data yang dibandingkan, kemudian data-data yang dibandingkan akan bergeser mundur. Catatan: Dalam hal pengurutan data dengan metode insertion sort ini, data yang diambil pertama adalah data kedua, kemudian data yang diambil akan dibandingkan dengan data – data yang ada disebelah kiri / data sebelumnya (data- data sebelum data yang diambil). Jika proses tersebut selesai, maka akan dilanjutkan dengan data-data selanjutnya (data-data ke-3, data-data ke-4… dan seterusnya). Proses akan berlangsung sampai data – data terurutkan dengan benar.
7 [3] 4 1 8 2 6 5 algoritma pengurutan adalah algoritma untuk meletakkan kumpulan elemen data ke dalam urutan tertentu berdasarkan satu atau beberapa kunci dalam tiap-tiap elemen. Ada dua macam urutan yang biasa digunakan dalam proses pengurutan yaitu
Urut naik (ascending) yaitu dari data yang mempunyai nilai paling kecil sampai
paling besar
Urut Turun (descending) yaitu data yang mempunyai nilai paling besar sampai paling
kecil.
Contoh : data bilangan 5, 2, 6 dan 4 dapat diurutkan naik menjadi 2, 4, 5, 6 atau diurutkan turun menjadi 6, 5, 4, 2. Pada data yang bertipe char, nilai data dikatakan lebih kecil atau lebih besar dari yang lain didasarkan pada urutan relatif (collating sequence) seperti dinyatakan dalam tabel ASCII (Lampiran) Keuntungan dari data yang sudah dalam keadaan terurutkan antara lain :
1. Data mudah dicari (misalnya dalam buku telepon atau kamus bahasa), mudah untuk dibetulkan, dihapus, disisipi atau digabungkan. Dalam keadaan terurutkan, kita mudah melakukan pengecekan apakah ada data yang hilang
2. Melakukan komppilasi program komputer jika tabel-tabel simbol harus dibentuk 3. Mempercepat proses pencarian data yang harus dilakukan berulang kali.
Data yang diurutkan sangat bervariasi, dalam hal jumlah data maupun jenis data yang akan diurutkan. Tidak ada algoritma terbaik untuk setiap situasi yang kita hadapi, bahkan cukup sulit untuk menentukan algoritma mana yang paling baik untuk situasi tertentu karena ada beberapa faktor yang mempengaruhi efektifitas algoritma pengurutan. Beberapa faktor yang berpengaruh pada efektifitas suatu algoritma pengurutan antara lain:
Banyak data yang diurutkan
Tempat penyimpanan data, misalnya piringan, pita atau kartu, atau media penyimpan
yang lain. Pemilihan algoritma sangat ditentukan oleh struktur data yang digunakan. Metode pengurutan yang digunakan dapat diklasifikasikan menjadi dua katagori yaitu Pengurutan internal, yaitu pengurutan dengan menggunakan larik (array). Larik
tersimpan dalam memori utama komputer
Pengurutan eksternal, yaitu pengurutan dengan menggunakan berkas (sequential
access file).
BAB II
int jumElemen; //jumlah item datavoid tukar(int satu, int dua) //fungsi anggota private {
double temp = v[satu]; v[satu] = v[dua]; v[dua] = temp;
}
public:
ArrayBub(int maks) : jumElemen(0) //konstruktor {
v.resize(maks); //ukuran vector }
void sisip(double nilai) //menempatkan elemen ke dalam array
{
v[jumElemen] = nilai; //menyisipkan jumElemen++; //mengdalamkremen ukuran
}
void tampil() //menampilkan isi array {
for(int j=0; j<jumElemen; j++) //untuk tiap elemen, cout << v[j] << " "; //menampilkan
}
void pengurutanBubble() //mengurutkan array {
int luar, dalam;
for(luar=jumElemen-1; luar>1; luar--) //loop luar (mundur)
for(dalam=0; dalam<luar; dalam++) //loop dalam (maju) if( v[dalam] > v[dalam+1] ) //tidak terurut? tukar(dalam, dalam+1); //tukar tem
} //akhir pengurutanBubble()
}; //akhir kelas ArrayBub
int main()
{
int ukuranMaks = 100; //ukuran array
ArrayBub arr(ukuranMaks); //menciptakan array
arr.sisip(77); //menyisipkan 10 item arr.sisip(99);
arr.pengurutanBubble(); //melakukan pengurutan Bubble arr.tampil(); //menampilkan array
system ("pause"); return 0;
Hasil Output Program 1
Pembahasan Singkat Listing Program
#include <iostream> baris ini harus disertakan pada program yang melibatkan objek cout, baris ini merupakan file header, dimana berisi berbagai deklarasi, seperti fungsi, variabel dan sebagainya. Serta berisi deklarasi yang diperlukan oleh berbagai objek yang berhubungan dengan operasi masukan – keluaran pada stream, selain diperlukan oleh cout.
#include <vector> sebuah container vector menyimpan dan mengelola objek-objeknya di dalam sebuah array dinamis. Karena array adalah sebuah struktur data akses acak, elemen – elemen sebuah vector dapat diakses secara acak. Nama file header yang memuat kelas vector adalah vector. Jadi, untuk menggunakan container vector di dalam program, program harus mencantumkan pernyataan #include <vector>.
#include <conio.h> diperlukan bila melibatkan clrscr( ), yaitu perintah untuk
membersihkan layar dan fungsi getch( ) untuk menerima sembarang input keyboard dari user.
using namespace std; diibaratkan seperti folder yang menyimpan berkas-berkas. Kita
dapat membuat namespace untuk mengelompokkan fungsi-fungsi tertentu sehingga lebih sistematis. Keuntungannya adalah kita dapat membuat banyak nama fungsi yang sama namun dibedakan menjadi kategori-kategori tertentu sesuai namespace yang kita buat.
Class ArrayBub => merupakan sebuah kelas bernama ArrayBub.
Anggota kelas ArrayBub kelompok private
Int jumElemen; => variabel untuk menyimpan jumElemen bertipe int. kelompok private
Void tukar(int satu, int dua) => fungsi void bernama tukar. kelompok private.
Deklarasi fungsi void bernama tukar. kelompok private.
Anggota kelas ArrayBub kelompok public
ArrayBub(int maks) : jumElemen(0) //konstruktor kelompok public
Deklarasi ArrayBub(int maks) : jumElemen(0) kelompok public
Deklarasi fungsi void sisip(double nilai) kelompok public
Deklarasi fungsi void pengurutanBubble() kelompok public
Int main => masuk ke fungsi utama program.
Int ukuranMaks = 100 => variabel ukuranMaks bertipe int, dengan nilai/ukuran 100. ArrayBub arr(ukuranMaks); => variabel arr bertipe ArrayBub dengan ukuran
arraynya = ukuranMaks yaitu 100.
arr.sisip(77) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 77 kedalam array.
arr.sisip(99) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 99 kedalam array.
arr.sisip(44) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 44 kedalam array.
arr.sisip(55) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 55 kedalam array.
arr.sisip(22) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 22 kedalam array.
arr.sisip(11) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 11 kedalam array.
arr.sisip(00) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 00 kedalam array.
arr.sisip(66) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 66 kedalam array.
arr.sisip(33) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 33 kedalam array.
system ("pause"); => program berhenti sejenak.
return 0; => digunakan untuk mengembalikan nlai fungsi utama yaitu 0.
Program 2 int jumElemen; //jumlah item data
public:
ArrayPenyisipan(int max) : jumElemen(0) //konstruktor {
v.resize(max); //ukuran vector }
void sisip(double nilai) //menempatkan elemen ke dalam array {
v[jumElemen] = nilai; //menyisipkan jumElemen++; //menginkremen ukuran }
for (int j = 0; j<jumElemen; j++) //untuk tiap elemen, cout << v[j] << " "; //menampilkan
cout << endl; }
void pengurutanPenyisipan() {
int dalam, luar;
for (luar = 1; luar<jumElemen; luar++) //loop luar sebagai pembagi {
double temp = v[luar]; //menghapus item yang ditandai alam = luar; //menggeser
while (dalam>0 && v[dalam - 1] >= temp) //sampai satu lebih kecil, {
v[dalam] = v[dalam - 1]; //menggeser item ke kanan --dalam; //ke kiri satu posisi
}
v[dalam] = temp; //menyisipkan item yang ditandai } //akhir for
} //akhir pengurutanPenyisipan() }; //akhir kelas ArrayPenyisipan int main()
{
int ukuranMaks = 100; //ukuran array
ArrayPenyisipan arr(ukuranMaks); //menciptakan array arr.sisip(77); //menyisipkan 10 item
Pembahasan Singkat Listing Program
#include <iostream> baris ini harus disertakan pada program yang melibatkan objek cout, baris ini merupakan file header, dimana berisi berbagai deklarasi, seperti fungsi, variabel dan sebagainya. Serta berisi deklarasi yang diperlukan oleh berbagai objek yang berhubungan dengan operasi masukan – keluaran pada stream, selain diperlukan oleh cout.
#include <vector> sebuah container vector menyimpan dan mengelola objek-objeknya di dalam sebuah array dinamis. Karena array adalah sebuah struktur data akses acak, elemen – elemen sebuah vector dapat diakses secara acak. Nama file header yang memuat kelas vector adalah vector. Jadi, untuk menggunakan container vector di dalam program, program harus mencantumkan pernyataan #include <vector>.
#include <conio.h> diperlukan bila melibatkan clrscr( ), yaitu perintah untuk
membersihkan layar dan fungsi getch( ) untuk menerima sembarang input keyboard dari user.
using namespace std; diibaratkan seperti folder yang menyimpan berkas-berkas. Kita
dapat membuat namespace untuk mengelompokkan fungsi-fungsi tertentu sehingga lebih sistematis. Keuntungannya adalah kita dapat membuat banyak nama fungsi yang sama namun dibedakan menjadi kategori-kategori tertentu sesuai namespace yang kita buat.
Class ArrayBub => merupakan sebuah kelas bernama ArrayBub.
Anggota kelas ArrayBub kelompok private
Int jumElemen; => variabel untuk menyimpan jumElemen bertipe int. kelompok private
Anggota kelas ArrayPenyisipan kelompok public
ArrayPenyisipan (int maks) : jumElemen(0) //konstruktor kelompok public
Deklarasi ArrayPenyisipan int maks) : jumElemen(0) kelompok public
Deklarasi fungsi void sisip(double nilai) kelompok public
Deklarasi fungsi void tampil ( ) kelompok public
Int main => masuk ke fungsi utama program.
Int ukuranMaks = 100 => variabel ukuranMaks bertipe int, dengan nilai/ukuran 100. ArrayPenyisipan arr(ukuranMaks); => variabel arr bertipe ArrayPenyisipan
dengan ukuran arraynya = ukuranMaks yaitu 100.
arr.sisip(77) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 77 kedalam array.
arr.sisip(99) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 99 kedalam array.
arr.sisip(44) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 44 kedalam array.
arr.sisip(55) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 55 kedalam array.
arr.sisip(22) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 22 kedalam array.
arr.sisip(88) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 88 kedalam array.
arr.sisip(11) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 11 kedalam array.
arr.sisip(00) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 00 kedalam array.
arr.sisip(33) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 33 kedalam array.
arr.tampil(); variabel arr memanggil fungsi void tampil, maka akan tampil data sebelum diurut.
arr.pengurutanBubble(); variabel arr memanggil fungsi void pengurutanPenyisipan() untuk mengurutkan data.
arr.tampil(); variabel arr memanggil fungsi void tampil maka akan tampil data setelah diurut.
system ("pause"); => program berhenti sejenak.
return 0; => digunakan untuk mengembalikan nlai fungsi utama yaitu 0.
Program 3
Orang(string belakang, string depan, int a) : //konstruktor namaBelakang(belakang), namaDepan(depan), usia(a) { }
void tampilOrang() {
cout << "Nama belakang: " << namaBelakang; cout << ", nama depan: " << namaDepan; cout << ", usia: " << usia << endl;
}
string getBelakang() //membaca nama belakang {
}
}; //akhir kelas Orang class ArraySisipObjek {
private:
vector<Orang*> v; //vektor yang memuat pointer ke Orang int jumElemen; //jumlah item data
public:
ArraySisipObjek(int maks) : jumElemen(0) //konstruktor {
v.resize(maks); //ukuran vector }
//menempatkan Orang ke dalam array
void sisip(string belakang, string depan, int usia) {
v[jumElemen] = new Orang(belakang, depan, usia); jumElemen++; //menginkremen ukuran
}
void tampil() //menampilkan isi array {
for (int j = 0; j<jumElemen; j++) //untuk tiap elemen, v[j]->tampilOrang(); //menampilkan
}
void pengururanPenyisipan() {
int dalam, luar;
for (luar = 1; luar<jumElemen; luar++) {
Orang* temp = v[luar]; //luar sebagai pembagi dalam = luar; //menggeser
//sampai satu lebih kecil ditemukan,
while (dalam>0 && v[dalam - 1]->getBelakang() > temp->getBelakang())
{
v[dalam] = v[dalam - 1]; //menggeser satu item ke kanan --dalam; //ke kiri satu posisi
}
v[dalam] = temp; //menyisipkan item yang ditandai } //akhir for
} //akhir pengururanPenyisipan() }; //akhir kelas ArraySisipObjek
int main() {
int ukuranMaks = 100; //ukuran array
arr.sisip("Rismon", "Sianipar", 24); //menyisipkan 10 item arr.sisip("Robert", "Tohonan", 37);
arr.sisip("Rico", "Chandra", 43); arr.sisip("Rotua", "Marolop", 63); arr.sisip("Rini", "Meika", 21); arr.sisip("Eva", "Teti", 29);
arr.sisip("Patricia", "Siahaan", 72); arr.sisip("Vivian", "Jozen", 54); arr.sisip("Jodi", "Pratama", 22);
arr.sisip("Jonathan", "Sitanggang", 18);
cout << "Sebelum pengurutan: " << endl; arr.tampil(); //menampilkan array
arr.pengururanPenyisipan(); //pengurutan penyisipan cout << "Setelah pengurutan: " << endl;
arr.tampil(); //menampilkan array
system("pause"); return 0;
} //akhir main()
Pembahasan Singkat Listing Program
#include <iostream> baris ini harus disertakan pada program yang melibatkan objek cout, baris ini merupakan file header, dimana berisi berbagai deklarasi, seperti fungsi, variabel dan sebagainya. Serta berisi deklarasi yang diperlukan oleh berbagai objek yang berhubungan dengan operasi masukan – keluaran pada stream, selain diperlukan oleh cout.
#include <string> baris ini harus disertakan pada program untuk membaca tipe data string.
#include <vector> sebuah container vector menyimpan dan mengelola objek-objeknya di dalam sebuah array dinamis. Karena array adalah sebuah struktur data akses acak, elemen – elemen sebuah vector dapat diakses secara acak. Nama file header yang memuat kelas vector adalah vector. Jadi, untuk menggunakan container vector di dalam program, program harus mencantumkan pernyataan #include <vector>.
#include <conio.h> diperlukan bila melibatkan clrscr( ), yaitu perintah untuk
membersihkan layar dan fungsi getch( ) untuk menerima sembarang input keyboard dari user.
using namespace std; diibaratkan seperti folder yang menyimpan berkas-berkas. Kita
dapat membuat namespace untuk mengelompokkan fungsi-fungsi tertentu sehingga lebih sistematis. Keuntungannya adalah kita dapat membuat banyak nama fungsi yang sama namun dibedakan menjadi kategori-kategori tertentu sesuai namespace yang kita buat. kelas bernama Orang
Anggota kelas orang kelompok private yaitu :
String namaBelakang => variabel namaBelakang bertipe string. String namaDepan => variabel namaDepan bertipe string. Int usia => variabel usia bertipe int.
Anggota kelas orang kelompok public yaitu :
Deklarasi fungsi prototype string getBelakang ( )
kelas bernama ArraySisipObjek
Anggota kelas ArraySisipObjek kelompok private yaitu :
Vector<Orang*> v; => menciptakan sebuah vector kosong yang bernama v,memuat
pointer bertipe Orang. kelompok private
Int jumElemen; => variabel untuk menyimpan jumElemen bertipe int. kelompok private
Anggota kelas ArraySisipObjek public
ArraySisipObjek (int maks) : jumElemen(0) //konstruktor kelompok public
Deklarasi ArrayPenyisipanObjek int maks) : jumElemen(0) kelompok public
Deklarasi fungsi void sisip(string belakang, string depan, int usia) kelompok public
Deklarasi fungsi void pengurutanPenyisipan( )
Int main => masuk ke fungsi utama program.
Int ukuranMaks = 100 => variabel ArrayPenyisipanObjek bertipe int, dengan nilai/ukuran 100.
ArrayPenyisipanObjek arr(ukuranMaks); => variabel arr bertipe ArrayPenyisipanObjek dengan ukuran arraynya = ukuranMaks yaitu 100.
arr.sisip(“Rismon” string belakang , ”Sianipar” string depan , 24 int usia ) => variabel arr
memanggil fungsi void sisip dengan menempatkan nilai 77 kedalam array. Deklarasi fungsi void sisip(string belakang, string depan, int usia)
arr.sisip(“Robert” string belakang , ”Tohonan” string depan , 37 int usia ) => variabel arr
memanggil fungsi void sisip dengan menempatkan nilai 77 kedalam array. Deklarasi fungsi void sisip(string belakang, string depan, int usia)
arr.sisip(“Rotua” string belakang , ”Marolop” string depan , 63 int usia ) => variabel arr
memanggil fungsi void sisip dengan menempatkan nilai 77 kedalam array. Deklarasi fungsi void sisip(string belakang, string depan, int usia)
arr.sisip(“Rini” string belakang , ”Meika” string depan , 21 int usia ) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 77 kedalam array. Deklarasi fungsi void sisip(string belakang, string depan, int usia)
arr.sisip(“Eva” string belakang , ”Teti” string depan , 29 int usia ) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 77 kedalam array. Deklarasi fungsi void sisip(string belakang, string depan, int usia)
arr.sisip(“Patricia” string belakang , ”Siahaan” string depan , 72 int usia ) => variabel arr
memanggil fungsi void sisip dengan menempatkan nilai 77 kedalam array. Deklarasi fungsi void sisip(string belakang, string depan, int usia)
arr.sisip(“Vivian” string belakang , ”Jozen” string depan , 54 int usia ) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 77 kedalam array. Deklarasi fungsi void sisip(string belakang, string depan, int usia)
arr.sisip(“Jodi” string belakang , ”Pratama” string depan , 22 int usia ) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 77 kedalam array. Deklarasi fungsi void sisip(string belakang, string depan, int usia)
arr.sisip(“Jonathan” string belakang , ”Sitanggang” string depan , 18 int usia ) => variabel arr memanggil fungsi void sisip dengan menempatkan nilai 77 kedalam array. Deklarasi fungsi void sisip(string belakang, string depan, int usia)
cout << "Sebelum pengurutan: " << endl; untuk menampilkan Sebelum pengurutan:
arr.tampil(); // memanggil fungsi tampil untuk menampilkan data Sebelum pengurutan.
arr.pengururanPenyisipan(); //melakukan pengurutan penyisipan
cout << "Setelah pengurutan: " << endl; untuk menampilkan Setelah pengurutan:
arr.tampil(); // memanggil fungsi tampil untuk menampilkan data Setelah pengurutan.
system ("pause"); => program berhenti sejenak.
BAB III
KESIMPULAN
Selection Sort
Algoritma dari Selection Sort bekerja dengan menggunakan prinsip sebagai berikut:
1. Pilih data key yang terkecil.
2. Tukarkan data tersebut dengan elemen a[1] setelah itu, ulangi hal tersebut dengan n-1 data yang ada kecuali a[1]. Lalu dengan n-2 data kecuali a[1] dan a[2], dan seterusnya.
Buble Sort
Algoritma Buble Sort memiliki ciri khusus, yaitu dengan melakukan pembandingan dan apabila urutan data tidak terpenuhi maka dilakukan penukaran. Sekalipun teknik ini bukanlah termasuk jenis pertukaran yang cepat, teknik ini juga bukan jenis pertukaran yang paling lambat.
lnsertion Sort