UNIVERSITAS GADJAH MADA FMIPA/JIKE/ILMU KOMPUTER FMIPA Gedung Selatan, Sekip Unit III Yogyakarta 55281 Rencana Program dan Kegiatan Pembelajaran Semester (RPKPS) Algoritma dan Struktur Data 2 Ganjil /3 sks/MIK-2201 oleh Drs. Janoe Hendarto, M.Kom Arif Nurwidyantoro, M.Cs. Tahun Ajaran 2015/2016 Agustus 2015 RANCANGAN PROGRAM KEGIATAN PEMBELAJARAN SEMESTER ( RPKPS ) 1. Nama Mata Kuliah : Algoritma dan Struktur Data II 2. Kode/SKS : MIK 2201 / 3 SKS 3. Prasarat : Algoritma dan Struktur Data I 4. Status Matakuliah : Wajib 5. Deskripsi singkat matakuliah Matakuliah ini adalah matakuliah wajib inti dan merupakan lanjutan dari matakuliah Algoritma dan Struktur Data I, matakuliah ini memberikan pengetahuan dan ketrampilan kepada mahasiswa untuk melakukan analisa terhadap permasalahan, perancangan algoritma dan menentukan struktur data yang tepat agar program komputer yang dihasilkan terstruktur dan efisien. Pada matakuliah Algoritma dan Struktur Data II ini, lebih menitik beratkan pada struktur datanya, yaitu membahas macam-macam struktur data baik yang linear maupun yang non-linear dan melihat kelebihan dan kekurangannya serta membahas contoh permasalahannaya, dan juga membahas paradigma pemrograman object oriented programming (OOP) yang merupakan paradigma pemrograman baru yang dikembangkan dari fasilitas tipe data turunan di dalam pemrograman terstruktur. OOP memberikan pendekatan dalam membuat desain dan pembangunan program lebih pada orientasi entitas riil yang dijumpai di dunia nyata. Object oriented di masa sekarang menjadi pilihan cara pemrograman yang sering digunakan karena pendekatannya yang cenderung lebih deskriptif dan terorganisir dengan baik. Hasilnya saat ini, banyak software-software yang lahir menggunakan prinsip OOP sehingga membuat metode ini menjadi sebuah metode yang umum dalam dunia pemrograman. Oleh sebab itu, OOP menjadi sebuah topik bahasan di dalam mata kuliah algoritma dan struktur data untuk memberikan perkembangan teknologi pemrograman yang teraktual kepada mahasiswa. 6. Tujuan pembelajaran Memberikan bekal kepada mahasiswa agar dapat melakukan perancangan dan pemilihan struktur data yang sesuai, implementasi dan melakukan analisis secara umum pada algoritma yang dibuat serta menguasai prinsip dasar pemrograman OOP. 7. Outcome pembelajaran (Learning outcomes=LO) LO-1. Memiliki pengetahuan mengenai teori dan konsep dasar algoritma dan struktur data. LO-2. Dapat menganalisis, merancang dan mengimplementasikan struktur data linear seperti linked list, stack dan queue. LO-3. Dapat menganalisis, merancang dan mengimplementasikan struktur data non linear seperti matriks, multiple linked list dan tree serta graf. LO-4. Memiliki pengetahuan mengenai algoritma searching dan sorting serta dapat mengimplementasikan dalam program komputer. LO-5. Memiliki pengetahuan mengenai teori dan konsep dasar Object Oriented Programming (OOP). LO-6. Dapat membangun program komputer berbasis OOP. 8. Materi Pembelajaran atau Pokok Bahasan atau Topik atau bahan kajian (bisa dipilih terminologi yang sesuai) No Pokok Bahasan Estimasi Kompetensi Waktu 1 Pengantar 150 LO-1 150 LO-2 150 LO-3 300 LO-3 300 LO-4 1. Review Struktur data statis dan dinamis 2. Review Tipe data abstrak 3. Doubly linked list 2 Struktur data Stack dan Queue 1. Stack 2. Queue 3 Struktur data non linear 1. Matriks 2. Multiple linked list 4 Struktur data Tree 1. BST 2. AVL-Tree 5 Sorting dan Searching 1. Review Mergesort dan Quicksort 2. Heapsort 3. Eksternal sorting 4. Linear search dan binary search 5. Searching dengan fungsi hashing 6 7 8 9 10 Pengantar OOP 1. Perkembangan kebutuhan 2. Sejarah Java 3. Contoh kasus OOP 4. Prinsip dasar OOP Pengertian dan implementasi instance dalam Java 1. Definisi class 2. Definisi attribute dan method 3. Definisi instance/object Graf 1. Reprentasi graf 2. DFS 3. BFS 4. Shortest Path Hash Tables 1. Pengantar ke Hash 2. Fungsi hash 3. Collision resolution 4. Deletion Huffman coding 150 LO-5 150 LO-6 300 LO-3, LO-6 300 LO-6 150 LO-6 9. Evaluasi yang direncanakan No. Komponen Penilaian Prosentase 1 Tugas-tugas (mandiri dan kelompok) 20% 2 Quiz 10% 3 UTS 30% 4 UAS 40% 10. Bahan, sumber informasi, dan referensi WA : Data Structures and Algorithms, Alfred V. Aho, dkk. 1998 WB : Data Structures and Algorithms in Java, Adam Drozdek, 2005 AA : Data Structures using C, Tanenbaum, A., Y. Langsam, and M. Augenstein, 1990, Prentice-Hall. AB : Data Structures and Algorithms in Java 2nd Edition, Robert Lafore, 2002 Topik (pokok, subpokokbahasan, alokasiwaktu) Presentasi Gambar Audio/Video Soal-tugas Web4 Dapatmenjelaskan: (1) Materi kuliah yang akan dipelajari, (2) Perbedaan dan contoh struktur data statis dan dinamis (3) Tipe data abstrak dan contohnya (4) Linked list, doubly linked list dan operasi-operasi pada doubly linked list Pengantar : (1) Penjelasan materi kuliah, Kontrak kuliah (2) Review Struktur Data Statis dan Dinamis (3) Review Tipe Data Abstrak (4) Review Struktur Data Linked list linear (5) Doubly linked list (6) operasi-operasi pada doubly linked list Waktu: 1x pertemuan @150 menit √ √ √ - - √ (1) Dapat menjelaskan: struktur data stack, operasi-operasi Struktur data Stack dan Queue : (1) Pengertian struktur √ Per Tujuan Ajar/ Keluaran/ Indikator Teks 11. Rencana Kegiatan Pembelajaran Mingguan (RKPM) 1 2 1 Media Ajar1 √ √ - - Metode Evaluasi dan Penilaian2 √ Kuisoner Skoring 0-100 (PAN) MetodeAjar (STAR)3 Aktivitas Mahasisw a Aktivitas Dosen/ Nama Pengajar Sumber Ajar Dosen aktif menjelaskan di depan kelas (TCL) Unduh dan baca bahan ajar pada waktu kuliah dan setelah kuliah menjelaskan di depan kelas. Web: elisa.ugm.ac.id Bahan ajar Bab 1 dan 2 (1) Baca bahan ajar sebelum Memandudi skusidanme njelaskandi Mahasiswa berkelompok dan berdiskusi Pengajar: Janoe Hendarto Web: elisa.ugm.ac.id Bahan ajar Bab 3 Masing-masing media ajar disertakan dalam bentuk handout setiap minggu/pertemuan. Evaluasi mahasiswa dapat berupa: Kuis, Tugas, Self-Test, Tes formatif, Tes sumatif. Evaluasi mahasiswa ditujukanuntukmengukurketercapaiantujuan (padaKolom 2). 3 UGM menggunakan system pembelajaranSTAR (Student Teacher Aesthetic Role-Sharing): kombinasi optimal antara SCL (Student Centered Learning) danTCL (Teacher Centered Learning). 4 Tautan di internet disajikan dalam kolom terakhir (Sumber Ajar).Untuk materi online yang dikembangkan sendiri gunakanLMS eLisa http://elisa.ugm.ac.id/ 2 3 4 pada stack (2) Dapat mengimplementasikan struktur data stack dengan array dan linked list beserta operasi-operasinya (3) Dapat menjelaskan aplikasi stack untuk mengubah ekspresi infix menjadi postfix. (4) Dapat menjelaskan: struktur data queue, operasi-operasi pada queue (5) Dapat mengimplementasikan struktur data queue dengan array dan array melingkar beserta operasi-operasinya data stack, (2) operasi-operasi pada stack (3) implementasi stack (4) aplikasi stack untuk mengubah ekspresi infix menjadi postfix (5) Struktur data Queue (6) operasi-operasi pada queue (7) Implementasi queue dengan array (8) Implementasi queue dengan linked list (1) Dapat mengimplementasikan array 2D untuk permasalahan matriks. (2) ) Dapat mengimplementasikan Multiple linked list Struktur data Non linear : (1) Matriks, Array 2D (2) Multiple linked list (1) Dapat menjelaskan: Struktur data Tree Operasi pada Tree (2) Dapat Struktur data Tree : (1) Terminologi dan Konsep, (2) Implementasi Tree kuliah, (2) Unduh bahan ajar setelah kuliah depankelas. Unduh dan baca bahan ajar pada waktu kuliah dan setelah kuliah menjelaskan di depan kelas. (1) Baca bahan ajar sebelum kuliah, Memandu diskusi dan menjelaskan di depan dan 4 Pengajar: Janoe Hendarto Waktu: 1x pertemuan @150 menit √ √ √ - - √ Kuisoner Skoring 0-100 (PAN) Dosen aktif menjelaskan di depan kelas (TCL) Waktu: 1x pertemuan @150 menit √ √ √ - √ √ Kuis: tentang multiple linked list Mahasiswa berkelompok dan berdiskusi Web: elisa.ugm.ac.id Bahan ajar Bab 5 Pengajar: Janoe Hendarto Web: elisa.ugm.ac.id Bahan ajar Bab 6 mengimplementasikan struktur data Tree dengan Array dan pointer. 5 6 7 (2) Unduh bahan ajar setelah kuliah Waktu: 1x pertemuan @150 menit (1) Dapat menjelaskan: BST dan AVL-Tree beserta operasioperasinya (2) dapat mengimplementasi BST dan AVL-Tree. Struktur data Tree : (1) BST, (2) AVL-Tree, (3) Operasi-operasi pada BST dan AVL-Tree (1) Dapat menjelaskan: Algoritma Sorting Merge Sort dan Quick Sort Algoritma Sorting Heap Sort Algoritma eksternal sorting hybrid (2) Dapat mengimplementasikan ketiga algoritma Sorting Algoritma Sorting : (1) review Merge Sort dan Quick Sort. (2) Heap Sort (3) Eksternal sorting Hybrid (1) Dapat menjelaskan: Algoritma Searching sekuensial dan binary search Searching dengan fungsi hashing (2) Dapat mengimplementasikan algoritma Searching Algoritma Searching : (1) Sekuensial Search dan Binary Search. (2) Searching dengan fungsi hashing (pengantar) √ √ √ - √ √ Tugas : tentang implementasi BST Mahasiswa berkelompok dan berdiskusi Waktu: 1x pertemuan @150 menit √ √ √ - - √ Kuisoner Skoring 0-100 (PAN) Mahasiswa berkelompok dan berdiskusi (1) Baca bahan ajar sebelum kuliah, (2) Unduh bahan ajar setelah kuliah (1) Baca bahan ajar sebelum kuliah, (2) Unduh bahan ajar setelah kuliah Waktu: 1x pertemuan @150 menit Waktu: 1x pertemuan @150 menit √ √ √ - √ √ Kuis: tentang sorting Tugas : tentang implementasi search dengan fungsi hashing Mahasiswa berkelompok dan berdiskusi (1) Baca bahan ajar sebelum kuliah, (2) Unduh bahan ajar setelah kuliah kelas. Pengajar: Janoe Hendarto Memandu diskusi dan menjelaskan di depan kelas. Pengajar: Janoe Hendarto Memandu diskusi dan menjelaskan di depan kelas. Web: elisa.ugm.ac.id Bahan ajar Bab 6 Web: elisa.ugm.ac.id Bahan ajar Bab 7 Pengajar: Janoe Hendarto Memandu diskusi dan menjelaskan di depan kelas. Pengajar: Janoe Hendarto Web: elisa.ugm.ac.id Bahan ajar Bab 8 8 Evaluasi pemahaman mahasiswa secara menyeluruh. UjianTengah Semester (UTS) √ - - 9 (1) Dapat menjelaskan: Perbedaan OOP dan Procedural 3 prinsip dasar OOP (2) Dapat membuat program sederhana berbasis OOP Pengenalan OOP : (1) Pengenalan bahasa pemrograman Java. (2) Prinsip dasar OOP √ √ √ (1) Dapat menjelaskan tentang class, object dan method Pengenalan OOP : (1) Pengertian dan implementasi instance dalam Java. (2) Studi kasus 10 (2) Dapat mengimplementasikan class, object dan method 11 (1) Dapat menjelaskan tentang graf dan bagaimana merepresentasikannya dalam program (2) Dapat menjelaskan tentang graf traversal dengan metode DepthFirst-Search serta mengimplementasikan nya dalam program - - - - - Tes summatif (PAN) √ - Mahasiswa berkelompok dan berdiskusi Waktu: 1x pertemuan @150 menit √ √ √ √ √ √ - Waktu: 1x pertemuan @150 menit - Menyiapkan UTS Seluruh bahan kuliah sejak dari awal. Memandu diskusi dan menjelaskan di depan kelas. Web: elisa.ugm.ac.id Bahan ajar Bab 9 Pengajar: Arif N √ √ Tugas : Membuat program berbasis OOP Mahasiswa berkelompok dan berdiskusi (1) Baca bahan ajar sebelum kuliah, (2) Unduh bahan ajar setelah kuliah Memandu diskusi dan menjelaskan di depan kelas. Pengajar: Arif N Web: elisa.ugm.ac.id Bahan ajar Bab 9 √ √ Tugas : tentang implementasi DFS Mahasiswa berkelompok dan berdiskusi (1) Baca bahan ajar sebelum kuliah, (2) Unduh bahan ajar setelah kuliah Memandu diskusi dan menjelaskan di depan kelas. Pengajar: Arif N Web: elisa.ugm.ac.id Waktu: 1x pertemuan @150 menit Graf: (1) Representasi graf (2) DFS Mahasiswa mengerjaka n UTS secara individu di kelas. (1) Baca bahan ajar sebelum kuliah, (2) Unduh bahan ajar setelah kuliah 12 13 14 15 (1) Dapat menjelaskan tentang graf traversal dengan metode Breadth-First-Search serta mengimplementasikan nya dalam program (2) Dapat menjelaskan tentang Shortest Path dan bagaimana mengimplementasikan nya dalam program (1) Dapat menjelaskan tentang hash dan berbagai cara untuk membuat fungsi hash (2) Dapat mengimplementasikan fungsi hash ke dalam program (1) Dapat menjelaskan tentang Collision resolution di hash, dan bagaimana menghapus data di dalam hash (2) Dapat mengimplementasikan collision resolution ke dalam fungsi hash (1) Dapat menjelaskan tentang Huffman coding Graf: (1) BFS (2) Shortest Path √ √ √ - √ √ Tugas : tentang implementasi BFS dan Shortest Path Mahasiswa berkelompok dan berdiskusi (1) Baca bahan ajar sebelum kuliah, (2) Unduh bahan ajar setelah kuliah Memandu diskusi dan menjelaskan di depan kelas. Pengajar: Arif N Web: elisa.ugm.ac.id √ √ √ - √ √ Tugas : tentang implementasi fungsi hash Mahasiswa berkelompok dan berdiskusi (1) Baca bahan ajar sebelum kuliah, (2) Unduh bahan ajar setelah kuliah Memandu diskusi dan menjelaskan di depan kelas. Pengajar: Arif N Web: elisa.ugm.ac.id √ √ √ - √ √ Tugas : tentang implementasi collision resolution dan deletion Mahasiswa berkelompok dan berdiskusi (1) Baca bahan ajar sebelum kuliah, (2) Unduh bahan ajar setelah kuliah Memandu diskusi dan menjelaskan di depan kelas. Pengajar: Arif N Web: elisa.ugm.ac.id √ √ √ - √ √ Tugas : tentang implementasi Huffman Coding Mahasiswa berkelompok dan berdiskusi (1) Baca bahan ajar sebelum kuliah, Memandu diskusi dan menjelaskan di depan Web: elisa.ugm.ac.id Waktu: 1x pertemuan @150 menit Hash Tables (1) Pengantar ke Hash (2) Fungsi Hash Waktu: 1x pertemuan @150 menit Hash Tables (1) Collision Resolution (2) Deletion Waktu: 1x pertemuan @150 menit Huffman Coding Waktu: 1x pertemuan @150 menit 16 (2) Dapat mengimplementasikan Huffman Coding dalam program Evaluasi pemahaman mahasiswa secara menyeluruh. Ujian Akhir Semester (UAS) √ - - - - - Tes summatif (PAN) Mengetahui, Dr.-Ing. Reza Pulungan, M.Sc Ketua Prodi S1 Ilmu Komputer UGM - (2) Unduh bahan ajar setelah kuliah Mahasiswa mengerjaka n UAS secara individu di kelas. kelas. Pengajar: Arif N Menyiapkan UAS Yogyakarta, 28 Agustus 2015 Arif Nurwidyantoro, M.Cs. Dosen Pengajar Drs. Janoe Hendarto M.Kom. Dosen Pengajar Seluruh bahan kuliah sejak dari UTS