Ujian Tengah Semester Struktur Data dan Algoritma Fakultas Ilmu Komputer, Universitas Indonesia 9 November 2006

dokumen-dokumen yang mirip
Tree (Struktur Data) Nisa ul Hafidhoh, MT

Pohon dan Pohon Biner

DOUBLY LINKED LIST PROGRAM : DOUBLY LINKED LIST (TAMBAH SIMPUL DI BELAKANG)

Heap Tree dan Kegunaannya dalam Heap Sort

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

Struktur Data & Algoritma

Politeknik Elektronika Negeri Surabaya

Double linked list. Gambar 1. Double linket list dengan empat simpul Deklarasi Double Linked List di dalam Pascal :

ANALISIS ALGORITMA BINARY SEARCH

(Binary) Heap. Binary tree yang menyimpan pasangan prioritas (atau prioritas elemen) pada node Property Heap :

STRUKTUR DATA. Literatur

Jurnal Mahajana Informasi, Vol.1 No 2, 2016 e-issn: SIMULASI PENGURUTAN DATA DENGAN ALGORITMA HEAP SORT

BINARY SEARCH TREE. TUJUAN UMUM Mahasiswa memahami binary search Tree

HEAP. Heap dan Operasinya. Oleh Andri Heryandi

Penerapan Pohon Dalam Heap Sort

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

BAB IX LINKED LIST (SENARAI BERANTAI)

Penerapan Teknik Binary Search Tree Sebagai Alternatif Penyimpanan Data

03 LINKED LIST. Slide 0 voice. Slide 1 voice. Slide 2 voice. Thompson Susabda Ngoen 1 P a g e

IKI 20100: Struktur Data & Algoritma

Penerapan Divide and Conquer dalam Membandingkan Alur Proses 2 Source Code

A. TUJUAN Mahasiswa diharapkan mampu : 1. Memahami Konsep Binary Search Tree 2. Mengimplementasaikan Binary Search Tree

Binary Tree kosong Gambar 1. Binary Tree dalam kondisi kosong

Algoritma dan Struktur Data. Binary Tree & Binary Search Tree (BST)

Algoritma Pemrograman & Struktur Data

BAB IX LINKED LIST (SENARAI BERANTAI)

Struktur Data dan Algoritma

ALGORITMA PENGURUTAN & PENCARIAN

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

Decrease and Conquer

Binary Tree. Binary Tree dapat digambarkan berdasarkan kondisinya, sebagai berikut: Pointer ke akar (root) dari tree

SOAL TUGAS STRUKTUR DATA

KUM 6 IMPLEMENTASI BINARY TREE

Struktur Data & Algoritma

13/12/2013. Binary Tree. Contoh Tree

Perbandingan Algoritma Pengurutan Merge Sort, Quick Sort dan Heap Sort Dilihat dari Kompleksitasnya

Binary Search Tree (BST)

Pohon Biner Sebagai Struktur Data Heap dan Aplikasinya

Double Linked List DIKTAT KULIAH. Pertemuan 6

STRUKTUR DATA SORTING ARRAY

Algoritma dan Struktur Data. Searching dan Sorting

Algoritma dan Struktur Data. Linear & Binary Search Tree

Gambar 13.1 Ilustrasi proses algoritma sorting

Outline. Struktur Data & Algoritme (Data Structures & Algorithms) Pengantar. Definisi. 2-3 Trees

Pengertian Algoritma Pengurutan

Silsilah keluarga Hasil pertandingan yang berbentuk turnamen Struktur organisasi dari sebuah perusahaan. B.1 Pohon Biner (Binary Tree)

Algoritma Pemrograman & Struktur Data

Pada kondisi ini proses penghapusan tidak bisa dilakukan Kondisi linked list memiliki hanya 1 data{satu simpul} Akhir. Akhir

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 1)

Senarai berantai. linked list. Pertemuan keenam Struktur data st3telkom.ac.id. by : tenia wahyuningrum & Sisilia Thya Safitri

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )

Kompleksitas Algoritma Dalam Algoritma Pengurutan

Laporan makalah ini berjudul Queue (Antrian), laporan ini diharapkan dapat menjadi literatur bagi proses belajar mengajar dalam perkuliahan, terutama

