SlideShare a Scribd company logo
1 of 31
Software Design Strategies and
Methods
Muhammad Ainul Yaqin
Definisi Desain Software
Desain didefinisikan sebagai proses
mendefinisikan arsitektur, komponen,
antarmuka, dan karakteristik lain dari sistem
atau komponen" dan "hasil dari proses [itu]”
Desain software didefinisikan sebagai aktivitas
siklus hidup rekayasa dan deskripsi struktur
internal yang akan menjadi dasar untuk
konstruksinya.
Hasil mendesain menggambarkan komponen
pada tingkat detail dan antarmuka di antara
komponen-komponen tersebut
Pentingnya Desain Software
Desain software membantu menentukan
bagaimana sebuah sistem akan bekerja dan
bagaimana ia akan terlihat
Desain software membantu memahami
kebutuhan dan anggaran waktu dan biaya yang
diperlukan
Desain software membantu memastikan kualitas
dan kehandalan produk yang dihasilkan
Desain software membantu memastikan bahwa
produk yang dihasilkan sesuai dengan kebutuhan
dan harapan pelanggan
Tantangan Desain Software
Keterbatasan waktu dan anggaran
Keterbatasan sumber daya
Kebutuhan yang berubah-ubah
Kebutuhan untuk memastikan
kompatibilitas dengan sistem lain
Kebutuhan untuk memastikan keamanan
dan privasi informasi
Keuntungan Desain Software
yang Baik
Produk yang lebih baik, yang memenuhi
kebutuhan dan harapan pelanggan
Waktu pengembangan yang lebih singkat
Biaya yang lebih efisien
Kemudahan dalam perawatan dan
pemeliharaan
Kemudahan dalam integrasi dengan sistem
lain
Desain Software yang Baik
Jelas
 Desain software yang baik harus jelas dan mudah
dipahami.
 Arsitektur dan spesifikasi harus didefinisikan
dengan jelas dan mencakup informasi yang
diperlukan untuk mengembangkan software.
 Tujuan dan fungsi software harus jelas dan sesuai
dengan kebutuhan pengguna.
Desain Software yang Baik
 Konsisten
 Desain software harus konsisten dan memenuhi
standar industri yang diterima.
 Penggunaan bahasa pemrograman, struktur data,
dan teknik desain harus konsisten dan sesuai
dengan standar.
 Struktur software harus mudah dikelola dan
memiliki konsistensi dalam membuat perubahan.
Desain Software yang Baik
Efisien
 Desain software harus efisien dalam
menggunakan sumber daya dan memiliki waktu
respon yang cepat.
 Proses desain harus mengoptimalkan performa
software dan memiliki kapasitas untuk mengatasi
beban kerja.
 Algoritma dan logika program harus efisien dan
memiliki tingkat kompleksitas yang rendah.
Desain Software yang Baik
Dapat dimodifikasi
 Desain software harus mudah dimodifikasi dan
diperbarui seiring dengan perubahan kebutuhan
pengguna.
 Struktur software harus memiliki fleksibilitas
untuk memperbarui kode dan menambah fitur
baru.
 Desain software harus memiliki kapasitas untuk
mengatasi bug dan masalah teknis dengan
mudah.
Desain yang Scalable dan Future-
proof
Desain software yang baik harus
memperhitungkan skalabilitas dan
kemampuan untuk memperbarui produk.
Ini memastikan bahwa software tetap
relevan dan bisa menyesuaikan diri dengan
perubahan lingkungan dan teknologi.
Skalabilitas
Skalabilitas adalah kemampuan software
untuk menyesuaikan diri dengan
pertumbuhan jumlah pengguna dan data.
Desain software yang baik harus
memperhitungkan skalabilitas dengan
memastikan bahwa software bisa bekerja
dengan baik pada skala yang berbeda dan
memiliki infrastruktur yang bisa
menyesuaikan diri dengan pertumbuhan.
Future-proof
Desain software yang baik harus
memperhitungkan bahwa produk akan
perlu diperbarui seiring dengan perubahan
teknologi dan lingkungan. Ini memastikan
bahwa software bisa menyesuaikan diri
dengan perubahan dan memperbaiki diri
sendiri untuk tetap relevan.
Strategi Desain Software
Stuctured Design
Function Oriented Design
Object Oriented Design
Structured Design
Desain terstruktur adalah suatu metode
pemecahan masalah dalam pembuatan
software, dengan membagi masalah besar
menjadi bagian-bagian yang lebih kecil dan
terstruktur.
Tujuan Structured Design
Mempermudah proses pemecahan masalah
dan pembuatan software
Membuat software lebih mudah dipahami
dan dikelola
Mempermudah proses debugging dan
perbaikan
Mempermudah proses modifikasi dan
perbaikan
Fungsi Structured Design
Menentukan alur kerja software
Menentukan bagian-bagian dari software
Membuat software lebih mudah dipahami
dan dikelola
Mempermudah debugging dan perbaikan
Mempermudah modifikasi dan perbaikan
Metode Structured Design
Hierarki Proses
 Menentukan proses besar
 Membagi proses besar menjadi bagian-
