Anda di halaman 1dari 27

LAPORAN PRAKTIKUM RESMI

ALGORITMA & STRUKTUR DATA 1


SORTING (SHELL, MERGE)




Disusun oleh :
Cintia Yosfin Samalle
201301041

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




JURUSAN SISTEM INFORMASI
SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO
PURWOKERTO
2014

2


BAB I
TEORI DASAR

1. Shell Sort
Shell Sort mengurutkan data dengan cara membandingkan suatu data dengan data lain
yang memilki 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.

















3

BAB II
PENJELASAN PROGRAM

Pada penjelasan program bab ini akan dijelaskan mengenai bagaimana melakukan
pemrograman C++dengan menggunakan teknik sorting (shell, merge) secara sederhana sesuai
dengan modul praktikum.
Program 8.1
/ *
* Pr akt i kum8. 1. cpp
*
* Cr eat ed on: Apr 22, 2014
* Aut hor : STI KOM32
*/

#include <i ost r eam>
using namespace st d;

void shellsort( int a[ ] , int n)
{
int j , i , k, m, mi d;
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
{
mi d = a[ i ] ;
a[ i ] = a[ i +m] ;
a[ i +m] = mi d;
}
}
}
}
}

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

cout <<"I nput kan banyak dat a yang akan di sor t i ng : ";
ci n>>n;

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

4

cout <<"Dat a "<<i +l <<"=";
ci n>>a[ i ] ;
}

cout <<"Dat a sebel umsor t i ng : ";

for( i =0; i <n; i ++)
cout <<a[ i ] <<" ";
shel l sor t ( a, n) ;

cout <<"\ nDat a set el ah sor t i ng : ";
for( i =0; i <n; i ++)
cout <<a[ i ] <<" ";

return 0;
}

Output Program 8.1


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

5

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

Program 8.2
/ *
* Pr akt i kum8. 3. cpp
*
* Cr eat ed on: Apr 22, 2014
* Aut hor : STI KOM32
*/


#include <i ost r eam>
using namespace st d;

int a[ 50] ;
void merge( int, int, int) ;
void merge_sort( int l ow, int hi gh)
{
int mi d;
if( l ow<hi gh)
}

mi d=( l ow+hi gh) / 2;
mer ge_sor t ( l ow, mi d) ;
mer ge_sor t ( mi d+1, hi gh) ;
mer ge( l ow, mi d, hi gh) ;
}
}
void merge( int l ow, int mi d, int hi gh)
{
int h, i , j , b[ 50] , k;
h=l ow;
i =l ow;
j =mi d+1;

while( ( h<=mi d) &&( j <=hi gh) )

6

{
if( a[ h] <=a[ j ] )
{
b[ i ] =a[ h] ;
h++;
}
else
{
b[ i ] =a[ j ] ;
j ++;
}
i ++;
}
if( h>mi d)
{
for( k=j ; k<=hi gh; k++)
{
b[ i ] =a[ k] ;
i ++;
}
}
else
{
for( k=h; k<=mi d; k++)
{
b[ i ] =a[ k] ;
i ++;
}
}
for( k=l ow; k<=hi gh; k++) a[ k] =b[ k] ;
}
int main( )
{
int num, i ;

cout <<"I nput kan banyak dat a yang akan di ur ut kan : ";
ci n>>num;
cout <<endl ;
cout <<"Masukkan ( "<< num<<") dat a: "<<endl ;
for( i =1; i <num; i ++)
{
ci n>>a[ i ] ;
}
mer ge_sor t ( 1, num) ;
cout <<endl ;
cout <<"Set el ah Pengur ut an ( Mer ge Sor t ) : "<<endl ;

for( i =1; i <=num; i ++)
cout <<a[ i ] <<" ";
cout <<endl <<endl <<endl <<endl ;
return 0;
}


7

Output Program 8.2


