Anda di halaman 1dari 47

LAPORAN PRAKTIKUM RESMI

SORTING (BAB 6,7,8)






Disusun oleh :
Unggul Budi Suryanto
201301011

Dosen pengampu :
Yosef Murya Kusuma Ardhana.S.T., M.Kom




JURUSAN SISTEM INFORMASI
SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO
PURWOKERTO
2014
BAB I
DASAR TEORI
1. PENGANTAR
Sorting adalah suatu proses pengurutan data yang sebelumnya disusun secara acak atau tidak
teratur menjadi urut atau teratur menurut aturan tertentu. Proses sorting dipengaruhi beberapa faktor
diantaranya : jumlah operasi perbandingan yang dilakukan dan jumlah operasi pemindahan data yang
dilakukan. Makin banyak jumlah operasinya makin lama juga proses sort tersebut berjalan.
Proses sorting ada 6 yaitu :
a. Secection
b. Bubble
c. Insertion
d. Quick
e. Shell
f. merge

Selection sort
Mekanisme selection sort dimulai dari suatu penunjuk sort(pos awal), Yang menunjuk posisi awal
pengurutan data, diatur agar berisi index pertama dalam larik. Kemudian dicari bilangan terkecil yang
terletak antara posisi sesudah yang ditunjuk oleh posmin. Selanjutnya tukar nilai bilangan terkecil
dengan bilangan dipos awal. Proses tersebut diulangi dari pos awal bernilai 0 hingga n-2 dengan n
menyatakan elemen dalam larik.
Bubble sort
Bubble sort memiliki ciri khusus yaitu dengan melakukan pembanding dan apabila urutan data tidak
terpenuhi maka dilakukan pertukaran. Teknik ini bukanlah teknik yang cepat, tapi bukan juga teknik
yang lambat.
Insertion sort
Insertion Sort dapat disimpulkan sebagai teknik pengurutan yang dilakukan dengan cara
membandingkan data ke-i (dimana i dimulai dari data kedua sampai data terakhir) dengan data
sebelumnya.Jika ditemukan data yang lebih kecil maka data tersebut disisipkan ke depan sesuai
dengan posisi seharusnya.
Quick sort
Quick Sort yaitu teknik membandingkan suatu elemen (pivot) dengan elemen yang lain dan
menyusunnya sedemikian rupa sehingga elemen-elemen lain yang lebih kecil dari pivot terletak
disebelah kirinya dan elemen-elemen lain yang lebih besar daripada pivot tersebut terletak disebelah
kanannya.
Shell
Shell mengurutkan data dengan cara membandingkan suatu data dengan data lain yang memiliki jarak
tertentu, kemudian dilakukan pertukaran jika diperlukan.
Merge Sort
Merge sort adalah suatu teknik pengurutan data dengan menggabungkan setiap kali dua deretan
elemen dan melakukan pengurutan terhadap elemen-elemen tersebut.
BAB II
PROGRAM PRAKTIKUM
/*
* prorgam6.1.cpp
*
* Created on: 22 Apr 2014
* Author: unggul budi suryanto
*/

#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<<"Masukan 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<<"Elemenke "<<i+1<<"="<<Arr[i]<<endl;
}
return 0;
}


Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. int i, j, imin, n, urut, tmp, arr adalah deklarasi variabel i, j, imin, n, urut, tmp, arr yang bertipe
data integer.
6. Urut adalah program untuk input array
7. If(1=0 ) ..... adalah rumus yang akan digunakan dalam program. Dalam program ini
digunakan sorting ascending dengan metode selection.
8. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
9. Cin>>var adalah perintah untuk memasukkan atau menginputkan data ke variable yang sudah
dideklarasikan diatas.
10. return 0; digunakan untuk membaca data karakter

/*
* sorting1.cpp
*
* Created on: 21 Apr 2014
* Author: unggul budi suryanto
*/

#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<<"setelah pengurutan data \n";
for(i=0;i<n;i++)
{
cout<<"elemen ke "<<i+1<<":"<<arr[i]<<endl;
}
return 0;
}

Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. int i, j, n, tmp, arr adalah deklarasi variabel i, j, n, tmp, arr yang bertipe data integer.
6. If(1=0 ) ..... adalah rumus yang akan digunakan dalam program. Dalam program ini
digunakan sorting ascending dengan metode selection.
7. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
8. Cin>>var adalah perintah untuk memasukkan atau menginputkan data ke variable yang sudah
dideklarasikan diatas.
9. return 0; digunakan untuk membaca data karakter


Program 7.1
/*
* 7.1.cpp
*
* Created on: 12 Mei 2014
* Author: unggul budi suryanto
*/


#include <iostream>
using namespace std;
void tampilkan_larik(int data[],int n)
{
int i;
for (i=0;i<n;i++)
cout<<data[i]<<" "<<endl;

}
void insertion_sort(int data[],int n)
{
int i,k;
int x;
int ketemu;
for(k=1;k<n;k++)
{
x=data[k];
i=k-1;
ketemu=0;
while( (i>=0)&&(!ketemu))
{
if (x<data[i])
{
data [i+1]=data[i];
i=i-1;
}
else
ketemu=1;
data[i+1]=x;
}
}
}
int main()
{
int jum_data=8;
int data[]={25,57,48,37,12,92,80,33};
insertion_sort(data, jum_data);

cout<<"hasil pengurutan data:\n";
tampilkan_larik(data, jum_data);
return 0;
}

Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. Void larik adalah program menu tampilan larik yang akan dipanggil didalam program utama.
6. Void insertion sort adalah program nemu insertion sort yang akan dipanggil dalam program
utama.
7. for(k=1 ) ..... adalah rumus yang akan digunakan dalam program.
8. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
9. return 0; digunakan untuk membaca data karakter