bagian lebih kecil
 Menentukan alur kerja bagian-bagian
kecil
Metode Structured Design
Modularitas
 Menentukan bagian-bagian dari software
 Membuat bagian-bagian software
independen
 Mempermudah debugging dan perbaikan
 Mempermudah modifikasi dan perbaikan
Metode Structured Design
Abstraction
 Menentukan bagian-bagian yang harus
didefinisikan secara abstract
 Membuat software lebih mudah dipahami
dan dikelola
 Mempermudah debugging dan perbaikan
 Mempermudah modifikasi dan perbaikan
Function Oriented Design
Function Oriented Design adalah salah satu
pendekatan desain software yang
memfokuskan pada pembagian tugas
berdasarkan fungsi-fungsi tertentu.
Fungsi-fungsi tersebut mewakili komponen
yang berbeda dalam sistem dan memiliki
tugas yang spesifik.
Fokus Function Oriented Design
Fokus utama Function Oriented Design
adalah memastikan bahwa setiap fungsi
dalam sistem memiliki tugas yang jelas dan
terdefinisi dengan baik.
Hal ini membantu memastikan bahwa
sistem memiliki alur kerja yang jelas dan
mudah diterapkan.
Modularitas
Modularitas adalah prinsip utama dalam
Function Oriented Design yang berfokus
pada pembagian tugas atau kode dalam
sebuah software menjadi bagian-bagian
yang lebih kecil dan terpisah yang disebut
modul.
Setiap modul memiliki fungsi spesifik dan
dapat digunakan dan dipelajari secara
terpisah, membuat software lebih mudah
dikelola dan dipahami.
Object Oriented Design
Object Oriented Design (OOD) adalah salah
satu pendekatan dalam desain software
yang menggunakan objek sebagai dasar
pemodelan sistem.
OOD memfokuskan pada pembuatan objek-
objek yang memiliki atribut dan perilaku
seperti objek yang ada dalam dunia nyata.
Setiap objek memiliki identitas, keterkaitan
dengan objek lain, dan ketergantungan
pada objek lain.
Prinsip Dasar Object Oriented
Design
 Abstraction: Memfokuskan pada pembuatan model
yang mewakili aspek-aspek penting dari sistem yang
dibangun, sambil mengabaikan detail-detail yang tidak
penting.
 Encapsulation: Menyembunyikan detail-detail
implementasi dari objek agar dapat digunakan oleh
objek lain tanpa harus memahami bagaimana objek
tersebut bekerja.
 Inheritance: Memungkinkan objek untuk memperoleh
karakteristik dari objek lain, sehingga membuat objek
baru dapat dibuat dengan cepat dan mudah.
 Polymorphism: Memungkinkan objek untuk memiliki
lebih dari satu bentuk dan perilaku yang berbeda.
Perbedaan Ketiga Strategi
Desain
Struktur: Structured Design menekankan
pada pembagian tugas dan pemecahan
masalah dalam blok-blok yang terpisah dan
terstruktur. Function Oriented Design
memfokuskan pada pembagian tugas
berdasarkan fungsi-fungsi tertentu,
sedangkan Object Oriented Design
memfokuskan pada pembagian tugas
berdasarkan objek dan hubungan antar
objek.
Perbedaan Ketiga Strategi
Desain
Abstraksi: Structured Design lebih bersifat
prosedural, Function Oriented Design
memfokuskan pada pembagian tugas
berdasarkan fungsi-fungsi tertentu,
sedangkan Object Oriented Design
memfokuskan pada abstraksi objek dan
hubungan antar objek.
Perbedaan Ketiga Strategi
Desain
Modularitas: Structured Design
memfokuskan pada modularitas sebagai
salah satu prinsip dasar, Function Oriented
Design juga memiliki prinsip modularitas,
sedangkan Object Oriented Design
memfokuskan pada kelas-kelas sebagai unit
modular.
Perbedaan Ketiga Strategi
Desain
Reusabilitas: Structured Design lebih
memfokuskan pada pemecahan masalah
dalam blok-blok terpisah, Function Oriented
Design memfokuskan pada fungsi-fungsi
sebagai unit modular, sedangkan Object
Oriented Design memfokuskan pada objek
dan kelas sebagai unit modular yang dapat
digunakan kembali dalam proyek lain.
Perbedaan Ketiga Strategi
Desain
Kejelasan: Structured Design cenderung
memiliki keterbacaan yang lebih baik,
Function Oriented Design memfokuskan
pada kejelasan fungsi-fungsi yang spesifik,
sedangkan Object Oriented Design
memfokuskan pada abstraksi objek dan
hubungan antar objek.
Objek Desain
•Arsitektur
•Alur Proses
•Alur Data
•Arsitektur Data
Desain
Software
Objek Desain
• Laporan-laporan
• Informasi hasil proses
Desain Output
• Dokumen-dokumen
• Data-data dari lapangan
Desain Input
• Berbasis alur proses
• Berbasis alur data
Desain Proses
Desain Database
Desain User Interface