Pembahasan Program 8.2
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat
sebuah komentar pada pemrograman C++yang jika didalamnya terdapat sebuah perintah
atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca oleh compiler.
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream>untuk memanggil fungsi cout dan cin dalam C++.
4. using namespace std; adalah standar deviasi dalam sebuah program dalam bahasa
pemrograman C++.
5. Tanda kurung kurawal {} dimaksudkan untuk mengawali dan mengakhiri bagian main.
6. Tanda ; digunakan untuk mengakhiri sebuah pernyataan.
7. int main(),menyatakan tipe nilai balik fungsi main.
8. cout dipakai untuk menampilkan teks/data ke layar monitor sehingga menjadi output.
9. return 0 dimaksudkan untuk menyatakan nilai balik main.
10. Tanda <<adalah tanda spesifik dalam cout. Tanda tersebut menyatakan bahwa nilai di
kanannya akan dirim ke layar.
11. cout dan cin disini maksudnya adalah sebagai fungsi input dan output sebuah program.
12. \n digunakan untuk memindahkan kursor ke baris berikutnya.


8

Program Tugas Praktikum
Pada praktikum kali ini kita akan memodifikasi program 6.1 dan 6.2 dengan
menggunakan tipe data abstrak (struct, typedef dan typedef & struct).

Program 8.1 dengan Menggunakan Struct
/ *
* Pr akt i kum8. 1. cpp
*
* Cr eat ed on: Apr 29, 2014
* Aut hor : STI KOM32
*/

#include <i ost r eam>
using namespace st d;

void shellsort( int a[ ] , int n)
{
int j , i , k, m, mi d;
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
{
mi d = a[ i ] ;
a[ i ] = a[ i +m] ;
a[ i +m] = mi d;
}
}
}
}
}

struct bi l angan
{
int a[ 10] ;
int i ;
int n;
}
struct bi l angan z;

int main( )
{

cout <<"I nput kan banyak dat a yang akan di sor t i ng : ";
ci n>>n;

9


for( z. i =0; z. i <z. n; z. i ++)
{
cout <<"Dat a "<<z. i +l <<"=";
ci n>>z. a[ z. i ] ;
}

cout <<"Dat a sebel umsor t i ng : ";

for( z. i =0; z. i <z. n; z. i ++)
cout <<z. a[ z. i ] <<" ";
shel l sor t ( z. a, z. n) ;

cout <<"\ nDat a set el ah sor t i ng : ";
for( z. i =0; z. i <z. n; z. i ++)
cout <<z. a[ z. i ] <<" ";

return 0;
}

Output Program 8.1 Struct


Pembahasan Program 8.1 Struct
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat
sebuah komentar pada pemrograman C++yang jika didalamnya terdapat sebuah perintah
atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca oleh compiler.
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream>untuk memanggil fungsi cout dan cin dalam C++.
4. using namespace std; adalah standar deviasi dalam sebuah program dalam bahasa
pemrograman C++.

10

5. Tanda kurung kurawal {} dimaksudkan untuk mengawali dan mengakhiri bagian main.
6. Tanda ; digunakan untuk mengakhiri sebuah pernyataan.
7. int main(),menyatakan tipe nilai balik fungsi main.
8. struct bi l angan
{
int a[10];
int i ;
int n;

};
struct bi l angan z;
Bilangan merupakan member atau anggota dari struct, a[10], i, n merupakan variable yang
bertipe data integer, z merupakan bagian dalam member bilangan dalam struct.
9. int i ; Variabel i bertipe data integer.
10. int n; Variabel n bertipe data integer.
11. cout dipakai untuk menampilkan teks/data ke layar monitor sehingga menjadi output.
12. return 0 dimaksudkan untuk menyatakan nilai balik main.
13. Tanda <<adalah tanda spesifik dalam cout. Tanda tersebut menyatakan bahwa nilai di
kanannya akan dikirim ke layar.
14. cout dan cin disini maksudnya adalah sebagai fungsi input dan output sebuah program.
15. \n digunakan untuk memindahkan kursor ke baris berikutnya.

Program 8.1 dengan Menggunakan Typedef
/ *
* Pr akt i kum8. 1. cpp
*
* Cr eat ed on: Apr 29, 2014
* Aut hor : STI KOM32
*/

#include <i ost r eam>
using namespace st d;

