soal struktur data

Post on 06-Aug-2015

103 views 15 download

description

soal struktur data

Transcript of soal struktur data

Hal 6 Bab I

1. Buatlah program perkalian matriks dengan menggunakan bahasa

pemograman C/C++

3. Buatlah program pendataan data mahasiswa dengan menggunakan tipe

data record dengan menggunakan bahasa pemograman C/C++

Hal 28 Bab IV

1. Carilah 2 metode sorting lainnya dan buatlah masing-masing algoritma.

Flowchart dan pemograman dengan menggunakan bahasa C/C++

2. dari contoh program sorting dengan metode bubble sort diatas dengan

bahasa Pascal, rubahlah kedalam bahasa pemograman C/C++

Hal 35 Bab V

1. carilah 2 metode searching (pencarian) lainnya dan buatlah masing-

masing algoritma. Flowchart dan pemogramannya dengan menggunakan

bahasa C/C++

Hal 43 Bab VI

1. jika anda sebagai agen penjualan karcis Bus antar kota. Anda calon

penumpang dating ke loket dan ingin membelikan tiket dari Jakarta ke

Banyuwangi, hanya dengan Bus super cepat ABC. Tetapi bus ABC tidak

ada yang langsung dari Jakarta ke Banyuwangi, jika diketahui jalur ABC

antar kota sebagai berikut:

dari jalur bus ABC tersebut, diminta:

a. konversikan ke dalam bentuk Tree

b. buatlah jalur Depth-Search, Breadth-First-Search dan Hill-Climbing-

Search dengan kota berangkat dari Jakarta akhir kota banyuwangi

Jawaban:

Hal 35 Bab V

2 metode searching lainnya :Interpolation search :Algoritma :

- Baca vektor yang akan diketahui, misalnya vektor A dengan N buah elemen dan urutkan

secara naik (Ascending)- Baca elemen yang akan dicari, misalnya data- Inisialisasi

Tentukan tm=0,  High = N dan Low = 0- Gunakan rumus

Posisi = (data – A[low] / A[high] –A[low] ) * ( high – low ) + low- Ketika data >= A[low] dan data<= A[high] lakukan

Jika A[posisi] = data maka tm+1

Jika A[posisi] > data maka high = posisi - 1Jika A[posisi] < data maka low = posisi + 1

- Jika tm > 0 maka data ditemukan- Selesai

Program metode interpolation search

Source code :#include<stdio.h>#include   <conio.h>void   main(){

//deklarasi   variableint   A[10],   i,j,k,tkr,low,high,pos,tm;//proses   penginputan   datafor(i=0;i<10;i++){

printf("data   ke-%d:",i+1);scanf("%d",&A[i]);

}//Input   data   yang   akan   dicariclrscr();printf("Masukkan   data   yang   akan   anda   cari:");scanf("%d",&k);//proses   pengurutan   datafor(i=0;i<10;i++){

for(j=i+1;j<10;j++){

if   (A[i]>A[j]){

tkr=A[i];A[i]=A[j];A[j]=tkr;

}}

}//proses   pencarian   datatm=0;high=9;low=0;do{

pos   =   ((k   -   A[low])   /   (A[high]   -   A[low]))*(high-low)   +low;

if   (A[pos]   ==   k){

tm++;

break;}

if   (A[pos]   >   k)high   =   pos-1;

elseif   (A[pos]   <   k)low   =   pos   +   1;

}while(k   >=   A[low]   &&   k   <=   A[high]);if   (tm>0){

printf("data   %d   yang   dicari   ada   dalam   array\n",k);

}//jika   tidak   ditemukanelse{

printf("data   tidak   ditemukan   dalam   array\n");}

Hasil output programnya :

Metode pencarian dengan sentinel :Algoritma :- Baca vektor yang akan diketahui, misalnya vektor array dengan 

n elemen- Baca data yang akan dicari, misalnya x- Inisialisasi i = 0- Test apakah array[i]  tidak sama dengan x- Jika tidak maka  i +1- Jika i < N maka data ditemukan

Program metode pencarian sentinel :Source Code :#   include   <conio.h>

#   include   <stdio.h>#   include   <math.h>void   main(){int   array[]={9,23,90,8,52,3,4,5},   i=0,x;printf   ("masukkan   data   yang   akan   dicari   ");scanf   ("%d",   &x);array[8]=x;i=0;while(array[i]!=x)i++;if   (i<8){printf("Data   ditemukan");}elseprintf   ("data   tidak   ditemukan");getch();}

Hasil output programnya :

Flowchart Metode interpolation search  dan metode sequential dengan sentinel search- Flowchart metode interpolation search

Mulai

Intarray[],N,ix;

i =0;

Input data (X)

If array[i]!=x

I<N i+1

Data ketemu

Selesai

Flowchart metode interpolation search :

Mulai

Int A,high,low,N,pos;

Input data dicari(A)

Tm=0, Low =0High=N

Pos=(A-x[low]/A[high]-A[low])*(high-low)+low

If A>=x[low] &&A<=A[high]

If tm = 0

If [pos] = A

If [pos] > A

Tm + 1

High =pos-1

Cetakhasil

Selesai

If [pos] < A

Low=pos + 1