Mohon tunggu...
Dimas Atha Putra
Dimas Atha Putra Mohon Tunggu... Aspiring 3D generalist, web developer, and software engineer

I am an engineering student.

Selanjutnya

Tutup

Ilmu Alam & Tekno

Mathematical Foundations: Rekayasa Software seperti Matematikawan

6 Mei 2025   21:35 Diperbarui: 6 Mei 2025   21:35 64
+
Laporkan Konten
Laporkan Akun
Kompasiana adalah platform blog. Konten ini menjadi tanggung jawab bloger dan tidak mewakili pandangan redaksi Kompas.
Lihat foto
Menulis persamaan (Sumber: Unsplash/ThisIsEngineering)

Pengembangan perangkat lunak sering kali terasa seperti menavigasi jalinan rumit komponen, aspek, dan proses yang menolak komposisi bersih. Ketika perubahan sederhana pada antarmuka pengguna meruntuhkan dependensi dengan cara tak terduga, banyak pengembang memilih solusi ad hoc alih-alih mencari fondasi yang prinsipil. Namun aljabar menyediakan abstraksi yang tepat. Dengan memandang artefak perangkat lunak, komponen UI, modul aspek, diagram desain, item backlog, sebagai elemen dalam struktur aljabar, kita memperoleh konsep rigor tentang komposisi, identity, dan inverse yang menghasilkan perilaku lebih dapat diprediksi, refactoring yang lebih aman, dan penalaran yang lebih jelas tentang evolusi sistem.

Software Engineering Body of Knowledge (SWEBOK) mendefinisikan Mathematical Foundations sebagai topik matematika diskrit yang penting untuk penalaran presisi dalam rekayasa perangkat lunak. KA ini mencakup logika, teori himpunan, mesin hingga, probabilitas, teknik pembuktian, dan yang terpenting untuk tujuan kita, struktur aljabar seperti grup, monoid, ring, dan lattice. Struktur aljabar terdiri dari sebuah himpunan yang dilengkapi satu atau lebih operasi yang memenuhi aksioma. Dalam istilah perangkat lunak, operasi tersebut terwujud sebagai komposisi modul, penggabungan artefak desain, atau pelipatan item kerja, sementara aksioma seperti asosiativitas dan identity menjamin konsistensi di berbagai urutan komposisi.

Grup, Monoid dan Ring

Dalam pembahasan SWEBOK, sebuah group adalah himpunan S tertutup terhadap operasi biner yang bersifat asosiatif, memiliki elemen identity, dan menyediakan inverse untuk setiap elemen. Melepas syarat inverse menghasilkan monoid, dan menambahkan operasi kedua yang terdistribusi atas yang pertama menghasilkan ring. Dalam konteks perangkat lunak, definisi abstrak ini diterjemahkan menjadi pola konkret: operasi komposisi yang dapat diterapkan dalam urutan apa pun (asosiativitas), operasi no-op yang tidak mengubah elemen (identity), dan mekanisme undo atau rollback yang membalik efek komposisi (inverse). Mengenali struktur ini dalam kode dan model proses membuka jaminan kuat tentang bagaimana sistem berperilaku di bawah perubahan.

Pertimbangkan studi prototyping untuk sistem penjualan furnitur daring di Toko KANA Furniture. Penelitian ini menerapkan metodologi prototyping cepat untuk merancang dan memvalidasi formulir input produk, proses checkout, dan riwayat pesanan, beriterasi hingga kebutuhan pelanggan terpenuhi. Setiap widget UI, menu, daftar produk, panel keranjang, dapat dipandang sebagai elemen dalam himpunan S, dengan operasi "compose" yang didefinisikan melalui penyusunan atau pengurutan komponen. Kontainer kosong, berfungsi sebagai stub tanpa widget anak, berperan sebagai elemen identity. Yang krusial, menambahkan ringkasan checkout ke dalam tampilan keranjang kemudian menanamkannya dalam layout menghasilkan struktur visual yang sama seperti jika komposisi dilakukan dalam urutan terbalik, memperlihatkan asosiativitas operasi compose. Dengan memodelkan prototipe sebagai monoid, pengembang dapat melipat daftar definisi komponen menjadi satu fungsi render, memastikan halaman dinamis seperti detail pembelian dan riwayat pesanan selalu dirakit secara prediktabilitas.

