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