Sunday 30 April 2017

Quiz Struktur Data

Latihan Soal Struktur Data


(Pertemuan 1)

1.Type data dibawah ini, yang tidak termasuk dalam tipe data sederhana tunggal, adalah :
a. Boolean
b. String
c. Char
d. Integer
e. float

2.==, <=, >=, !=, termasuk dalam operator …
a. Aritmatika
b. Unary
c. Binary
d. Relasi
e. Bitwise

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

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();
}

Tipe data yang tepat untuk (a) adalah ….
a. Boolean
b. String
c. Char
d. Integer
e. Array

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
6. suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya adalah ...
a. Struktur Data
b. Tipe Data
c. Integer
d. Float

7. Data dapat dikategorikan menjadi ...
a. Type Data Sederhana Dan Struktur Data
b. Tipe Data
c. Integer
d. Float

8. Struktur data terdiri dari ....
a. struktur data sederhana dan majemuk
b. char
c. string
d. integer

9. Contoh Stuktur data majemuk linier , kecuali ...
a. stack
b. queue
c. liniear linked list
d. pohon (tree)

10. Contoh Strukur data majemuk non linear , kecuali ...
a. pohon (tree)
b. pohon biner (binary tree)
c. pohon cari biner (binary search tree)
d. general tree dan graph
e. stack

11. Merupakan Bilangan Bulat dan tidak mengandung pecahan yaitu ..
a. Integer
b. Char
c. String
d. Float


12. Type data yang merupakan bilangan pecahan.  Jenis Data float ditulis dgn menggunakan titik(koma) desimalyaitu..
a. Integer
b. Char
c. String
d. Float

13. Type data yang hanya mempunyai dua bentuk keluaran  yaitu nilai True dan False adalah
a. Bool atau logical
b. Char
c. String
d. Float

14. Operator yang digunakan dalam type data Boolean adalah ...
a. And, Or, Not
b. 1 dan 0
c. True and False
d. Integer

15. Type data yang terdiri dari aksara (simbol) yang meliputi digit numerikcharacter alfabetik dan spesialcharacter adalah pengertian ...
a. Character
b. Integer
c. Float
d. Boolean

16. Merupakan type data majemuk yang terbentuk dari kumpulan character sebanyak 256 (default) dengan jangkauan niai 0 – 255 yaitu ....
a. Character
b. Integer
c. Float
d. Boolean
e. String

17. Kumpulan character yang digunakan untuk membentuk String dinamakan .....
a. alfabet
b. Integer
c. Float
d. Boolean

18. Operasi untuk menyalin nilai string adalah....
a. Strcpy
b. Strcat
c. Strcmp
d. Strlen
e. Strchr




19. Operasi untuk mengabungkan nilai string adalah ....
a. Strcpy
b. Strcat
c. Strcmp
d. Strlen
e. Strchr

20. Operasi untuk membandingkan 2 nilai string adalah ....
a. Strcpy
b. Strcat
c. Strcmp
d. Strlen
e. Strchr

21. Operasi untuk mengetahui panjang nilai string adalah ....
a. Strcpy
b. Strcat
c. Strcmp
d. Strlen
e. Strchr

22. Operasi untuk mencari nilai karakter dalam string adalah ...
a. Strcpy
b. Strcat
c. Strcmp
d. Strlen
e. Strchr

Latihan Soal Struktur Data
(Pertemuan 2)

1.Setiap elemen dari sebuah Array haruslah mempunyai type data yang sama, termasuk dalam karakteristik array yaitu :
a. Statis
b. Dinamis
c. Terurut
d. Heterogen
e.
 Homogen
2.Array yang sering digunakan dalam menterjemahkan matriks pada pemrograman, adalah array berdimensi :
a. Satu
b. Dua
c. Tiga
d. Satu dan Dua
e. Satu dan Tiga

3. Contoh aplikasi array dimensi dua adalah…..
a. Input data suhu
b. Input nama hari
c. 
Input nilai mahasiswa perkelas dan matakuliah
d. Input nilai ipk mahasiswa
e. Input nama bulan

