Latihan Soal Struktur Data ( Pertemuan 1 )
Pilih Jawaban & Alasannya :
1. Type data dibawah ini, yang tidak termasuk dalam type data sederhana tunggal, adalah :
a. Boolean b. String c. Char d. Integer e. Float
Jawabannya : b. String
Alasannya : Karena type data String merupakan type data Sederhana Majemuk artinya type Data yang merupakan kumpulan dari beberapa karakter.
2. = =, <=, >=, !=, termasuk dalam operator...
a. Aritmatika b. Unary c. Binary d. Relasi e. Bitwise
Jawabannya : d. Relasi
Alasannya : Digunakan dalam Operator Bahasa C++, yang fungsinya untuk mengecek kebenaran dengan simbol (= = / Sama dengan bukan assignment / pemberian tugas ; <= / Lebih kecil atau sama dengan ; >= / Lebih besar atau sama dengan ; != / Tidak sama dengan)
3. Type data yang menghasilkan bentuk keluaran nilai True dan False (Benar dan Salah), adalah :
a. Boolean b. String c. Char d. Integer e. Float
Jawabannya : a. Boolean
Alasannya : Karena hanya Type Data Boolean yang hanya mempunyai dua bentuk keluaran yaitu Benar dan Salah yang dinyatakan dengan 1 dan 0, sehingga satuan data yang terpakai cukup 1 bit saja.
4. void main()
{
....(a).... x,y,z;
clrscr();
cout<<"\n input nilai X="; cin >>x;
cout<<"\n input nilai Y="; cin >>y;
z = x + y;
cout <<"\n hasil penjumlahan ="<<z;
getch();
}
Type data yang tepat untuk (a) adalah ....
a. Boolean b. String c. Char d. Integer e. Array
Jawabannya : d. Integer
Alasannya : Karena dalam type data ini merupakan bentuk penjumlahan sederhana
5. void main()
{
int r = 10; int s;
clrscr();
s = 10 + ++r;
cout <<"r = "<< r << '\n';
cout <<"s = "<< s << '\n';
getch();
}
Hasil eksekusi dari program diatas adalah ....
a. r = 11, s = 21 b. r = 11, s = 20 c. r = 12, s = 21 d. r = 10, s = 21 e. r = 10, s = 20
Jawabannya : a. r = 11, s = 21
Alasannya : Karena r sudah memiliki nilai 10 dan ++r berarti 10 + 1 = 11, sedangkan s sendiri memiliki nilai 10 + r tadi yang bernilai 11 = 21.
Pilih Jawaban & Alasannya :
1. Type data dibawah ini, yang tidak termasuk dalam type data sederhana tunggal, adalah :
a. Boolean b. String c. Char d. Integer e. Float
Jawabannya : b. String
Alasannya : Karena type data String merupakan type data Sederhana Majemuk artinya type Data yang merupakan kumpulan dari beberapa karakter.
2. = =, <=, >=, !=, termasuk dalam operator...
a. Aritmatika b. Unary c. Binary d. Relasi e. Bitwise
Jawabannya : d. Relasi
Alasannya : Digunakan dalam Operator Bahasa C++, yang fungsinya untuk mengecek kebenaran dengan simbol (= = / Sama dengan bukan assignment / pemberian tugas ; <= / Lebih kecil atau sama dengan ; >= / Lebih besar atau sama dengan ; != / Tidak sama dengan)
3. Type data yang menghasilkan bentuk keluaran nilai True dan False (Benar dan Salah), adalah :
a. Boolean b. String c. Char d. Integer e. Float
Jawabannya : a. Boolean
Alasannya : Karena hanya Type Data Boolean yang hanya mempunyai dua bentuk keluaran yaitu Benar dan Salah yang dinyatakan dengan 1 dan 0, sehingga satuan data yang terpakai cukup 1 bit saja.
4. void main()
{
....(a).... x,y,z;
clrscr();
cout<<"\n input nilai X="; cin >>x;
cout<<"\n input nilai Y="; cin >>y;
z = x + y;
cout <<"\n hasil penjumlahan ="<<z;
getch();
}
Type data yang tepat untuk (a) adalah ....
a. Boolean b. String c. Char d. Integer e. Array
Jawabannya : d. Integer
Alasannya : Karena dalam type data ini merupakan bentuk penjumlahan sederhana
5. void main()
{
int r = 10; int s;
clrscr();
s = 10 + ++r;
cout <<"r = "<< r << '\n';
cout <<"s = "<< s << '\n';
getch();
}
Hasil eksekusi dari program diatas adalah ....
a. r = 11, s = 21 b. r = 11, s = 20 c. r = 12, s = 21 d. r = 10, s = 21 e. r = 10, s = 20
Jawabannya : a. r = 11, s = 21
Alasannya : Karena r sudah memiliki nilai 10 dan ++r berarti 10 + 1 = 11, sedangkan s sendiri memiliki nilai 10 + r tadi yang bernilai 11 = 21.
Pertemuan2
- Diketahui float A[5] dan lokasi terletak di alamat 00F(H) maka lokasi A[3] adalah :
Diketahui :
@A[5]
= A[3]
B
= 00F(H)
i
= 3
L
= 4
Jawab :
B + ( i – 1 ) * L
00F(H) + ( 3 – 1 ) * 4
00F(H) + 8(D) = 8(H)
0017(H)
- Diketahui double A[20] dan lokasi awal terletak ai alamat 00AB(H) maka lokasi A[15] adalah :
Diketahui :
@A[20] = A[15]
B
= 00AB(H)
i
= 15
L
= 8
Jawab :
B + ( i – 1 ) * L
00AB(H) + ( 15
– 1 ) * 8
00AB(H) +
112(D)
00AB(H) + 70(H)
011B(H)
- Diketahui int A[100] dan lokasi awal terletak di alamat 00FB(H) maka lokasi A [78} adalah :
Diketahui:
@A[100] = A[78]
B
= 00FB(H)
i
= 78
L
= 2
Jawab :
B + ( i – 1 ) *
L
00FB(H) + ( 78
– 1 ) * 2
00FB(H) +
154(D)
00FB(H) + 9A(H)
017C(H)
4.
Diketahui char A [50] dan lokasi awal terletak di alamat 00FF(H) maka lokasi A
[38] adalah :
Diketahui:
@A[50] = A[38]
B
= 00FF(H)
i
= 38
L
= 1
Jawab :
B + ( i – 1 ) * L
00FF(H) + ( 38 – 1 ) * 1
00FF(H) + 37(D)
00FF(H) + 25(H)
00124(H)
Pertemuan 3
1.
Terdapat
Array float A[5][4] dan lokasi awal terletak di alamat 00F(H) maka lokasi
A[3][4] secara kolom dan baris adalah :
Diketahui :
@M[i][j]
= A[3][4]
@M[0][0]
= 00F(H)
i
= 3
j
= 4
N
= 4
L
= 4
K
= 5
Jawab : Secara Baris
@M[i][j] = @M[0][0] + {(i – 1)* N + (j – 1)}*L
A[3][4]
= 00F(H) + {(3 – 1)* 4 + (4 – 1)}*4
= 00F(H) + 44(D)
= 00F(H) + 2C(H)
= 03B(H)
Jawab : Secara Kolom
@M[i][j] =
@M[0][0] + {(j – 1)* K + (i – 1)}*L
A[3][4]
= 00F(H) + {(4 – 1)* 5 + (3 – 1)}*4
= 00F(H) + 68(D)
= 00F(H) + 44(H)
= 053(H)
2.
Terdapat Array Long Double A[50][75] dan lokasi awal terletak di alamat
00FF(H) maka lokasi A[48][60] secara kolom dan baris adalah :
Diketahui :
@M[i][j]
= A[48][60]
@M[0][0]
= 00FF(H)
i
= 48
j
= 60
N
= 75
L
= 10
K
= 50
Jawab : Secara Baris
@M[i][j] = @M[0][0] + {(i – 1)* N + (j – 1)}*L
A[48][60]
= 00FF(H) + {(48 – 1)* 75 + (60 – 1)}*10
= 00FF(H) + 35840(D)
= 00FF(H) + 8C00(H)
= 8CFF(H)
Jawab :
Secara Kolom
@M[i][j] =
@M[0][0] + {(j – 1)* K + (i – 1)}*L
A[3][4]
= 00FF(H) + {(60 – 1)* 50 + (48 – 1)}*10
= 00FF(H) + 29970(D)
= 00FF(H) +
7512(H)
= 7611(H)
3.
Terdapat
Array Double A[25][50] dan lokasi awal terletak di alamat 009F(H) maka lokasi
A[17][48] secara kolom dan baris adalah :
Diketahui :
@M[i][j]
= A[17][48]
@M[0][0]
= 009F(H)
i
= 17
j
= 48
N
= 50
L
= 8
K
= 25
Jawab : Secara Baris
@M[i][j] =
@M[0][0] + {(i – 1)* N + (j – 1)}*L
A[17][48]
= 009F(H) + {(17 – 1)* 50 + (48 – 1)}*8
= 009F(H) + 6776(D)
= 009F(H) + 1A78(H)
= 1B17(H)
Jawab :
Secara Kolom
@M[i][j] =
@M[0][0] + {(j – 1)* K + (i – 1)}*L
A[3][4]
= 009F(H) + {(48 – 1)* 25 + (17 – 1)}*8
= 009F(H) + 9528(D)
= 009F(H) +
2538(H)
= 25D7(H)
4.
Deklarasi Array X adalah Double A[2][4][5] dengan alamat awal index
[0][0][0] berada di 0021(H) tentukan berapa alamat Array di [2][2][2] :
Diketahui :
@
[n][m][p] = A
[2][4][5]
M [0][0][0]
= 0021(H)
L
= 8
Jawab :
@
[n][m][p] =
M[0][0][0] + {((n-1)*(index 1)) + ((m-1)*((index 2)) + ((p-1) * (index 3)}*L
= 0021(H) + {((2-1)*(2))+((4-1)*((2))+((5-1)*(2))*8
= 0021(H) + 128(D)
= 0021(H) + 80(H)
= 01A1(H)
TUGAS
4 STRUKTUR DATA
1.
Stack
termasuk (a) Linier List atau (b) Non Linier List jelaskan
Jawab:
(a) Linier
List karena pemasukan dan penghapusan elemennya hanya daat dilakukan pada satu
posisi, yaitu posisi akhir dari List (TOP)
2.
Apa saja
perlakuan yang dimungkinkan sehingga suatu STACK dikatakan dalam kondisi hampa?
Jawab:
Dengan
fungsi IsEmpty, dengan cara memeriksa TOP of STACK jika TOP masih =-1 maka
berarti Stack masih kosong / hampa.
Dengan
Fungsi Clear, Digunakan untuk mengosongkan Stack/ membuat Stack hampa sehingga
TOP pada Stack berada kembali di posisi TOP =-1
3.
Sebutkan
empat operasi pada STACK dan beri contohnya
Jawab:
ISEMPTY
: Untuk memeriksa apakah Stack kosong
Contoh :
int IsEmpty ()
{
If (tumpukan.top ==-1
Return 1;
Else
Return
0;
}
ISFULL :
Untuk memeriksa apakah STACK penuh
Contoh
:
int IsFull ()
{
If(tumpukan.top == MAX_STACK-1
Return 1;
Else
Return 0;
}
PUSH : Untuk
menambahkan item pada posisi yang paling atas (TOP)
Contoh
:
void push ( char d[5] )
{
Tumpuk.top ++
Strcpy (tumpuk.data[tumpuk.top],d);
}
POP :
Digunakan untuk menghapus elemen yang berada pada posisi paling atas dari Stack
Contoh:
void pop ()
{
Printf(“Data yang di POP = %s\n”, tumpuk.data [tumpuk.top]);
Tumpuk.top --;
}
4.
Sebutkan dua
kesalahan yang mungkin terjadi pada pengoperasian Stack dan pada kondisi
seperti apa kesalahan itu bisa terjadi
Jawab :
a. Pemasukan elemen
b. Penghapusan elemen
Kondisinya terjadi ketika pemasukan dan penghapusan elemen tidak dilakukan pada satu posisi, padahal kita tahu bahwa Stack merupakan bentuk khusus dari Linier List yang pemasukan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir dari list ( TOP )
a. Pemasukan elemen
b. Penghapusan elemen
Kondisinya terjadi ketika pemasukan dan penghapusan elemen tidak dilakukan pada satu posisi, padahal kita tahu bahwa Stack merupakan bentuk khusus dari Linier List yang pemasukan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir dari list ( TOP )
5.
Konversikan
notasi infix A-B*C^D^( E*F / ( G –H )) ke postfix
Jawab :
A
|
-
|
B
|
*
|
C
|
^
|
D
|
^
|
(
|
E
|
-
|
F
|
/
|
(
|
G
|
-
|
H
|
)
|
)
|
;
|
|
stack
|
-
|
-
|
*
|
*
|
^
|
^
|
^
|
(
^
|
(
^
|
(
^
|
(
^
|
(
^
|
(
(
^
|
(
(
^
|
(
(
^
|
(
(
^
|
(
^
|
^
|
||
Out
put
|
A
|
B
|
-
|
C
|
*
|
D
|
^
|
E
|
*
|
F
|
/
|
G
|
-
|
H
|
^
|
Postfix :
AB-C*D^E*F/G-H^
1 komentar:
Manstaps gann membantu banget ini .. Maju terus gannn jgn lupa upload lagi foto2 unyunya... thanks yaaaaaa
Posting Komentar
Terima kasih atas pesan dan saran agan bloger semuanya, mohon tidak membuat komentar yang bersifat sara, pornografi,kotor dan kata-kata yang tidak sopan ...
(\(\
(='_')
|><|