Program 7.2
/*
* 7.2.cpp
*
* Created on: 12 Mei 2014
* Author: unggul budi suryanto
*/

#include <iostream>
using namespace std;

void tampilkan_larik(int data[], int n)
{
int i;
for (i=0; i<n; i++)
cout<<data[i]<<" "<<endl;
}

int partisi (int data[], int p, int r)
{
int x, i, j, tmp;

x=data[p];
i=p;
j=r;

while(1)
{
while (data[j]>x)
j=j-1;

while (data[i]<x)
i=i+1;

if(i<j)
{
tmp=data[i];
data [i]=data[j];
data[j]=tmp;
}
else
return j;
}

}

void quick_sort(int data[], int p, int r)
{
int q;
if (p<r)
{
q=partisi(data,p,r);
quick_sort(data,p,q);
quick_sort(data,q+1,r);

}
}

int main()
{
int jum_data=9;
int data[]={25, 57, 48, 37, 12, 92, 80,33,1};
quick_sort(data, 0, jum_data-1);

cout<<"Hasil Pengurutan : \n";
tampilkan_larik(data, jum_data);

return 0;
}

Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. Int data, intn, int i, dll adalah pendeklarasian tipedata yang digunakan adalah tipe data integer.
6. Void tampilan larik adalah menu program yang akan dipanggil dalam program utama.
7. Void quick sort adalah menu program yang akan dipanggil dalam program utama.
8. for(1=0 ) ..... adalah rumus yang akan digunakan dalam program.
9. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
10. Cin>>var adalah perintah untuk memasukkan atau menginputkan data ke variable yang sudah
dideklarasikan diatas.
11. return 0; digunakan untuk membaca data karakter

Program 8.1
/*
* 8.1.cpp
*
* Created on: 13 Mei 2014
* Author: unggul budi suryanto
*/



#include <iostream>
using namespace std;

#include <iostream>
using namespace std;

void shellsort(int a[],int n)
{
int j,i,m,mid;
for(m = n/2;m>0;m/=2)
{
for(j = m;j< n ;j++)
{
for(i = j-m;i>=0;i-=m)
{
if (a[i+m]>=a[i])
break;
else
{
mid = a[i];
a[i] = a[i+m];
a[i+m] = mid;
}
}
}
}
}

int main()
{
int a[10],i,n;

cout<<"Inputkan Banyak Data Yang Akan Disorting :";
cin>>n;
for(i = 0;i< n;i++)
{
cout<<" Data "<<i+1<<"=";
cin>>a[i];
}

cout<<" Data Sebelum Sorting :";

for(i=0;i< n;i++)
cout<<a[i]<<" ";
shellsort(a,n);

cout<<"\nData Setelah Sorting :";
for(i=0;i< n;i++)
cout<<a[i]<<" ";
return 0;
}

Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. int i, j, n, min, dll adalah deklarasi variabel yang bertipe data integer.
6. for(1=0 ) ..... adalah rumus yang akan digunakan dalam program.
7. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
8. Cin>>var adalah perintah untuk memasukkan atau menginputkan data ke variable yang sudah
dideklarasikan diatas.
9. return 0; digunakan untuk membaca data karakter


Program 8.2
/*
* 8.2.cpp
*
* Created on: 13 Mei 2014
* Author: acer
*/


#include <iostream>
using namespace std;

int a[50];
void merge (int,int,int);
void merge_sort(int low,int high){
int mid;
if(low<high)
{
mid=(low+high)/2;
merge_sort(low,mid);
merge_sort(mid+1,high);
merge(low,mid,high);
}
}
void merge(int low, int mid, int high){
int h,i,j,b[50],k;
h=low;
i=low;
j=mid+1;

while((h<=mid)&&(j<=high))
{
if(a[h]<=a[j])
{
b[i]=a[h];
h++;
}
else
{
b[i]=a[j];
j++;
}
i++;
}
if(h>mid)
{
for(k=j;k<=high;k++)
{
b[i]=a[k];
i++;
}
}
else {
for(k=h;k<=mid;k++)
{
b[i]=a[k];
i++;
}
}
for(k=low;k<=high;k++)a[k]=b[k];
}
int main()
{
int num,i;
cout<<"Inputkan banyak data yang akan diurutkan:";
cin>>num;
cout<<endl;
cout<<"Masukan ("<< num <<") data:"<<endl;
for(i=1;i<=num;i++)
{
cin>>a[i];
}
merge_sort(1,num);
cout<<endl;
cout<<"Setelah Pengurutan (Merge Sort) :"<<endl;
for(i=1;i<=num;i++)
cout<<a[i]<<" ";
cout<<endl<<endl<<endl<<endl;
return 0;
}
Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. int i, j, n, min, dll adalah deklarasi variabel yang bertipe data integer.
6. Void merge adalah menu program yang dapat dipanggil dalam program utama..
7. for(1=0; ..... ) ..... adalah rumus yang akan digunakan dalam program.
8. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
9. Cin>>var adalah perintah untuk memasukkan atau menginputkan data ke variable yang sudah
dideklarasikan diatas.
10. return 0; digunakan untuk membaca data karakter



BAB III
Tugas Program Praktikum

Program type data abstract
Program 6.1
struct
/*
* 6.1.cpp
*
* Created on: 13 Mei 2014
* Author: acer
*/