4.Terdapat Array : A [5][4] maka jumlah elemen Array tersebut adalah ……
a. 25
b. 35
c. 9
d. 15
e. 20
5.Diketahui float A[5] dan lokasi awal terletak di alamat 00F(H), maka lokasi A[3] adalah …..
a. 00FC(H)
d. 01B(H)
b
. 017(H)
e. 111(H)
c. 071(H)
6. Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer adalah pengertian ....
a. Array / Larik
b. Stack
c. Linked List
d. Queue

7. bahwa elemen tersebut dapat diidentifikasi sebagai elemen pertama, elemen kedua dan seterusnya sampai elemen ke-n....
a. Terurut
b. Homogen
c. Heterogen
d. Acak

8. Karakteristik Array adalah , kecuali ..
a. Statis
b. Terurut
c. Homogen
d. Dapat diakses secara acak
e. Dinamis

9. Mempunyai batasan dari pemesanan alokasi memory adalah arti ...
a. Bersifat Statis
b. Bersifat Dinamis
c. Bersifat Heterogen
d. Bersifat Homogen


Latihan Soal Struktur Data
(Pertemuan 3)

1.Array yang sangat banyak elemen nol-nya, dikenal sebagai :
a. Upper tringular Array
b. Lower tringular Array
c. Sparse Array
d. One Dimensional Array
e. Multi Dimensional Array

2 Array yang seluruh elemen dibawah diagonal utamanya = 0, dikenal sebagai :
a. Upper tringular Array
b. Lower tringular Array
c. Sparse Array
d. One Dimensional Array
e. Multi Dimensional Array

3. Terdapat Array : A [3][4][5] maka jumlah elemen Array tersebut adalah ……
a. 25
b. 35
c. 12
d. 15
e.
 60
4. Diketahui suatu array segitiga memiliki 4 baris dan kolom. Jumlah elemen yang bukan nol pada array segitiga tersebut adalah …..
a. 10 ( N(N+1)/2 = 4(4+1)/2 = 4 X 5/2= 20/2 = 10 )
b. 8
c. 4
d. 16
e. 20
5. Deklarasi Array X adalah int A [2][4][5], dengan alamat awal index A[0][0][0] berada di 0021(H) dan ukuran type data int = 2 Tentukan berapa alamat
array di A[2][2][2] ?
a. 0034(H)
b. 0022(H)
c. 0055(H)  A[2][2][2]=0021(H)+{((2-1)*4*5)+((2-1)*5)+(2-1)}*2
                                     =0021(H)+(20+5+1)*2
                                     =0021(H)+(26)*2=0021(H) +52(D) =0021(H)+34(H)= 0055(H)
d. 0052(H)
e. 0034(H)



Latihan Soal I Struktur Data
(Pertemuan 4)

1.Diketahui suatu deklarasi variabel int x,y,*z; variabel yang merupakan penunjuk ke pointer adalah :
a. x
b. y
c. z
d. x dan y
e. x, y dan z

2.Perintah yang tepat untuk mempersiapkan sebuah node baru berserta alokasi memorinya, adalah ….
a. Create
b. Null
c. Input
d. New
e. Insert

3.Jika Tail = Null, maka kondisi Linked List adalah :
a. Penuh
b. Kosong
c. Terisi
d. Tidak dapat ditambah
e. Baru


4. Gambar diatas menunjukkan bentuk penghapusan node pada posisi :
a. Belakang
b. Depan
c. Tengah
d. Tengah dan Depan
e. Depan dan Belakang

5. Perintah yang tepat untuk menyatakan Linked list berada dalam kondisi kosong, adalah ….
a. head=tail
b. 
head=tail=null
c. bantu=null
d. bantu=head
e. bantu=tail
6. Suatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi arti dari ....
a. Perubah Dinamis (Dinamic variable)
b. Perubah Statis
c. Perubah logika
d. Perubah detail

7. Digunakan sebagai penunjuk ke suatu alamat memori adalah ...
a. Pointer
b. Linked List
c. Stack
d. Queue

8. Salah satu Struktur Data Dinamis yang paling sederhana adalah .....
a. Pointer
b. Linked List (Senari Berantai)
c. Stack
d. Queue

