Anda di halaman 1dari 8

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. Pertemuan2 1.
Diketahui : @A[5] B i L Jawab : B+(i1)*L 00F(H) + ( 3 1 ) * 4 00F(H) + 8(D) = 8(H) 0017(H) = A[3] = 00F(H) =3 =4

Diketahui float A[5] dan lokasi terletak di alamat 00F(H) maka lokasi A[3] adalah :

2.
adalah : Diketahui :

Diketahui double A[20] dan lokasi awal terletak ai alamat 00AB(H) maka lokasi A[15]

@A[20] = A[15] B i L Jawab : B+(i1)*L 00AB(H) + ( 15 1 ) * 8 00AB(H) + 112(D) 00AB(H) + 70(H) 011B(H) = 00AB(H) = 15 =8

3.
adalah : Diketahui: @A[100] B i L Jawab :

Diketahui int A[100] dan lokasi awal terletak di alamat 00FB(H) maka lokasi A [78}

= A[78] = 00FB(H) = 78 =2

B+(i1)*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 i L Jawab : B+(i1)*L 00FF(H) + ( 38 1 ) * 1 00FF(H) + 37(D) = 00FF(H) = 38 =1

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] @M[0][0] i j N L K = A[3][4] = 00F(H) =3 =4 =4 =4 =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] @M[0][0] i j N L K = A[48][60] = 00FF(H) = 48 = 60 = 75 = 10 = 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] @M[0][0] i j N L K = A[17][48] = 009F(H) = 17 = 48 = 50 =8 = 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] M [0][0][0] L 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) = A [2][4][5] = 0021(H) =8

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

2.

3.

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 ) 5. Konversikan notasi infix A-B*C^D^( E*F / ( G H )) ke postfix Jawab :

Contoh :

A -

H )

stack

( ^

( ^ E

( ^ *

( ^ F

( ^ /

( ( ^

Out put

( ( ^ G

( ( ^ -

( ( ( ^ ^ H

Postfix : AB-C*D^E*F/G-H^

Anda mungkin juga menyukai