#include <iostream>
using namespace std;
struct ada{
int i, j, iMin, n, Urut, Tmp, Arr[50];
}m;
int main(){
ada m;
cout<<"Inputkan bayak data yang akan diurutkan :";
cin>>m.n;
m.Urut = 1;
for(m.i=0; m.i<m.n; m.i++){
cout<<"masukkan data ke"<<m.i+1<<"=";
cin>>m.Arr[m.i];
}
for(m.i=0; m.i<m.n-1; m.i++){ m.iMin = m.i;
for(m.j=m.Urut; m.j<m.n; m.j++){ if(m.Arr[m.j] < m.Arr[m.iMin]){
m.iMin = m.j;
if(m.Arr[m.i] != m.Arr[m.iMin]){ m.Tmp = m.Arr[m.i];
if(m.Arr[m.i] > m.Arr[m.iMin])
{
m.Arr[m.i] = m.Arr[m.iMin]; m.Arr[m.iMin] = m.Tmp;
}
}
}
}
m.Urut = m.Urut+1;
}
cout<<"\nSetelah Pengurutan\n";
for(m.i=0; m.i<m.n; m.i++){
cout<<"Elemen ke"<<m.i+1<<"="<<m.Arr[m.i]<<endl;
}
return 0;
}

Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. int i, j, imin, n, urut, tmp, arr adalah deklarasi variabel i, j, imin, n, urut, tmp, arr yang bertipe
data integer.
6. Urut adalah program untuk input array.
7. Struct adalah typedata abstrak untuk mendeklarasikan variabel baru yang digunakan dalam
program tersebut.
8. Ada m; adalah pendeklarasian variabel baru dengan nama bentukan m.
9. for(1=0 ) ..... adalah rumus yang akan digunakan dalam program. Dalam program ini
digunakan sorting ascending dengan metode selection.
10. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
11. return 0; digunakan untuk membaca data karakter

/*
* 6.1.cpp
*
* Created on: 10 mei 2014
* Author: unggul budi suryanto
*/

#include<iostream>
using namespace std;

typedef int a;
typedef int b;
typedef int c;
typedef int d;
typedef int e;
typedef int f;
typedef int g;

int main() {
a i;
b j;
c iMin;
d n;
e Urut;
f Tmp;
g Arr[50];

cout<<"inputkan banyak data yang akan diurutkan :";
cin>>n;



Urut = 1;
for(i = 0; i < n; i++) {
cout<<"Masukan 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<<"Elemenke "<<i+1<<"="<<Arr[i]<<endl;
}
return 0;
}

Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. int i, j, imin, n, urut, tmp, arr adalah deklarasi variabel i, j, imin, n, urut, tmp, arr yang bertipe
data integer.
6. Urut adalah program untuk input array.
7. typedef adalah typedata abstrak untuk mendeklarasikan type data bentukan baru yang
digunakan dalam program tersebut..
8. for(1=0 ) ..... adalah rumus yang akan digunakan dalam program. Dalam program ini
digunakan sorting ascending dengan metode selection.
9. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
10. return 0; digunakan untuk membaca data karakter

/*
* 6.1.cpp
*
* Created on: 13 Mei 2014
* Author: acer
*/


#include <iostream>
using namespace std;

typedef struct ada{
int i, j, iMin, n, Urut, Tmp, Arr[50];
}m;

int main(){
ada m;
cout<<"Inputkan bayak data yang akan diurutkan :";
cin>>m.n;
m.Urut = 1;
for(m.i=0; m.i<m.n; m.i++){
cout<<"masukkan data ke"<<m.i+1<<"=";
cin>>m.Arr[m.i];
}
for(m.i=0; m.i<m.n-1; m.i++){ m.iMin = m.i;
for(m.j=m.Urut; m.j<m.n; m.j++){ if(m.Arr[m.j] < m.Arr[m.iMin]){
m.iMin = m.j;
if(m.Arr[m.i] != m.Arr[m.iMin]){ m.Tmp = m.Arr[m.i];
if(m.Arr[m.i] > m.Arr[m.iMin])
{
m.Arr[m.i] = m.Arr[m.iMin]; m.Arr[m.iMin] = m.Tmp;
}
}
}
}
m.Urut = m.Urut+1;
}
cout<<"\nSetelah Pengurutan\n";
for(m.i=0; m.i<m.n; m.i++){
cout<<"Elemen ke"<<m.i+1<<"="<<m.Arr[m.i]<<endl;
}
return 0;
}
Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. int i, j, imin, n, urut, tmp, arr adalah deklarasi variabel i, j, imin, n, urut, tmp, arr yang bertipe
data integer.
6. Urut adalah program untuk input array.
7. Typedef Struct adalah typedata abstrak untuk mendeklarasikan typedata dan variabel baru
yang digunakan dalam program tersebut.
8. Ada m; adalah pendeklarasian variabel baru dengan nama bentukan m.
9. for(1=0 ) ..... adalah rumus yang akan digunakan dalam program. Dalam program ini
digunakan sorting ascending dengan metode selection.
10. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
11. return 0; digunakan untuk membaca data karakter


Program 6.2
/*
* sorting1.cpp
*
* Created on: 21 Apr 2014
* Author: unggul budi suryanto
*/

#include <iostream>
using namespace std;

typedef int a;
typedef int b;
typedef int c;
typedef int d;
typedef int e;