9. Linked List disebut juga dengan senari satu arah atau ...
a. One-way list
b. two list
c. one on one
d. three in one
Struktur Data (Pertemuan 5)
1.Operasi Stack yang digunakan untuk memeriksa apakah stack sudah penuh, adalah …..
a. PUSH
b. POP
c. CLEAR
d. ISEMPTY
e. ISFULL
2. Menambah satu (increment) nilai TOP of STACK setiap ada penambahan elemen stack selama stack masih belum penuh, merupakan langkah awal pada
operasi STACK yaitu …..
a. PUSH
b. POP
c. CLEAR
d. ISEMPTYe. ISFULL

3. Jika pada stack terdapat kondisi TOP of STACK = MAX_STACK – 1 maka stack berada dalam keadaan …
a. ISEMPTY
b. CLEAR
c. TOP
d. RETREIVE
e. FULL
4. Pada saat awal, Top of Stack selalu bernilai :
a. Top = 0
b. Top = 1
c. Top = -1
d. Top = Max_Stack
e. Top = Max_Stack – 1

5. Diberikan perintah/instruksi pada program C++, yaitu tumpuk.top++; Maksud dari perintah/instruksi tersebut
adalah ….
a. Top = Top + 1
b. Top = Top – 1
c. Top = 0
d. Top = – 1
e. Top = 1

6.Operasi Stack yang digunakan untuk memeriksa apakah stack kosong adalah …..
a. PUSH
b. POP
c. CLEAR
d. ISEMPTY
e. ISFULL
7. Prinsip Stack adalah ...
a. Last-In-First-Out ( LIFO )
b. First-In-Last-Out ( FILO )
c. Last-Out-Frist-In ( LOFI )
d. Firts-Out-Last-In ( FOLI )

8. Operasi Stack yang digunakan untuk menghapus item paling atas (TOP) adalah ...
a. PUSH
b. POP
c. CLEAR
d. ISEMPTY
e. ISFULL

9. Dibawah ini adalah operasi stack kecuali ...
a. CLEAR
b. ISEMPTY
c. ISFULL
d. Create







Latihan Soal II Struktur Data
(Pertemuan 6)

1.Operasi pada Antrian yang digunakan untuk menambahkan item pada posisi paling belakang, adalah …
a. Create
b. Clear
c. Tail
d. Enqueue
e. Dequeue

2.Perintah IsFull pada antrian digunakan untuk :
a. Memeriksa apakah antrian sudah penuh
b. Memeriksa apakah Antrian penuh atau kosong
c. Menambahkan elemen ke dalam Antrian
d. Menghapus elemen dari dalam Antrian
e. Memeriksa apakah antrian sudah kosong

3.Yang tidak termasuk dalam operasi antrian, adalah …
a. Clear
b. Enqueue
c. IsFull
d. Push
e. Dequeue

4. Menghapus elemen dari antrian dilakukan dari posisi :
a. Tengah / Middle
b. Depan / Head
c. Bawah / bottom
d. Belakang / Tail
e. Atas / Top

5. Maksud dari perintah program antrian.head=antrian.tail = -1; adalah untuk ……
a. Menambah elemen antrian
b  Mengecek kondisi antrian kosong atau tidak
c. Mengecek kondisi antrian penuh atau tidak
d. Membentuk atau menghapus semua elemen antrian
e. Menghapus elemen antrian

6.Operasi pada Antrian yang digunakan untuk menghapus item dari posisi paling depan, adalah …
a. Create
b. Clear
c. Tail
d. Enqueue
e. Dequeue
7. suatu bentuk khusus dari List Linier dengan operasi pemasukan data hanya diperbolehkan pada salah satu sisi adalah ....
a. Struktur Data Antrean (Queue)
b. Stack
c. Linked List
d. Struktur Data


8. Prinsip Antrean adalah ...
a. FIFO (First In First Out) dan FCFS (First Come First Serve)
b. home away
c. Knock out
d. extreme

9. Maksud dari perintah program antrian.tail == -1 , adalah ....
a. Untuk memeriksa apakah Antrian penuh atau kosong
b. Menambah elemen antrian
c. Menghapus elemen antrian
d. Mengecek kondisi antrian penuh atau tidak

10. Maksud dari perintah program  antrian.tail == Max-1, adalah ...
a. Untuk memeriksa apakah Antrian penuh atau kosong
b. Menambah elemen antrian
c. Menghapus elemen antrian
d. 
Untuk mengecek apakah Antrian sudah penuh atau belum