void shellsort( int a[ ] , int n)
{
int j , i , k, m, mi d;

11

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
{
mi d = a[ i ] ;
a[ i ] = a[ i +m] ;
a[ i +m] = mi d;
}
}
}
}
}

typedef int n;

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

cout <<"I nput kan banyak dat a yang akan di sor t i ng : ";
ci n>>n;

for( i =0; i <n; i ++)
{
cout <<"Dat a "<<i +l <<"=";
ci n>>a[ i ] ;
}

cout <<"Dat a sebel umsor t i ng : ";

for( i =0; i <n; i ++)
cout <<a[ i ] <<" ";
shel l sor t ( a, n) ;

cout <<"\ nDat a set el ah sor t i ng : ";
for( i =0; i <n; i ++)
cout <<a[ i ] <<" ";

return 0;
}




12

Output Program 8.1 Typedef


Pembahasan Program 8.1 Typedef
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat
sebuah komentar pada pemrograman C++yang jika didalamnya terdapat sebuah perintah
atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca oleh compiler.
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream>untuk memanggil fungsi cout dan cin dalam C++.
4. using namespace std; adalah standar deviasi dalam sebuah program dalam bahasa
pemrograman C++.
5. Tanda kurung kurawal {} dimaksudkan untuk mengawali dan mengakhiri bagian main.
6. Tanda ; digunakan untuk mengakhiri sebuah pernyataan.
7. int main(),menyatakan tipe nilai balik fungsi main.
8. typedef int n;
Typedef biasanya digunakan untuk memberikan nama alias untuk suatu tipe n.
9. n a[ 10] ;
n i , n;
Setelah int ditypedefkan menjadi n (int diberikan nama alias yaitu n), maka pendeklarasian
variable yang menggunakan tipe data int (integer) sekarang menggunakan nama n.
10. n a[ 10] ; Variabel a[10] bertipe data integer dengan nama alias n.
11. n i , n; Variabel i,n bertipe data integer dengan nama alias n.

13

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

Program 8.1 Struct - Typedef
/ *
* Pr akt i kum8. 1. cpp
*
* Cr eat ed on: Apr 29, 2014
* Aut hor : STI KOM32
*/

#include <i ost r eam>
using namespace st d;

void shellsort( int a[ ] , int n)
{
int j , i , k, m, mi d;
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
{
mi d = a[ i ] ;
a[ i ] = a[ i +m] ;
a[ i +m] = mi d;
}
}
}
}
}

typedef struct bi l angan
{
int a[ 10] ;
int i ;
int n;
}

14

struct bi l angan z;

int main( )
{

cout <<"I nput kan banyak dat a yang akan di sor t i ng : ";
ci n>>n;

for( z. i =0; z. i <z. n; z. i ++)
{
cout <<"Dat a "<<z. i +l <<"=";
ci n>>z. a[ z. i ] ;
}

cout <<"Dat a sebel umsor t i ng : ";

for( z. i =0; z. i <z. n; z. i ++)
cout <<z. a[ z. i ] <<" ";
shel l sor t ( z. a, z. n) ;

cout <<"\ nDat a set el ah sor t i ng : ";
for( z. i =0; z. i <z. n; z. i ++)
cout <<z. a[ z. i ] <<" ";

return 0;
}

Output Program 8.1 Struct Typedef


Pembahasan Program 8.1 Struct - Typedef
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat
sebuah komentar pada pemrograman C++yang jika didalamnya terdapat sebuah perintah
atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca oleh compiler.
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.

15

