Algoritma dan Struktur Data (5 SKS) Dosen : Tim Dosen ASD Prasyarat : Pemrograman 1. Diskripsi : Kuliah ini akan memperkenalkan konsep algoritma dan struktur data serta penerapannya dalam menyelesaikan masalah dunia nyata dengan program computer. Suatu masalah sebelum akan dibuat penyelesaiannya dengan program computer harus dicari terlebih dahulu konsep struktur datanya dan setelah itu baru ditentukan bagaimana cara memanipulasi struktur data yang ada agar suatu masalah terpecahkan. Kuliah akan disampaikan dengan basis CBSA dan akan ditempuh selama 16 kali pertemua. Tujuan : Setelah selesai mengikuti kuliah ini, mahasiswa diharapakan dapat : i. Memahami algoritma dan struktur data umum dan dapat mengimplementasikannya. ii. Menentukan struktur data dan algoritma untuk penyelesaian suatu masalah tertentu. Pokok Bahasan : 1. Algoritma Apa dan bagaimana membuat suatu algoritma dalam hal ini juga akan direview kembali tentang flowchart dan cara pembuatannya. Disamping itu juga akan diperkenalkan cara pembuatan pseudokode suatu algoritma dan beberapa algoritma pengurutan dan oencarian seperti buble sort, merge sort, quick sort, bucket sort, radix sort dan algoritma pencarian linear dan biner. Target akhir dari sesi ini mahasiswa dapat membuat, membaca dan mengimplementasikan suatu algotima ke dalam program. Untuk itu diperlukan 4 kali sesi (1 sesi = 1 minggu) 2. Struktur data: Pada sesi ini akan dikenalkan konsep ADT (Absract Data Type), mengapa perlu struktur data dan beberapa teknik umum dalam strukrur data seperti : stack, queue, linked list, tree, priority queue, heap, dan hash. Tujuan dari sesi ini mahasiswa dapat memahami konsep ADT, teknik-teknik umum struktur data dan mampu mengimplementasikannya untuk penyelesaian masalah dunia nyata. Tujuan dari sesi ini antara lain : a. Mengetahui tentang apa itu link list , efisiensi link list, tipe data abstrak, list ADT, list terurut, insertion sort dengan list, double linked list, dan circular linked list di dalam kode Java. b. Pemahaman tentang stack, heap, antrian(queue) dan ADT berprioritas. c. Pemahaman tentang pohon biner beserta operasinya di dalam Java. d. Memahami jenis-jenis pohon biner (pohon red-black, BST, AVL tree dll). Materi ini memerlukan kurang lebih 8 kali sesi migggu. 3. Algoritma pencarian Pada pertemuan ini akan dibicarakan beberapa pencarian menggunkan pohon AVL. Setelah sesi ini berakhir diharapkan mahasiswa dapat memahami dan mampu mengimplementasikan konsep untuk penyelaian masalah dunia nyata. Diperlukan 1 sesi untuk menyelesaikan materi ini. 4. Struktur data Graph: Pada sesi ini akan dibahas tentang Teori dasar Graph, arah dan bobot graph, penyajian sebuah graph dalam sebuah program, kelas graph, pencarian, depth-first search dan simulasi game, breadth-first search, topologi sorting dengan directed graph, konektifitas dalam directed graph serta algoritma warshall. Setelah menyelesaikan kuliah ini mahasiswa diharapkan dapat membuat dan mengimplementasikan struktur data graph. Diperlukan 2 sesi untuk menyelesaikan kulaih ini. Pustaka :1. Michael T. Goodrich and Roberto Tamassia, Data Structurea and Algorithms in Java, John Wiley & Sons, Inc. 2. William McAllister, “Data Structures and Algorithms Using Java”, Jones & Bartlett, 2008 3. Siswanto, “Algoritma & Struktur Data Linear dengan Java”, Graha Ilmu, 2010 Dosen Prapto Indri Ridok Furkon Laili Data Marji Isa Jumlah Kelas SI A-B SI D-E TIF C-D TIF L,K SI F TIF E,F,G TIF N,M TIF H,I,J TIF A,B SI G Email [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] Komponen Penilaian A. 100 % Quiz : 2x (10%) Tidak boleh ada susulan Tugas : a. Terstruktur (4x) (@5%) b.Tugas Besar 1x : 10% UTS UAS : Pilihan ganda (25%) Jumlah soal (50) : Pilihan ganda (35%) Jumlah soal (50) B. 100% Praktikum : A * 80% + B *20% Aturan Tambahan [kesepakatan dengan mahasiswa kelas]: - Terlambat maksimal 15 menit - Tugas terlambat 1 hari point makimal 50 % - Tugas terlambat lebih dari 1 hari nilainya 0. Materi Algoritma dan Struktur Data K# Materi sks 1 Perndahuluan, Silbus, Aturan 2 2 Flowchart dan Pseodocode 2 3 Latihan Pseudokode 2 Quiz Tugas 4 Dasar OOP 2 5 Dasar OOP 2 6 Konsep ADT 2 7 ADT Array 2 8 Stact dengan Array 2 9 Applikasi Stack 2 10 Linked List 2 11 Latihan Studi Kasus LL 2 12 Double LL 2 13 Circular LL 2 14 Stack dengan LL 2 15 Quiz 2 16 UTS 17 UTS 2 18 Antrian dan Antrian Berpreoritas 2 19 CBT Tree, Binary Tree 2 20 Heap Tree, AVL Tree 2 22 AVL Tree 2 23 Red Black Tree 2 24 Graph 2 25 DFS dan BSF 2 26 Sorting dan Pengembangannya 2 27 Searching dan Pengembanganya 2 28 Quiz 2 29 Presentasi tugas 2 30 Presentasi tugas 2 Materi Untuk Praktikum ASD 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Array Stack Linked List Double Linked List Circular Linked List Antrian dan antrian berprioritas Heap Tree AVL Tree Red Black Tree Graph dan implementasi Graph Pos Test X X X X