int main()
{
a i;
b j;
c n;
d tmp;
e 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<<"setelah pengurutan data \n";
for(i=0;i<n;i++)
{
cout<<"elemen ke "<<i+1<<":"<<arr[i]<<endl;
}
return 0;
}
Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. Typedef adalah tipe data abstrack yang digunakan dalam program untuk mendeklarasikan
nama tipe data baru.
6. If(1=0 ) ..... adalah rumus yang akan digunakan dalam program. Dalam program ini
digunakan sorting ascending dengan metode selection.
7. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
8. Cin>>var adalah perintah untuk memasukkan atau menginputkan data ke variable yang sudah
dideklarasikan diatas.
9. return 0; digunakan untuk membaca data karakter

/*
* 6.2.cpp
*
* Created on: 13 Mei 2014
* Author: acer
*/

#include<iostream>
using namespace std;
struct apa{
int i , j , n, tmp, arr[50];
}b;
int main()
{
apa b;
cout<<"inputkan banyak data yang akan diurutkan :";
cin>>b.n;
for(b.i=0;b.i<b.n;b.i++)
{
cout<<"masukan data ke"<<b.i+1<<"=";
cin>>b.arr[b.i];
}
for(b.i=1;b.i<b.n;b.i++)
{
for(b.j=0;b.j<b.n-1;b.j++)
{
if(b.arr[b.j]>b.arr[b.j+1])
{
b.tmp = b.arr[b.j]; b.arr[b.j]=b.arr[b.j+1]; b.arr[b.j+1]=b.tmp;
}
}
}
cout<<"\nsetelah pengurutan data\n";
for(b.i=0;b.i<b.n;b.i++){
cout<<"\nelemen ke"<<b.i+1<<":"<<b.arr[b.i]<<endl;
}
return 0;
}
Output program :

Penjelasan program :
12. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
13. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
14. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
15. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
16. struct adalah tipe data abstrack yang digunakan dalam program untuk mendeklarasikan nama
veriabel baru.
17. Apa b ; adalah pendeklarasian tipedata struct bervariabel b.
18. If(1=0 ) ..... adalah rumus yang akan digunakan dalam program. Dalam program ini
digunakan sorting ascending dengan metode selection.
19. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
20. Cin>>var adalah perintah untuk memasukkan atau menginputkan data ke variable yang sudah
dideklarasikan diatas.
21. return 0; digunakan untuk membaca data karakter

/*
* 6.2.cpp
*
* Created on: 13 Mei 2014
* Author: acer
*/

#include<iostream>
using namespace std;
typedef struct apa{
int i , j , n, tmp, arr[50];
}b;

int main()
{
apa b;
cout<<"inputkan banyak data yang akan diurutkan :";
cin>>b.n;
for(b.i=0;b.i<b.n;b.i++)
{
cout<<"masukan data ke"<<b.i+1<<"=";
cin>>b.arr[b.i];
}
for(b.i=1;b.i<b.n;b.i++)
{
for(b.j=0;b.j<b.n-1;b.j++)
{
if(b.arr[b.j]>b.arr[b.j+1])
{
b.tmp = b.arr[b.j]; b.arr[b.j]=b.arr[b.j+1]; b.arr[b.j+1]=b.tmp;
}
}
}
cout<<"\nsetelah pengurutan data\n";
for(b.i=0;b.i<b.n;b.i++){
cout<<"\nelemen ke"<<b.i+1<<":"<<b.arr[b.i]<<endl;
}
return 0;
}
Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. Typeder struct adalah tipe data abstrack yang digunakan dalam program untuk
mendeklarasikan nama tipe data baru dan veriabel baru.
6. Apa b ; adalah pendeklarasian tipedata bervariabel b.
7. If(1=0 ) ..... adalah rumus yang akan digunakan dalam program. Dalam program ini
digunakan sorting ascending dengan metode selection.
8. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
9. Cin>>var adalah perintah untuk memasukkan atau menginputkan data ke variable yang sudah
dideklarasikan diatas.
10. return 0; digunakan untuk membaca data karakter


Program 7.1
/*
* 7.1.cpp
*
* Created on: 12 Mei 2014
* Author: unggul budi suryanto
*/


#include <iostream>
using namespace std;
void tampilkan_larik(int data[],int n)
{
int i;
for (i=0;i<n;i++)
cout<<data[i]<<" "<<endl;

}
void insertion_sort(int data[],int n)
{
int i,k;
int x;
int ketemu;
for(k=1;k<n;k++)
{
x=data[k];
i=k-1;
ketemu=0;
while( (i>=0)&&(!ketemu))
{
if (x<data[i])
{
data [i+1]=data[i];
i=i-1;
}
else
ketemu=1;
data[i+1]=x;
}
}
}

typedef int a;
typedef int b;
int main()
{
a jum_data=8;
b data[]={25,57,48,37,12,92,80,33};
insertion_sort(data, jum_data);

cout<<"hasil pengurutan data:\n";
tampilkan_larik(data, jum_data);
return 0;
}
Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. Void larik adalah program menu tampilan larik yang akan dipanggil didalam program utama.
6. Void insertion sort adalah program nemu insertion sort yang akan dipanggil dalam program
utama.
7. typedef adalah tipe data abstrak yang digunakan dalam program tersebut untuk memberikan
nama alias typedata lama.
8. for(k=1 ) ..... adalah rumus yang akan digunakan dalam program.
9. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
10. return 0; digunakan untuk membaca data karakter

/*
* 7.1.cpp
*
* Created on: 12 Mei 2014
* Author: unggul budi suryanto
*/