3. <iostream>untuk memanggil fungsi cout dan cin dalam C++.
4. using namespace std; adalah standar deviasi dalam sebuah program dalam bahasa
pemrograman C++.
5. Tanda kurung kurawal {} dimaksudkan untuk mengawali dan mengakhiri bagian main.
6. Tanda ; digunakan untuk mengakhiri sebuah pernyataan.
7. int main(),menyatakan tipe nilai balik fungsi main.
8. typedef struct bi l angan
{
int a[10];
int i ;
int n;

};
struct bi l angan z;
Typedef biasanya digunakan untuk memberikan nama alias untuk suatu tipe data. Bilangan
merupakan member atau anggota dari struct, a[10], i, n merupakan variable yang bertipe data
integer, z merupakan bagian dalam member bilangan dalam struct.
9. int i ; Variabel i bertipe data integer.
10. int n; Variabel n bertipe data integer.
11. cout dipakai untuk menampilkan teks/data ke layar monitor sehingga menjadi output.
12. return 0 dimaksudkan untuk menyatakan nilai balik main.
13. Tanda <<adalah tanda spesifik dalam cout. Tanda tersebut menyatakan bahwa nilai di
kanannya akan dikirim ke layar.
14. cout dan cin disini maksudnya adalah sebagai fungsi input dan output sebuah program.
15. \n digunakan untuk memindahkan kursor ke baris berikutnya.

Program 8.2 dengan Menggunakan Struct
/ *
* Pr akt i kum8. 3. cpp
*
* Cr eat ed on: Apr 29, 2014
* Aut hor : STI KOM32
*/

16



#include <i ost r eam>
using namespace st d;

int a[ 50] ;
void merge( int, int, int) ;
void merge_sort( int l ow, int hi gh)
{
int mi d;
if( l ow<hi gh)
}

mi d=( l ow+hi gh) / 2;
mer ge_sor t ( l ow, mi d) ;
mer ge_sor t ( mi d+1, hi gh) ;
mer ge( l ow, mi d, hi gh) ;
}
}
void merge( int l ow, int mi d, int hi gh)
{
int h, i , j , b[ 50] , k;
h=l ow;
i =l ow;
j =mi d+1;

while( ( h<=mi d) &&( j <=hi gh) )
{
if( a[ h] <=a[ j ] )
{
b[ i ] =a[ h] ;
h++;
}
else
{
b[ i ] =a[ j ] ;
j ++;
}
i ++;
}
if( h>mi d)
{
for( k=j ; k<=hi gh; k++)
{
b[ i ] =a[ k] ;
i ++;
}
}
else
{
for( k=h; k<=mi d; k++)
{
b[ i ] =a[ k] ;
i ++;
}

17

}
for( k=l ow; k<=hi gh; k++) a[ k] =b[ k] ;
}

struct bi l angan
{
int num;
int i , a;
}
struct bi l angan z;

int main( )
{
cout <<"I nput kan banyak dat a yang akan di ur ut kan : ";
ci n>>z. num;
cout <<endl ;
cout <<"Masukkan ( "<< z. num<<") dat a: "<<endl ;
for( z. i =1; z. i <z. num; z. i ++)
{
ci n>>z. a[ z. i ] ;
}
mer ge_sor t ( 1, z. num) ;
cout <<endl ;
cout <<"Set el ah Pengur ut an ( Mer ge Sor t ) : "<<endl ;

for( z. i =1; z. i <=z. num; z. i ++)
cout <<z. a[ z. i ] <<" ";
cout <<endl <<endl <<endl <<endl ;
return 0;
}

Output Program 8.2 Struct






18

Pembahasan Program 8.1 Struct
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat
sebuah komentar pada pemrograman C++yang jika didalamnya terdapat sebuah perintah
atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca oleh compiler.
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream>untuk memanggil fungsi cout dan cin dalam C++.
4. using namespace std; adalah standar deviasi dalam sebuah program dalam bahasa
pemrograman C++.
5. Tanda kurung kurawal {} dimaksudkan untuk mengawali dan mengakhiri bagian main.
6. Tanda ; digunakan untuk mengakhiri sebuah pernyataan.
7. int main(),menyatakan tipe nilai balik fungsi main.
8. struct bi l angan
{
int num;
int i , a;

};
struct bi l angan z;
Bilangan merupakan member atau anggota dari struct, a[10], i, n merupakan variable yang
bertipe data integer, z merupakan bagian dalam member bilangan dalam struct.
9. int i ; Variabel i bertipe data integer.
10. int num; Variabel num bertipe data integer.
11. cout dipakai untuk menampilkan teks/data ke layar monitor sehingga menjadi output.
12. return 0 dimaksudkan untuk menyatakan nilai balik main.
13. Tanda <<adalah tanda spesifik dalam cout. Tanda tersebut menyatakan bahwa nilai di
kanannya akan dikirim ke layar.
14. cout dan cin disini maksudnya adalah sebagai fungsi input dan output sebuah program.
15. \n digunakan untuk memindahkan kursor ke baris berikutnya.


