laporan praktikum resmi algo1 bab7

Upload: mikha001

Post on 16-Oct-2015

47 views

Category:

Documents


0 download

DESCRIPTION

Tugas

TRANSCRIPT

  • LAPORAN PRAKTIKUM RESMI

    ALGORITMA & STRUKTUR DATA 1

    Disusun oleh :

    Nama : Joshua Steven Adrian

    NIM : 201301015

    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

    Teknik insertion sort merupakan teknik pengurutan data yang paling sederhana dan mudah dipahami dan diterapkan.

    Prinsip dasar teknik insertion sort : seolah-olah mengambil sebuah elemen dari tempat tertentu, lalu menyisipkan ke suatu tempat hingga elemen-elemen lain bergeser ke belakang.

    Quick Sort Merupakan teknik membandingkan suatu elemen dengan elemen lain dan menyusunnya sedemikian rupa hingga elemen lainny yang lebih kecil dari pivot terletak disebelah kirinya dan elemen lainnya yang lebih besar dari pada pivot tersebut terletak disebelah kanannya.

  • 3

    BAB II

    PENJELASAN PROGRAM

    Pada penjelasan program bab ini akan dijelaskan mengenai bagaimana melakukan sorting (insertion & quick) pada Program 7.1,Program 7.2.

    Listing Program 7.1

    /* * 7.1.cpp * * Created on: Apr 20, 2014 * Author: ACER */ #include"iostream" usingnamespace std; voidtampilkan_larik(int data[], int n) { inti; for(i=0; i

  • 4

    int data[]={25,57,48,37,12,92,80,33}; insertion_sort(data, JUM_DATA); cout

  • 5

    voidinsertion_sort(int data[], int n) {

    Merupakan statement prosedur insertion_sort.

    Yang dimaksud inti, k, x, ketemu; adalah tipe data i,k,x,ketemu berbentuk int/ integer (bilangan bulat).

    for(k=1; k=0) && (!ketemu)) { if(x

  • 6

    insertion_sort(data, JUM_DATA); merupakan statement pemanggilan prosedur insertion_sort.

    Cout berfungsi sebagai input/masukkan dalam program.

    tampilkan_larik(data, JUM_DATA);

    merupakan statement pemanggilan prosedur tampilkan_larik.

    Return 0 digunakan untuk menampilkan hasil running di IMD.

    Tanda { dan } berfungsi untuk membuka dan menutup badan prosedur.

    Listing Program 7.2

    /* * 7.2.cpp * * Created on: Apr 20, 2014 * Author: ACER */ #include"iostream" usingnamespace std; voidtampilkan_larik(int data[], int n) { inti; for(i=0; i

  • 7

    tmp=data[i]; data[i]=data[j]; data[j]=tmp; } else return j; } } voidquick_sort(int data[], int p, int r) { int q; if(p

  • 8

    Penjelasan Program 7.2

    Berikut penjelasan dari Listing Program 7.2 :

    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 tidakakan dibaca oleh compiler.

    #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai.

    merupakan pengarah praprosesor yang input/masukkannya menggunakan cout ,dan penampung data ke programnya/outputnya menggunakan cin.

    Yang dimaksud using namespace std; adalah standar device sebuah program.

    voidtampilkan_larik(int data[], int n) {

    Merupakan statement prosedur tampilkan_larik. Yang dimaksud inti; adalah tipe data i berbentuk int/ integer (bilangan bulat).

    for(i=0; i

  • 9

    Merupakan statement while didalam while didalam while lagi. While merupakan statement perulangan yang berfungsi untuk melakukan perulangan suatu program.

    if(i

  • 10

    Tanda { dan } berfungsi untuk membuka dan menutup badan prosedur.

    Tugas Praktikum

    Pada bagian ini kita akan membahas tugas praktikum ,berikut pertanyaan praktikumnya :

    a. Modifikasi program 7.1, 7.2 dengan menggunakan tipe data abstrak (struct, typedef,

    dan typedef & struct).

    Jawaban :

    a. Program 7.1

    - Listing Program 7.1 dengan tipe data abstrak (struct)

    #include "iostream" using namespace std; struct { int i; int k, x, ketemu; int JUM_DATA; }a; void tampilkan_larik(int data[], int n) { for(a.i=0; a.i

  • 11

    } } } int main(){ a.JUM_DATA=8; int data[]={25,57,48,37,12,92,80,33}; insertion_sort(data, a.JUM_DATA); cout

  • 12

    Merupakan statement struct (tipe data abstrak).

    Yang dimaksud void tampilkan_larik(int data[], int n) merupakan statement prosedur dengan nama tampilkan_larik.

    for(a.i=0; a.i

  • 13

    tampilkan_larik(data, a.JUM_DATA); merupakan statement pemanggilan prosedur tampilkan_larik.

    Return 0 digunakan untuk menampilkan hasil running di IMD.

    Tanda { dan } berfungsi untuk membuka dan menutup badan prosedur.

    - Listing Program 7.1 dengan tipe data abstrak (typedef)

    /* * t7.cpp * * Created on: Apr 23, 2014 * Author: ACER */ #include "iostream" using namespace std; typedef int i; typedef int k; typedef int x; typedef int ketemu; typedef int n; typedef int data; typedef int JUM_DATA; typedef int n; void tampilkan_larik(data b[], n c) { i d; for(d=0; d

  • 14

    b[d+1]=b[d]; d=d-1; } else g=1; b[d+1]=f; } } } int main(){ JUM_DATA h=8; data b[]={25,57,48,37,12,92,80,33}; insertion_sort(b, h); cout

  • 15

    typedef int i; typedef int k; typedef int x; typedef int ketemu; typedef int n; typedef int data; typedef int JUM_DATA; typedef int n; Merupakan statement typedef (tipe data abstrak).

    Yang dimaksud void tampilkan_larik(data b[], n c) merupakan statement prosedur dengan nama fungsi tampilkan_larik (dengan menggunakan tipe data abstrak (typedef)).

    Yang dimaksud dengan i d; adalah tipe data d berbentuk i (bilangan bulat).

    for(d=0; d

  • 16

    } Merupakan statement for, while, & if else. For berfungsi untuk melakukan perulangan

    suatu program, While berfungsi untuk melakukan perulangan/looping, & If-Else yang berfungsi untuk menyeleksi /pemilihan.

    Int main digunakan untuk memulai /memainkan program.

    JUM_DATA h=8; data b[]={25,57,48,37,12,92,80,33};

    Yang dimaksud adalah JUM_DATA h bernilai 8, dan data b[]= {25,57,48,37,12,92,80,33}; adalah tipe data b berbentuk data (bilangan bulat) yang berisi "25,57,48,37,12,92,80,33".

    Yang dimaksud dengan carit; adalah tipe data t berbentuk cari (bilangan bulat).

    Cout berfungsi sebagai input/masukkan dalam program.

    insertion_sort(b, h); merupakan statement pemanggilan prosedur insertion_sort dengan menggunakan tipe data abstrak (typedef).

    Cout berfungsi sebagai input/masukkan dalam program.

    tampilkan_larik(b, h); merupakan statement pemanggilan prosedur tampilkan_larik dengan menggunakan tipe data abstrak (typedef).

    Return 0 digunakan untuk menampilkan hasil running di IMD.

    Tanda { dan } berfungsi untuk membuka dan menutup badan prosedur.

    - Listing Program 7.1 dengan tipe data abstrak (typedef & struct)

    /* * ts7.cpp * * Created on: Apr 23, 2014 * Author: ACER */ #include "iostream" using namespace std; typedef struct la{ int JUM_DATA; }a; void tampilkan_larik(int data[], int n)

  • 17

    { int i; for(i=0; i

  • 18

    Penjelasan Program 7.1 dengan tipe data abstrak (typedef & struct)

    Berikut penjelasan dari Listing Program 7.1 dengan tipe data abstrak (typedef & struct):

    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.

    #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai.

    merupakan pengarah praprosesor yang input/masukkannya menggunakan cout ,dan penampung data ke programnya/outpunya menggunakan cin.

    Yang dimaksud using namespace std;adalah standar device sebuah program.

    typedef struct la{ int JUM_DATA; }a;

    Merupakan statement typedef typedef struct (tipe data abstrak).

    Yang dimaksud void tampilkan_larik(int data[], int n) merupakan statement prosedur dengan nama tampilkan_larik.

    Yang dimaksud adalah int i; adalah tipe data i berbentuk int (bilangan bulat).

    for(i=0; i

  • 19

    ketemu=0; merupakan statement for yang yang berfungsi untuk melakukan perulangan suatu program.

    while((i>=0) && (!ketemu)) { if(x

  • 20

    b. Program 7.2

    - Listing Program 7.2 dengan tipe data abstrak (struct)

    /* * 7.2.cpp * * Created on: Apr 20, 2014 * Author: ACER */ #include "iostream" using namespace std; struct { int JUM_DATA,i,x,j,tmp,q; }a; void tampilkan_larik(int data[], int n) { for(a.i=0; a.i

  • 21

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

  • 22

    Yang dimaksud adalah int i; adalah tipe data i berbentuk int (bilangan bulat). for(a.i=0; a.i

  • 23

    tampilkan_larik(data, a.JUM_DATA); merupakan statement pemanggilan prosedur tampilkan_larik.

    Return 0 digunakan untuk menampilkan hasil running di IMD.

    Tanda { dan } berfungsi untuk membuka dan menutup badan prosedur.

    - Listing Program 7.2 dengan tipe data abstrak (typedef)

    /* * ty.cpp * * Created on: Apr 24, 2014 * Author: ACER */ #include "iostream" using namespace std; typedef int i; typedef int x; typedef int j; typedef int tmp; typedef int q; typedef int JUM_DATA; void tampilkan_larik(int data[], int n) { i i; for(i=0; i

  • 24

    if(i

  • 25

    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.

    #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai.

    merupakan pengarah praprosesor yang input/masukkannya menggunakan cout ,dan penampung data ke programnya/outpunya menggunakan cin.

    Yang dimaksud using namespace std;adalah standar device sebuah program.

    typedef int i; typedef int x; typedef int j; typedef int tmp; typedef int q; typedef int JUM_DATA; Merupakan statement typedef (tipe data abstrak).

    Yang dimaksud void tampilkan_larik(data b[], n c) merupakan statement prosedur dengan nama fungsi tampilkan_larik (dengan menggunakan tipe data abstrak (typedef)).

    Yang dimaksud dengan i i; adalah tipe data d berbentuk i (bilangan bulat).

    for(i=0; i

  • 26

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

    Yang dimaksud x bernilai sama dengan data[p], i bernilai sama dengan p, j bernilai r.

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

  • 27

    Yang dimaksud adalah z bernilai 8, dan int data[]= {25,57,48,37,12,92,80,33,1}; adalah tipe data data berbentuk int (bilangan bulat) yang berisi "25,57,48,37,12,92,80,33,1".

    quick_sort(data,0,z-1); merupakan statement pemanggilan prosedur insertion_sort.

    Cout berfungsi sebagai input/masukkan dalam program.

    tampilkan_larik(data,z); merupakan statement pemanggilan prosedur tampilkan_larik.

    Return 0 digunakan untuk menampilkan hasil running di IMD.

    Tanda { dan } berfungsi untuk membuka dan menutup badan prosedur.

    - Listing Program 7.2 dengan tipe data abstrak (typedef & struct)

    /* * ts72.cpp * * Created on: Apr 23, 2014 * Author: ACER */ #include "iostream" using namespace std; typedef struct la{ int JUM_DATA; }a; void tampilkan_larik(int data[], int n) { int i; for(i=0; i

  • 28

    while(data[i]

  • 29

    Berikut penjelasan dari Listing Program 7.2 dengan tipe data abstrak (typedef & struct):

    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.

    #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai.

    merupakan pengarah praprosesor yang input/masukkannya menggunakan cout ,dan penampung data ke programnya/outpunya menggunakan cin.

    Yang dimaksud using namespace std;adalah standar device sebuah program.

    typedef struct la{ int JUM_DATA; }a;

    Merupakan statement typedef struct (tipe data abstrak).

    Yang dimaksud void tampilkan_larik(int data[], int n) merupakan statement prosedur dengan nama tampilkan_larik.

    Yang dimaksud adalah int i; adalah tipe data i berbentuk int (bilangan bulat). for(i=0; i

  • 30

    if(i

  • 31

    tampilkan_larik(data, a.JUM_DATA); merupakan statement pemanggilan prosedur tampilkan_larik.

    Return 0 digunakan untuk menampilkan hasil running di IMD.

    Tanda { dan } berfungsi untuk membuka dan menutup badan prosedur.

  • 32

    BAB III

    KESIMPULAN

    insertion sort merupakan teknik pengurutan data yang paling sederhana dan mudah dipahami dan diterapkan.

    Quick Sort merupakan teknik membandingkan suatu elemen dengan elemen lain dan menyusunnya sedemikian rupa hingga elemen lainny yang lebih kecil dari pivot terletak disebelah kirinya dan elemen lainnya yang lebih besar dari pada pivot tersebut terletak disebelah kanannya.

    Jadi dengan melakukan sorting (insertion & quick) seperti pada Program 7.1, Program 7.2 &

    Program 7.1, 7.2 (tipe data abstrak) maka dapat memudahkan pengguna untuk mengurutkan

    suatu data, namun juga perlu diperhatikan dalam penulisan koding harus cermat agar tidak terjadi

    kesalahan/error serta semakin memahami cara memodifikasi suatu program dengan tipe data

    abstrak

  • 33

    BAB IV

    DAFTAR PUSTAKA

    1. Modul praktikum algoritma & struktur data 1 (bab 7 sorting (insertion & quick) ).

    2. Ardhana. YM Kusuma. 2013. Struktur Data dalam Ilustrasi Eclips Indigo C ++.

    Yogyakarta: CAPS (Center of Academic Publishing Service).