Pemrograman Berbasis Fungsi
SD25-xxxxx | 3 (2-1) SKS
📋 Informasi Mata Kuliah
Mata kuliah ini membahas paradigma pemrograman berbasis fungsi (functional programming) dengan fokus pada konsep-konsep fundamental seperti fungsi murni, immutability, higher-order functions, dan penerapannya dalam pengembangan perangkat lunak modern.
Dosen
Ahmad Luky Ramdani
Waktu
[Sesuaikan dengan jadwal]
Ruangan
Ruangan kelas perkuliahan di ITERA
Semester
Genap 2025/2026
📅 Rencana Pembelajaran Semester (RPS)
Minggu 11
Teknik Decorator Design
🎯 Tujuan Pembelajaran:
Mahasiswa mampu memahami dan mengimplementasikan pola desain decorator dalam konteks pemrograman fungsional untuk menambahkan fungsionalitas pada fungsi secara dinamis tanpa mengubah struktur aslinya.
📚 Topik Bahasan
- Konsep Decorator Pattern dalam Functional Programming
- Implementasi Decorator menggunakan Python
- Function Wrapping dan Closure
- Decorator dengan Parameter
- Studi Kasus: Logging, Timing, dan Authentication
✏️ Tugas: Implementasikan decorator untuk melakukan caching hasil fungsi dan monitoring waktu eksekusi.
Minggu 12
Functional Design Patterns: Teknik PyMonad Library
🎯 Tujuan Pembelajaran:
Mahasiswa mampu memahami konsep monad dalam pemrograman fungsional dan menggunakan PyMonad library untuk menangani operasi kompleks seperti error handling dan side effects secara fungsional.
📚 Topik Bahasan
- Pengenalan Monad dan Functor
- PyMonad Library: Maybe, Either, dan List Monad
- Composing Monadic Operations
- Railway Oriented Programming
- Error Handling secara Fungsional
✏️ Tugas: Implementasikan pipeline data processing menggunakan PyMonad untuk menangani error dan transformasi data secara fungsional.
Minggu 13
Concurrency dan Parallel Functional Programming
🎯 Tujuan Pembelajaran:
Mahasiswa mampu memahami dan mengimplementasikan konsep concurrency dan parallelisme dalam pemrograman fungsional untuk meningkatkan performa aplikasi.
📚 Topik Bahasan
- Immutability dan Thread Safety
- Parallel Map, Filter, dan Reduce
- Multiprocessing dalam Functional Programming
- Futures dan Promises
- Async/Await dengan Functional Approach
- Race Conditions dan Deadlock Prevention
✏️ Tugas: Implementasikan program untuk memproses dataset besar secara paralel menggunakan functional programming approach.
Minggu 14
Functional Programming in Big Data and Real World Application
🎯 Tujuan Pembelajaran:
Mahasiswa mampu menerapkan konsep pemrograman fungsional dalam konteks big data dan aplikasi dunia nyata, serta memahami keunggulan pendekatan fungsional dalam skenario produksi.
📚 Topik Bahasan:
- Apache Spark dan Functional Programming
- MapReduce Paradigm
- Stream Processing dengan Functional Approach
- Data Pipeline Design
- Real World Case Studies
- Best Practices dalam Production
✏️ Tugas: Analisis dan presentasikan studi kasus penggunaan functional programming dalam aplikasi big data di industri.
Minggu 15
Pengantar Scala dan Functional Programming
🎯 Tujuan Pembelajaran:
Mahasiswa mampu memahami dasar-dasar bahasa pemrograman Scala dan bagaimana Scala menggabungkan paradigma pemrograman fungsional dengan object-oriented programming.
📚 Topik Bahasan:
- Sintaks Dasar Scala
- Functional Programming di Scala
- Pattern Matching dan Case Classes
- Collections dan Higher-Order Functions
- For Comprehensions
- Perbandingan Python vs Scala untuk Functional Programming
✏️ Tugas: Implementasikan sebuah program sederhana dalam Scala menggunakan konsep-konsep functional programming yang telah dipelajari.