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
Waktu
Kompetensi
1 Pengantar
1. Review Struktur data statis dan dinamis 2. Review Tipe data abstrak
3. Doubly linked list
150 LO-1
2 Struktur data Stack dan Queue 1. Stack
2. Queue
150 LO-2
3 Struktur data non linear 1. Matriks
2. Multiple linked list
150 LO-3
4 Struktur data Tree 1. BST
2. AVL-Tree
300 LO-3
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
300 LO-4
9. Evaluasi yang direncanakan
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 6 Pengantar OOP
1. Perkembangan kebutuhan 2. Sejarah Java
3. Contoh kasus OOP 4. Prinsip dasar OOP
150 LO-5
7 Pengertian dan implementasi instance dalam Java 1. Definisi class
2. Definisi attribute dan method 3. Definisi instance/object
150 LO-6
8 Graf
1. Reprentasi graf 2. DFS
3. BFS
4. Shortest Path
300 LO-3, LO-6
9 Hash Tables
1. Pengantar ke Hash 2. Fungsi hash
3. Collision resolution 4. Deletion
300 LO-6
10 Huffman coding 150 LO-6
No. Komponen Penilaian Prosentase
1 Tugas-tugas (mandiri dan kelompok) 20%
2 Quiz 10%
3 UTS 30%
4 UAS 40%
11. Rencana Kegiatan Pembelajaran Mingguan (RKPM)
Per
Tujuan Ajar/
Keluaran/
Indikator
Topik (pokok, subpokokbahasan,
alokasiwaktu)
Media Ajar1 Metode Evaluasi dan
Penilaian2
MetodeAjar
(STAR)3 Aktivitas Mahasisw
a
Aktivitas Dosen/
Nama Pengajar
Sumber Ajar
Teks Presentasi Gambar Audio/Video Soal-tugas Web4
1 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
√ √ √ - - √ Dosen aktif
menjelaskan di depan kelas (TCL)
Unduh dan baca bahan ajar pada waktu kuliah dan setelah kuliah
menjelaskan di depan kelas.
Pengajar:
Janoe Hendarto
Web:
elisa.ugm.ac.id Bahan ajar Bab 1 dan 2
2 (1) Dapat menjelaskan:
struktur data stack,
operasi-operasi
Struktur data Stack dan Queue :
(1) Pengertian struktur
√ √ √ - - √ Kuisoner
Skoring 0-100 (PAN)
Mahasiswa berkelompok dan berdiskusi
(1) Baca bahan ajar sebelum
Memandudi skusidanme njelaskandi
Web:
elisa.ugm.ac.id Bahan ajar Bab 3
1Masing-masing media ajar disertakan dalam bentuk handout setiap minggu/pertemuan.
2Evaluasi mahasiswa dapat berupa: Kuis, Tugas, Self-Test, Tes formatif, Tes sumatif. Evaluasi mahasiswa ditujukanuntukmengukurketercapaiantujuan (padaKolom 2).
3UGM menggunakan system pembelajaranSTAR (Student Teacher Aesthetic Role-Sharing): kombinasi optimal antara SCL (Student Centered Learning) danTCL (Teacher Centered Learning).
4Tautan di internet disajikan dalam kolom terakhir (Sumber Ajar).Untuk materi online yang dikembangkan sendiri gunakanLMS eLisa http://elisa.ugm.ac.id/
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
Waktu: 1x pertemuan
@150 menit
kuliah, (2) Unduh bahan ajar setelah kuliah
depankelas.
Pengajar:
Janoe Hendarto
dan 4
3 (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
Waktu: 1x pertemuan
@150 menit
√ √ √ - - √ Kuisoner
Skoring 0-100 (PAN)
Dosen aktif menjelaskan di depan kelas (TCL)
Unduh dan baca bahan ajar pada waktu kuliah dan setelah kuliah
menjelaskan di depan kelas.
Pengajar:
Janoe Hendarto
Web:
elisa.ugm.ac.id Bahan ajar Bab 5
4 (1) Dapat menjelaskan:
Struktur data Tree
Operasi pada Tree (2) Dapat
Struktur data Tree : (1) Terminologi dan Konsep,
(2) Implementasi Tree
√ √ √ - √ √ Kuis:
tentang multiple linked list
Mahasiswa berkelompok dan berdiskusi
(1) Baca bahan ajar sebelum kuliah,
Memandu diskusi dan menjelaskan di depan
Web:
elisa.ugm.ac.id Bahan ajar Bab 6
mengimplementasikan struktur data Tree dengan Array dan pointer.
Waktu: 1x pertemuan
@150 menit
(2) Unduh bahan ajar setelah kuliah
kelas.
Pengajar:
Janoe Hendarto 5 (1) Dapat menjelaskan:
BST dan AVL-Tree beserta operasi- operasinya (2) dapat
mengimplementasi BST dan AVL-Tree.
Struktur data Tree : (1) BST,
(2) AVL-Tree, (3) Operasi-operasi pada BST dan AVL-Tree
Waktu: 1x pertemuan
@150 menit
√ √ √ - √ √ Tugas :
tentang implementasi BST
Mahasiswa berkelompok dan berdiskusi
(1) Baca bahan ajar sebelum kuliah, (2) Unduh bahan ajar setelah kuliah
Memandu diskusi dan menjelaskan di depan kelas.
Pengajar:
Janoe Hendarto
Web:
elisa.ugm.ac.id Bahan ajar Bab 6
6 (1) Dapat menjelaskan:
Algoritma Sorting Merge Sort dan Quick Sort
Algoritma Sorting Heap Sort
Algoritma eksternal sorting hybrid (2) Dapat mengimple- mentasikan ketiga algoritma Sorting
Algoritma Sorting : (1) review Merge Sort dan Quick Sort.
(2) Heap Sort (3) Eksternal sorting Hybrid
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
Memandu diskusi dan menjelaskan di depan kelas.
Pengajar:
Janoe Hendarto
Web:
elisa.ugm.ac.id Bahan ajar Bab 7
7 (1) Dapat menjelaskan:
Algoritma Searching sekuensial dan binary search
Searching dengan fungsi hashing (2) Dapat mengimple- mentasikan algoritma Searching
Algoritma Searching : (1) Sekuensial Search dan Binary Search.
(2) Searching dengan fungsi hashing (pengantar)
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
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)
√ - - - - - Tes summatif (PAN)
- Mahasiswa
mengerjaka n UTS secara individu di kelas.
Menyiapkan UTS
Seluruh bahan kuliah sejak dari awal.
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
Waktu: 1x pertemuan
@150 menit
√ √ √ - - √ 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
10 (1) Dapat menjelaskan tentang class, object dan method
(2) Dapat
mengimplementasikan class, object dan method
Pengenalan OOP : (1) Pengertian dan implementasi instance dalam Java.
(2) Studi kasus
Waktu: 1x pertemuan
@150 menit
√ √ √ - √ √ 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
11 (1) Dapat menjelaskan tentang graf dan bagaimana
merepresentasikannya dalam program
(2) Dapat menjelaskan tentang graf traversal dengan metode Depth- First-Search serta mengimplementasikan nya dalam program
Graf:
(1) Representasi graf (2) DFS
Waktu: 1x pertemuan
@150 menit
√ √ √ - √ √ 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
12 (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
Graf:
(1) BFS
(2) Shortest Path
Waktu: 1x pertemuan
@150 menit
√ √ √ - √ √ 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
13 (1) Dapat menjelaskan tentang hash dan berbagai cara untuk membuat fungsi hash
(2) Dapat
mengimplementasikan fungsi hash ke dalam program
Hash Tables
(1) Pengantar ke Hash (2) Fungsi Hash
Waktu: 1x pertemuan
@150 menit
√ √ √ - √ √ 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
14 (1) Dapat menjelaskan tentang Collision resolution di hash, dan bagaimana menghapus data di dalam hash
(2) Dapat
mengimplementasikan collision resolution ke dalam fungsi hash
Hash Tables
(1) Collision Resolution (2) Deletion
Waktu: 1x pertemuan
@150 menit
√ √ √ - √ √ 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
15 (1) Dapat menjelaskan tentang Huffman coding
Huffman Coding
Waktu: 1x pertemuan
@150 menit
√ √ √ - √ √ 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
(2) Dapat
mengimplementasikan Huffman Coding dalam program
(2) Unduh bahan ajar setelah kuliah
kelas.
Pengajar:
Arif N
16 Evaluasi pemahaman mahasiswa secara menyeluruh.
Ujian Akhir Semester (UAS)
√ - - - - - Tes summatif (PAN)
- Mahasiswa
mengerjaka n UAS secara individu di kelas.
Menyiapkan UAS
Seluruh bahan kuliah sejak dari UTS
Mengetahui, Yogyakarta, 28 Agustus 2015
Dr.-Ing. Reza Pulungan, M.Sc Ketua Prodi S1 Ilmu Komputer UGM
Arif Nurwidyantoro, M.Cs.
Dosen Pengajar
Drs. Janoe Hendarto M.Kom.
Dosen Pengajar