19

Program 8.2 dengan Menggunakan Typedef
/ *
* Pr akt i kum8. 3. cpp
*
* Cr eat ed on: Apr 29, 2014
* Aut hor : STI KOM32
*/


#include <i ost r eam>
using namespace st d;

int a[ 50] ;
void merge( int, int, int) ;
void merge_sort( int l ow, int hi gh)
{
int mi d;
if( l ow<hi gh)
}

mi d=( l ow+hi gh) / 2;
mer ge_sor t ( l ow, mi d) ;
mer ge_sor t ( mi d+1, hi gh) ;
mer ge( l ow, mi d, hi gh) ;
}
}
void merge( int l ow, int mi d, int hi gh)
{
int h, i , j , b[ 50] , k;
h=l ow;
i =l ow;
j =mi d+1;

while( ( h<=mi d) &&( j <=hi gh) )
{
if( a[ h] <=a[ j ] )
{
b[ i ] =a[ h] ;
h++;
}
else
{
b[ i ] =a[ j ] ;
j ++;
}
i ++;
}
if( h>mi d)
{
for( k=j ; k<=hi gh; k++)
{
b[ i ] =a[ k] ;
i ++;
}

20

}
else
{
for( k=h; k<=mi d; k++)
{
b[ i ] =a[ k] ;
i ++;
}
}
for( k=l ow; k<=hi gh; k++) a[ k] =b[ k] ;
}

typedef int n;

int main( )
{
n num;
n i , a;

cout <<"I nput kan banyak dat a yang akan di ur ut kan : ";
ci n>>num;
cout <<endl ;
cout <<"Masukkan ( "<< num<<") dat a: "<<endl ;
for( i =1; i <num; i ++)
{
ci n>>a[ i ] ;
}
mer ge_sor t ( 1, num) ;
cout <<endl ;
cout <<"Set el ah Pengur ut an ( Mer ge Sor t ) : "<<endl ;

for( i =1; i <=num; i ++)
cout <<a[ i ] <<" ";
cout <<endl <<endl <<endl <<endl ;
return 0;
}

Output Program 8.2 Typedef


21



Pembahasan Program 8.2 Typedef
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat
sebuah komentar pada pemrograman C++yang jika didalamnya terdapat sebuah perintah
atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca oleh compiler.
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream>untuk memanggil fungsi cout dan cin dalam C++.
4. using namespace std; adalah standar deviasi dalam sebuah program dalam bahasa
pemrograman C++.
5. Tanda kurung kurawal {} dimaksudkan untuk mengawali dan mengakhiri bagian main.
6. Tanda ; digunakan untuk mengakhiri sebuah pernyataan.
7. int main(),menyatakan tipe nilai balik fungsi main.
8. typedef int n;
Typedef biasanya digunakan untuk memberikan nama alias untuk suatu tipe n.
9. n num;
n i , a;
Setelah int ditypedefkan menjadi n (int diberikan nama alias yaitu n), maka pendeklarasian
variable yang menggunakan tipe data int (integer) sekarang menggunakan nama n.
10. n num; Variabel num bertipe data integer dengan nama alias n.
11. n i , a; Variabel i,a bertipe data integer dengan nama alias n.
12. cout dipakai untuk menampilkan teks/data ke layar monitor sehingga menjadi output.
13. return 0 dimaksudkan untuk menyatakan nilai balik main.
14. Tanda <<adalah tanda spesifik dalam cout. Tanda tersebut menyatakan bahwa nilai di
kanannya akan dikirim ke layar.
15. cout dan cin disini maksudnya adalah sebagai fungsi input dan output sebuah program.

22

16. \n digunakan untuk memindahkan kursor ke baris berikutnya.

Program 8.2 dengan Menggunakan Struct Typedef
/ *
* Pr akt i kum8. 3. cpp
*
* Cr eat ed on: Apr 29, 2014
* Aut hor : STI KOM32
*/


