Professional Documents
Culture Documents
Jawaban Tugas 13
1.
Sks
42
58
32
62
40
48
36
12
32
36
16
16
20
24
20
80
16
16
20
NIM
0800100001
0800200002
0800600006
0800100001
0800300003
0800400004
0800200002
0800700007
0800400004
0800800008
0800200002
0800600006
0800300003
0800700007
0800500005
0800100001
0800800008
0800400004
0800100001
IPK
3.23
2.25
3.17
2.90
3.34
2.54
2.47
1.78
2.72
2.23
2.89
3.34
3.16
1.87
3.57
3.04
2.45
2.93
2.78
Semester
2004 B
2005 B
2005 A
2005 A
2004 B
2005 A
2005 A
2004 B
2004 B
2004 B
2004 A
2004 A
2004 A
2005 A
2005 A
2005 A
2004 A
2004 A
2004 A
SKS
42
62
80
20
58
36
16
40
20
48
32
16
20
32
16
12
24
36
16
NIM
0800100001
0800100001
0800100001
0800100001
0800200002
0800200002
0800200002
0800300003
0800300003
0800400004
0800400004
0800400004
0800500005
0800600006
0800600006
0800700007
0800700007
0800800008
0800800008
IPK
3.23
2.90
3.04
2.78
2.25
2.47
2.89
3.34
3.16
2.54
2.72
2.93
3.57
3.17
3.34
1.78
1.87
2.23
2.45
SEMESTER
2004 B
2005 A
2005 A
2004 A
2005 B
2005 A
2004 A
2004 B
2004 A
2005 A
2004 B
2004 A
2005 A
2005 A
2004 A
2004 B
2005 A
2004 B
2004 A
Low
0
10
14
14
15
15
b.
No
1
2
3
4
5
6
High
18
18
18
15
15
14
Mid
(0+18)/2 = 9
(10+18)/2 = 14
(14+18)/2 = 16
(14+15)/2 = 14
(15+15)/2 = 15
Keterangan
Data[9] = 0800400004,2005 A < Key, maka low = mid+1
Data[14] = 0800600006,2004 B < Key, maka low = mid+1
Data[16] = 0800700007,2005 A > Key, maka high = mid-1
Data[14] = 0800600006,2004 B < Key, maka low = mid+1
Data[15] = 0800700007,2004 B > Key, maka high = mid-1
Karena low > high, maka data key tidak ada
High
18
18
13
13
13
12
Mid
(0+18)/2 = 9
(10+18)/2 = 14
(10+13)/2 = 11
(12+13)/2 = 12
(13+13)/2 = 13
Keterangan
Data[9] = 0800400004,2005 A < Key, maka low = mid+1
Data[14] = 0800600006,2004 B > Key, maka high = mid-1
Data[11] = 0800400004,2004 A < Key, maka low = mid+1
Data[12] = 0800500005,2005 A < Key, maka low = mid+1
Data[13] = 0800600006,2005 A > Key, maka high = mid-1
Karena low > high, maka data key tidak ada
2.
Simulasikan binary search terhadap kumpulan data ini untuk mencari PRN204,
HDD770, CDR045, MT007
[0]
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
Kode
PRN204
MTB512
HDD630
PRN202
CDR054
MNT308
MTB348
HDD720
CDR045
MNT700
RAM114
Nama
HP Laserjet 1220
ABIT KT7-A RAID
Maxtor 160 GB
HP Laserjet 4100N
Lite On 52X
Viewsonic E70
ASUS A7V266:
Seagate 18GB Barracuda
Aopen 48x
LG Flatron 775FT
Visipro 512 MB
Harga
468
102
285
1456
24
192
140
181
71
225
68
Jawab :
[0]
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
a.
No
1
2
3
b.
c.
High
10
10
10
Mid
(0+10)/2 = 5
(6+10)/2 = 8
(9+10)/2 = 9
Keterangan
Data[5] = MNT700 < Key, maka low = mid+1
Data[8] = PRN202 < Key, maka low = mid+1
Data[9] = PRN204 == Key, ketemu pada index = 9
High
10
4
4
4
3
Mid
(0+10)/2 = 5
(0+4)/2 = 2
(3+4)/2 = 3
(4+4)/2 = 4
Keterangan
Data[5] = MNT700 > Key, maka high = mid-1
Data[2] = HDD630 < Key, maka low = mid+1
Data[3] = HDD720 < Key, maka low = mid+1
Data[4] = MNT308 > Key, maka high = mid-1
Karena low > high, maka data key tidak ada
Mid
(0+10)/2 = 5
(0+4)/2 = 2
(0+1)/2 = 0
Keterangan
Data[5] = MNT700 > Key, maka high = mid-1
Data[2] = HDD630 > Key, maka high = mid-1
Data[0] = CDR045 == Key, ketemu pada index = 0
Mid
(0+10)/2 = 5
(6+10)/2 = 8
(6+7)/2 = 6
Keterangan
Data[5] = MNT700 < Key, maka low = mid+1
Data[8] = PRN202 > Key, maka high = mid-1
Data[6] = MTB348 > Key, maka high = mid-1
CDR045
Low
0
0
0
d.
No
1
2
3
HARGA
71
24
285
181
192
225
140
102
1456
468
68
HDD770
Low
0
0
3
4
4
No
1
2
3
NAMA
Aopen 48x
Lite On 52X
Maxtor 160 GB
Seagate 18GB Barracuda
Viewsonic E70
LG Flatron 775FT
ASUS A7V266:
ABIT KT7-A RAID
HP Laserjet 4100N
HP Laserjet 1220
Visipro 512 MB
PRN204
Low
0
6
9
No
1
2
3
4
5
KODE
CDR045
CDR054
HDD630
HDD720
MNT308
MNT700
MTB348
MTB512
PRN202
PRN204
RAM114
High
10
4
1
MT007
Low
0
6
6
High
10
10
7
3.
Buatlah program untuk mencari data dengan algoritma sequential search dengan
data pada soal nomor 2 di atas.
Jawab :
#include <iostream.h>
#include <string>
#include <cstring>
inline int SequentialSearch(char kode[11][7], char key[7])
{
int idx=(-1);
for (int i=0; i<=10; i++)
{
if ( strcmp(key,kode[i])==0)
{
idx=i;
}
}
return idx;
}
int main()
{
char key[7]="123456";
int val;
char
kode[11]
[7]={"CDR045","CDR054","HDD630","HDD720","MNT308","MNT700","MTB348","MT
B512","PRN202","PRN204","RAM114"};
char nama[11][23]={"Aopen 48x","Lite On 52X","Maxtor 160
GB","Seagate 18GB Barracuda","Viewsonic E70","LG Flatron 775FT","ASUS
A7V266","ABIT
KT7-A
RAID","HP
Laserjet
4100N","HP
Laserjet
1220","Visipro 512 MB"};
float harga[11]={71,24,285,181,192,225,140,102,1456,468,68};
for (int i=0; i<=10;i++)
{
cout<<kode[i]<<" "<<nama[i]<<" "<<harga[i]<<endl;
}
cout<<"\nMasukkan key : ";
cin>>key;
val=SequentialSearch(kode, key);
if (val==-1)
{
cout<<"\nData tidak ditemukan";
4. Buatlah program untuk mencari data dengan algoritma binary search dari soal nomor 1 di atas.
Jawab :
#include
#include
#include
#include
#include
<iostream.h>
<string>
<cstring>
<stdio.h>
<conio.h>
semester[19][7],
char
int main()
{
char key1[10]="123456789";
char key2[7]="123456";
int val;