#include <iostream>
using namespace std;
void tampilkan_larik(int data[],int n)
{
int i;
for (i=0;i<n;i++)
cout<<data[i]<<" "<<endl;

}
void insertion_sort(int data[],int n)
{
int i,k;
int x;
int ketemu;
for(k=1;k<n;k++)
{
x=data[k];
i=k-1;
ketemu=0;
while( (i>=0)&&(!ketemu))
{
if (x<data[i])
{
data [i+1]=data[i];
i=i-1;
}
else
ketemu=1;
data[i+1]=x;
}
}
}

Struct ada
{
int jum_data;
}m;
int main()
{
Ada m;

m.jum_data=8;
int data[]={25,57,48,37,12,92,80,33};
insertion_sort(data, m.jum_data);

cout<<"hasil pengurutan data:\n";
tampilkan_larik(data, m.jum_data);
return 0;
}

Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. Void larik adalah program menu tampilan larik yang akan dipanggil didalam program utama.
6. Void insertion sort adalah program nemu insertion sort yang akan dipanggil dalam program
utama.
7. Struct adalah tipe data abstrak yang digunakan dalam program tersebut untuk
mendeklarasikan variabel baru.
8. for(k=1 ) ..... adalah rumus yang akan digunakan dalam program.
9. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
10. return 0; digunakan untuk membaca data karakter

/*
* 7.1.cpp
*
* Created on: 12 Mei 2014
* Author: unggul budi suryanto
*/


#include <iostream>
using namespace std;
void tampilkan_larik(int data[],int n)
{
int i;
for (i=0;i<n;i++)
cout<<data[i]<<" "<<endl;

}
void insertion_sort(int data[],int n)
{
int i,k;
int x;
int ketemu;
for(k=1;k<n;k++)
{
x=data[k];
i=k-1;
ketemu=0;
while( (i>=0)&&(!ketemu))
{
if (x<data[i])
{
data [i+1]=data[i];
i=i-1;
}
else
ketemu=1;
data[i+1]=x;
}
}
}

typedef struct ada
{
int jum_data;
};
int main()
{
ada m;
m.jum_data=8;
int data[]={25,57,48,37,12,92,80,33};
insertion_sort(data, m.jum_data);

cout<<"hasil pengurutan data:\n";
tampilkan_larik(data, m.jum_data);
return 0;
}
Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. Void larik adalah program menu tampilan larik yang akan dipanggil didalam program utama.
6. Void insertion sort adalah program nemu insertion sort yang akan dipanggil dalam program
utama.
7. Typedef Struct adalah tipe data abstrak yang digunakan dalam program tersebut untuk
mendeklarasikan typedata dan variabel baru.
8. for(k=1 ) ..... adalah rumus yang akan digunakan dalam program.
9. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
10. return 0; digunakan untuk membaca data karakter

Program 7.2
/*
* 7.2.cpp
*
* Created on: 12 Mei 2014
* Author: unggul budi suryanto
*/

#include <iostream>
using namespace std;

void tampilkan_larik(int data[], int n)
{
int i;
for (i=0; i<n; i++)
cout<<data[i]<<" "<<endl;
}

int partisi (int data[], int p, int r)
{
int x, i, j, tmp;

x=data[p];
i=p;
j=r;

while(1)
{
while (data[j]>x)
j=j-1;

while (data[i]<x)
i=i+1;

if(i<j)
{
tmp=data[i];
data [i]=data[j];
data[j]=tmp;
}
else
return j;
}

}

void quick_sort(int data[], int p, int r)
{
int q;
if (p<r)
{
q=partisi(data,p,r);
quick_sort(data,p,q);
quick_sort(data,q+1,r);

}
}

typedef int a;

int main()
{
a jum_data=9;
a data[]={25, 57, 48, 37, 12, 92, 80,33,1};
quick_sort(data, 0, jum_data-1);

cout<<"Hasil Pengurutan : \n";
tampilkan_larik(data, jum_data);

return 0;
}
Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. Int data, intn, int i, dll adalah pendeklarasian tipedata yang digunakan adalah tipe data integer.
6. Void tampilan larik adalah menu program yang akan dipanggil dalam program utama.
7. Void quick sort adalah menu program yang akan dipanggil dalam program utama.
8. Typedef int a; adalah pendeklarasian tipedata baru dalam program bernama a.
9. for(1=0 ) ..... adalah rumus yang akan digunakan dalam program.
10. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
11. return 0; digunakan untuk membaca data karakter


/*
* 7.2.cpp
*
* Created on: 12 Mei 2014
* Author: unggul budi suryanto
*/

#include <iostream>
using namespace std;

void tampilkan_larik(int data[], int n)
{
int i;
for (i=0; i<n; i++)
cout<<data[i]<<" "<<endl;
}

int partisi (int data[], int p, int r)
{
int x, i, j, tmp;

x=data[p];
i=p;
j=r;

while(1)
{
while (data[j]>x)
j=j-1;

while (data[i]<x)
i=i+1;

if(i<j)
{
tmp=data[i];
data [i]=data[j];
data[j]=tmp;
}
else
return j;
}

}

void quick_sort(int data[], int p, int r)
{
int q;
if (p<r)
{
q=partisi(data,p,r);
quick_sort(data,p,q);
quick_sort(data,q+1,r);

}
}

struct
{
int jum_data;
}m;

