laporan praktikum resmi bab 8
TRANSCRIPT
LAPORAN PRAKTIKUM RESMI
ALGORITMA & STRUKTUR DATA 1
Disusun oleh :
Nama : Yosua Tita Pratama
NIM : 201301010
Dosen pengampu :
Yosef Murya Kusuma Ardhana.S.T., M.Kom
JURUSAN SISTEM INFORMASI
SEKOLAH TING GI ILMU KOMPUTER YOS SUDARSO
PURWOKERTO
2014
1
BAB I
TEORI DASAR 1. PENGANTAR
Shell Sort mengurutkan data dengan cara membandingkan suatu data dengan data lain
yang memiliki jarak tertentu , kemudian dilakukan pertukaran jika diperlukan.
2. MERGE SORT
Merge Sort yaitu suatu teknik pengurutan dengan menggabungkan setiap kali dua
deretan elemen dan melakukan pengurutan terhadap elemen-elemen tersebut.
2
BAB II
PENJELASAN PROGRAM
Pada bab Sorting (Shell , Merge ) ini akan membahas tentang listing program 8.1 dan 8.2.
Latihan yang dilakukan adalah pada Listing Program 8.1 dan 8.2
Listing program
8.1 /* * program 8.1.cpp * * Created on: Apr 22, 2014 * Author: cenat-cenut */
#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
{
3
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;
}
4
Hasil Output program 8.1 Penjelasan Listing program 8.1
1. Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah
komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau
teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler. 2. #include : Pengarah Praprocessor
Include adalah pengarah suatu library yang digunakan untuk suatu program.
3. Iostream : Library
Iostream adalah library untuk input dan output “cin” dan “cout”.
4. Tanda ‘{‘ dan ‘}’ adalah tanda untuk mengawali dan mengakhiri program.
5. Return 0 berfungsi untuk menampilkan program setelah dieksekusi.
6. Cout : untuk menampilkan output program yang sudah dituliskan.
7. Cin : untuk menginputkan data yang dimasukkan oleh user.
8. void shellsort(int a[],int n) : prosedur yang bernama shellsort yang terdiri atas tipe data
int a[] , int n.
9. shellsort(a,n) : Pemanggilan prosedur shellsort dalam main program.
10. Statement For : digunakan untuk modul perulangan pada program.
11. Statement if-else : digunakan untuk modul perulangan pada program.
5
Listing program 8.2
/* * program 8.2.cpp
*
* Created on: Apr 22, 2014
* Author: cenat-cenut
*/
#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);
}
6
}
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)
{
7
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<<"Masukkan ( "<< num <<" ) data: "<<endl;
8
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;
}
Hasil Output program 8.2
9
Penjelasan Listing program 8.2
1. Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah
komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau
teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler. 2. #include : Pengarah Praprocessor
Include adalah pengarah suatu library yang digunakan untuk suatu program.
3. Iostream : Library
Iostream adalah library untuk input dan output “cin” dan “cout”.
4. Tanda ‘{‘ dan ‘}’ adalah tanda untuk mengawali dan mengakhiri program.
5. Return 0 berfungsi untuk menampilkan program setelah dieksekusi.
6. Cout : untuk menampilkan output program yang sudah dituliskan.
7. Cin : untuk menginputkan data yang dimasukkan oleh user.
8. void merge(int,int,int) : Prosedur yang bernama merge yang terdiri hanya dari tipe data
int saja.
9. void merge_sort(int low,int high) : Prosedur yang bernama merge_sort yang terdiri dari
tipe data int low , int high.
10. void merge(int low,int mid,int high) : Prosedur yang bernama merge_sort yang terdiri
dari tipe data int low , int mid , int high.
11. h=low;
i=low;
j=mid+1;
adalah rumus-rumus yang digunakan dalam prosedur merge.
12. merge_sort(1,num) : pemanggilan prosedur merge_sort dalam main program.
13. Statement For : digunakan untuk modul perulangan pada program.
14. Statement if-else : digunakan untuk modul perulangan pada program.
15. Statement while : digunakan untuk modul perulangan pada program.
10
Tugas Praktikum Tugas Praktikum yang dikerjakan terdiri dari program 8.1 dan 8.2 menggunakan tipe data
abstrak yaitu struct , typedef dan typedef struct.
Listing program 8.1
struct /* * program 8.1 struct.cpp * * Created on: 22 Apr 2014 * Author: Owner */
#include <iostream>
using namespace std;
struct delapan {
int i,n; };
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
11
{
mid=a[i];
a[i]=a[i+m];
a[i+m]=mid;
}
}
}
} } int main() {
delapan pertama;
pertama.i;
pertama.n;
int a[10];
cout<<"Inputkan banyak data yang akan disorting :";
cin>>pertama.n;
for(pertama.i=0;pertama.i<pertama.n;pertama.i++)
{
cout<<"Data "<<pertama.i+1<<"=";
cin>>a[pertama.i];
}
cout<<"Data sebelum sorting :";
for(pertama.i=0;pertama.i<pertama.n;pertama.i++)
cout<<a[pertama.i]<<"
"; shellsort(a,pertama.n);
cout<<"\nData setelah sorting :";
for(pertama.i=0;pertama.i<pertama.n;pertama.i++)
cout<<a[pertama.i]<<"
"; return 0; }
12
Hasil Output program 8.1 struct Penjelasan Listing program 8.1 struct
1. Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah
komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau
teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler. 2. #include : Pengarah Praprocessor
Include adalah pengarah suatu library yang digunakan untuk suatu program.
3. Iostream : Library
Iostream adalah library untuk input dan output “cin” dan “cout”.
4. Tanda ‘{‘ dan ‘}’ adalah tanda untuk mengawali dan mengakhiri program.
5. Return 0 berfungsi untuk menampilkan program setelah dieksekusi.
6. Cout : untuk menampilkan output program yang sudah dituliskan.
7. Cin : untuk menginputkan data yang dimasukkan oleh user.
8. void shellsort(int a[],int n) : prosedur yang bernama shellsort yang terdiri atas tipe data
int a[] , int n.
9. Statement For : digunakan untuk modul perulangan pada program.
10. Statement if-else : digunakan untuk modul perulangan pada program.
11. Struct delapan : untuk tempat penampungan data delapan. 12. delapan pertama : pendefinisian pertama dengan tipe data delapan. 13. pertama.i : Pendefinisian i dengan tipe data struct pertama. 14. pertama.n : Pendefinisian n dengan tipe data struct pertama. 15. shellsort(a,pertama.n) : Pemanggilan prosedur shellsort dengan tipe data abstrak struct.
13
Listing program 8.2
struct /* * program 8.2 struct.cpp * * Created on: 22 Apr 2014 * Author: Owner */
/* * program 8.2.cpp * * Created on: Apr 22, 2014 * Author: cenat-cenut */
#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);
} }
14
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
15
{
for(k=h;k<=mid;k++)
{
b[i]=a[k];
i++;
}
}
for(k=low;k<=high;k++) a[k]=b[k]; } int main() {
struct delapan
{
int num,i;
};
delapan kedua;
cout<<"Inputkan banyak data yang akan diurutkan :";
cin>>kedua.num;
cout<<endl;
cout<<"Masukkan ( "<< kedua.num <<" ) data:
"<<endl; for(kedua.i=1;kedua.i<=kedua.num;kedua.i++)
{
cin>>a[kedua.i];
}
merge_sort(1,kedua.num);
cout<<endl;
cout<<"Setelah Pengurutan (Merge Sort) :"<<endl;
for(kedua.i=1;kedua.i<=kedua.num;kedua.i++)
cout<<a[kedua.i]<<"";
cout<<endl<<endl<<endl<<endl;
16
return 0; }
Hasil Output program 8.2 struct :
Penjelasan listing program 8.2 struct
1. Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah
komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau
teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler. 2. #include : Pengarah Praprocessor
Include adalah pengarah suatu library yang digunakan untuk suatu program.
3. Iostream : Library
Iostream adalah library untuk input dan output “cin” dan “cout”.
4. Tanda ‘{‘ dan ‘}’ adalah tanda untuk mengawali dan mengakhiri program.
5. Return 0 berfungsi untuk menampilkan program setelah dieksekusi.
6. Cout : untuk menampilkan output program yang sudah dituliskan.
7. Cin : untuk menginputkan data yang dimasukkan oleh user.
8. void merge(int,int,int) : Prosedur yang bernama merge yang terdiri hanya dari tipe data
int saja.
9. void merge_sort(int low,int high) : Prosedur yang bernama merge_sort yang terdiri dari
tipe data int low , int high.
10. void merge(int low,int mid,int high) : Prosedur yang bernama merge_sort yang terdiri
dari tipe data int low , int mid , int high.
17
11. h=low;
i=low;
j=mid+1;
adalah rumus-rumus yang digunakan dalam prosedur merge. 12. merge_sort(1,kedua.num) : pemanggilan prosedur merge_sort dalam main program
dengan tipe data abstrak struct. 13. Statement For : digunakan untuk modul perulangan pada program. 14. Statement if-else : digunakan untuk modul perulangan pada program. 15. Statement while : digunakan untuk modul perulangan pada program. 16. Struct delapan : untuk tempat penampungan data delapan. 17. delapan kedua : pendefinisian kedua dengan tipe data delapan. 18. kedua.i : Pendefinisian i dengan tipe data struct kedua. 19. kedua.num : Pendefinisian num dengan tipe data struct pertama.
18
Listing program 8.1
typedef /* * program 8.1 typedef.cpp * * Created on: 22 Apr 2014 * Author: Owner */
#include <iostream>
using namespace std;
typedef int i,n;
typedef int j,i,m,mid;
void shellsort(int a[],int n) {
j j;
i i;
m m;
mid 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;
19
}
}
}
} }
int main() {
int a[10];
n n;
i i;
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;
}
20
Hasil Output program 8.1 typedef
Penjelasan Listing program 8.1 typedef
1. Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah
komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau
teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler. 2. #include : Pengarah Praprocessor
Include adalah pengarah suatu library yang digunakan untuk suatu program.
3. Iostream : Library
Iostream adalah library untuk input dan output “cin” dan “cout”.
4. Tanda ‘{‘ dan ‘}’ adalah tanda untuk mengawali dan mengakhiri program.
5. Return 0 berfungsi untuk menampilkan program setelah dieksekusi.
6. Cout : untuk menampilkan output program yang sudah dituliskan.
7. Cin : untuk menginputkan data yang dimasukkan oleh user.
8. void shellsort(int a[],int n) : prosedur yang bernama shellsort yang terdiri atas tipe data
int a[] , int n.
9. Statement For : digunakan untuk modul perulangan pada program.
10. Statement if-else : digunakan untuk modul perulangan pada program.
11. typedef int i.n : Pengganti tipe data int dengan tipe data i dan n. 12. typedef int j,m,mid : pengganti tipe data int dengan tipe data j , m dan mid. 13. j j : Pendefinisian j dengan tipe data j.
21
14. m m : Pendefinisian m dengan tipe data m. 15. mid mid : Pendefinisian mid dengan tipe data mid.
16. n n : Pendefinisian n dengan tipe data n.
17. i i : Pendefinisian i dengan tipe data i.
18. shellsort(a,n) : Pemanggilan prosedur shellsort dengan tipe data abstrak typedef.
Listing program 8.2
typedef /* * program 8.2 typedef.cpp * * Created on: 22 Apr 2014 * Author: Owner */
#include <iostream>
using namespace std;
typedef int num,i,mid;
int a[50]; void merge(int,int,int); void merge_sort(int low,int high) {
mid mid;
if(low<high)
{
mid=(low+high)/2;
merge_sort(low,mid);
merge_sort(mid+1,high);
22
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++;
23
}
}
else
{
for(k=h;k<=mid;k++)
{
b[i]=a[k];
i++;
}
}
for(k=low;k<=high;k++) a[k]=b[k]; } int main() {
num num;
i i;
cout<<"Inputkan banyak data yang akan diurutkan :";
cin>>num;
cout<<endl;
cout<<"Masukkan ( "<< 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;
24
return 0; }
Hasil Output program 8.2 typedef
Penjelasan listing program 8.2 typedef
1. Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah
komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau
teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler. 2. #include : Pengarah Praprocessor
Include adalah pengarah suatu library yang digunakan untuk suatu program.
3. Iostream : Library
Iostream adalah library untuk input dan output “cin” dan “cout”.
4. Tanda ‘{‘ dan ‘}’ adalah tanda untuk mengawali dan mengakhiri program.
5. Return 0 berfungsi untuk menampilkan program setelah dieksekusi.
6. Cout : untuk menampilkan output program yang sudah dituliskan.
7. Cin : untuk menginputkan data yang dimasukkan oleh user.
8. void merge(int,int,int) : Prosedur yang bernama merge yang terdiri hanya dari tipe data
int saja.
9. void merge_sort(int low,int high) : Prosedur yang bernama merge_sort yang terdiri dari
tipe data int low , int high.
25
10. void merge(int low,int mid,int high) : Prosedur yang bernama merge_sort yang terdiri
dari tipe data int low , int mid , int high. 11. h=low;
i=low;
j=mid+1;
adalah rumus-rumus yang digunakan dalam prosedur merge. 12. merge_sort(1,kedua.num) : pemanggilan prosedur merge_sort dalam main program
dengan tipe data abstrak struct. 13. Statement For : digunakan untuk modul perulangan pada program. 14. Statement if-else : digunakan untuk modul perulangan pada program. 15. Statement while : digunakan untuk modul perulangan pada program. 16. typedef int num,i,mid: pengganti tipe data int dengan tipe data num , i dan mid. 17. j j : Pendefinisian j dengan tipe data j.
18. m m : Pendefinisian m dengan tipe data m. 19. mid mid : Pendefinisian mid dengan tipe data mid. 20. num num : Pendefinisian num, dengan tipe data num. 21. i i : Pendefinisian i dengan tipe data i. 22. merge_sort(1,num) : Pemanggilan prosedur merge_sort dari main program dengan tipe
data abstrak typedef.
26
Listing program 8.1 typedef
struct /* * program 8.1 typedef.cpp * * Created on: Apr 22, 2014 * Author: cenat-cenut */
#include <iostream>
using namespace std;
typedef struct delapan {
int main_program;
int a[10],i;
}kedua; 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;
27
}
}
}
} }
int main() {
delapan kedua;
cout<<"Inputkan banyak data yang akan disorting :";
cin>>kedua.main_program;
for(kedua.i=0;kedua.i<kedua.main_program;kedua.i++)
{
cout<<"Data "<<kedua.i+1<<"=";
cin>>kedua.a[kedua.i];
}
cout<<"Data sebelum sorting :";
for(kedua.i=0;kedua.i<kedua.main_program;kedua.i++)
cout<<kedua.a[kedua.i]<<" ";
shellsort(kedua.a,kedua.main_program);
cout<<"\nData setelah sorting :";
for(kedua.i=0;kedua.i<kedua.main_program;kedua.i++)
cout<<kedua.a[kedua.i]<<" ";
return 0;
}
28
Hasil Program 8.1 typedef struct Penjelasan Listing program 8.1 typedef struct
1. Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah
komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau
teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler. 2. #include : Pengarah Praprocessor
Include adalah pengarah suatu library yang digunakan untuk suatu program.
3. Iostream : Library
Iostream adalah library untuk input dan output “cin” dan “cout”.
4. Tanda ‘{‘ dan ‘}’ adalah tanda untuk mengawali dan mengakhiri program.
5. Return 0 berfungsi untuk menampilkan program setelah dieksekusi.
6. Cout : untuk menampilkan output program yang sudah dituliskan.
7. Cin : untuk menginputkan data yang dimasukkan oleh user.
8. void shellsort(int a[],int n) : prosedur yang bernama shellsort yang terdiri atas tipe data
int a[] , int n.
9. Statement For : digunakan untuk modul perulangan pada program.
10. Statement if-else : digunakan untuk modul perulangan pada program.
11. typedef struct delapan
{
29
int
main_program;
int a[10],i; }kedua;
adalah struktur typedef struct dengan tipe data int main_program , int a[10] dan int i.
12. delapan kedua; : pendefinisian typedef struct dengan awalan delapan dan akhiran kedua. 13. kedua.main_program : Pendefinisian main_program dengan typedef struct kedua. 14. kedua.a : Pendefinisian a dengan typedef struct kedua.
15. kedua.i : Pendefinisian i dengan typedef struct kedua.
16. shellsort(kedua.a,kedua.main_program) : pemanggilan prosedur shellsort dalam main
program dengan tipe data abstrak typedef struct.
Listing program 8.2 typedef
struct /* * program 8.2 typedef struct.cpp * * Created on: Apr 22, 2014 * Author: cenat-cenut */
#include <iostream>
using namespace std;
typedef struct delapan {
int a[50];
int num,i; }pertama;
void merge(int,int,int);
30
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) {
delapan pertama;
int h,j,b[50],k;
h=low;
pertama.i=low;
j=mid+1;
while((h<=mid)&&(j<=high))
{
if(pertama.a[h]<=pertama.a[j])
{
b[pertama.i]=pertama.a[h];
h++;
}
else
{
b[pertama.i]=pertama.a[j];
j++;
}
31
pertama.i++;
}
if(h>mid)
{
for(k=j;k<=high;k++)
{
b[pertama.i]=pertama.a[k];
pertama.i++;
}
}
else
{
for(k=h;k<=mid;k++)
{
b[pertama.i]=pertama.a[k];
pertama.i++;
}
}
for(k=low;k<=high;k++) pertama.a[k]=b[k]; } int main() {
delapan pertama;
cout<<"Inputkan banyak data yang akan diurutkan :";
cin>>pertama.num;
cout<<endl;
cout<<"Masukkan ( "<< pertama.num <<" ) data: "<<endl;
for(pertama.i=1;pertama.i<=pertama.num;pertama.i++)
{
cin>>pertama.a[pertama.i];
32
}
merge_sort(1,pertama.num);
cout<<endl;
cout<<"Setelah Pengurutan (Merge Sort) :"<<endl;
for(pertama.i=1;pertama.i<=pertama.num;pertama.i++)
cout<<pertama.a[pertama.i]<<" ";
cout<<endl<<endl<<endl<<endl;
return 0; }
Hasil Output program 8.2 typedef struct
33
Penjelasan listing program 8.2 typedef struct
1. Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah
komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau
teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler. 2. #include : Pengarah Praprocessor
Include adalah pengarah suatu library yang digunakan untuk suatu program.
3. Iostream : Library
Iostream adalah library untuk input dan output “cin” dan “cout”.
4. Tanda ‘{‘ dan ‘}’ adalah tanda untuk mengawali dan mengakhiri program.
5. Return 0 berfungsi untuk menampilkan program setelah dieksekusi.
6. Cout : untuk menampilkan output program yang sudah dituliskan.
7. Cin : untuk menginputkan data yang dimasukkan oleh user.
8. void merge(int,int,int) : Prosedur yang bernama merge yang terdiri hanya dari tipe data
int saja.
9. void merge_sort(int low,int high) : Prosedur yang bernama merge_sort yang terdiri dari
tipe data int low , int high.
10. void merge(int low,int mid,int high) : Prosedur yang bernama merge_sort yang terdiri
dari tipe data int low , int mid , int high.
11. h=low;
i=low;
j=mid+1;
adalah rumus-rumus yang digunakan dalam prosedur merge.
12. merge_sort(1,kedua.num) : pemanggilan prosedur merge_sort dalam main program
dengan tipe data abstrak struct.
13. Statement For : digunakan untuk modul perulangan pada program.
14. Statement if-else : digunakan untuk modul perulangan pada program.
15. Statement while : digunakan untuk modul perulangan pada program.
16. typedef struct delapan
{
int a[50],num,i;
}pertama;
adalah struktur typedef struct dengan tipe data int num , int a[50] dan int i.
34
17. delapan pertama; : pendefinisian typedef struct dengan awalan delapan dan akhiran
pertama. 18. pertama.num : Pendefinisian num dengan typedef struct pertama. 19. pertama.a : Pendefinisian a dengan typedef struct pertama. 20. pertama.i : Pendefinisian i dengan typedef struct pertama. 21. merge_sort(1,pertama.num) : pemanggilan prosedur merge_sort dalam main program
dengan tipe data abstrak typedef struct.
35
BAB IV
KESIMPULAN
1. Shell Sort : Mengurutkan data dengan cara membandingkan suatu data dengan data lain yang
memiliki jarak tertentu , kemudian dilakukan pertukaran jika diperlukan. 2. Merge Sort : Suatu Teknik pengurutan dengan menggabungkan setiap kali dua deretan
elemen dan melakukan pengurutan terhadap elemen-elemen tersebut. 3. Dalam program 8.1 struct , typedef dan typedef struct , teknik shell sort cukup efektif karena
tidak memakan memori yang besar , dan juga metode pengurutan shell sort tidak memakan
waktu lama karena hanya membandingkan data yang satu dengan yang lain. 4. Dalam program 8.2 struct , typedef dan typedef struct , teknik merge sort pada dasarnya
memang efektif , namun dalam pelaksanaannya , listing program yang harus digunakan
terlalu panjang dan menggunakan statement logika yang bertele-tele sehingga tidak terlalu
efektif dalam prakteknya.
36
BAB V
DAFTAR PUSTAKA 1. Modul praktikum algoritma & struktur data 1 (bab 8 Sorting (Shell , Merge)). 2. Ardhana. YM Kusuma. 2013. Struktur Data dalam Ilustrasi Eclipse Indigo C ++.
Yogyakarta: CAPS (Center of Academic Publishing Service).
37