Pengantar Arsitektur Perangkat Lunak dan Design Pattern

Pengantar Arsitektur Perangkat Lunak dan Design Pattern

Pelajari Software Architecture, SOLID, Design Patterns, dan NestJS untuk membangun sistem modular.

Author(s)

  • Daniel Kevin Jhon Feko Wahyudi, S.Kom, M.Kom
  • Felicia Natania Lingga, S.Kom

The Managing Department

  • Computer Science

Category

  • Development

Language

Bahasa

Course Description

Course Introduction to Software Architecture adalah course komprehensif yang dirancang untuk mahasiswa Computer Science semester 4+, programmer junior, dan backend engineer yang ingin memahami perancangan perangkat lunak dari level kode (design principles & design patterns) hingga level sistem (software architecture, architectural styles, backend service dengan NestJS & Prisma, sistem terdistribusi, serta komunikasi dan risiko arsitektur). Course ini membawa peserta melalui perjalanan terstruktur: mulai dari fondasi empat pilar OOP dan lima prinsip SOLID, sepuluh design pattern Gang of Four (Creational, Structural, Behavioral) yang paling sering dipakai pada back-end modern, transisi ke level arsitektur sistem dengan sembilan karakteristik kualitas ISO/IEC 25010, perbandingan mendalam Layered vs Pipeline Architecture, praktik pembangunan monolith modular menggunakan NestJS, Prisma ORM, dan Swagger OpenAPI di TypeScript, hingga pertimbangan sistem terdistribusi (Microservices & Microkernel) serta kesiapan produksi melalui caching, deployment patterns (Blue-Green, Canary, Rolling), dan analisis risiko arsitektur.

Course ini disusun untuk mendukung matakuliah COSC6093001 – Introduction to Software Architecture di BINUS University, namun juga dapat diakses oleh learner umum dan praktisi industri. Course terdiri dari 1 video pengantar (Overview) dan 10 video modul dengan total durasi video estimasi ±70 menit (6-8 menit/modul) dan total beban belajar 6-8 jam termasuk lecture notes dan quiz. Setiap modul dilengkapi video slide-based (13 slide untuk modul 1-10, 8 slide untuk modul 0), lecture notes mendalam (2 paragraf penjelasan + 1 contoh soal kasus beserta penyelesaiannya), dan 2 quiz pilihan ganda di LMS. Istilah teknis (coupling, cohesion, modularity, single responsibility, open/closed, liskov substitution, interface segregation, dependency inversion, singleton, factory method, abstract factory, builder, prototype, adapter, facade, proxy, template method, observer, state, strategy, layered, pipeline, monolith, microservices, microkernel, transport layer, caching, cache invalidation, blue-green, canary, rolling deployment, risk matrix) dipertahankan dalam bahasa Inggris sesuai standar industri dan literatur acuan (Richards & Ford, Sarcar, Bass et al., ISO/IEC 25010), dengan penjelasan kontekstual dalam bahasa Indonesia.

Setelah menyelesaikan course ini, peserta mampu: (1) Menjelaskan modern software architecture dan design pattern (LO 1), (2) Menggambar dan menyelesaikan masalah arsitektur dengan design pattern (LO 2), (3) Menganalisis modern software architecture dan design pattern (LO 3), dan (4) Merancang back-end API service dengan pendekatan arsitektur dan design pattern modern memakai TypeScript (LO 4).

Course Topics

00. Overview
01. Prinsip OOP dan SOLID
02. Pengantar Design Pattern
03. Design Pattern Creational (Pola Pembuatan)
04. Design Pattern Structural (Pola Struktural)
05. Design Pattern Behavioral (Pola Perilaku)
06. Pengantar Arsitektur Perangkat Lunak
07. Layered & Pipeline Architecture
08. Arsitektur Monolitik dengan NestJS
09. Microservices dan Microkernel
10. Komunikasi dalam Perangkat Lunak