Software Design Notations
SOFTWARE DESIGN NOTATION
Software Design Notation jika diterjemahkan secara harfiah ke dalam bahasa
Indonesia memiliki artian Notasi Desain
Perangkat Lunak (Aplikasi). Aplikasi yang dikembangkan oleh para developer pastilah memiliki tujuannya
masing-masing. Oleh karenanya, notasi desain ini ada untuk membantu para developer dan stakeholder mendeskripsikan
tujuan dari suatu perangkat lunak. Mari kita kembali ke S.D.L.C. (Software Development Life Cycle)
terlebih dahulu, saya menyertakan gambarnya di bawah ini :
Gambar 1. S.D.L.C., sumber :https://www.winklix.com/blog/software-development-life-cycle-sdlc/ |
Tahap pertama dan
kedua merupakan tahap analisis dan design, menurut @OmarElGabry, di medium,
kedua tahap tersebut merupakan tahap yang hampir sama karena perbedaannya dapat
dianalogikan dengan “Apa Vs Bagaimana”. Jadi, dapat dikatakan proses desain
merupakan proses yang menjelaskan gimana caranya setiap informasi yang sudah
ada, di tahap analisis, untuk diimplementasikan. Pada tahap desain berfokus
kepada pendeskripsian setiap objek, atribut, lingkungan, dan interaksi antar
komponen atau kelas. Berikut saya jelaskan kepada teman-teman semua apa saja
fokus yang ada pada tahap desain (dalam bentuk beberapa kriteria yang
sebenarnya harus ada ya..), di antaranya :
1. Automatic
Processing, Notasi desain
memungkinkan diverifikasi kualitas dan kebenarannya oleh desainer;
2. Modularity, Notasi desain mendukung pengembangan
perangkat lunak yang telah dimodularisasi;
3. Structure
Enforcement, Notasi
desain memberlakukan penggunaan konstruksi pemrograman terstruktur;
4. Ease
of Editing, Notasi desain
mudah untuk dimodifikasi;
5. Data
Representation, Notasi
desain memiliki kemampuan untuk menggambarakan data lokal dan global secara
langsung;
6. Maintainability, Notasi desain mampu memelihara bentuk
desainnya sendiri;
7. Logic
Verification, Notasi
desain mampu melakukan verifikasi logika guna meningkatkan standar pengujian
perangkat lunak yang dikembangkan;
8. Overall
Simplicity, Notasi desain
mudah untuk dipelajari, digunakan, dan sederahana penulisannya;
9. Machine
Readabillity, Notasi
desain dapat menjadi masukkan secara langsung ke dalam pengembangan sistem yang
dapat dibaca oleh mesin;
10. Easily
Converted to Program Source Code, Notasi desain dapat dengan mudah dan cepat untuk dikonversi menjadi kode
pemrograman.
Notasi desain
perangkat lunak yang dibuat tidaklah selalu sederhana, untuk mengatasi
permasalahan tersebut kita harus menggunakan bahasa standar untuk memodelkan.
Rosa dalam bukunya yang berjudul Rekayasa Perangkat Lunak menjelaskan ada
bahasa yang paling banyak digunakan untuk membuat analisis dan desan, mendefinisikan
requirement, serta menggambarkan
arsitektur dalam pemrograman berorientasi objek. Bahasa tersebut ialah Unified Modeling Language (UML). UML
merupakan bahasa visual untuk pemodelan dan komunikasi mengenai sebuah sistem
dengan menggunakan diagram dan teks-teks pendukung. Jadi penggunaan UML tidak
terbatas pada metodologi tertentu. Memangnya apa saja sih yang harus
dimodelkan? Itu pasti pertanyaan yang terlintas di pikiran teman-teman. Setelah
beberapa kriteria yang ada di Notasi Desain Perangkat Lunak dijelaskan, kita
beranjak ke beberapa klasifikasi dalam Notasi Desain Perangkat Lunak. Kita
klasifikasikan kedua pemodelan ke dalam dua kategori, di antaranya:
1. Structural
Descriptions (Statis)
Structural Descriptions jika diterjemahkan secara hrfiah memiliki artian
Deskripsi Terstruktur yang dapat dikatakan kaku atau tetap atau bahkan diam
(statis). Structural Description
menggambarkan dan merepresentasikan berbagai aspek struktural pada perancangan
perangkat lunak, di antaranya :
§ Architecture
Description Language (ADL),
bahasa yang digunakan dalam hal komponen dan konektornya;
§ Component
Diagrams, sekumpulan
komponen, realisasi dari sekumpulan antarmuka dan hubungan timbal baliknya.
§ Deployment
Diagrams, suatu sistem
diwakili dengan satu set simpul (fisik) dan keterkaitannya;
§ Interface
Description Languages (IDL),
bahasa pemrograman yang digunakan untuk mengimplementasikan antarmuka dan
komponen perangkat lunak.
Nah, itulah
beberapa aspek yang harus direpresentasikan ketika membuat notasi desain
berjenis statis. Lantas apa saja model-model yang harus dimodelkan pada
kategori ini? Ada beberapa contoh yang akan saya jelaskan secara singkat kepada
teman-teman, di antaranya :
1) Class
and Object Diagrams
Class and Object Diagrams merupakan notasi desain untuk mewakili sekumpulan kelas dan objek lengkap
dengan relasinya. Pada kelas memiliki atribut (ialah variabel-variabel yang
dimiliki oleh suatu kelas) dan operasi atau metode (ialah fungsi-fungsi yang
dimiliki oleh suatu kelas). Kelas sendiri sebaiknya memiliki beberapa jenis
kelas berikut:
v Kelas main, fungsi awal yang dieksekusi
ketika sistem dijalankan;
v Kelas View,
mengatur tampilan ke pemakai;
v Kelas Controller,
menangani proses bisnis aplikasi;
v Kelas Model,
memodulkan data menjadi satu kesatuan yang akan diambil maupun disimpan ke
basis data.
Setelah mengetahui beberapa kelas yang sebaiknya ada, mari kita pahami
beberapa simbol-simbol untuk Class
Diagram ini. Berikut saya cantumkan tabel beberapa simbol yang dapat
digunakan
Setelah memahami Class Diagram
kita berlanjut kepada Object Diagram,
kalau bagian ini menggambarkan penamaan dan jalannya objek dalam suatu sistem.
Nah, untuk memahami jalannya objek pada suatu perangkat lunak kita harus
mendifinisikannya dengan dua simbol di bawah ini, berikut saya lampirkan :
Gambar 2. Simbol Object Diagram, Sumber : Rosa A.S.
|
Karena penjelasan antara Class
Diagram dan Object Diagram hampir
sama, kita dapat mengintegrasikan keduanya menjadi satu kesatuan karena saling
melengkapi (AZEKKK). Untuk menambah
pemahaman kita, saya akan memberikan contoh BELANJA ONLINE. Gimana sih relasi
kelas dan objeknya, yu langsung lihat di bawah ini:
Gambar 3. Online Shopping Class and Object Diagram, sumber :https://www.uml-diagrams.org/examples/online-shopping-domain-uml-diagram-example.html?context=cls-examples |
2) Entity
Relationship Diagram
Entity Relationship Diagram (ERD) merupakan bentuk paling awal dalam perancangan basis data relasional.
ERD sendiri berfungsi untuk menggambarkan model konseptual data yang disimpan
ke dalam sistem informasi. ERD sendiri memiliki beberapa aliran notasi, di
antaranya Chen, Barker, dan lain-lain. Notasi yang sering digunakan ialah
notasi Chen, berikut beberapa simbol dalam notasi desain Chen:
Gambar 4. Notasi ERD, sumber https://www.conceptdraw.com/How-To-Guide/picture/Design_Elements(Chen-ERD)_Win_Mac.png |
Gambar 5. ERD Model Penjualan Internet, sumber :
https://www.smartdraw.com/entity-relationship-diagram/
|
Gambar 5. ERD Model Penjualan Internet, sumber :
https://www.smartdraw.com/entity-relationship-diagram/
|
3) Structure Chart
Structure
Chart merupakan grafik
yang merepresentasikan suatu proses dalam sistem. Caranya kerjanya dengan
menguraikan komponen utama menjadi bagian-bagian kecil. Selain itu, grafik ini
pun digunakan untuk pemanggilan suatu program dan juga digunakan untuk
menganalisis sistem terstruktur atau desain terstruktur. Adapun beberapa
tahapan untuk mengimplementasikan atau membuat grafik ini ialah sebagai berikut
(didapatkan dari : https://sis.binus.ac.id/2016/08/30/cara-menggambarkan-rancangan-program-menggunakan-structure-chart/) :
Tahap 1: Mengidentifikasi Modul
dan Level. Pada tahap ini, analis dapat mengidentifikasi
modul dan level dengan melakukan konversi proses yang ada pada DFD ke dalam
modul-modul structure chart. Perbedaan tingkatan atau level yang telah dibuat
pada DFD diterjemahkan ke dalam modul dengan tingkatan yang berbeda pula pada
structure chart. Pada gambar di bawah, DFD level konteks (level-context DFD)
ditempatkan pada bagian tertinggi dari structure chart untuk merepresentasikan
modul kontrol yang mengatur keseluruhan fungsi sistem. Lalu di bawahnya
ditempatkan DFD Level 0 sebagai modul subordinat. Pola struktur seperti ini
berlanjut mengikuti hierarki tingkatan DFD. Contoh diberikan pada gambar di
bawah ini:
Sumber: Buku System Analysis and Design, 2013 |
Tahap 2: Mengidentifikasi
Hubungan Spesial. Pada tahap ini, yang dilakukan adalah
menambahkan notasi loop (iterasi) dan conditional
line (garis kondisi). Hal ini dilakukan untuk merepresentasikan
modul mana yang bersifat perulangan ataupun modul yang bersifat opsional.
Contoh diberikan pada gambar di bawah ini:
Sumber: Buku System Analysis and Design, 2013 |
Tahap 3: Menambahkan Couples.
Pada tahap ini, analis mengidentifikasi informasi yang terdapat di antara
modul-modul. Informasi ini dapat berupa atribut suatu data atau parameter
kontrol. Informasi yang berupa atribut data dinotasikan oleh panah dengan
lingkaran kosong. Sedangkan informasi yang berupa parameter kontrol dinotasikan
oleh panah dengan lingkaran penuh. Arah panah menunjukkan informasi mengalir
dari suatu modul ke modul lain. Contoh diberikan pada gambar di bawah ini:
Sumber: Buku System Analysis and Design, 2013 |
Tahap 4: Meninjau dan Merevisi
Structure Chart. Pada tahap ini, analis akan meninjau ulang dan
melakukan revisi terhadap structure chart versi pertama yang telah dibuat
berdasarkan DFD, use case, dan definisi kebutuhan pengguna. Namun masih
terdapat bagian yang perlu dilakukan konfirmasi yang sesuai dengan informasi
yang ada dalam proses bisnis ataupun perubahan yang diinginkan pengguna.
Jadi, dapat disimpulkan bahwa Structural
Description yaitu kumpulan diagram yang digunakan untuk menggambarkan suatu
struktur statis dari sistem yang dimodelkan. Dengan kata lain, struktur ini
tidak dapat dengan mudah beradaptasi dengan lingkungannya karena sudah
merupakan suatu ketetapan. Okeh. Lanjut ke jenis yang kedua, yaitu :
2. Behavioral
Description (Dinamis)
Behavioral Description merupakan bentuk representasi perilaku
dinamis suatu perangkat lunak dan beberapa komponen, di antaranya :
§ Communication
Diagram, bentuk tautan
(pesan) yang dihasilkan dari interaksi antara sekelompok objek;
§ Decision
Tables and Diagrams,
Kondisi dan tindakan yang kompleks dari suatu sistem;
§ State
Transition and State Chart Diagrams, aliran kontrol dari negara ke negera di mesin negara;
§ Formal
Specification Languages,
Bahasa tekstual yang digunakannya.
Okeh, kita lanjut ke beberapa jenis notasi desain yang menggambarkan
perilaku dinamisnya, di antaranya :
1) Activity
Diagrams
Activity Diagrams merupakan
diagram yang menggambarkan aliran kerja atau aktivitas dari sebuah sistem atau
proses bisnis atau menu yang ada pada perangkat lunak. Ingat yang dilakukan
oleh sistem dan bukan aktor. Selain itu, diagram aliran kerja juga digunakan
untuk mendefinisikan beberapa hal berikut ini (Rosa A.S.):
§ Rancangan proses bisnis;
§ Pengelompokan tampilan dari sistem (User Interface);
§ Rancangan Pengujian;
§ Rancangan menu.
Untuk membuat diagram ini, kita perlu tahu terlebih dahulu beberapa simbol
yang ada, di antaranya :
Gambar 6. Simbol Activity Diagram, sumber :https://pccontrol.wordpress.com/2012/09/12/pengetahuan-dasar-dan-contoh-diagram-aktivitas/ |
Lalu,
kita perdalam pengetahuan kita dengan melihat contoh yang ada pada diagram
aliran kerja ini. Berikut saya lampirkan :
Gambar 7. Contoh Diagram Aliran Kerja, sumber : https://www.uml-diagrams.org/online-shopping-uml-activity-diagram-example.html?context=activity-examples |
2) Flowchart
Flowchart merupakan diagram
alir yang menunjukkan apa yang terjadi dalam suatu program dan bagaimana data
mengalir di sekitarnya. Dapat dikatakan juga Flowchart ialah diagram alir yang menjalankan suatu algoritma
dengan aliranny dari awal hingga akhir yang merepresentasikan proses bisinis. Adapun
beberapa tujuan menggunakan Flowchart ialah
sebagai berikut :
§ Menggambarkan suatu tahapan penyelesaian
masalah
§ Secara sederhana, terurai, rapi dan jelas
§ Menggunakan simbol-simbol standar
Lalu, bagaimana cara kita mengunakan diagram alir ini untuk notasi desain
yang kita gunakan? Berikut beberapa simbol yang Dwiky (https://www.it-jurnal.com/pengertian-flowchart/) jelaskan dan mengklasifikan
simbol-simbol tersebut ke dalam tiga kategori, di antaranya :
- Flow Direction Symbols
Digunakan untuk menghubungkan simbol satu dengan yang lain –
Disebut juga connecting line
·
Processing symbols
Menunjukan jenis operasi pengolahan dalam suatu proses
/ prosedur Input / Output
·
Symbols
Untuk lebih lanjut ayo kita analisis contoh diagram alir
pelayanan kesehatan di bawah ini untuk menambah pemahaman kita mengenai Flowchart.
Gambar 8. Flowchart Pelayanan Kesehatan, sumber :https://www.visual-paradigm.com/tutorials/flowchart-tutorial/ |
3) Sequence Diagram
Sequence Diagram atau sekuen diagram
merupakan diagram yang menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima
antar objek. Berikut saya sertakan beberapa simbol yang ada pada diagram ini
Berikut contoh dari diagram sekuen yang didapatkan dari (https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-sequence-diagram/) yang berekenaan dengan Sistem Hotel.
Gambar 9. Sequence Diagram simbol, sumber :https://pccontrol.wordpress.com/2012/12/25/pengetahuan-dasar-diagram-interaksi-sequnce-diagram-dan-kolaborasi/ |
Berikut contoh dari diagram sekuen yang didapatkan dari (https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-sequence-diagram/) yang berekenaan dengan Sistem Hotel.
4) Pseudocode
Pseudocode adalah
notasi desain yang berkaitan erat dengan bagaimana logika suatu program akan
bekerja, umumnya pada tahap desain terperinci, perilaku prosedur atau metode. Selain
itu, pseudocode juga merupakan deskripsi dari algoritma pemrograman komputer yang
menggunakan konvensi struktural dari suatu bahasa pemrograman, dan ditujukan
agar dapat dibaca oleh manusia dan bukan oleh mesin. Tetapi apa sebenanya
fungsi dari notasi desain ini? Terdapat beberapa fungsi yang dijelaskan di (https://bilabil.com/contoh-pseudocode/),
di antaranya :
§ Mempermudah penggunanya dalam memahami dan
memperjelas cara menyelesaikan suatu masalah;
§ Sebagai alat dokumentasi;
§ Membantu penggunanya dalam menuliskan
suatu algoritma yang dibuatnya;
§ Mudah karena tidak bergantung pada suatu
sistem tertentu dan juga sapek dari Pseudocode termasuk ringkas, dan itulah
yang merupakan perinsip utama dari algoritma.
Lalu struktur yang harus ada dalam psedocode
ialah tiga bagian, yaitu judul, deskripsi, dan implementasi. Untuk lebih
jelasnya ayok kita lihat contohnya :
program hitung_luas_trapesium
deklarasi
var luas, ab, cd, t:integer;
algoritma:
ab <-- 10="" span=""> -->
cd <-- 8="" span=""> -->
t <-- 7="" span=""> -->
luas <-- 1="" ab="" cd="" span="" t=""> -->
write <-- luas="" span=""> -->
Saya lampirkan beberapa kode yang ada dalam psedocode untuk membantu teman-teman agar semakin paham dengan psedococe.
§ INPUT, menunjukkan penggunaan memasukkan sesuatu;
§ OUTPUT, menunjukkan bahwa output akan muncul
di layar;
§ WHILE, loop (iterasi yang memiliki kondisi
di awal);
§ FOR, loop penghitungan (iterasi);
§ REPEAT–UNTIL-LOOP (iterasi) yang memiliki kondisi
di akhir;
§ IF–THEN–ELSE, keputusan (pemilihan) di
mana pilihan dibuat.
Nah sekian ya
teman-teman terima kasih.....
Komentar
Posting Komentar