laporan praktikum resmi-bab 8 sorting (shell, merge)

Upload: yosfin

Post on 08-Feb-2018

237 views

Category:

Documents


0 download

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