More Related Content

Similar to 04 Software Design Strategies and Methods

Sldc (software development life cycle
Sldc (software development life cycleSldc (software development life cycle
Sldc (software development life cycleAriniEsterPardede
 
Siklus dalam Software Development Life Cycle
Siklus dalam Software Development Life CycleSiklus dalam Software Development Life Cycle
Siklus dalam Software Development Life Cyclehansjenny
 
perangkat lunak Berbasis objek teori if.
perangkat lunak Berbasis objek teori if.perangkat lunak Berbasis objek teori if.
perangkat lunak Berbasis objek teori if.ummi1206
 
Aps12 design object_modeling
Aps12 design object_modelingAps12 design object_modeling
Aps12 design object_modelingArif Rahman
 
W8 LA2 Carry Out Engineering Drawing
W8 LA2 Carry Out Engineering DrawingW8 LA2 Carry Out Engineering Drawing
W8 LA2 Carry Out Engineering DrawingJepree Ibrahim
 
Pert 11 anisah 41812110004
Pert 11 anisah 41812110004Pert 11 anisah 41812110004
Pert 11 anisah 41812110004anisahprasetya
 
Pert 11 anisah 41812110004
Pert 11 anisah 41812110004Pert 11 anisah 41812110004
Pert 11 anisah 41812110004anisahprasetya
 
meet_05 - MDPL - INF Kls A.pptx
meet_05 - MDPL - INF Kls A.pptxmeet_05 - MDPL - INF Kls A.pptx
meet_05 - MDPL - INF Kls A.pptxAndraAnonimus
 
Buku ajar kecil 01
Buku ajar kecil 01Buku ajar kecil 01
Buku ajar kecil 01Ainul Yaqin
 
Chapt 5. interface design principles
Chapt 5. interface design principlesChapt 5. interface design principles
Chapt 5. interface design principlesIbnu Dzakwan
 
PRINSIP DAN KONSEP ANALISA (ANALYSIS CONCEPT AND PRINCIPLES)
 PRINSIP DAN KONSEP ANALISA (ANALYSIS CONCEPT AND PRINCIPLES) PRINSIP DAN KONSEP ANALISA (ANALYSIS CONCEPT AND PRINCIPLES)
PRINSIP DAN KONSEP ANALISA (ANALYSIS CONCEPT AND PRINCIPLES)Tinkqi Qtink
 
Pbo perbandingan antara pemrograman procedural dengan pemrograman beroriant...
Pbo   perbandingan antara pemrograman procedural dengan pemrograman beroriant...Pbo   perbandingan antara pemrograman procedural dengan pemrograman beroriant...
Pbo perbandingan antara pemrograman procedural dengan pemrograman beroriant...Wahyu Zakwan
 
Pengertian pemrograman terstruktur
Pengertian pemrograman terstrukturPengertian pemrograman terstruktur
Pengertian pemrograman terstrukturPutri Sari
 
System Development and Procurement kel 5 (05-01).pptx
System Development and Procurement kel 5 (05-01).pptxSystem Development and Procurement kel 5 (05-01).pptx
System Development and Procurement kel 5 (05-01).pptxrifqiarif6
 
Kelompok 2 agile software development
Kelompok 2   agile software developmentKelompok 2   agile software development
Kelompok 2 agile software developmentHendri Winarto
 
Rekayasa perangkat lunak (dha3)
Rekayasa perangkat lunak (dha3)Rekayasa perangkat lunak (dha3)
Rekayasa perangkat lunak (dha3)Mawaddah Warahmah
 

Similar to 04 Software Design Strategies and Methods (20)

Sldc (software development life cycle
Sldc (software development life cycleSldc (software development life cycle
Sldc (software development life cycle
 
Kelompok 5
Kelompok 5Kelompok 5
Kelompok 5
 
Siklus dalam Software Development Life Cycle
Siklus dalam Software Development Life CycleSiklus dalam Software Development Life Cycle
Siklus dalam Software Development Life Cycle
 
perangkat lunak Berbasis objek teori if.
perangkat lunak Berbasis objek teori if.perangkat lunak Berbasis objek teori if.
perangkat lunak Berbasis objek teori if.
 
Aps12 design object_modeling
Aps12 design object_modelingAps12 design object_modeling
Aps12 design object_modeling
 
W8 LA2 Carry Out Engineering Drawing
W8 LA2 Carry Out Engineering DrawingW8 LA2 Carry Out Engineering Drawing
W8 LA2 Carry Out Engineering Drawing
 
11122636 (5).ppt
11122636 (5).ppt11122636 (5).ppt
11122636 (5).ppt
 
Pert 11 anisah 41812110004
Pert 11 anisah 41812110004Pert 11 anisah 41812110004
Pert 11 anisah 41812110004
 
Pert 11 anisah 41812110004
Pert 11 anisah 41812110004Pert 11 anisah 41812110004
Pert 11 anisah 41812110004
 
meet_05 - MDPL - INF Kls A.pptx
meet_05 - MDPL - INF Kls A.pptxmeet_05 - MDPL - INF Kls A.pptx
meet_05 - MDPL - INF Kls A.pptx
 
Buku ajar kecil 01
Buku ajar kecil 01Buku ajar kecil 01
Buku ajar kecil 01
 
Chapt 5. interface design principles
Chapt 5. interface design principlesChapt 5. interface design principles
Chapt 5. interface design principles
 
Rangkuman SDLC
Rangkuman SDLCRangkuman SDLC
Rangkuman SDLC
 
PRINSIP DAN KONSEP ANALISA (ANALYSIS CONCEPT AND PRINCIPLES)
 PRINSIP DAN KONSEP ANALISA (ANALYSIS CONCEPT AND PRINCIPLES) PRINSIP DAN KONSEP ANALISA (ANALYSIS CONCEPT AND PRINCIPLES)
PRINSIP DAN KONSEP ANALISA (ANALYSIS CONCEPT AND PRINCIPLES)
 
Pbo perbandingan antara pemrograman procedural dengan pemrograman beroriant...
Pbo   perbandingan antara pemrograman procedural dengan pemrograman beroriant...Pbo   perbandingan antara pemrograman procedural dengan pemrograman beroriant...
Pbo perbandingan antara pemrograman procedural dengan pemrograman beroriant...
 
Rekayasa Perangkat Lunak - Model Pengembangan Sistem
Rekayasa Perangkat Lunak - Model Pengembangan SistemRekayasa Perangkat Lunak - Model Pengembangan Sistem
Rekayasa Perangkat Lunak - Model Pengembangan Sistem
 
Pengertian pemrograman terstruktur
Pengertian pemrograman terstrukturPengertian pemrograman terstruktur
Pengertian pemrograman terstruktur
 
System Development and Procurement kel 5 (05-01).pptx
System Development and Procurement kel 5 (05-01).pptxSystem Development and Procurement kel 5 (05-01).pptx
System Development and Procurement kel 5 (05-01).pptx
 
Kelompok 2 agile software development
Kelompok 2   agile software developmentKelompok 2   agile software development
Kelompok 2 agile software development
 
Rekayasa perangkat lunak (dha3)
Rekayasa perangkat lunak (dha3)Rekayasa perangkat lunak (dha3)
Rekayasa perangkat lunak (dha3)
 

More from Ainul Yaqin

Materi Kuliah Sistem Informasi 12 Audit Menggunakan Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 12 Audit Menggunakan Sistem Informasi.pptxMateri Kuliah Sistem Informasi 12 Audit Menggunakan Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 12 Audit Menggunakan Sistem Informasi.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 11 Manajemen Proyek Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 11 Manajemen Proyek Sistem Informasi.pptxMateri Kuliah Sistem Informasi 11 Manajemen Proyek Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 11 Manajemen Proyek Sistem Informasi.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 10 Pengembangan Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 10 Pengembangan Sistem Informasi.pptxMateri Kuliah Sistem Informasi 10 Pengembangan Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 10 Pengembangan Sistem Informasi.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 09 Perencanaan Strategis Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 09 Perencanaan Strategis Sistem Informasi.pptxMateri Kuliah Sistem Informasi 09 Perencanaan Strategis Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 09 Perencanaan Strategis Sistem Informasi.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 08 Kecerdasan dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 08 Kecerdasan dalam Sistem Informasi.pptxMateri Kuliah Sistem Informasi 08 Kecerdasan dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 08 Kecerdasan dalam Sistem Informasi.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 07 Enterprise System.pptx
Materi Kuliah Sistem Informasi 07 Enterprise System.pptxMateri Kuliah Sistem Informasi 07 Enterprise System.pptx
Materi Kuliah Sistem Informasi 07 Enterprise System.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 06 Arsitektur Infrastruktur dalam Sistem Infor...
Materi Kuliah Sistem Informasi 06 Arsitektur Infrastruktur dalam Sistem Infor...Materi Kuliah Sistem Informasi 06 Arsitektur Infrastruktur dalam Sistem Infor...
Materi Kuliah Sistem Informasi 06 Arsitektur Infrastruktur dalam Sistem Infor...Ainul Yaqin
 
Materi Kuliah Sistem Informasi 05 Arsitektur Data dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 05 Arsitektur Data dalam Sistem Informasi.pptxMateri Kuliah Sistem Informasi 05 Arsitektur Data dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 05 Arsitektur Data dalam Sistem Informasi.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 04 Teknologi dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 04 Teknologi dalam Sistem Informasi.pptxMateri Kuliah Sistem Informasi 04 Teknologi dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 04 Teknologi dalam Sistem Informasi.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 03 Sistem Informasi dalam Organisasi.pptx
Materi Kuliah Sistem Informasi 03 Sistem Informasi dalam Organisasi.pptxMateri Kuliah Sistem Informasi 03 Sistem Informasi dalam Organisasi.pptx
Materi Kuliah Sistem Informasi 03 Sistem Informasi dalam Organisasi.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 02 Pengantar Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 02 Pengantar Sistem Informasi.pptxMateri Kuliah Sistem Informasi 02 Pengantar Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 02 Pengantar Sistem Informasi.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 01 Pendahuluan.pptx
Materi Kuliah Sistem Informasi 01 Pendahuluan.pptxMateri Kuliah Sistem Informasi 01 Pendahuluan.pptx
Materi Kuliah Sistem Informasi 01 Pendahuluan.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 13 Tata Kelola Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 13 Tata Kelola Sistem Informasi.pptxMateri Kuliah Sistem Informasi 13 Tata Kelola Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 13 Tata Kelola Sistem Informasi.pptxAinul Yaqin
 
12 Software Measurement
12 Software Measurement12 Software Measurement
12 Software MeasurementAinul Yaqin
 
14 Software Engineering Economics
14 Software Engineering Economics14 Software Engineering Economics
14 Software Engineering EconomicsAinul Yaqin
 
13 Software Engineering Model and Methods
13 Software Engineering Model and Methods13 Software Engineering Model and Methods
13 Software Engineering Model and MethodsAinul Yaqin
 
08 Software Testing
08 Software Testing08 Software Testing
08 Software TestingAinul Yaqin
 
07 Software Construction Technology
07 Software Construction Technology07 Software Construction Technology
07 Software Construction TechnologyAinul Yaqin
 
10 Software Maintenance
10 Software Maintenance10 Software Maintenance
10 Software MaintenanceAinul Yaqin
 

More from Ainul Yaqin (20)

Materi Kuliah Sistem Informasi 12 Audit Menggunakan Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 12 Audit Menggunakan Sistem Informasi.pptxMateri Kuliah Sistem Informasi 12 Audit Menggunakan Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 12 Audit Menggunakan Sistem Informasi.pptx
 
Materi Kuliah Sistem Informasi 11 Manajemen Proyek Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 11 Manajemen Proyek Sistem Informasi.pptxMateri Kuliah Sistem Informasi 11 Manajemen Proyek Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 11 Manajemen Proyek Sistem Informasi.pptx
 
Materi Kuliah Sistem Informasi 10 Pengembangan Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 10 Pengembangan Sistem Informasi.pptxMateri Kuliah Sistem Informasi 10 Pengembangan Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 10 Pengembangan Sistem Informasi.pptx
 
Materi Kuliah Sistem Informasi 09 Perencanaan Strategis Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 09 Perencanaan Strategis Sistem Informasi.pptxMateri Kuliah Sistem Informasi 09 Perencanaan Strategis Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 09 Perencanaan Strategis Sistem Informasi.pptx
 
Materi Kuliah Sistem Informasi 08 Kecerdasan dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 08 Kecerdasan dalam Sistem Informasi.pptxMateri Kuliah Sistem Informasi 08 Kecerdasan dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 08 Kecerdasan dalam Sistem Informasi.pptx
 
Materi Kuliah Sistem Informasi 07 Enterprise System.pptx
Materi Kuliah Sistem Informasi 07 Enterprise System.pptxMateri Kuliah Sistem Informasi 07 Enterprise System.pptx
Materi Kuliah Sistem Informasi 07 Enterprise System.pptx
 
Materi Kuliah Sistem Informasi 06 Arsitektur Infrastruktur dalam Sistem Infor...
Materi Kuliah Sistem Informasi 06 Arsitektur Infrastruktur dalam Sistem Infor...Materi Kuliah Sistem Informasi 06 Arsitektur Infrastruktur dalam Sistem Infor...
Materi Kuliah Sistem Informasi 06 Arsitektur Infrastruktur dalam Sistem Infor...
 
Materi Kuliah Sistem Informasi 05 Arsitektur Data dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 05 Arsitektur Data dalam Sistem Informasi.pptxMateri Kuliah Sistem Informasi 05 Arsitektur Data dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 05 Arsitektur Data dalam Sistem Informasi.pptx
 
Materi Kuliah Sistem Informasi 04 Teknologi dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 04 Teknologi dalam Sistem Informasi.pptxMateri Kuliah Sistem Informasi 04 Teknologi dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 04 Teknologi dalam Sistem Informasi.pptx
 
Materi Kuliah Sistem Informasi 03 Sistem Informasi dalam Organisasi.pptx
Materi Kuliah Sistem Informasi 03 Sistem Informasi dalam Organisasi.pptxMateri Kuliah Sistem Informasi 03 Sistem Informasi dalam Organisasi.pptx
Materi Kuliah Sistem Informasi 03 Sistem Informasi dalam Organisasi.pptx
 
Materi Kuliah Sistem Informasi 02 Pengantar Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 02 Pengantar Sistem Informasi.pptxMateri Kuliah Sistem Informasi 02 Pengantar Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 02 Pengantar Sistem Informasi.pptx
 
Materi Kuliah Sistem Informasi 01 Pendahuluan.pptx
Materi Kuliah Sistem Informasi 01 Pendahuluan.pptxMateri Kuliah Sistem Informasi 01 Pendahuluan.pptx
Materi Kuliah Sistem Informasi 01 Pendahuluan.pptx
 
Materi Kuliah Sistem Informasi 13 Tata Kelola Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 13 Tata Kelola Sistem Informasi.pptxMateri Kuliah Sistem Informasi 13 Tata Kelola Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 13 Tata Kelola Sistem Informasi.pptx
 
01. Pendahuluan
01. Pendahuluan01. Pendahuluan
01. Pendahuluan
 
12 Software Measurement
12 Software Measurement12 Software Measurement
12 Software Measurement
 
14 Software Engineering Economics
14 Software Engineering Economics14 Software Engineering Economics
14 Software Engineering Economics
 
13 Software Engineering Model and Methods
13 Software Engineering Model and Methods13 Software Engineering Model and Methods
13 Software Engineering Model and Methods
 
08 Software Testing
08 Software Testing08 Software Testing
08 Software Testing
 
07 Software Construction Technology
07 Software Construction Technology07 Software Construction Technology
07 Software Construction Technology
 
10 Software Maintenance
10 Software Maintenance10 Software Maintenance
10 Software Maintenance
 

04 Software Design Strategies and Methods

  • 1. Software Design Strategies and Methods Muhammad Ainul Yaqin
  • 2. Definisi Desain Software Desain didefinisikan sebagai proses mendefinisikan arsitektur, komponen, antarmuka, dan karakteristik lain dari sistem atau komponen" dan "hasil dari proses [itu]” Desain software didefinisikan sebagai aktivitas siklus hidup rekayasa dan deskripsi struktur internal yang akan menjadi dasar untuk konstruksinya. Hasil mendesain menggambarkan komponen pada tingkat detail dan antarmuka di antara komponen-komponen tersebut
  • 3. Pentingnya Desain Software Desain software membantu menentukan bagaimana sebuah sistem akan bekerja dan bagaimana ia akan terlihat Desain software membantu memahami kebutuhan dan anggaran waktu dan biaya yang diperlukan Desain software membantu memastikan kualitas dan kehandalan produk yang dihasilkan Desain software membantu memastikan bahwa produk yang dihasilkan sesuai dengan kebutuhan dan harapan pelanggan
  • 4. Tantangan Desain Software Keterbatasan waktu dan anggaran Keterbatasan sumber daya Kebutuhan yang berubah-ubah Kebutuhan untuk memastikan kompatibilitas dengan sistem lain Kebutuhan untuk memastikan keamanan dan privasi informasi
  • 5. Keuntungan Desain Software yang Baik Produk yang lebih baik, yang memenuhi kebutuhan dan harapan pelanggan Waktu pengembangan yang lebih singkat Biaya yang lebih efisien Kemudahan dalam perawatan dan pemeliharaan Kemudahan dalam integrasi dengan sistem lain
  • 6. Desain Software yang Baik Jelas  Desain software yang baik harus jelas dan mudah dipahami.  Arsitektur dan spesifikasi harus didefinisikan dengan jelas dan mencakup informasi yang diperlukan untuk mengembangkan software.  Tujuan dan fungsi software harus jelas dan sesuai dengan kebutuhan pengguna.
  • 7. Desain Software yang Baik  Konsisten  Desain software harus konsisten dan memenuhi standar industri yang diterima.  Penggunaan bahasa pemrograman, struktur data, dan teknik desain harus konsisten dan sesuai dengan standar.  Struktur software harus mudah dikelola dan memiliki konsistensi dalam membuat perubahan.
  • 8. Desain Software yang Baik Efisien  Desain software harus efisien dalam menggunakan sumber daya dan memiliki waktu respon yang cepat.  Proses desain harus mengoptimalkan performa software dan memiliki kapasitas untuk mengatasi beban kerja.  Algoritma dan logika program harus efisien dan memiliki tingkat kompleksitas yang rendah.
  • 9. Desain Software yang Baik Dapat dimodifikasi  Desain software harus mudah dimodifikasi dan diperbarui seiring dengan perubahan kebutuhan pengguna.  Struktur software harus memiliki fleksibilitas untuk memperbarui kode dan menambah fitur baru.  Desain software harus memiliki kapasitas untuk mengatasi bug dan masalah teknis dengan mudah.
  • 10. Desain yang Scalable dan Future- proof Desain software yang baik harus memperhitungkan skalabilitas dan kemampuan untuk memperbarui produk. Ini memastikan bahwa software tetap relevan dan bisa menyesuaikan diri dengan perubahan lingkungan dan teknologi.
  • 11. Skalabilitas Skalabilitas adalah kemampuan software untuk menyesuaikan diri dengan pertumbuhan jumlah pengguna dan data. Desain software yang baik harus memperhitungkan skalabilitas dengan memastikan bahwa software bisa bekerja dengan baik pada skala yang berbeda dan memiliki infrastruktur yang bisa menyesuaikan diri dengan pertumbuhan.
  • 12. Future-proof Desain software yang baik harus memperhitungkan bahwa produk akan perlu diperbarui seiring dengan perubahan teknologi dan lingkungan. Ini memastikan bahwa software bisa menyesuaikan diri dengan perubahan dan memperbaiki diri sendiri untuk tetap relevan.
  • 13. Strategi Desain Software Stuctured Design Function Oriented Design Object Oriented Design
  • 14. Structured Design Desain terstruktur adalah suatu metode pemecahan masalah dalam pembuatan software, dengan membagi masalah besar menjadi bagian-bagian yang lebih kecil dan terstruktur.
  • 15. Tujuan Structured Design Mempermudah proses pemecahan masalah dan pembuatan software Membuat software lebih mudah dipahami dan dikelola Mempermudah proses debugging dan perbaikan Mempermudah proses modifikasi dan perbaikan
  • 16. Fungsi Structured Design Menentukan alur kerja software Menentukan bagian-bagian dari software Membuat software lebih mudah dipahami dan dikelola Mempermudah debugging dan perbaikan Mempermudah modifikasi dan perbaikan
  • 17. Metode Structured Design Hierarki Proses  Menentukan proses besar  Membagi proses besar menjadi bagian- bagian lebih kecil  Menentukan alur kerja bagian-bagian kecil
  • 18. Metode Structured Design Modularitas  Menentukan bagian-bagian dari software  Membuat bagian-bagian software independen  Mempermudah debugging dan perbaikan  Mempermudah modifikasi dan perbaikan
  • 19. Metode Structured Design Abstraction  Menentukan bagian-bagian yang harus didefinisikan secara abstract  Membuat software lebih mudah dipahami dan dikelola  Mempermudah debugging dan perbaikan  Mempermudah modifikasi dan perbaikan
  • 20. Function Oriented Design Function Oriented Design adalah salah satu pendekatan desain software yang memfokuskan pada pembagian tugas berdasarkan fungsi-fungsi tertentu. Fungsi-fungsi tersebut mewakili komponen yang berbeda dalam sistem dan memiliki tugas yang spesifik.
  • 21. Fokus Function Oriented Design Fokus utama Function Oriented Design adalah memastikan bahwa setiap fungsi dalam sistem memiliki tugas yang jelas dan terdefinisi dengan baik. Hal ini membantu memastikan bahwa sistem memiliki alur kerja yang jelas dan mudah diterapkan.
  • 22. Modularitas Modularitas adalah prinsip utama dalam Function Oriented Design yang berfokus pada pembagian tugas atau kode dalam sebuah software menjadi bagian-bagian yang lebih kecil dan terpisah yang disebut modul. Setiap modul memiliki fungsi spesifik dan dapat digunakan dan dipelajari secara terpisah, membuat software lebih mudah dikelola dan dipahami.
  • 23. Object Oriented Design Object Oriented Design (OOD) adalah salah satu pendekatan dalam desain software yang menggunakan objek sebagai dasar pemodelan sistem. OOD memfokuskan pada pembuatan objek- objek yang memiliki atribut dan perilaku seperti objek yang ada dalam dunia nyata. Setiap objek memiliki identitas, keterkaitan dengan objek lain, dan ketergantungan pada objek lain.
  • 24. Prinsip Dasar Object Oriented Design  Abstraction: Memfokuskan pada pembuatan model yang mewakili aspek-aspek penting dari sistem yang dibangun, sambil mengabaikan detail-detail yang tidak penting.  Encapsulation: Menyembunyikan detail-detail implementasi dari objek agar dapat digunakan oleh objek lain tanpa harus memahami bagaimana objek tersebut bekerja.  Inheritance: Memungkinkan objek untuk memperoleh karakteristik dari objek lain, sehingga membuat objek baru dapat dibuat dengan cepat dan mudah.  Polymorphism: Memungkinkan objek untuk memiliki lebih dari satu bentuk dan perilaku yang berbeda.
  • 25. Perbedaan Ketiga Strategi Desain Struktur: Structured Design menekankan pada pembagian tugas dan pemecahan masalah dalam blok-blok yang terpisah dan terstruktur. Function Oriented Design memfokuskan pada pembagian tugas berdasarkan fungsi-fungsi tertentu, sedangkan Object Oriented Design memfokuskan pada pembagian tugas berdasarkan objek dan hubungan antar objek.
  • 26. Perbedaan Ketiga Strategi Desain Abstraksi: Structured Design lebih bersifat prosedural, Function Oriented Design memfokuskan pada pembagian tugas berdasarkan fungsi-fungsi tertentu, sedangkan Object Oriented Design memfokuskan pada abstraksi objek dan hubungan antar objek.
  • 27. Perbedaan Ketiga Strategi Desain Modularitas: Structured Design memfokuskan pada modularitas sebagai salah satu prinsip dasar, Function Oriented Design juga memiliki prinsip modularitas, sedangkan Object Oriented Design memfokuskan pada kelas-kelas sebagai unit modular.
  • 28. Perbedaan Ketiga Strategi Desain Reusabilitas: Structured Design lebih memfokuskan pada pemecahan masalah dalam blok-blok terpisah, Function Oriented Design memfokuskan pada fungsi-fungsi sebagai unit modular, sedangkan Object Oriented Design memfokuskan pada objek dan kelas sebagai unit modular yang dapat digunakan kembali dalam proyek lain.
  • 29. Perbedaan Ketiga Strategi Desain Kejelasan: Structured Design cenderung memiliki keterbacaan yang lebih baik, Function Oriented Design memfokuskan pada kejelasan fungsi-fungsi yang spesifik, sedangkan Object Oriented Design memfokuskan pada abstraksi objek dan hubungan antar objek.
  • 30. Objek Desain •Arsitektur •Alur Proses •Alur Data •Arsitektur Data Desain Software
  • 31. Objek Desain • Laporan-laporan • Informasi hasil proses Desain Output • Dokumen-dokumen • Data-data dari lapangan Desain Input • Berbasis alur proses • Berbasis alur data Desain Proses Desain Database Desain User Interface