Saturday 15 April 2017

Tugas Struktur Data Bagian 4

Pointer Dan Linked List
  1. Jelaskan istilah Pointer dan Link dalam Linked list?
  2. Bagaimana kunjungan (Traversal) terhadap suatu link list?
  3. Buatlah suatu skema Linked-List yang menggambarkan 10 buah abjad terurut, Sajikan skema tersebut ke penyajian dalam memori.
  4. Lakukan penghapusan dua elemen dari soal No.3 di atas, yaitu elemen pertama dan elemen kelima.
  5. Lakukan penambahan elemen di urutan elemen pertama dan ketujuh dari soal No.4 di atas (jadi tidak urut).
  6. Ubah pointer-pointer linknya sehingga data soal No.5 di atas menjadi terurut kembali.
  7. Apa yang dimaksud dengan header linked list dan apa saja jenisnya?
  8. Buat program dengan bahasa pemrograman C++ untuk membuat Mesin linked list yang bisa dilakukan untuk menyisip dan memhapus elemen data.
Jawab

1. Pointer adalah built-in type di C dan C++, dimana C++ mengambil konsep pointer dari C. Pointer sebenarnya sangat terkait dengan “Abstract C Machine”, yaitu model mesin abstrak dimana program C bekerja.
- Linked List adalah struktur data yang ukurannya dinamis, sedangkan Array adalah struktur data yang ukurannya statis(ukuran Array harus ditentukan). Pada Linked List tidak hanya terdapat data yang ingin kita simpan, tapi juga pointer untuk ke elemen selanjutnya.


2. Kunjungan Traversal terhadap suatu link list yaitu dengan operasi kunjungan terhadap node-node dalam pohon dimana masing-masing node akan dikunjungi sekali.

3. 

4. 

5. 


6. 

7. Header linked list merupakan header spesial yang terdiri dari node headernya. Jadi, linked list jenis ini tidak menunjuk pada node pertama (head) namun hanya menyimpan alamat dari node headernya.

8. Program Lingked List

#include <stdio.h>
#include <stdlib.h>

struct NODE {
 int number;
 struct NODE *next;
};

void append_node(struct NODE *llist, int num);
int  search_value(struct NODE *llist, int num);
void display_list(struct NODE *llist);


int main(void) {
 int num = 0;
 int input = 5;
 int retval = 0;
 struct NODE *llist;

 llist = (struct NODE *)malloc(sizeof(struct NODE));
 llist->number = 0;
 llist->next = NULL;

while(input != 0) {
  printf("\n===== Pilih Menu =====\n");
  printf("0: Keluar\n");
  printf("1: Insert\n");
  printf("2: Search\n");
  printf("3: Tampilkan\n");
  printf("\nPilihan: ");scanf("%d", &input);

if(input==0){
    printf("...Terimakasih...\n");
}
else if(input==1){
    printf("Anda Memilih: 'Insert'\n");
    printf("Masukkan Nilai Yang Akan di Insert: ");
    scanf("%d", &num);
    append_node(llist, num);
}
else if(input==2){
    printf("Anda Memilih: 'Search'\n");
    printf("Masukkan Nilai Yang Akan di Cari (Search): ");
    scanf("%d", &num);
    if((retval = search_value(llist, num)) == -1)
        printf("Value `%d' not found\n", num);
    else
        printf("Value `%d' located at position `%d'\n", num, retval);
}
else if(input==3){
    printf("Anda Memilih: 'Tampilkan'\n");
    display_list(llist);
}}

 free(llist);
 return(0);
}

void append_node(struct NODE *llist, int num) {
 while(llist->next != NULL)
  llist = llist->next;

 llist->next = (struct NODE *)malloc(sizeof(struct NODE));
 llist->next->number = num;
 llist->next->next = NULL;
}

int search_value(struct NODE *llist, int num) {
 int retval = -1;
 int i = 1;

 while(llist->next != NULL) {
  if(llist->next->number == num)
   return i;
  else
   i++;

  llist = llist->next;
 }

 return retval;
}

void display_list(struct NODE *llist) {
 while(llist->next != NULL) {
  printf("%d ", llist->number);
  llist = llist->next;
 }

 printf("%d", llist->number);
}

Tampilan Output