Kamis, 09 Maret 2023

ANALISIS DAN DESIGN PERANGKAT LUNAK

 Structured Analysis and Design (SSAD)

SSAD adalah salah satu metode dalam mengembangkan sistem maupun software menggunakan tools-tools yang mampu membuat sistem terstruktur dengan jelas. Metode ini beriorientasi pada data dan proses. Analisis ini memiliki beberapa karakteristik penting yaitu :
1. Berdasarkan Modul
Semua proses dibagi menjadi beberapa modul yang dapat berdiri sendiri sehingga dapat digunakan kembali. Setiap modul mampu memproses data dengan detail dan memiliki keterikatan. 
2. Pendekatan Top-Down
Perancangan sistem didefinisikan secara umum dulu baru turun ke level yang lebih spesifik. Biasanya dilakukan menggunakan DFD (Data Flow Diagram)
3. Iterasi
Perancangan sistem dilakukan secara iterasi atau berulang ulang kali sehingga kesalahan sebelumnya dapat diperbaiki. Contohnya pada metode spiral
4. Paralel
Karena modul modul tadi dapat dipisah sehingga membuat proses nya juga dapat dilakukan terpisah. Sehingga dapat mempercepat proses pembuatan sistem ini dan menghemat pengeluaran sumber daya. 

Ada beberapa tools yang biasa digunakan untuk mendukung metode SSAD ini yaitu :
a) DFD (Data Flow Diagram)
b) Kamus Data Entity
c) ERD (Entity Relationship Diagram)
d) STD (State Transition Diagram)

Kelebihan SSAD
1. Milestone diperlihatkan dengan jelas yang memudahkan dalam manajemen proyek
2. Merupakan pendekatan visual, ini membuat metode ini mudah dimengerti oleh pengguna atau programmer
3. Penggunaan analisis grafis dan tool seperti DFD menjadikan SSAD bagus untuk digunakan
4. Merupakan metode yang diketahui secara umum pada berbagai industri
5. Sudah diterapkan begitu lama sehinga metode ini sudah matang dan layak untuk digunakan
6. Memungkinkan untuk melakukan validasi antara berbagai kebutuhan
7. Relative simple dan mudah dimengerti

Kekurangan SSAD
1. Berorientasi utama pada proses, sehingga mengabaikan kebutuhan non-fungsional
2. Sedikit sekali manajemen langsung terkait dengan SSAD
3. Prinsip dasar SSAD merupakan pengembangan non-iterative (waterfall), akan tetapi kebutuhan akan berubah pada setiap proses
4. Interaksi antara analisis atau pengguna tidak komprehensif, karena system telah didefinisikan dari awal, sehingga tidak adaptif terhadap perubahan
5. Selain dengan menggunakan desain logic dan DFD, tidak cukup tool yang digunakan untuk mengkomunikasikan dengan pengguna, sehingga sangat sulit bagi pengguna untik melakukan evaluasi.
6. Sulit sekali untuk memutuskan ketika ingin menghentikan dekomposisi dan memulai membuat system
7. Tidak selalu memenuhi kebutuhan pengguna
8. Tidak dapat memenuhi kebutuhan terkait bahasa pemrograman berorientasi obyek, karena metode ini memang didesain untuk mendukung bahasa pemrograman terstruktur, tidak berorientasi pada obyek.

Objek Oriented Analysis and Design (OOAD)

OOAD merupakan suatu metode menganalisis requirements atau kebutuhan melalui perspektif kelas-kelas maupun objek pada dunia nyata. Setiap objek ini adalah kombinasi dari struktur data dan perilaku setiap entitas. Berorientasi pada objek dan konsep. Dalam pendekatan ini, ada 4 pilar yg harus dipahami yaitu :
1. Abstraction (Abstraksi)
Adalah kemampuan mengubah sebuah bentuk menjadi bentuk yang lain (lebih sederhana). Biasanya digunakan untuk menyederhanakan suatu sistem dalam bentuk DFD (Data Flow Diagram). 
2. Encapsulation (Pembungkusan)
Adalah mekanisme membungkus data/informasi dan menyembunyikan informasi mana yang seharusnya disembunyikan sehingga dapat menjaga kebutuhan data dengan menerapkan pembatasan akses.Enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga keamanan informasi. Contohnya saat memasak nasi menggunakan rice cooker. Kita hanya perlu menekan tombol dan beras pun berubah menjadi nasi dalam waktu tertentu. Kita tidak tahu proses apa yang dibungkus oleh teknologi ini sehingga beras dapat berubah menjadi nasi hanya dengan bantuan listrik. 
3. Polymorphism (Polimorfisme)
Adalah sebuah prinsip kelas yang dapat memiliki banyak bentuk atau method yang berbeda-beda meskipun namanya sama. Maksud dari bentuk adalah isinya berbeda, parameternya berbeda, dan tipe datanya berbeda. Contohnya ketika kita bertransaksi di Indomaret, kita dapat membayar menggunakan banyak macam cara, bisa dengan tunai, debit, qris, dan lain-lain. Jadi proses pembayaran tersebut dapat dilakukan dengan banyak cara atau bentuk.
4. Intheritance (Turunan)
Adalah suatu kemampuan membentuk kelas baru yang memiliki hubungan turunan dan mirip dengan fungsi yang sudah ada sebelumnya. Dengan kata lain, inheritance menurunkan atau mewariskan metode yang dimilikinya kepada kelas lain. Kelas yang akan diturunkan atau diwariskan bisa disebut sebagai class induk (parent class), super class, atau base class. Sedangkan kelas yang ‘menerima penurunan’ bisa disebut sebagai class anak (child class), sub class, derived class atau heir class. Pada kelas yang memiliki kelas turunan disebut dengan parent class atau base class, sedangkan kelas turunan itu sendiri kerap disebut dengan subclass atau child class yang bisa menurunkan atau mewariskan apa pun dari parent class. Contohnya objek mobil. Ada beberapa jenis mobil tergantung kegunaannya. Misalnya mobil bak terbuka seperti truk dan mobil bak tertutup seperti sedan. Keudanya sama sama berorientasi pada objek parent class yaitu Mobil, dan keduanya termasuk ke dalam child class. 