int main()
{
m.jum_data=9;
int data[]={25, 57, 48, 37, 12, 92, 80,33,1};
quick_sort(data, 0, m.jum_data-1);

cout<<"Hasil Pengurutan : \n";
tampilkan_larik(data, m.jum_data);
return 0;
}
Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. Int data, intn, int i, dll adalah pendeklarasian tipedata yang digunakan adalah tipe data integer.
6. Void tampilan larik adalah menu program yang akan dipanggil dalam program utama.
7. Void quick sort adalah menu program yang akan dipanggil dalam program utama.
8. struct adalah pendeklarasian tipedata abstrak baru dalam program dengan variabel bernama
m..
9. for(1=0 ) ..... adalah rumus yang akan digunakan dalam program.
10. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
11. return 0; digunakan untuk membaca data karakter

/*
* 7.2.cpp
*
* Created on: 12 Mei 2014
* Author: unggul budi suryanto
*/

#include <iostream>
using namespace std;

void tampilkan_larik(int data[], int n)
{
int i;
for (i=0; i<n; i++)
cout<<data[i]<<" "<<endl;
}

int partisi (int data[], int p, int r)
{
int x, i, j, tmp;

x=data[p];
i=p;
j=r;

while(1)
{
while (data[j]>x)
j=j-1;

while (data[i]<x)
i=i+1;

if(i<j)
{
tmp=data[i];
data [i]=data[j];
data[j]=tmp;
}
else
return j;
}

}

void quick_sort(int data[], int p, int r)
{
int q;
if (p<r)
{
q=partisi(data,p,r);
quick_sort(data,p,q);
quick_sort(data,q+1,r);

}
}

typedef struct ada
{
int jum_data;
}m;

int main()
{
ada m;
m.jum_data=9;
int data[]={25, 57, 48, 37, 12, 92, 80,33,1};
quick_sort(data, 0, m.jum_data-1);

cout<<"Hasil Pengurutan : \n";
tampilkan_larik(data, m.jum_data);
return 0;
}
Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. Int data, intn, int i, dll adalah pendeklarasian tipedata yang digunakan adalah tipe data integer.
6. Void tampilan larik adalah menu program yang akan dipanggil dalam program utama.
7. Void quick sort adalah menu program yang akan dipanggil dalam program utama.
8. Typedef struct adalah pendeklarasian tipedata abstrak baru dalam program dengan tipedata
dan variabel baru...
9. for(1=0 ) ..... adalah rumus yang akan digunakan dalam program.
10. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
11. return 0; digunakan untuk membaca data karakter


Program 8.1
/*
* 8.1.cpp
*
* Created on: 13 Mei 2014
* Author: unggul budi suryanto
*/



#include <iostream>
using namespace std;

#include <iostream>
using namespace std;

void shellsort(int a[],int n)
{
int j,i,m,mid;
for(m = n/2;m>0;m/=2)
{
for(j = m;j< n ;j++)
{
for(i = j-m;i>=0;i-=m)
{
if (a[i+m]>=a[i])
break;
else
{
mid = a[i];
a[i] = a[i+m];
a[i+m] = mid;
}
}
}
}
}

typedef int m;

int main()
{
m a[10],i,n;

cout<<"Inputkan Banyak Data Yang Akan Disorting :";
cin>>n;
for(i = 0;i< n;i++)
{
cout<<" Data "<<i+1<<"=";
cin>>a[i];
}

cout<<" Data Sebelum Sorting :";

for(i=0;i< n;i++)
cout<<a[i]<<" ";
shellsort(a,n);

cout<<"\nData Setelah Sorting :";
for(i=0;i< n;i++)
cout<<a[i]<<" ";
return 0;
}
Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. int i, j, n, min, dll adalah deklarasi variabel yang bertipe data integer.
6. Typedef int m adalah pendeklarasian tipe data baru bertipe integer dan bernama m.
7. Void shellsort adalah menu program yang dapat dipanggil dalam program utama..
8. for(1=0 ) ..... adalah rumus yang akan digunakan dalam program.
9. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
10. Cin>>var adalah perintah untuk memasukkan atau menginputkan data ke variable yang sudah
dideklarasikan diatas.
11. return 0; digunakan untuk membaca data karakter

/*
* 8.1.cpp
*
* Created on: 13 Mei 2014
* Author: unggul budi suryanto
*/



#include <iostream>
using namespace std;

#include <iostream>
using namespace std;

void shellsort(int a[],int n)
{
int j,i,m,mid;
for(m = n/2;m>0;m/=2)
{
for(j = m;j< n ;j++)
{
for(i = j-m;i>=0;i-=m)
{
if (a[i+m]>=a[i])
break;
else
{
mid = a[i];
a[i] = a[i+m];
a[i+m] = mid;
}
}
}
}
}

struct ada
{
int i,n;
}m;

int main()
{
ada m;
int a[10],i,n;

cout<<"Inputkan Banyak Data Yang Akan Disorting :";
cin>>m.n;
for(m.i = 0;m.i< m.n;m.i++)
{
cout<<" Data "<<m.i+1<<"=";
cin>>a[m.i];
}

cout<<" Data Sebelum Sorting :";

for(m.i=0;m.i< m.n;m.i++)
cout<<a[m.i]<<" ";
shellsort(a,m.n);

cout<<"\nData Setelah Sorting :";
for(m.i=0;m.i< m.n;m.i++)
cout<<a[m.i]<<" ";
return 0;
}
Output program :

Penjelasan program :
11. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
12. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
13. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
14. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
15. int i, j, n, min, dll adalah deklarasi variabel yang bertipe data integer.
16. Struct ada m adalah pendeklarasian tipe data abstrak baru bertipe integer dan bernama
variabel m.
17. Ada m; adalah pendeklarasian variabel baru dengan nama m.
18. Void shellsort adalah menu program yang dapat dipanggil dalam program utama..
19. for(1=0 ) ..... adalah rumus yang akan digunakan dalam program.
20. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
21. Cin>>var adalah perintah untuk memasukkan atau menginputkan data ke variable yang sudah
dideklarasikan diatas.
22. return 0; digunakan untuk membaca data karakter


