Pemrograman Berbasis Fungsi

SD25-xxxxx | 3 (2-1) SKS

Genap 2025/2026 | Sains Data | Institut Teknologi Sumatera

📋 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.