Penambahan Simpul (Node)

TREE STRUCTURE (Struktur Pohon)

Lecture Notes On Algorithms and Data Structures. Oleh Thompson Susabda Ngoen

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

Algoritma dan Struktur Data STACK

Struktur Data dan Algoritma

Linked List dan Implementasinya dalam Bahasa Java

IT234 Algoritma dan Struktur Data. Tree

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

List Linear (Linked List) Farah Zakiyah Rahmanti 2014

MODUL PRAKTIKUM STRUKTUR DATA

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

Tenia Wahyuningrum, S.Kom. MT Sisilia Thya Safitri, S.T.,M.T.

SORTING (Pengurutan)

STRUKTUR DATA single linked list non circular

BAB 7 POHON BINAR R S U

STRUKTUR DATA (2) Single Linked List

Bubble Sort dan Shell-Sort. Yuliana Setiowati

STRUKTUR DATA (3) sorting array. M.Cs

Lecture Notes On Algorithms and Data Structures. Oleh Thompson Susabda Ngoen

Jadi satu simpul di double linked list adalah sebagai berikut : Info. Kiri. Kanan

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

LAPORAN PRAKTIKUM IX. Oleh:

Pertemuan 4. Single Linked List non Circular Menggunakan Head dan Tail

LIST. Dewi Sartika, M.Kom

Praktikum 7. Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:

Algoritma dan Struktur Data

Implementasi Struktur Data Rope menggunakan Binary Tree dan Aplikasinya dalam Pengolahan Teks Sangat Panjang

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

APLIKASI SIMULASI PENGURUTAN DATA MENGGUNAKAN ALGORITMA HEAP SORT

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

1. Traversing Untuk algoritma traversing sama seperti pada single Link List

Kompleksitas Komputasi

Algoritma dan Struktur Data. Tree

DOUBLE LINKED LIST. Danang Wahyu Utomo Danang Wahyu Utomo, M.Kom, M.CS

Ujian Akhir Semester Ganjil 2013/2014

Algoritma Sorting. Ahmad Kamsyakawuni, S.Si, M.Kom. Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Jember

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

Binary Tree. Binary Tree dapat digambarkan berdasarkan kondisinya, sebagai berikut: Pointer ke akar (root) dari tree

KUM 5 IMPLEMENTASI QUEUE

MODUL 6 SINGLE & DOUBLE LINKED LIST

SORTING ARRAY FAKULTAS TEKNOLOGI INFORMASI UNISBANK SEMARANG : ANDY KRISTIANTO : Disusun Oleh :

ALGORITMA DAN STRUKTUR DATA

Modul 8 SORTING (PENGURUTAN)

Preorder Tree Traversal

Transkripsi:

