SOAL DAN JAWABAN UTS STRUKTUR DATA SEMESTER 2 2016

SOAL DAN JAWABAN UTS STRUKTUR DATA SEMESTER . Apa pengertian struktur data? Jawab: cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien. 2. Apa kegunaan struktur data? Jawab: Pemakaian struktur data yang tepat di dalam proses pemrograman akan menghasilkan algoritma yang lebih jelas dan tepat, sehingga menjadikan program secara keseluruhan lebih efisien dan sederhana. 3. Sebutkan struktur data berdasarkan jenisnya? Jawab: struktur data berdasarkan jenisnya di bagi menjadi 2,yaitu: a. Struktur data sederhana,yang meliputi : Array(larik) dan record(catatan) b. Struktur data majemuk ,yang meliputi : linier dan non-linier 4. Apa pengertian array?Jawab: array adalah struktur data statik yang menyimpan sekumpulan elemen yang bertipe sama. Setiap elemen diakses langsung melalui indeksnya. Indeks larik harus tipe data yang menyatakan keterurutan misalnya integer atau karakter. Banyaknya elemen larik harus sudah diketahui sebelum program dieksekusi. Tipe elemen larik dapat berupa tipe sederhana, tipe terstruktur, atau tipe larik lain. Nama lain array adalah Larik, tabel, atau vekto. 5. Apa pengertian record? Jawab: record adalah definisi tipe dan sekumpulan primitif (operasi dasar) terhadap tipe tersebut. Tipe diterjemahkan menjadi tipe terdefinisi dalam bahasa pemrograman yang bersangkutan. 6. Apa perbedaan dari binary tree dan graph?Jawab: pebedaan binary tree dan graph Binary tree adalah himpunan terbatas yang mungkin kosong atau terdiri dari sebuah simpul yang disebut sebagai akar dan dua buah himpunan lain yang disjoint yang merupakan pohon biner yang disebut sebagai sub pohon kiri (left) dan sub pohon kanan (right) dari pohon biner tersebut. Sedangkan graph adalah struktur data yang paling umum. Jika struktur linier memungkinkan pendefinisian keterhubungan sekuensial antara entitas data, struktur data tree memungkinkan pendefinisian keterhubungan hirarkis, maka strukturgraph memungkinkan pendefinisian keterhubungan tak terbatas antara entitas data. 7. Sebutkan karakteristik array? Jawab: karakteristik array meliputi: a. Mepunyai batasan dari pemesanan alokasi memori (bersifat statis). b. Mempunyai tipe data sama (bersifat homogen). c. Dapat diakses secara acak. 8. Sebutkan tiga hal yang harus di ketahui dalam mendeklarasikan array?Jawab: tiga hal yang harus di ketahui dalam mendeklarasikan array, yaitu: c. Subkrip / index array. 9. Sebutkan kelebihan dan kelemahaan array? Jawab: Keunggulan array adalah sebagai berikut : – Array sangat cocok untuk pengaksesan acak. Sembarang elemen di array dapat diacu secara langsung tanpa melalui elemen-elemen lain. – Jika berada di suatu lokasi elemen, maka sangat mudah menelusuri ke elemen-elemen tetangga, baik elemen pendahulu atau elemen penerus 3 – Jika elemen-elemen array adalah nilai-nilai independen dan seluruhnya harus terjaga,maka penggunaan penyimpanannya sangat efisien. Ø Kelemahan array adalah sebagai berikut : Array mempunyai fleksibilitas rendah, sehingga tidak cocok untuk berbagai aplikasi karena array mempunyai batasan sebagai berikut : – Array harus bertipe homogen. Kita tidak dapat mempunyai array dimana satu elemenadalah karakter, elemen lain bilangan, dan elemen lain adalah tipe-tipe lain. – Kebanyakan bahasa pemrograman mengimplementasikan array statik yang sulitdiubah ukurannya di waktu eksekusi. Bila penambahan dan pengurangan terjaditerus-menerus, maka representasi statis • Tidak efisien dalam penggunaan memori • Menyiakan banyak waktu komputasi • Pada suatu aplikasi, representasi statis tidak dimungkinkan Bila penambahan dan pengurangan terjadi terus menerus, maka representasi statis (array): 1. Tidak efisien dalam penggunaan memory 2. Menyiakan banyak waktu komputasi 3. Pada suatu aplikasi, representasi statis tidak di mungkinkan. 10. Jelaskan tahap-tahap dalam pembuatan struktur data? Jawab: tahap-tahap dalam pembuatan struktur data: a. Tahap pertama: spesifikasi Pendeskripsian / spesifikasi struktur data menyatakan apa yang dapat dilakukan struktur data, bukan cara penerapannya. Pendeskripsian ini melibatkan level logic sehingga dapat digunakan konvensi matematika untuk menyatakan sifat-sifat struktur data yang dikehendaki. b. Tahap kedua: implementasi Implementasi menyatakan cara penerapan struktur data dengan struktur data yang telah ada. b. Tahap ketiga: pemrograman Pemrograman terstruktur adalah penerjemahan menjadi pernyataan di bahasa pemrograman tertentu. 11. Apa yang dimaksud dengan implementasi data dalam pembuatan struktur data Jawab: Implementasi struktur data adalah proses pendefinisian tipe data abstrak sehingga semua operasi dapat dieksekusi computer. Implementasi struktur penyinpanan item-item data serta algoritma-algoritma untuk implementasi operasi-operasi sehingga menjamin terpenuhinya karakteristik struktur data, relasi item-item data atau invariant pada struktur data itu. 12. Sebutkan istilah-istilah yang terdapat pada graf? Jawab: istilah-istihah yang terdapat pad graf yaitu: a. Vertex, adalah himpunan node / titik pada sebuah graph. b. Edge, adalah himpunan garis yang menghubungkan tiap node / vertex. c. Adjacent, adalah dua buah titik dikatakan berdekatan (adjacent) jika dua buah titik tersebut terhubung dengan sebuah sisi. Adalah Sisi e3 = v2v3 insident dengan titik v2 dan titik v3, tetapi sisi e3 = v2v3 tidak insident dengan titikv1 dan titik v4. d. Weight, adalah Sebuah graf G = (V, E) disebut sebuah graf berbobot (weight graph), apabila terdapat sebuah fungsi bobot bernilai real W pada himpunan E, e. Path, adalah walk dengan setiap vertex berbeda. f. Cycle, adalah Siklus ( Cycle ) atau Sirkuit ( Circuit) Lintasan yang berawal dan berakhir pada simpul yang sama. 13. Sebutkan dan jelaskan contoh implementasi graf pada struktur data?Jawab: contoh implementasi graf pada struktur data: a. Graf tak berarah (undirected graph) Graf yang sisinya tidak mempunyai orientasi arah disebut graf tak berarah. Pada graf tak-berarah, urutan pasangan simpul yang dihubungkan oleh sisi tidak diperhatikan. salah satu contoh graf tak berarah dimana sisi-sisi yang menghubungkan antar simpul dalam graf tersebut tidak memiliki orientasi arah. b. Graf Berarah (directed graph) Graf yang setiap sisinya memiliki orientasi arah disebut sebagai graf berarah. Sisi berarah dalam graf ini dapat dinamakan sebagai busur (arc). Lain halnya dengan graf tak-berarah, urutan pasangan simpul disini sangat diperhatikan karena dapat menyatakan hal yang berbeda. contoh dari graf berarah yang memiliki sisi-sisi dengan orientasi arah (busur). 14. Sebutkan istilah-istilah data? Jawab: istilah-istilah data,yaitu: a. Tipe data adalah jenis atau macam data di dalam suatu variable dalam bahasa pemrograman. b. Objek data mengacu kumpulan elemen, D (domain). c. Representasi data : Suatu mapping dari struktur data ‘d’ ke suatu set ke struktur data ‘e’ (d===e) misal bolean di representasikan dalam 0 dan 1. d. Struktur data biasa dipakai untuk mengelompokan beberapa informasi yang terkait menjadi sebuah kesatuan. 15. Sebutkan struktur data yang sering digunakan khususnya dibidang informatika? Jawab: struktur data yang standar di gunakan dalam bidang informatika yaitu: – List linier (Linked List) dan variasinya – Graph ( Graf ) 16. Jelaskan pengertian linken list? Jawab: Linked List adalah salah satu bentuk struktur data, berisi kumpulan data (node) yang tersusun secara sekuensial, saling sambung-menyambung, dinamis dan terbatas. Linked List sering disebut juga Senarai Berantai dan Linked List saling terhubung dengan bantuan variabel pointer. 17. Jelaskan pengertian bentuk single linken list non circular? Jawab: Pengertian: •Single : artinya field pointer-nya hanya satu buah saja dan satu arah serta pada akhir node, pointernya menunjuk NULL •Linked List : artinya node-node tersebut saling terhubung satu sama lain. •Setiap node pada linked list mempunyai field yang berisi pointer ke node berikutnya, dan juga memiliki field yang berisi data. •Node terakhir akan menunjuk ke NULL yang akan digunakan sebagai kondisi berhenti pada saat pembacaan isi linked list. 18. Apa kelebihan dari single linken list non circular dengan head & tail? Jawab: Kelebihan dari Single Linked List dengan Head & Tail adalah pada penambahan data di belakang, hanya dibutuhkan tail yang mengikat node baru saja tanpa harus menggunakan perulangan pointer bantu. 19. Jelaskan latar belakang single linken list non circular?Jawab: single linken list non circular Dikembangkan tahun oleh Allen Newell, Cliff Shaw dan Herbert Simon di RAND Corporation sebagai struktur data utama untuk bahasa Information Processing Language (IPL). IPL dibuat untuk mengembangkan program artificial intelligence, seperti pembuatan Chess Solver. Victor Yngve di Massachusetts Institute of Technology (MIT) juga menggunakan linked list pada natural language processing dan machine transitions pada bahasa pemrograman COMMIT. •Linked List adalah salah satu bentuk struktur data, berisi kumpulan data (node) yang tersusun secara sekuensial, saling sambung-menyambung, dinamis dan terbatas. •Linked List sering disebut juga Senarai Berantai •Linked List saling terhubung dengan bantuan variabel pointer •Masing-masing data dalam Linked List disebut dengan node (simpul) yang menempati alokasi memori secara dinamis dan biasanya berupa struct yang terdiri dari beberapa field. 20. Sebutkan proses pembuatan single linken list non calcular Jawab: proses pembuatan single linken list non calcular,sebagai berikut: a. Pembuatan sebuah struct b. Pembuatan variabel pointer Head c. Membuat fungsi inisialisasi single linked list d. Membuat fungtion untuk mengetahui kondisi single linked lis e. Membuat node didepan 1. Jelaskan pengertian dari struktur data! Berikan contohnya! Jawab: Struktur data adalah model logika/ matematika yang secara khusus mengorganisasi data. Sebuah model harus dapat mencerminkan keterhubungan data dengan dunia nyata dan bentuknya sederhana/efektif (dapat memproses data sesuai kebutuhan). Contoh struktur data: Array, Set, Record, Senarai, Tumpukan/Stack, Antrian, Pohon, Graf. 2. Elemen linked list hanya dapat diakses secara sekuensial. Mengapa? Jawab: Linked list atau senatai berantai adalah kunpulan liniar sejumlah data, atau kumpulan komponen yang disusun secara berurutan pointer. Masing-masing komponen dinamakan dengan simpul (node). Simpul dalam suatu Linked list terbagi menjadi dua bagian yaitu medan informasi yang berisi informasi yang akan disimpan dan diolah, dan medan penyambung (Link field) yang berisi simpul berikutnya. Jadi untuk mengakses linked list haruslah secara berurutan (sequential) juga, sesuai dengan susunan komponennya. 3. Buatlah perbandingan antara array dengan linked list! Berikan contohnya! Jawab: Array: – Alokasi memori pada array bersifat statis dan terbatas – Tipe data fisik – Tidak dapat dibebaskan dari memory – Menggunakan konsep indexing Linked List: – Penggunaan alokasi memori yang dinamis sehingga menghindari pemborosan memori – Tipe data abstrak – Dapat dibebaskan dari memory – Tidak menggunakan konsep indexing 4. Jelaskanlah konsep FIFO yang terdapat pada antrian dan berikan contohnya! Jawab: FIFO (First In First Out) artinya elemen yang pertama masuk itu yang akan pertama dikeluarkan dari antrian. Contohnya: – Penjualan karcis kereta Api, bioskop, dll. – Penjadualan percetakan (spooling system), misal print manager. – Penjadualan pemakaian CPU pada client server. – Pemakaian jalur I/O (input/output), pada system computer. Dll. 5. Buatlah algoritma untuk menentukan elemen terbesar pada sebuah array A dengan 10 elemen! Jawab: For i If (data[i] > max) then Max:= data[i] Endif End for 6. Apakah keuntungan dari Circular Linked list dibandingkan dengan Non Circular linked list?Jawab: Keuntungan menggunakan senarai ini adalah setiap node (elemen) dari senarai dapat dicapai dari sembarang node (elemen) yang lain. 7. Buatlah algoritma untuk menambahkan data pada sebuah STACK! Jawab: Algoritma PUSH: 1. [Periksa kandungan tumpukan, apakah penuh?] Jika TOP = MAKSTUM; Cetakkan ’OVERFLOW’ 2. [Tambahkan TOP dengan 1]TOP:= TOP+1 3. [Masukkan ELEMEN ke dalam lokasi TOP yang baru]S[TOP]:= ELEMEN 4. Return 8. Buatlah algoritma untuk menjumlahkan dua buah matriks dengan orde m x n! Jawab: Deklarasi: Const:M=2 {jumlah baris pada matriks} Const:N=3 {jumlah kolom pada matriks} Baris, kolom :integer A,B,C :array[1..M, 1..N] of integer ALGORITMA: For baris For kolom C[baris, kolom] End for End for 9. Buatlah algoritma untuk menghapus elemen pertama pada sebuah circular linked list! Jawab: Procedure hapus awal(input/output S:senarai, output H:address) Kamus Akhir=address Algoritma: If awal(S)=Nil then {kasus 0 elemen) Output(‘senarai kosong’) Else {kasus tidak kosong} Hçawal(S) If Next(awal(S))=Awal(S) then {kasus 1 elemen} Awal(S) Else Awal(S) Akhirçawal(S) While Next(akhir) ≠ awal(S) do Akhir Endwhile Next(akhir) Endif Endif 10. Sebuah cell/node pada sebuah single linked list memiliki elemen NEXT yang bertipe data pointer. Apakah yang dimaksud dengan pointer? Jelaskan! Jawab: Pointer adalah variable yang menunjuk lokasi memori tertentu. Pendeklarasiannya harus menambahkan tanda ^ di depan tipe pointer. Contoh: Var P1: ^integer; P2: ^double; 11. Bagaimanakah kita dapat mengetahui jika sebuah tumpukan dalam keadaan kosong? Jawab: Kita dapat mengetahui suatu tumpukkan dalam keadaan kosong dengan cara membuat suatu function seperti berikut: Function empty: Boolean; Begin Empty:=false; If TOP=0 then Empty:=True; End; 12. Sebuah antrian selalu mempunyai 2 variabel yang berfungsi sebagai penunjuk. Apakah variabel tersebut dan jelaskan fungsi dari masing-masing variabel tersebut! Jawab: Variabel : DEPAN (FRONT) fungsinya untuk menentukan bagian yang akan dilakukan penghapusan. BELAKANG (REAR/TAIL) fungsinya untuk menentukan bagian mana yang akan dilakukan penambahan. 13. Mengapakah pada algoritma matriks selalu digunakan struktur perulangan FOR? Jelaskan! Jawab:Pada matriks, elemen-elemennya sudah diketahui jumlahnya atau dapat dikatakan, ordo suatu matrik menjelaskan jumlah elemen baris dan kolom tertentu. Dengan demikian, kita sudah dapat menentukan iterasi atau jumlah perulangan yang akan terjadi. Jadi, pernyataan perulangan yang paling tepat untuk menjelaskan matriks dalam algoritma adalah dengan menggunakan pernyataan FOR. 1. Struktur pertama dalam pascal adalah….. 2. Untuk melihat hasil dari program yang di kerjakan tekan tombol…. 3. Berapa kode yang digunakan untuk membuat tulisan berwarna “CYAN”…. 4. Perintah dasar sederhana dalam program pascal adalah….. 5. Tipe data bahasa pascal untuk TRUE FALSE adalah…. 6. Siapakah penemu program pascal…. 7. Struktur bahasa pemrograman pascal paling pertama adalah…. 8. Tipe data pascal untuk karakter adalah…. 9. Kapan terbentuknya pascal…. 10. Apa kepanjangan dari USES…. 11. Berikut ini adalah penulisan identifier yang benar dalam pemrograman pascal adalah…. 12. Tipe bilangan bulat dalam bahasa pascal dikenal sebagai…. 13. Istilah “perulangan” dalam pemrograman pascal dikenal dengan…. 14. Perintah untuk menutup program pada Pascal adalah… 15. Menggambarkan program secara logika merupakan fungsi dari… 16. Deklarasi yang digunakan untuk mengidentifikasikan data yang nilainya sudah ditentukan dan pasti, tidak dapat dirubah dalam program disebut deklarasi…. 17. Dibawah ini termasuk dalam Deklarasi dalam Pascal, kecuali…. 18. Bilangan yang mengandung pecahan, palingsedikit harus ada satu digit sebelum dan sesudah titik desimal termasuk dalam tipe data… 19. Prosedur yang digunakan untuk membersihkan layar saat program dijalankan adalah…. 20. Bentuk dari suatu statement IF berada di dalam lingkungan statemen IF yang lainya, disebut IF dalam kondisi…. 21. Tipe data terstruktur yang terdiri dari sejumlah komponen komponen yang mempunyai tipe sama, disebut tipe data… 22. Perintah untuk menampilkan atau cetak dilayar monitor tanpa pindah baris, disebut… 23. Perintah untuk menampilkan atau cetak dilayar monitor lalu pindah bariskebawah, disebut… 24. Suatu identifier non-standar yang nilainya tidak tetap atau nilainya merupakan hasil dari suatu proses, disebut…. 25. Suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram ( program bagian ), disebut… 1. Type data dibawah ini, yang tidak termasuk dalam tipe data sederhana tunggal, adalah : a. Boolean d. Integer 2. ==, =, !=, termasuk dalam operator … b. Unary e. Bitwise 3. Type data yang menghasilkan bentuk keluaran nilai True dan False (Benar dan Salah) , adalah : b. String e. float Tipe data yang tepat untuk (a) adalah …. b. String e. Array Hasil eksekusi dari program diatas adalah …. a. r = 11, s = 21 d. r = 10, s = 21 b. r = 11, s = 20 e. r = 10, s = 20 6. Setiap elemen dari sebuah Array haruslah mempunyai type data yang sama, termasuk dalam karakteristik array yaitu : a. Statis d. Heterogen 7. Array yang sering digunakan dalam menterjemahkan matriks pada pemrograman, adalah array berdimensi : a. Satu d. Satu dan Dua 8. Contoh aplikasi array dimensi dua adalah….. c. Input nilai mahasiswa perkelas dan matakuliah d. Input nilai ipk mahasiswa 9. Terdapat Array : A [5][4] maka jumlah elemen Array tersebut adalah …… a. 25 d. 15 10. Diketahui float A[5] dan lokasi awal terletak di alamat 00F(H), maka lokasi A[3] adalah ….. 11. Array yang sangat banyak elemen nol-nya, dikenal sebagai : a. Upper tringular Array d. One Dimensional Array b. Lower tringular Array e. Multi Dimensional Array 12. Array yang seluruh elemen dibawah diagonal utamanya = 0, dikenal sebagai : a. Upper tringular Array d. One Dimensional Array b. Lower tringular Array e. Multi Dimensional Array 13. Terdapat Array : A [3][4][5] maka jumlah elemen Array tersebut adalah …… a. 25 d. 15 14. Diketahui suatu array segitiga memiliki 3 baris dan kolom. Jumlah elemen yang bukan nol pada array segitiga tersebut adalah ….. b. 8 e. 20 15. 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] ? 16. Diketahui suatu deklarasi variabelint x,y,*z; variabel yang merupakan penunjuk ke pointer adalah : b. y e. x, y dan z 17. Perintah yang tepat untuk mempersiapkan sebuah node baru berserta alokasi memorinya, adalah …. b. Null e. Insert 18. Jika Tail = Null, maka kondisi Linked List adalah : a. Penuh d. Tidak dapat ditambah 19. Gambar diatas menunjukkan bentuk penghapusan node pada posisi : a. Belakang d. Tengah dan Depan b. Depan e. Depan dan Belakang 20. Perintah yang tepat untuk menyatakan Linked list berada dalam kondisi kosong, adalah …. a. head=tail d. bantu=head b. head=tail=null e. bantu=tail 21. Operasi Stack yang digunakan untuk memeriksa apakah stack sudah penuh, adalah ….. a. PUSH d. ISEMPTY 22. Menambah satu (increment) nilai TOP of STACK setiap ada penambahan elemen stack selama stack masih belum penuh, merupakan langkah awal pada operasi STACK yaitu ….. b. POP e. ISFULL 23. Jika pada stack terdapat kondisi TOP of STACK = MAX_STACK – 1 maka stack berada dalam keadaan … a. ISEMPTY d. RETREIVE 24. Pada saat awal, Top of Stack selalu bernilai : a.Top = 0 d. Top = Max_Stack b.Top = 1 e. Top = Max_Stack . Diberikan perintah/instruksi pada program C++, yaitu tumpuk.top++;Maksud dari perintah/instruksi tersebut adalah …. a. Top = Top + 1 d. Top = – 1 b. Top = Top – 1 e. Top = 1 26. Operasi pada Antrian yang digunakan untuk menambahkan item pada posisi paling belakang, adalah … b. Clear e. Dequeue 27. 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 28. Yang tidak termasuk dalam operasi antrian, adalah … b. Enqueue e. Dequeue 29. Menghapus elemen dari antrian dilakukan dari posisi : a. Tengah / Middle d. Belakang / Tail b. Depan / Head e. Atas / Top 30. 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 semua elemen antrian e. Menghapus elemen antrian 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 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 <> x; cout <> y; z = x + y; cout