laporan praktikum sementara algo1 bab7

12
LAPORAN PRAKTIKUM SEMENTARA 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

Upload: mikha-joshua-steven-adrian

Post on 15-May-2017

248 views

Category:

Documents


1 download

TRANSCRIPT

LAPORAN PRAKTIKUM SEMENTARA

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" using namespace std; void tampilkan_larik(int data[], int n) { int i; for(i=0; i<n; i++) cout<<data[i]<<" "<<endl; } void insertion_sort(int data[], int n) { int i, k, x, ketemu; for(k=1; k<n; k++) { x=data[k]; i=k-1; ketemu=0; while((i>=0) && (!ketemu)) { if(x<data[i]) { data[i+1]=data[i]; i=i-1; } else ketemu=1; data[i+1]=x; } } } int main(){ int JUM_DATA=8; int i;

4

int data[]={25,57,48,37,12,92,80,33}; insertion_sort(data, JUM_DATA); cout<<"Hasil pengurutan data: \n"; tampilkan_larik(data, JUM_DATA); return 0; }

Output Program 7.1

Hasil output dari Program 7.1 adalah sebagai berikut :

Penjelasan Program 7.1

Berikut penjelasan dari Listing Program 7.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.

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

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

void tampilkan_larik(int data[], int n) {

Merupakan statement prosedur tampilkan_larik.

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

for(i=0; i<n; i++) cout<<data[i]<<" "<<endl; }

Merupakan statement perulangan/ looping.

5

void insertion_sort(int data[], int n) {

Merupakan statement prosedur insertion_sort.

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

for(k=1; k<n; k++) { Merupakan statement perulangan/looping.

x=data[k]; i=k-1; ketemu=0;

Yang dimaksud “x” bernilai sama dengan data[k], “i” bernilai sama dengan k-1, “ketemu” bernilai 0.

while((i>=0) && (!ketemu)) { if(x<data[i]) { data[i+1]=data[i]; i=i-1; } else ketemu=1; data[i+1]=x; } } }

Merupakan statement while dan if. While merupakan statement perulangan yang berfungsi untuk melakukan perulangan suatu program., sedangkan if- else berfungsi untuk memilih /menyeleksi.

Int main digunakan untuk memulai /memainkan program.

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

Yang dimaksud int JUM_DATA=9, int i, int data[]={25,57,48,37,12,92,80,33} adalah tipe data JUM_DATA, i, data berbentuk int/ integer (bilangan bulat). JUM_DATA bernilai 8, data[] berisi sama dengan 25,57,48,37,12,92,80,33.

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" using namespace std; void tampilkan_larik(int data[], int n) { int i; for(i=0; i<n; i++) cout<<data[i]<<" "<<endl; } void partisi(int data[], int p, int r) { int x, i, j, tmp; x=data[p]; i=p; j=r; while(1) { while(data[j]>x) j=j-1; while(data[i]<x) i=i+1; if(i<j) {

7

tmp=data[i]; data[i]=data[j]; data[j]=tmp; } else return j; } } void quick_sort(int data[], int p, int r) { int q; if(p<r) { q=partisi(data, p, r); quick_sort(data, p, q); quick_sort(data, q+1, r); } } int main(){ int JUM_DATA=9; int i; int data[]={25,57,48,37,12,92,80,33,1}; quick_sort(data, 0, JUM_DATA-1); cout<<"Hasil pengurutan data: \n"; tampilkan_larik(data, JUM_DATA); return 0; }

Output Program 7.2

Hasil output dari Program 7.2 adalah sebagai berikut :

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

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

void tampilkan_larik(int data[], int n) {

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

for(i=0; i<n; i++) cout<<data[i]<<" "<<endl; }

Merupakan statement perulangan/ looping.

void partisi(int data[], int p, int r) {

Merupakan statement prosedur partisi.

Yang dimaksud int x, i, j, tmp; adalah tipe data x,i,j,tmp berbentuk int/ integer (bilangan bulat).

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]<x) i=i+1;

9

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

if(i<j) { tmp=data[i]; data[i]=data[j]; data[j]=tmp; } else return j; } }

Merupakan statement if- else yang berfungsi untuk memilih /menyeleksi.

void quick_sort(int data[], int p, int r) {

Merupakan statement prosedur quick_sort.

if(p<r) { q=partisi(data, p, r); quick_sort(data, p, q); quick_sort(data, q+1, r); } }

Merupakan statement if- else yang berfungsi untuk memilih /menyeleksi.

Int main digunakan untuk memulai /memainkan program.

int JUM_DATA=9; int i; int data[]={25,57,48,37,12,92,80,33,1};

Yang dimaksud int JUM_DATA=9, int i, int data[]={25,57,48,37,12,92,80,33,1} adalah tipe data JUM_DATA, i, data berbentuk int/ integer (bilangan bulat). JUM_DATA bernilai 9, data[] berisi sama dengan 25,57,48,37,12,92,80,33,1.

quick_sort(data, 0, JUM_DATA-1);

merupakan statement pemanggilan prosedur quick_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.

10

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

11

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 maka

dapat memudahkan pengguna untuk mengurutkan suatu data.

12

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