Beriku ini beberapa tools yang digunakan dalam metode beriorentasi objek :
a) RUP (Rational Unified Process) (Rational Software - IBM 2003)
b) Fusion (Coleman 1994)
c) STS Development Method 3 (ADM 3) (Firesmith 1993)
d) OOA (Object-Oriented System Analysis) (Shalaer & Mellor 1988)
e) OMT (Object Modelling Technique) (Rumbaugh et al. 1991), dll

Kelebihan OOAD (Object Oriented Analisys and Design)
1. Lebih mudah digunakan dalam pembangunan system.
2. Waktu pengembangan, level organisasi, ketangguhan dan penggunaan kembali (re-use) kode program lebih tinggi
3. Tidak ada pemisahan antara fase desain dan analisi, sehingga meningkatkan komunikasi antara user dan developer dari awal hingga akhir pembangunan system.
4. Analis dan programmer tidak dibatasi dengan batasan implementasi system.
5. Relasi obyek dengan entitas (thing) umumnya dapat di-mapping dengan baik seperti kondisi pada dunia nyata dan keterkaitan dalam system. Hal ini memudahkan dalam memahami desain.
6. Memungkinkan adanya perubahan dan kepercayaan diri yang tinggi terhadap kebenaran software yang membantu untuk mengurangi resiko pada pembangunan system yang kompleks.
7. Encapsulasi data dan method, memungkinkan penggunaan kembali pada proyek lain, hal ini akan memperingan proses desain, pemrograman dan reduksi harga.
8. OOAD memungkinkan adanya standarisasi obyek yang akan memudahkan memahami desain dan mengurangi resiko pelaksanaan proyek.
9. Dekomposisi obyek, memungkinkan seorang analis untuk memecah masalah menjadi pecahan-pecahan masalah dan bagian-bagian yang di-manage secara terpisah. Kode program dapat dikerjakan bersama-sama. Metode ini memungkinkan pembangunan software dengan cepat, sehingga dapat segera masuk ke pasaran dan kompetitif. System yang dihasilkan sangat fleksibel dan mudah dalam memelihara.

Kekurangan OOAD
1. Pada awal desain OOAD, system mungkin akan sangat simple.
2. Lebih focus pada coding dibandingkan dengan SSAD.
3. Tidak menekankan pada kinerja team.
4. Tidak mudah untuk mendefinisikan class dan obyek yang dibutuhkan system.
5. Seringkali pemrograman berorientasi obyek digunakan untuk melakukan analisis terhadap fungsional site, sementara metode OOAD tidak berbasis pada fungsional system.
6. OOAD merupakan jenis manajemen proyek yang tergolong baru, yang berbeda dengan metode analisis dengan metode terstruktur. Konsekuensinya adalah team developer butuh waktu yang lebih lama untuk berpindah ke OOAD karena mereka sudah menggunakan SSAD dalam waktu yang lama.
7. Metodologi pengembangan system denga OOAD menggunakan konsep re-use. Re-use merupakan salah satu keuntungan utama yang menjadi alasan digunakannya OOAD. Namun demikian, tanpa prosedur yang emplisit terhadap re-use, akan sangat sulit untuk menerapkan konsep ini pada skala besar.

 Kesimpulan

SSAD adalah suatu metode analisis dan desain pada software yang berdasarkan data dan dilakukan secara terstruktur dari mulai yang kompleks hingga ke proses yang paling kecil.
OOAD adalah metode analisis dan desain yang berdasarkan pada objek objek dan kelas yang ada pada sistem software tersebut dan dilakukan berdasarkan pada objek objek tersebut. 

Daftar Pustaka

Iberto, U. R. (2017, April 26). Analisis dan Desain Terstruktur (SSAD & OOAD). Retrieved from kampungmelayuuntan.blogspot.com: https://kampongmelayuuntan.blogspot.com/2017/04/analisis-dan-desain-terstruktur.html?m=1

Muhamad, F. (2020, October 20). Structured Analysis & Design (SAD) dan Object Oriented Analysis & Design (OOAD). Retrieved from farihinmuhamad.blogspot.com: https://farihinmuhamad.blogspot.com/2020/10/structured-analysis-design-sad-dan.html?m=1

Muhardian, A. (2019, December 27). Belajar Java OOP : Memahami Prinsip Polimorfisme dalam OOP. Retrieved from petanikode.com: https://www.petanikode.com/java-oop-polimorfisme/

Tekno, H. T. (2022, February 18). Encapsulation : Pengertian, Manfaat, dan Contohnya. Retrieved from kumparan.com: https://kumparan.com/how-to-tekno/encapsulation-pengertian-manfaat-dan-contohnya-1xWpIhA8Kc8/3

Tekno, H. T. (2022, March 1). Pengertian Inheritance dalam Bahasa Pemrograman. Retrieved from kumparan.com: https://kumparan.com/how-to-tekno/pengertian-inheritance-dalam-bahasa-pemrograman-1xbCKrvQzbg/full

 


EmoticonEmoticon