• Tidak ada hasil yang ditemukan

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR (2)

N/A
N/A
Protected

Academic year: 2018

Membagikan "LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR (2)"

Copied!
24
0
0

Teks penuh

(1)

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

(2)

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.

(3)

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.

(4)

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

(5)

 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).

(6)

BAB II

int jumElemen; //jumlah item data

void 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

(7)

}

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;

(8)

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

(9)

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

(10)

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

(11)

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 }

(12)

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

(13)

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

(14)

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

(15)

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.

(16)

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 {

(17)

}

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

(18)

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

(19)

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 :

(20)

 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

(21)

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

(22)

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.

(23)
(24)

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

Referensi

Dokumen terkait

Pertama : Nama-nama yang terlampir dinyatakan LULUS dalam Tes seleksi penerimaan santri baru SMP-SMA Al-Izzah International Islamic Boarding School Batu Tahun Ajaran 2017/2018.

Aplikasi decision support system yang telah dibangun dapat memberikan rekomendasi pilihan peminatan kepada mahasiswa sebagai bahan pertimbangan bagi mahasiswa

Hasil penelitian menunjukkan bahwa 18,3% ibu melahirkan pada usia berisiko (≤19 tahun dan ≥35 tahun), 43,3% tingkat pendidikan ibu balita adalah Sekolah Menengah Pertama,

Dengan memberikan kombinasi intervensi muscle energy technique dan infrared ataupun positional release technique dan infrared pada kasus myofascial pain syndrome

Penelitian ini bertujuan untuk mengetahui aktivitas penyembuhan luka sediaan salep kombinasi ekstrak etanol daun sirih hijau ( Piper betle L.) dan minyak cengkeh ( Syzgium

Dengan terlibat dalam penjaminan kredit baik melalui pembentukan LPKD maupun bekerjasama dengan LPK, maka PEMDA akan dihadapkan pada resiko gagal bayar dari UMKM yang

Spesies dengan produksi serasah daun terbesar adalah Bruguiera cylindrica, yakni sebesar 1,72 g.m - Gambar 5 Hubungan antara musim (frekuensi hujan) dan produksi

Jenis penelitian ini tergolong Kualitatif dengan pendekatan penelitian yang digunakan adalah: yuridis sosiologis, adapun sumber data penelitian ini bersumber dari