#include <i ost r eam>
using namespace st d;

int a[ 50] ;
void merge( int, int, int) ;
void merge_sort( int l ow, int hi gh)
{
int mi d;
if( l ow<hi gh)
}

mi d=( l ow+hi gh) / 2;
mer ge_sor t ( l ow, mi d) ;
mer ge_sor t ( mi d+1, hi gh) ;
mer ge( l ow, mi d, hi gh) ;
}
}
void merge( int l ow, int mi d, int hi gh)
{
int h, i , j , b[ 50] , k;
h=l ow;
i =l ow;
j =mi d+1;

while( ( h<=mi d) &&( j <=hi gh) )
{
if( a[ h] <=a[ j ] )
{
b[ i ] =a[ h] ;
h++;
}
else
{
b[ i ] =a[ j ] ;
j ++;
}
i ++;
}
if( h>mi d)
{

23

for( k=j ; k<=hi gh; k++)
{
b[ i ] =a[ k] ;
i ++;
}
}
else
{
for( k=h; k<=mi d; k++)
{
b[ i ] =a[ k] ;
i ++;
}
}
for( k=l ow; k<=hi gh; k++) a[ k] =b[ k] ;
}

typedef struct bi l angan
{
int num;
int i , a;
}
struct bi l angan z;

int main( )
{
cout <<"I nput kan banyak dat a yang akan di ur ut kan : ";
ci n>>z. num;
cout <<endl ;
cout <<"Masukkan ( "<< z. num<<") dat a: "<<endl ;
for( z. i =1; z. i <z. num; z. i ++)
{
ci n>>z. a[ z. i ] ;
}
mer ge_sor t ( 1, z. num) ;
cout <<endl ;
cout <<"Set el ah Pengur ut an ( Mer ge Sor t ) : "<<endl ;

for( z. i =1; z. i <=z. num; z. i ++)
cout <<z. a[ z. i ] <<" ";
cout <<endl <<endl <<endl <<endl ;
return 0;
}






24

Output Program 8.2 Struct Typedef


Pembahasan Program 8.2 Struct Typedef

1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat
sebuah komentar pada pemrograman C++yang jika didalamnya terdapat sebuah perintah
atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca oleh compiler.
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream>untuk memanggil fungsi cout dan cin dalam C++.
4. using namespace std; adalah standar deviasi dalam sebuah program dalam bahasa
pemrograman C++.
5. Tanda kurung kurawal {} dimaksudkan untuk mengawali dan mengakhiri bagian main.
6. Tanda ; digunakan untuk mengakhiri sebuah pernyataan.
7. int main(),menyatakan tipe nilai balik fungsi main.
8. typedef struct bi l angan
{
int i , a;
int num;

};
struct bi l angan z;

25

Typedef biasanya digunakan untuk memberikan nama alias untuk suatu tipe data. Bilangan
merupakan member atau anggota dari struct, i,a, num merupakan variable yang bertipe data
integer, z merupakan bagian dalam member bilangan dalam struct.
9. int i , a; Variabel i, a bertipe data integer.
10. int num; Variabel num bertipe data integer.
11. cout dipakai untuk menampilkan teks/data ke layar monitor sehingga menjadi output.
12. return 0 dimaksudkan untuk menyatakan nilai balik main.
13. Tanda <<adalah tanda spesifik dalam cout. Tanda tersebut menyatakan bahwa nilai di
kanannya akan dikirim ke layar.
14. cout dan cin disini maksudnya adalah sebagai fungsi input dan output sebuah program.
15. \n digunakan untuk memindahkan kursor ke baris berikutnya.
















26

BAB III
KESIMPULAN

3. Shell Sort
Shell Sort mengurutkan data dengan cara membandingkan suatu data dengan data lain
yang memilki jarak tertentu, kemudian dilakukan pertukaran jika diperlukan.
4. Merge Sort
Merge Sort, yaitu suatu teknik pengurutan dengan menggabungkan setiap kali dua
deretan elemen dan melakukan pengurutan terhadap elemen-elemen tersebut.

















27

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

Anda mungkin juga menyukai