/*
* 8.1.cpp
*
* Created on: 13 Mei 2014
* Author: unggul budi suryanto
*/



#include <iostream>
using namespace std;

#include <iostream>
using namespace std;

void shellsort(int a[],int n)
{
int j,i,m,mid;
for(m = n/2;m>0;m/=2)
{
for(j = m;j< n ;j++)
{
for(i = j-m;i>=0;i-=m)
{
if (a[i+m]>=a[i])
break;
else
{
mid = a[i];
a[i] = a[i+m];
a[i+m] = mid;
}
}
}
}
}

typedef struct ada
{
int a[10], i,n;
}m;

int main()
{
ada m;

cout<<"Inputkan Banyak Data Yang Akan Disorting :";
cin>>m.n;
for(m.i = 0;m.i< m.n;m.i++)
{
cout<<" Data "<<m.i+1<<"=";
cin>>m.a[m.i];
}

cout<<" Data Sebelum Sorting :";

for(m.i=0;m.i< m.n;m.i++)
cout<<m.a[m.i]<<" ";
shellsort(m.a,m.n);

cout<<"\nData Setelah Sorting :";
for(m.i=0;m.i< m.n;m.i++)
cout<<m.a[m.i]<<" ";
return 0;
}
Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. int i, j, n, min, dll adalah deklarasi variabel yang bertipe data integer.
6. Typedef Struct ada m adalah pendeklarasian tipe data abstrak baru bertipe integer dan
bernama variabel m.
7. Ada m; adalah pendeklarasian variabel baru dengan nama m.
8. Void shellsort adalah menu program yang dapat dipanggil dalam program utama..
9. for(1=0 ) ..... adalah rumus yang akan digunakan dalam program.
10. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
11. Cin>>var adalah perintah untuk memasukkan atau menginputkan data ke variable yang sudah
dideklarasikan diatas.
12. return 0; digunakan untuk membaca data karakter


Program 8.2
/*
* 8.2.cpp
*
* Created on: 13 Mei 2014
* Author: acer
*/


#include <iostream>
using namespace std;

typedef int m;


void merge(int,int,int);
void merge_sort(int low,int high)
{
m mid;
if(low<high)
{
mid=(low+high)/2;
merge_sort(low,mid);
merge_sort(mid+1,high);
merge(low,mid,high);
}
}
void merge(int low,int mid,int high)
{

m h;
m j;
m b[50];
m k;

h=low;
m.i=low;
j=mid+1;
while((h<=mid)&&(j<=high))
{
if(a[h]<=a[j])
{
b[i]=a[h];
h++;
}
else
{
b[i]=a[j];
j++;
}
i++;
}
if(h>mid)
{
for(k=j;k<=high;k++)
{

b[i]=a[k];
i++;
}
}
else
{
for(k=h;k<=mid;k++)
{
b[i]=a[k];
i++;
}
}
for(k=low;k<=high;k++) a[k]=b[k];
}
int main()
{
m num;
m i;
cout<<"Inputkan banyak data yang akan diurutkan :";
cin>>num;
cout<<endl;
cout<<"Masukkan ( "<< num <<" ) data: "<<endl;
for(=1;i<=num;i++)
{
cin>>a[i];
}
merge_sort(1,num);
cout<<endl;
cout<<"Setelah Pengurutan (Merge Sort) :"<<endl;
for(i=1;i<=num;i++)
cout<<a[i]<<" ";
cout<<endl<<endl<<endl<<endl;
return 0;
}
Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. int i, j, n, min, dll adalah deklarasi variabel yang bertipe data integer.
6. Void merge adalah menu program yang dapat dipanggil dalam program utama.
7. Typedef int m; adalah pendeklarasian tipedata baru bernama m bertipde data integer.
8. for(1=0; ..... ) ..... adalah rumus yang akan digunakan dalam program.
9. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
10. Cin>>var adalah perintah untuk memasukkan atau menginputkan data ke variable yang sudah
dideklarasikan diatas.
11. return 0; digunakan untuk membaca data karakter


/*
* 8.2.cpp
*
* Created on: 13 Mei 2014
* Author: acer
*/


#include <iostream>
using namespace std;

struct ada
{
int a[50];
int num,i;
}m;