Ujian Tengah Semester Struktur Data dan Algoritma Fakultas Ilmu Komputer, Universitas Indonesia 9 November 2006 Bagian A (total 75 point) Petunjuk: Jawablah ke 25 pertanyaan berikut ini dan isikan jawaban anda pada lembar jawaban yang disediakan sesuai dengan nomor balon pada pertanyaan tersebut. Pada pertanyaan dengan jawaban pilihan ganda, jawab dengan nomor pilihannya. Setiap jawaban benar bernilai 3. Jawaban salah (termasuk pilihan ganda) bernilai 0. Jika method xx() memiliki kompleksitas waktu O(1), tuliskan kompleksitas waktu dari methodmethod berikut ini. void method1(int n) { for (int i=0; i<n; i++) for (int j=0; j<n; j+=n/5) xx(); void method2(int n) { if (n<=0) xx(); else method2(n n/5); void method3(int n) { if (n > 0) { for (int t = 0; t < n; t++) xx(); method3(n/2); method1(n)? Walaupun dua for loop dengan iterator dari 0 hingga n, for loop dalam beriterasi dalam jumlah iterasi yang konstan (tidak bergantung harga n) yaitu sekitar 5 kali sehingga method memiliki kompleksitas O(n). 23 orang yang menjawab benar method2(n)? Dalam soal ini ada salah ketik (seharusnya tertulis if (n <= 1) xx(); ) sehingga dengan soal tsb jika dijalankan akan loop tanpa akhir (saat harga n = 1 maka pemanggilan method2(1) akan dilakukan terus menerus sehingga jika anda menjawab tak berhingga anda benar. Jika anda asumsikan bahwa (n n/5) dilakukan secara bilangan real maka setelah di casting dengan integer menjadi 0, akan berhenti di n = 0 dengan kompleksitas O(log n). (Kedua jawaban adalah benar). 36 orang yang menjawab benar method3(n)? Sepintas seperti O(n log n) tetapi jumlah pemanggilan xx() dilakukan sebanyak n + n/2 + n/4 +... = 2n, jadi merupakan O(n) 29 orang yang menjawab benar Manakah sifat insertion sort (pengurutan menaik) yang benar mengenai kompleksitas waktunya? (A) Best case terjadi pada kasus data terurut menaik (B) Best case terjadi pada kasus data terurut menurun (C) Best case terjadi pada kasus data terurut acak (D) Semua kasus di atas sama saja

Insertion sort pada data yang sudah terurut menaik hanya akan melakukan iterasi luar saja yaitu O(n) sementara lainnya O(n 2 ). Jawaban A. 95 orang yang menjawab benar Manakah sifat heapsort (pengurutan menaik) yang benar mengenai kompleksitas waktunya? (A) Worse case terjadi pada kasus data terurut menaik (B) Worse case terjadi pada kasus data terurut menurun (C) Worse case terjadi pada kasus data terurut acak (D) Semua kasus di atas sama saja Algoritma heapsort adalah melakukan heapify untuk kondisi apapun dari data dan kemudian satu demi satu diurutkan dan heap akan direheapify sehingga untuk semua kasus sama sana. Jawaban D. 51 orang yang menjawab benar Pada data 5, 4, 3, 2, 1 (terurut terbalik), dilakukan pengurutan menaik dengan bubble sort. Selesai iterasi/pass pertama urutan data menjadi? Soal ini tidak menunjukkan arah pergeseran (walaupun di sebagian besar buku teks adalah ke kanan), jawaban dengan asumsi ke kiri (hasilnya 4, 3, 2, 1, 5) maupun ke kanan (1, 5, 4, 3, 2, 1) adalah benar. 89 orang yang menjawab benar Diberikan array berisi data sbb: 54, 68, 86, 42, 35, 46, 88, 25, 19, 75. Jika array dipandang sebagai suatu complete binary tree (yang direpresentasikan dalam array tersebut), maka preorder traversal pada tree menghasilkan urutan? 54, 68, 42, 25, 19, 35, 75, 86, 46, 88 71 orang yang menjawab benar Jika akan dilakukan heapsort pada array tersebut, setelah dilakukan operasi heapify (tahap pembentukan heaptree) dari algoritma heapsort, maka isi array adalah? Ada dua varian jawaban (karena tidak disebutkan pengurutan menaik/menurun) 19, 25, 46, 42, 35, 86, 88, 68, 54, 75 (untuk pengurutan menurun) 88, 75, 86, 42, 68, 46, 54, 25, 19, 35 (untuk pengurutan menaik) 34 orang yang menjawab benar Setelah diperoleh 2 data terurut di kanan serta terjadi reheapify pada heaptree tersisa, maka isi array (seluruhnya) adalah? 35, 42, 46, 54, 75, 86, 88, 68, 25, 19 (untuk pengurutan menurun) 75, 68, 54, 42, 19, 46, 35, 25, 86, 88 (untuk pengurutan menaik) 15 orang yang menjawab benar Sejumlah data disusun ke dalam binary search tree yang mula mula kosong dengan urutan sbb: 43, 37, 64, 56, 94, 52, 46, 11, 53, 45. Tinggi dari tree tersebut adalah?

5 83 orang yang menjawab benar Leaf node dengan depth terbesar adalah node yang berisi harga? 45 85 orang yang menjawab benar Sejumlah data disusun ke dalam AVL tree yang mula mula kosong dengan urutan sbb: 43, 37, 64, 56, 94, 52, 46, 11, 53, 45. Rotasi pertama terjadi pada penyisipan data manakah? 52 92 orang yang menjawab benar Jumlah leaf node adalah? 4 72 orang yang menjawab benar Harga pada root adalah adalah? 52 56 orang yang menjawab benar Jika dihapus 53, maka apakah yang terjadi? (A) DRR, (B) SRR, (C) DLR, (D) SLR, (E) Tidak terjadi rotasi D (SLR) 30 orang yang menjawab benar Sejumlah data unik disusun ke dalam AVL yang mula mula adalah kosong, Jika data berjumlah 10 maka harga harga tinggi AVL tree tsb yang mungkin adalah? 3 78 orang yang menjawab benar Jika data berjumlah 100 maka harga harga tinggi AVL tree tsb yang mungkin adalah? 6, 7, 8 50 orang yang menjawab benar Jika leaf yang terbentuk berjumlah 100 maka harga harga tinggi AVL tree tersebut yang mungkin adalah 7, 8, 9, 10 35 orang yang menjawab benar Jika sejumlah data disusun ke dalam 2 3 tree yang mula mula kosong. Jika data berjumlah 10 maka harga tinggi 2 3 tree tersebut yang mungkin adalah? 2 57 orang yang menjawab benar

Jika data berjumlah 100 maka harga tinggi 2 3 tree tersebut yang mungkin adalah? 4 atau 5 15 orang yang menjawab benar Sejumlah data disusun ke dalam 2 3 tree yang mula mula kosong dengan urutan sbb: 43, 37, 64, 56, 94, 52, 46, 11 Root node berisi harga (harga harga)? 52 57 orang yang menjawab benar Harga 64 berada pada node 2 atau node 3? Node 2 82 orang yang menjawab benar Harga 11 berada pada leaf node atau internal node? Leaf node 99 orang yang menjawab benar Jika dilakukan penghapusan 94 maka tinggi 2 3 tree menjadi? 1 48 orang yang menjawab benar Setelah penghapusan 94 tsb root kemudian berisi harga (harga harga)? 43 dan 52 23 orang yang menjawab benar Bagian B (Total 25 point) Petunjuk: Jawaban bersifat essay, jawab dengan singkat, jelas namun dengan tulisan rapi untuk memudahkan pemeriksaan pada lembar jawaban yang disediakan. Berikut ini suatu class node untuk doubly linked list class DLLNode { Object data; DLLNode prev, next; prev next Suatu class doubly linked list tersusun oleh node node DLLNode tersebut tanpa dummy node di awalnya (sentinel). Node pertama direferensi oleh variabel dengan nama head dan node terakhir direferensi oleh variabel dengan nama tail sbb. Class DoublyLinkedList { DLLNode head, tail;

Suatu method dalam class DoublyLinkedList untuk dapat menghapus suatu elemen dalam doubly linked list tersebut akan disusun dengan diketahui node yang akan dihapus ditunjuk oleh variabel dengan nama current. current head tail 1. (Nilai 8) Tuliskan deretan perintah (hanya deretan perintah!) untuk menghapuskan node current tsb untuk kasus dimana (pasti!) current bukan head maupun tail dan linked list tidak kosong (deretan perintah tidak perlu melakukan pemeriksaan untuk kasus kasus lain!). current.prev.next = current.next; current.next.prev = current.prev; 2. (Nilai 17) Dapatkan seluruh kasus (sesedikit mungkin, namun menyeluruh) yang bisa terjadi selain kasus di atas, serta deretan perintah (seperti no 1 di atas) penghapusan terkait dengan masing masing kasus tersebut (misalnya kasus current == head, kasus kosong, dlsb). if (head == null) { //kasus losong // tidak melakukan apa apa else if (head == tail) { // kasus 1 node If (head == current) { head = tail = null; else if (head == current) { // current ada di awal head = head.next; head.prev = null; else if (tail == current) { // current ada di akhir tail = tail.prev; tail.next = null; else { // kasus no 1 di atas current.prev.next = current.next; current.next.prev = current.prev;

Catatan: Untuk kedua jawaban tsb, node yang ditunjuk current tidak di apa apakan, hanya dikeluarkan dari linked list. Selanjutnya bisa saja node yang ditunjuk current dihilangkan dengan menambahkan perintah memberi harga null pada variabel current atau memindahkan current pada node lain dalam linked list..