Aspect-Oriented Programming sebagai Operasi Aljabar

Aspect-Oriented Programming (AOP) menangani scattering dan tangling kekhawatiran lintas potong pada kode berorientasi objek dengan memisahkan mereka ke dalam unit modular bernama aspek. AOP mendefinisikan join point, lokasi dalam alur eksekusi seperti pemanggilan metode atau event pengecualian, dan body advice yang menentukan perilaku yang disisipkan pada titik tersebut. Proses weaving, baik secara statis pada waktu kompilasi maupun dinamis saat runtime, adalah operasi biner () yang mengambil kode inti dan aspek untuk menghasilkan kode yang sudah di-weave. Dalam aljabar kekhawatiran ini, aspek trivial yang tidak melakukan apa pun berperan sebagai elemen identity, sementara menghapus aspek merupakan operasi inverse. Karena bersifat asosiatif, menggabungkan beberapa aspek dalam urutan apa pun menghasilkan program akhir yang sama, memberi kepercayaan kepada pengembang bahwa refactoring modul aspek mempertahankan invariants sistem.

UML dan Unified Process sebagai Semilattice

Diagram kelas, paket, dan komponen pada Unified Modeling Language (UML) menangkap struktur statis sebagai himpunan classifier dan relasi; diagram perilaku mencatat dinamika sistem. Unified Process (UP) mengorganisasi pengembangan ke fase (Inception, Elaboration, Construction, Transition) yang secara berturut-turut menggabungkan artefak pemodelan di bawah operasi "combine" yang asosiatif, dengan artefak minimal berperan sebagai identity. Hierarki paket dan pewarisan kelas membentuk semilattice, struktur aljabar khusus di mana setiap dua elemen memiliki merge yang terdefinisi. Dengan memandang artefak UP secara aljabar, tim memastikan integrasi perubahan dari jalur paralel menghasilkan model yang konsisten, dan rollback merge memulihkan kondisi artefak sebelumnya tanpa ambiguitas.

Backlog Scrum dan Estimasi Regresi sebagai Monoid Folds

Tim Agile yang menggunakan Scrum mengelola backlog cerita pengguna yang dipilih dan diurutkan ke dalam sprint. Tindakan "merge into sprint" adalah operasi asosiatif pada himpunan item backlog: jumlah cerita dalam sprint tidak bergantung pada pengelompokan. Pengembang melengkapi fold ini dengan model estimasi berbasis regresi yang menetapkan nilai usaha numerik melalui formula  

Model regresi
Model regresi

di mana X1 adalah ukuran tim dan X2 adalah tipe tugas. Evaluasi model menggunakan Mean Absolute Error memberikan batas kesalahan dunia nyata (dalam satu studi MAE tercatat 349.97 jam) menyediakan metrik kesalahan yang memandu penyesuaian retrospektif dan perbaikan berkelanjutan.

Kesalahan Umum Mengabaikan Aksioma Aljabar

Dalam praktiknya, banyak basis kode menunjukkan "dosa aljabar": fungsi komposisi yang diimplementasikan tidak asosiatif menyebabkan merge tak terduga saat skala; ketiadaan stub identity memaksa pengembang menangani kasus istimewa secara manual, meningkatkan kompleksitas; dan tidak adanya inverse membuat tim tidak dapat rollback dengan aman, menaikkan risiko setiap perubahan. Mengenali kesalahan ini sebagai pelanggaran aksioma aljabar mengubahnya dari bau desain yang samar menjadi properti konkret yang dapat diuji.

HALAMAN :
  1. 1
  2. 2
Mohon tunggu...

Lihat Konten Ilmu Alam & Tekno Selengkapnya
Lihat Ilmu Alam & Tekno Selengkapnya
Beri Komentar
Berkomentarlah secara bijaksana dan bertanggung jawab. Komentar sepenuhnya menjadi tanggung jawab komentator seperti diatur dalam UU ITE

Belum ada komentar. Jadilah yang pertama untuk memberikan komentar!
LAPORKAN KONTEN
Alasan
Laporkan Konten
Laporkan Akun