void merge(int,int,int);
void merge_sort(int low,int high)
{
int mid;
if(low<high)
{
mid=(low+high)/2;
merge_sort(low,mid);
merge_sort(mid+1,high);
merge(low,mid,high);
}
}
void merge(int low,int mid,int high)
{
ada m;
int h,j,b[50],k;
h=low;
m.i=low;
j=mid+1;
while((h<=mid)&&(j<=high))
{
if(m.a[h]<=m.a[j])
{
b[m.i]=m.a[h];
h++;
}
else
{
b[m.i]=m.a[j];
j++;
}
m.i++;
}
if(h>mid)
{
for(k=j;k<=high;k++)
{

b[m.i]=m.a[k];
m.i++;
}
}
else
{
for(k=h;k<=mid;k++)
{
b[m.i]=m.a[k];
m.i++;
}
}
for(k=low;k<=high;k++) m.a[k]=b[k];
}
int main()
{
ada m;
cout<<"Inputkan banyak data yang akan diurutkan :";
cin>>m.num;
cout<<endl;
cout<<"Masukkan ( "<< m.num <<" ) data: "<<endl;
for(m.i=1;m.i<=m.num;m.i++)
{
cin>>m.a[m.i];
}
merge_sort(1,m.num);
cout<<endl;
cout<<"Setelah Pengurutan (Merge Sort) :"<<endl;
for(m.i=1;m.i<=m.num;m.i++)
cout<<m.a[m.i]<<" ";
cout<<endl<<endl<<endl<<endl;
return 0;
}
Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. int i, j, n, min, dll adalah deklarasi variabel yang bertipe data integer.
6. Void merge adalah menu program yang dapat dipanggil dalam program utama.
7. Struct ada{ int a,num } adalah pendeklarasian tipedata abstrak baru bernama ada bertipe data
integer.
8. Ada m; adalah pendeklarasian variabel baru bernama m.
9. for(1=0; ..... ) ..... adalah rumus yang akan digunakan dalam program.
10. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
11. Cin>>var adalah perintah untuk memasukkan atau menginputkan data ke variable yang sudah
dideklarasikan diatas.
12. return 0; digunakan untuk membaca data karakter


/*
* 8.2.cpp
*
* Created on: 13 Mei 2014
* Author: acer
*/


#include <iostream>
using namespace std;
typedef struct ada
{
int a[50];
int num,i;
}m;
void merge(int,int,int);
void merge_sort(int low,int high)
{
int mid;
if(low<high)
{
mid=(low+high)/2;
merge_sort(low,mid);
merge_sort(mid+1,high);
merge(low,mid,high);
}
}
void merge(int low,int mid,int high)
{
ada m;
int h,j,b[50],k;
h=low;
m.i=low;
j=mid+1;
while((h<=mid)&&(j<=high))
{
if(m.a[h]<=m.a[j])
{
b[m.i]=m.a[h];
h++;
}
else
{
b[m.i]=m.a[j];
j++;
}
m.i++;
}
if(h>mid)
{
for(k=j;k<=high;k++)
{

b[m.i]=m.a[k];
m.i++;
}
}
else
{
for(k=h;k<=mid;k++)
{
b[m.i]=m.a[k];
m.i++;
}
}
for(k=low;k<=high;k++) m.a[k]=b[k];
}
int main()
{
ada m;
cout<<"Inputkan banyak data yang akan diurutkan :";
cin>>m.num;
cout<<endl;
cout<<"Masukkan ( "<< m.num <<" ) data: "<<endl;
for(m.i=1;m.i<=m.num;m.i++)
{
cin>>m.a[m.i];
}
merge_sort(1,m.num);
cout<<endl;
cout<<"Setelah Pengurutan (Merge Sort) :"<<endl;
for(m.i=1;m.i<=m.num;m.i++)
cout<<m.a[m.i]<<" ";
cout<<endl<<endl<<endl<<endl;
return 0;
}
Output program :

Penjelasan program :
1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk
membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program
yang akan dijalankan
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan
output seperti cout<<var.
4. Int main() adalah main program berupa integer atau program utama dalam koding tersebut.
Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan
tanda kurung kurawal tutup }
5. int i, j, n, min, dll adalah deklarasi variabel yang bertipe data integer.
6. Void merge adalah menu program yang dapat dipanggil dalam program utama.
7. Typedef Struct ada{ int a,num }m; adalah pendeklarasian tipedata abstrak baru bernama ada
bertipe data integer.
8. Ada m; adalah pendeklarasian variabel baru bernama m.
9. for(1=0; ..... ) ..... adalah rumus yang akan digunakan dalam program.
10. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah
untuk memunculkan variable yang ditulis oleh programmer..
11. Cin>>var adalah perintah untuk memasukkan atau menginputkan data ke variable yang sudah
dideklarasikan diatas.
12. return 0; digunakan untuk membaca data karakter

BAB IV
KESIMPULAN
Sorting adalah suatu proses pengurutan data yang sebelumnya disusun secara acak atau tidak teratur
menjadi urut atau teratur menurut aturan tertentu.
Proses sorting ada 6 yaitu :Secection, Bubble, Insertion, Quick.shell, merge
Selection sort memiliki mekanisme dengancaramenentukan pos awal yakni menentukan data terkecil
kemudian diurutkan datanya.
Bubble sort memiliki ciri khusus yaitu dengan melakukan pembanding dan apabila urutan data tidak
terpenuhi maka dilakukan pertukaran.
Insertion Sort adalah teknik sorting paling sederhana.dengan cara membandingkan data 1 dengan
data berikutnya kemudian menyisipkan data yang lebih kecil diatas data yang lebih besar.
Quick Sort yaitu teknik membandingkan suatu elemen (pivot) dengan elemen yang lain dan
menyusunnya sedemikian rupa sehingga elemen-elemen lain yang lebih kecil dari pivot terletak
disebelah kirinya dan elemen-elemen lain yang lebih besar daripada pivot tersebut terletak disebelah
kanannya.
Shell sort teknik mengurutkan data dengan melakukan perbandingan kemudian saling tukan dari data
1 ke data lainnya.
Merge sort adalah teknik menggabungkan 2 data kemudian melakukan pegurutan data tersebut.

DAFTAR PUSTAKA
1. Modul praktikum algoritma & struktur data 1 (bab 6,7,8 sorting ).
2. Ardhana. YM Kusuma. 2013. Struktur Data dalam Ilustrasi Eclips Indigo C ++.
Yogyakarta: CAPS (Center of Academic Publishing Service).

Anda mungkin juga menyukai