P10 Konsep & Prinsip Desain
A. Sidiq P. Universitas Mercu Buana Yogyakarta SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
Desain PL & RPL
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
2
Model Analisis → Model Desain
AnalysisModel → Design Model SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
3
Data design (desain data) ●
●
Mentransformasikan model domain informasi (ERD dan Data Dictionary) yang dibuat selama analisis ke dalam struktur data yang diperlukan untuk mengimplementasikan PL. Object dan hubungan data yang telah dirancang dalam ERD dan isi data detail yang digambarkan dalam kamus data, menjadi dasar/pondasi untuk aktivitas data design.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
4
Architectural Design (desain arsitektur) ●
●
Menentukan hubungan antar elemen-elemen struktural utama dari program. Representasi desain tersebut (kerangka kerja dari sebuah program komputer) diperoleh dari model-model analisis dan interaksi subsistem yang telah ditetukan dalam model analisis.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
5
Interface Design (desain antarmuka) ●
●
Menjelaskan bagaimana komunikasi di dalam PL, dengan sistem, dan dengan manusia yang menggunakannya. Interface mengandung maksud sebuah aliran informasi (misalnya data dan/atau kontrol), sehingga data dan diagram aliran kontrol memberikan informasi yang dibutuhkan bagi desain interface.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
6
Component Level Design (desain prosedural) ●
●
Mentransformasikan elemen-elemen struktural dari arsitektur program ke dalam suatu deskripsi prosedural dari komponen-komponen PL. Informasi-informasi yang didapatkan dari process specification (PSPEC), control specification (CSPEC), dan state transition diagram (STD) yang dijadikan sebagai dasar untuk component level design. SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
7
Proses Desain
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
8
Proses Desain
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
9
Proses Desain ●
Desain PL merupakan sebuah proses yang interaktif dan diterjemaahkan ke dalam suatu “blue print” yang nantinya digunakan untuk membangun PL.
●
Blue print pada dasarnya menggambarkan secara keseluruhan dari PL.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
10
Desain dan Kualitas PL ●
Kualitas desain dapat dinilai dengan melakukan evaluasi dengan pedoman sbb : 1. Desain harus mengimplementasikan secara keseluruhan persyaratan eksplisit yang dibebankan dalam model analisis, serta harus mempertimbangkan seluruh persyaratan eksplisit yang diinginkan oleh client. 2. Desain harus dapat dijadikan panduan dan mudah dibaca, dipahami bagi programmer, penguji, dan pemelihara PL. 3. Desain harus memberikan gambaran lengkap mengenai PL, yang menekankan pada Data, Domain Perilaku dari perspektif implementasi. SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
11
Sebelum melakukan evaluasi terhadap kualitas suatu representasi desain, terlebih dahulu harus dibangun kriteria kualitas desain yang baik. Beberapa pedoman yang dapat dijadikan sebagai bahan pertimbangan : 1. Desain harus memperlihatkan suatu hirarki organisasi dengan baik. 2. Desain harus modular, PL secara logika harus dibagi ke dalam elemenelemen yang melakukan fungsi dan sub fungsi tertentu. 3. Desain harus berisi data dan abstraksi prosedural. 4. Desain dapat mengarahkan ke modul (contoh : subrutin dan prosedure) yang dapat memperlihatkan karakteristik fungsional independen. 5. Desain diusahakan dapat mengarahkan ke dalam interface yang mengurangi kompleksitas hubungan antara modul dan lingkungan eksternal. 6. Desain harus dilakukan secara berulang berdasarkan informasi yang diperoleh selama proses analisis. SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
12
Evolusi Desain PL ●
Pertama : ●
●
●
Kemudian asperk prosedural dari definisi desain yang tercakup dalam dalam suatu filosofi → Pemrograman Terstruktur.
Kedua : ●
●
Konsentrasi ke kriteria untuk pengembangan program moduler dan metode untuk menyaring arsitektur PL secara top-down.
Metode translasi aliran data (struktur data) ke dalam definisi desain.
Ketiga : ●
Pendekatan berorientasi objek. SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
13
Prinsip Desain
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
14
Desain PL ●
Desain PL terdiri dari proses dan model. ●
●
Proses desain : merupakan tahapan iteratif yang memungkinkan desainer untuk menggambarkan semua aspek PL yang akan dibangun. Model desain : dapat diibaratkan sebagai arsitek yang berencana membangun sebuah rumah.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
15
Prinsip Desain PL Prinsip-prinsip desain PL : 1. Mempertimbangkan beberapa alternatif mengacu pada kebutuhan, sumber daya & konsep-konsep desain 2. Desain harus dapat ditelusuri sampai ke model analisis 3. Desain yang sudah ada harus dapat digunakan kembali (Reusable Component) 4. Tidak melakukan desain pada hal yang sama berulang-ulang 5. Desain harus merepresentasikan masalah pada keadaan nyata 6. Desain harus memperlihatkan keseragaman dan integrasi 7. Desain harus terstruktur untuk mengatisipasi adanya perubahan 8. Desain bukan coding, coding bukan desain 9. Penilaian kualitas desain harus dilaksanakan pada saat desain tersebut dibuat 10. Desain harus di-review untuk meminimasi kesalahan konseptual SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
16
Perancangan PL Berdasarkan prinsip-prinsip desain tersebut, maka perancang PL dapat mengetahui faktor-faktor : ●
●
Kualitas eksternal ●
Sifat PL yang dapat diamati oleh user
●
Ex : speed, realibility, usability, ketepatan.
Kualitas internal ●
●
Penting bagi perancang PL, perancang juga harus memahami konsep-konsep desain dasar Diharapkan dapat dijadikan sebagai dasar untuk menghasilkan desain yang berkualitas berdasarkan perspektif teknis SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
17
Konsep Desain
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
18
Tujuan ●
Memberikan kerangka kerja untuk mendapatkan program yang berfungsi dengan benar.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
19
Proses ●
Abstraksi
●
Penyaringan
●
Modularitas
●
Arsitektur PL
●
Hirarki kontrol
●
Pembagian struktural
●
Struktur data
●
Prosedur PL
●
Penyembunyian informasi SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
20
Abstraksi ●
●
Abstraksi adalah gambaran dari fungsi suatu program. Gambaran ini bisa bertingkat-tingkat, ●
Abstraksi Prosedural
●
Abstraksi Data
●
Abstraksi Control
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
21
Abstraksi Prosedural ●
●
Urutan isntruksi yang diberi nama yang mempunyai fungsi tertentu dan terbatas. Contoh : ● ●
Kata → “Open” → “Door” Berarti : kata “Open” dapat menggambarkan urutan langkah-langkah prosedural untuk membuka pintu, misalnya : –
Berjalan ke arah pintu,
–
Meraih dan memutar handel pintu,
–
Mendorong pintu. SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
22
Abstraksi Data ●
●
Kumpulan data yang diberi nama yang menggambarkan objek data. Contoh : ●
●
Dari abstraksi prosedural “Open” → diperoleh abstraksi data “Door” Berarti mencakup serangkaian objek data, seperti : – – – –
Tipe pintu, Arah pembukaan pintu, Mekanisme membuka pintu, Dimensi SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
23
Abstraksi Control ●
●
Mengontrol program tanpa harus menspesifikasikan secara detil struktur internal program. Contoh : ●
Semaphore → digunakan untuk mengkoordinasi aktivitas pada sistem operasi.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
24
Penyaringan ●
●
Merinci abstraksi tingkat tinggi menjadi representasi yang lebih mengarah pada struktur internal sistem. Abstraksi dan Penyaringan : ●
●
Abstraksi memungkinkan perancang untuk menentukan prosedur dan data secara mendasar. Penyaringan membantu perancang untuk membuat model desain secara lengkap pada saat melakukan pengembangan desain.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
25
Modularitas ●
Software dibagi ke dalam elemen-elemen terpisah yang dapat dipanggil, yang disebut dengan modul.
●
Bertujuan untuk memudahkan pemecahan persoalan yang kompleks. ●
●
Alur kontrol eksekusi program, cekupan referensi, jumlah variable, kompleksitas dapat mudah dibaca dan dipahami dengan membagi menjadi modulmodul tertentu. Ingat konsep OOP. SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
26
Arsitektur PL ●
●
●
Arsitektur merupakan struktur hirarki dari komponen program(modul), cara bagaimana komponen tersebut berinteraksi, dan struktur data yang digunakan oleh komponen Desain PL bertujuan untuk mendapatkan gambaran aritektur dari sebuah sistem, yang berfungsi sebagai sebagai kerangka kerja dan selanjutnya dijadikan sebagai dasar untuk membuat desain PL yang lebih detail. Dalam arsitektur PL harus diperhatikan : ●
Properti struktural
●
Properti ekstra fungsional
●
Keluarga dari sistem yang berhubungan SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
27
Hirarkhi Kontrol / Struktur Program ●
●
Merepresentasikan organisasi (secara hirarkis) komponen program (modul) serta mengimplikasikan suatu hirarki kontrol Hierarki kontrol juga merepresentasikan dua karakteristik yang berbeda dari arsitektur PL : ●
●
Visibilitas –
Menunjukkan serangkaian program yang dapat diminta atau dipakai sebagai data oleh komponen yang diberikan.
–
Contoh : modul pada sistem berorientasi objek → inheritance
Konektifitas –
Mengindikasikan serangkaian komponen yang diminta secara tidak langsung atau digunakan sebagai data oleh sebuah modul yang ditetapkan
–
Contoh : modul yang secara langsung menyebabkan modul lain memulai eksekusi akan disambungkan dengan modul tersebut. SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
28
●
Notasi yang digunakan seperti → diagram pohon
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
29
●
Terminologi struktur : ●
●
●
Dept dan Width → jumlah tingkat kontrol dan rentang keseluruhan kontrol Fan-out → pengukuran jumlah modul yang dikontrol secara langsung oleh modul yang lain Fan-in → mengindikasikan berapa banyak modul yang secara langsung mengontrol sebuah modul yang diberikan
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
30
Pembagian struktural ●
Pembagian horisontal ●
●
Menetukan sub-sub terpisah dari hirarki modular untuk setiap fungsi program mayor.
Pembagian vertikal ● ●
Sering disebut pemfaktoran Menyatakan bahwa kontrol (pembuat keputusan) dan kerja harus didistribusikan secara top-down dalam arsitektur program.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
31
Vertical
Horizontal SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
32
Struktur Data ●
●
●
Representasi dari hubungan logis antara elemen-elemen data individual Struktur informasi secara bervariasi akan mempengaruhi desain prosedural akhir, sehingga struktur data sama pentingnya dengan struktur program Contoh : ●
Stack → model konseptual
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
33
Prosedure PL ●
●
Fokus → detail pemrosesan pada masingmasing modul secara individual Harus memberikan spesifikasi proses yang teliti/seksama (event sequences, titik-titik keputusan, operasi pengulangan, struktur data)
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
34
Penyembunyian Informasi ●
●
Menyatakan bahwa modul disembunyikan dari modul lain Informasi (data dan procedur) yang terkandung dalam modul tidak dapat diakses oleh modul lain, yang tidak mempunyai kebutuhan terhadap informasi tersebut
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
35
Dokumentasi
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
36
Dokumentasi ●
Lingkup Sistem
●
Desain Data
●
Desain Arsitektur
●
Desain Antarmuka
●
Desain Prosedural
●
Catatan Khusus
●
Appendix SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
37
Lingkup Sistem ●
Mengacu pada outline spesifikasi desain.
●
Sasaran, persyaratan PL, batasan.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
38
Desain Data ●
●
Mengubah objek data yang didefinisikan pada model analisis menjadi struktur data yang ada dalam PL Atribut data, relasi di antara objek data, dan penggunaannya dalam program, serta semuanya mempengaruhi pemilihan struktur data
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
39
Desain Arsitektur ●
●
Tujuan : untuk mengembangkan suatu struktur program yang modular dan merepresentasikan hubungan kontrol antar modul Desain arsitektur membentuk struktur program dan struktur data, sehingga didapatkan suatu interface yang mengatur aliran informasi dalam program
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
40
Desain Antarmuka ●
Tujuan : memberikan suatu gambaran mengenai struktur program kepada perekayasa PL
●
●
Meliputi antarmuka program internal dan eksternal serta desain untuk antarmuka pengguna Desain antarmuka internal dan eksternal diarahkan oleh informasi yang diperoleh dari model analisis SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
41
Desain Prosedural ●
●
Tujuan : untuk menetapkan detail algoritma yang akan dinyatakan dalam suatu bahasa tertentu Desain prosedural dilakukan setelah diselesaikannya perancangan desain data, arsitektur, dan interface software.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
42
Catatan Khusus ● ●
Persyaratan dan pertimbangan dari PL, Pendekatan apa yang akan dilakukan untuk menyampaikan PL ke client.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
43
Appendix ● ●
Spesifikasi desain berisi data tambahan, Deskripsi algoritma, prosedure alternatif, data, kutipan dan informasi yang relevan
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
44
Tugas Kelompok ●
Berdasarkan proposal yang anda buat sebelumnya, buatlah rancangan struktur dari program PL yang akan buat.
●
Dibahas pada pertemuan selanjutnya.
●
Persiapkan juga :
●
●
ERD
●
DFD
Perkelompok hanya diwajibkakn mengirim satu. SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
45
Tugas Tugas di kumpul paling lambat Tgl : 15 Desember 2013, File : 1. Proposal Sudah Benar 2. ERD 3. DFD 4. Rancangan Struktur Kirim dalam bentuk file kompresi ZIP/RAR/7ZIP dengan : ●
●
File Name & Subject : ●
TK2_RPL-21_Nomor_Kelompok (Reg. Pagi)
●
TK2_RPL-22_Nomor_Kelompok (Reg. Sore)
Ke : ●
[email protected] (Reg. Pagi)
●
[email protected] (Reg. Sore) SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
46
C U Next Week … !
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
47