Assalamualaikum readers. Pada kesempatan kali ini saya akan
menyampaikan materi mengenai pendekatan analisis dan perancangan terstruktur
untuk membangun sistem informasi. Berikut ini penjabarannya.
A.
Perancangan Terstruktur ( SSAD )
SSAD atau juga disebut dengan pendekatan perancangan
terstruktur diperkenalkan pada tahun 1970 yang merupakan hasil turunan dari
pemrograman terstruktur. Perancangan ini bertujuan untuk membuat model SOLUSI
terhadap PROBLEM yang sudah dimodelkan secara lengkap pada tahap analisis
terstruktur. Ada empat kegiatan perancangan yang harus dilakukan, yaitu :
1. Perancangan arsitektural; kita
merancang struktur modul P/L dengan mengacu pada model analisis yang sesuai
(DFD). Langkahnya adalah mengidentifikasi jenis aliran(transform flow atau
transaction flow), menemukan batas-batas aliran (incoming flow dan outgoing
flow) kemudian memetakannya menjadi struktur hirarki modul. Selanjutnya, kita
alokasikan fungsi-fungsi yang harus ada pada modul-modul yang tepat.
2. Perancangan data; kita merancang
struktur data yang dibutuhkan, serta merancang skema basisdata dengan mengacu
pada model analisis yang sesuai (ERD)
3. Perancangan antarmuka; kita
merancang antarmuka P/L dengan pengguna, antarmuka dengan sistem lain dan
antarmuka antar-modul.
4. Perancangan procedural; kita
merancang detil dari setiap fungsi pada modul. Notasi yang digunakan bisa
berupa flowchart, algoritma dan lain-lain.
Sebelum kita melihat kelebihan dan
kekurangan SSAD dan OOAD maka saya juga akan menjelaskan secara singkat apa itu
OOAD. OOAD adalah metode analisis yang memeriksa requirements dari sudut
pandang kelas-kelas dan objek yang ditemui dalam ruang lingkup permasalahan
yang mengarahkan arsitektur software yang didasarkan pada manipulasi
objek-objek sistem dan subsistem.
B. Kelebihan dan kekurangan antara SSAD dan OOAD
Kelebihan :
- OOAD
1. Dibandingkan dengan metode SSAD,
OOAD lebih mudah digunakan dalam pembangunan system.
2. Dibandingkan dengan SSAD, waktu
pengembangan, level organisasi, ketangguhan dan penggunaan kembali (re-use) kode program lebih tinggi dibandingkan dengan metode OOAD.
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.
- SSAD
1. Milestone diperlihatkan dengan jelas
yang memudahkan dalam
manajemen proyek
2. SSAD merupakan pendekatan visul, ini
membuat metode ini
mudah dimengerti oleh pengguna atau programmer
3. Penggunaan analisis grafis dan tool
seperti DFD menjadikan
SSAD bagus untuk digunakan
4. SSAD merupakan metode yang diketahui
secara umum pada
berbagai industry
5. SSAD
sudah diterapkan begitu lama sehingga metode ini sudah
matang dan layak untuk
digunakan
6. SSAD
memungkinkan untuk melakukan validasi antara berbagai
kebutuhan
7. SSAD
relative simple dan mudah dimengerti
Kekurangan
- OOAD
1. Pada awal desain OOAD, system
mungkin akan sangat simple.
2. Pada OOAD lebih focus pada coding
dibandingkan dengan
SSAD.
3. Pada OOAD tidak menekankan pada
kinerja team seperti pada
SSAD.
4. Pada OOAD 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
1. SSAD 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 untuk
melakukan evaluasi.
6. Pada SSAD sulit sekali untuk memutuskan ketika ingin
menghentikan dekomposisi dan memulai membuat system
7. SSAD tidak selalu memenuhi kebutuhan pengguna
8. SSAD tidak dapat memenuhi kebutuhan terkait bahasa
pemrograman berorientasi obyek, karena metode ini memang
didesain untuk mendukung bahasa pemrograman terstruktur
tidak berorientasi pada obyek.
- SSAD
1. SSAD 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 untuk
melakukan evaluasi.
6. Pada SSAD sulit sekali untuk memutuskan ketika ingin
menghentikan dekomposisi dan memulai membuat system
7. SSAD tidak selalu memenuhi kebutuhan pengguna
8. SSAD tidak dapat memenuhi kebutuhan terkait bahasa
pemrograman berorientasi obyek, karena metode ini memang
didesain untuk mendukung bahasa pemrograman terstruktur
tidak berorientasi pada obyek.
C. Perbandingan
antara SSAD dan OOAD
Sifat-sifat dari pemrograman terstruktur dapat diuraikan
sebagai berikut :
1. Memuat teknik pemecahan masalah yang logis dan sistematis
2. Memuat algoritma yang efisien, efektif dan sederhana
3. Program disusun dengan logika yang mudah dipahami
4. Tidak menggunakan perintah GOTO
5. Biaya pengujian program relatif rendah
6. Memiliki dokumentasi yang baik
7. Biaya perawatan
dan dokumentasi yang dibutuhkan
relatif rendah
relatif rendah
Berbeda dengan OOP. Suatu program
disebut dengan pemrograman berbasis obyek (OOP) karena terdapat :
·
Encapsulation (pembungkusan)
Encapsulation adalah mekanisme pemrograman yang membungkus
kode dan data yang dimanipulasi dan menjaganya supaya terhindar dari
interferensi dan penggunaan yang tidak perlu. Salah satu caranya dengan
membentuk objek.
·
Inheritance (pewarisan)
Inheritance memungkinkan programer meletakkan member yang
sama dalam satu class dan class-class
lain dapat mewarisi member tersebut. Class yang mengandung member yang sama
dari beberapa class lain dinamakan superclass atau parent class. Class yang
mewarisi dinamakan subclass atau child class. Inheritance menghasilkan class
hierarchy.
·
Polymorphism (polimorfisme
–perbedaan bentuk)
Polymorphisme artinya mempunyai banyak bentuk. Dua objek
atau lebih dikatakan sebagai polymorphic, bila objek-objek itu mempunyai antar
muka yang identik namun mempunyai perilaku-perilaku yang berbeda
Bisa dikatakan pada pemrograman berorientasi objek, dapat
dilakukan sebuah programming terhadap code yang lebih baik daripada pemrograman
terstruktur, itu juga untuk kaliber atau skala rumit atau besar, sedangkan
untuk coding yang skala kecil lebih mudah menggunakan pemrograman terstruktur
dikarenakan lebih singkat dan mudah tanpa banyak perubahan yang penting.
berdasarkan penjelasan diatas, sangat jelas sekali bahwa
pemrograman tersktruktur unggul dalam melakukan pemrograman sederhana karena
lebih efisien dan lebih murah dalam hal perawatannya tetapi permodelan ini
lebih susah untuk dipahami oleh orang – orang selain pembuat program itu
sendiri (contohnya ketika dlakukan tracing program ).
Sementara itu pemrograman berorientasi objek memliki
beberapa keuntungan seperti :
1. Maintenance; program lebih mudah dibaca dan dipahami, dan pemrograman berorientasi obyek mengontrol kerumitan program hanya dengan mengijinkan rincian yang dibutuhkan untuk programmer.
2. Pengubahan program (berupa penambahan atau penghapusan fitur tertentu); perubahan yang dilakukan antara lain menyangkut penambahan dan penghapusan dalam suatu database program misalnya.
3. Dapat digunakannya obyek-obyek sesering yang diinginkan, kita dapat menyimpan obyek-obyek yang yang dirancang dengan baik ke dalam sebuah tolkit rutin yang bermanfaat yang dapat disisipkan kedalam kode yang baru dengan sedikit perubahan atau tanpa perubahan pada kode tersebut.
1. Maintenance; program lebih mudah dibaca dan dipahami, dan pemrograman berorientasi obyek mengontrol kerumitan program hanya dengan mengijinkan rincian yang dibutuhkan untuk programmer.
2. Pengubahan program (berupa penambahan atau penghapusan fitur tertentu); perubahan yang dilakukan antara lain menyangkut penambahan dan penghapusan dalam suatu database program misalnya.
3. Dapat digunakannya obyek-obyek sesering yang diinginkan, kita dapat menyimpan obyek-obyek yang yang dirancang dengan baik ke dalam sebuah tolkit rutin yang bermanfaat yang dapat disisipkan kedalam kode yang baru dengan sedikit perubahan atau tanpa perubahan pada kode tersebut.
Jadi, pemrograman berorientasi objek sangat cocok sekali
digunakan dalam kasus pembuatan software yang rumit dan kompleks karena
memberikan berbagai kemudahan kepada pemrogram seperti yang telah disebutkan
diatas.
Untuk baik tidaknya suatu pemodelan tergantung dari
kebutuhan dan dari sudut pandang mana anda melihatnya. Tujuan dari pemodelan
itu sendiri, yang mana agar pada akhir proyek sistem dapat diperoleh sistem
informasi yang memenuhi kebutuhan pemakai, tepat waktu dan sesuai anggaran,
serta mudah digunakan, dimengerti dan dipelihara
http://saiimilla.wordpress.com/2010/06/04/ooad-object-oriented-analysis-dan-design/
http://fahmiinformatika.blogspot.co.id/2011/11/perbedaan-sistem-oriented-objek-dengan.html