laporan praktikum resmi-bab 8 sorting (shell, merge)
TRANSCRIPT
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
1/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
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
2/27
2
BAB I
TEORI DASAR
1. Shell SortShell Sort mengurutkan data dengan cara membandingkan suatu data dengan data lain
yang memilki jarak tertentu, kemudian dilakukan pertukaran jika diperlukan.
2. Merge SortMerge Sort, yaitu suatu teknik pengurutan dengan menggabungkan setiap kali dua
deretan elemen dan melakukan pengurutan terhadap elemen-elemen tersebut.
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
3/27
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
/ ** Prakt i kum8. 1. cpp** Cr eat ed on: Apr 22, 2014* Aut hor : STI KOM32*/
#include using namespace s td;
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;
}}
}}
}
intmain( )
{int a[10] , i , n;
cout n;
for( i =0; i
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
4/27
4
cout
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
5/27
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
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
6/27
6
{if( a[ h] mi d){
for( k=j ; k
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
7/27
7
Output Program 8.2
Pembahasan Program 8.2
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuatsebuah 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 untukmenginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. 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
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
8/27
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
/ ** Prakt i kum8. 1. cpp** Cr eat ed on: Apr 29, 2014* Aut hor : STI KOM32*/
#include using namespace s td;
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;
intmain( ){
cout n;
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
9/27
9
for( z. i =0; z. i
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
10/27
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
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
11/27
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;
intmain( ){
n a[ 10] ;n i , n;
cout n;
for( i =0; i
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
12/27
12
Output Program 8.1 Typedef
Pembahasan Program 8.1 Typedef
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuatsebuah 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 untukmenginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. 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] ; ni , 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.
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
13/27
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 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;
}
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
14/27
14
struct bi l angan z;
intmain( ){
cout n;
for( z. i =0; z. i
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
15/27
15
3. 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
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
16/27
16
#include using namespace s td;
int a[ 50] ;voidmerge( int,int,int) ;voidmerge_sort( int l ow,int hi gh){
int mi d;if( l ow
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
17/27
17
}for( k=l ow; k
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
18/27
18
Pembahasan Program 8.1 Struct
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuatsebuah 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 untukmenginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. 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 yangbertipe 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
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
19/27
19
Program 8.2 dengan Menggunakan Typedef
/ ** Prakt i kum8. 3. cpp** Cr eat ed on: Apr 29, 2014
* Aut hor : STI KOM32*/
#include using namespace s td;
int a[ 50] ;voidmerge( int,int,int) ;voidmerge_sort( int l ow,int hi gh){
int mi d;if( l ow
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
20/27
20
}else{
for( k=h; k
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
21/27
21
Pembahasan Program 8.2 Typedef
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuatsebuah 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 untukmenginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. 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; ni , 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
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
22/27
22
16. \n digunakan untuk memindahkan kursor ke baris berikutnya.
Program 8.2 dengan Menggunakan Struct Typedef
/ ** Prakt i kum8. 3. cpp** Cr eat ed on: Apr 29, 2014* Aut hor : STI KOM32*/
#include using namespace s td;
int a[ 50] ;voidmerge( int,int,int) ;
voidmerge_sort( int l ow,int hi gh){int mi d;if( l ow
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
23/27
23
for( k=j ; k
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
24/27
24
Output Program 8.2 Struct Typedef
Pembahasan Program 8.2 Struct Typedef
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuatsebuah 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 untukmenginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. 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;
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
25/27
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
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
26/27
26
BAB III
KESIMPULAN
3. Shell SortShell Sort mengurutkan data dengan cara membandingkan suatu data dengan data lain
yang memilki jarak tertentu, kemudian dilakukan pertukaran jika diperlukan.
4. Merge SortMerge Sort, yaitu suatu teknik pengurutan dengan menggabungkan setiap kali dua
deretan elemen dan melakukan pengurutan terhadap elemen-elemen tersebut.
-
7/22/2019 Laporan Praktikum Resmi-Bab 8 Sorting (Shell, Merge)
27/27
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)).