Algoritma adalah solusi problem komputasi. Karenanya sangat penting kebenaran algoritma untuk suatu problem komputasi dapat dibuktikan. Selain itu, algoritma merupakan inti dari setiap program. Bagaimana perilaku eksekusi program, seperti berapa lama waktu eksekusi atau berapa banyak memori yang dibutuhkan, sebaiknya dapat diprediksi sejak awal berdasarkan rancangan algoritma tersebut.
Mata kuliah ini memperkenalkan konsep-konsep dasar perancangan algoritma, pembuktian kebenaran algoritma, dan perhitungan kompleksitas algortima.
Dalam mata kuliah ini juga diperkenalkan analisis problem komputasi dan klasifikasi problem komputasi berdasarkan tingkat kesulitannya. Memahami kelas dari suatu problem komputasi memberikan petunjuk bagi kita untuk menerapkan strategi yang tepat ketika merancang algoritma untuki problem tersebut.
Poin capaian mata kuliah (CLO) ini beserta bobot penilaiannya adalah sbb:
- [25%] Mampu menganalisis problem komputasi, merancang solusi algoritmik, dan melakukan kajian fungsional dan non-fungsional atas solusi tersebut.
- [20%] Mampu menjelaskan efek penerapan struktur data pada kompleksitas algoritma, khususnya untuk perancangan solusi problem komputasi berbasis graf.
- [30%] Mampu menjelaskan beberapa klasifikasi problem komputasi yang umum, seperti kelas P, NP, NP-Hard, dan NP-Complete, serta mampu mengklasifikasikan problem komputasi yang dihadapi dan mengenali strategi perancangan solusi berdasarkan klasifikasi dari problem tersebut.
- [25%] Mampu membuat algoritma untuk suatu problem komputasi dan mengimplementasikannya dengan tepat menjadi sebuah program dalam suatu bahasa pemrograman umum
Pustaka:
- Cormen, Leiserson, Rivest, Stein, "Introduction to Algorithms, 3rd", The MIT Press, 2009
- Semester ini matakuliah CII633 mengadakan 3 kelas paralel. Untuk memperkaya pemahaman kalian pada matakuliah ini, kalian diperkenankan untuk juga sit-in, menjadi pendengar di kelas yang lain.
Resources
CLO-1
CLO-2
CLO-3