DASAR-DASAR PERANCANGAN DASARPERANGKAT LUNAK
UNIVERSITAS MUHAMMADIYAH JAKARTA FAKULTAS TEKNIK JURUSAN TEKNIK INFORMATIKA BY : RITA DEWI RISANTY . SKOM.MMSI
Dasar-dasar Perancangan DasarPerangkat Lunak
Memahami bentuk dasar perancangan perangkat lunak: – – – – – – –
Teknik Konvensional (DFD, ERD, HIPO, dll.) Warnier Diagrams. DSSD. Jackson. SADT. Formal. Automasi / CASE..
Mengetahui berbagai metode perancangan dan dapat memilih metode yang sesuai.
PERANCANGAN PERANGKAT LUNAK Tiga tahap dasar dalam strategi pengembangan: 1. 2.
3.
Analisis : memahami permasalahan. Desain/Perancangan : mengorganisasikan atau menstrukturkan permasalahan (Komponen, Prosedur, Fungsi). Implementasi : membuat solusi pemecahan masalah dapat dilaksanakan.
PERANCANGAN PERANGKAT LUNAK MERUPAKAN BRAINWARE
Perancangan merupakan aktivitas otak manusia yang belum dapat diganti secara mekanik oleh mesin.
Perancangan memerlukan kepintaran (knowledge). (knowledge).
Perancangan membutuhkan pengalaman (skill). (skill).
Kepintaran tersebut dapat dituntun oleh suatu teknik atau metoda perancangan sehingga menghasilkan suatu kreativitas dan pemikiran inovatif. inovatif.
1. Otomatisasi yaitu pekerjaan yang tadinya dilakukan oleh manusia digantikan oleh teknologi komputer. komputer.
PROBLEM SOLVING
2. Pemecahan masalah yaitu teknologi membuat pekerjaan yang tidak pernah dilakukan sebelumnya oleh manusia ternyata bisa dilakukan. dilakukan.
SYSTEM INOVATION
3. Inovasi sistem yaitu mengubah fungsi dan struktur sosial--ekonomi yang ada digantikan oleh sistem sosial sosial sosial-ekonomi yang baru. baru.
Apa tujuan dari Perancangan Sistem
Tujuan dari perancangan adalah untuk menghasilkan suatu model atau gambaran lengkap dari suatu perangkat lunak yang akan dibangun. Perancangan disini adalah mendekomposisi fungsi program menjadi modulmodul-modul dan kemudian menjelaskan spesifikasi dari setiap modul (data, proses, interface).
Penggunaan ModelModel-model Dapat dibangun oleh satu orang dan membutuhkan: • Pemodelan Minimal • Proses sederhana • Peralatan sederhana Umumnya dibangun oleh suatu tim dan Membutuhkan: • Pemodelan • Proses yang baik • Alat-alat canggih
Dibangun oleh sejumlah Tim Kontraktor dan membutuhkan: • Model rekayasa • Proses yang terkoordinasi • Mesin-mesin indutri
Tujuan dari Pemodelan “Modeling captures essential parts of the system.” Pemodelan adalah untuk menggambarkan bagian-bagian yang penting dari suatu sistem Dr. James Rumbaugh
Visual Modeling is modeling using standard graphical notations
Tiga Kelompok Metodologi 1.
Functional Decomposition Methodologies Metodologi ini menakankan pada pemecahan dari sistem ke dalam subsistemsubsistem-subsistem yang lebih kecil, sehingga akan mudah untuk dipahami, dirancang dan diterapkan. Yang termasuk dalam kelompok metodologi ini: - HIPO (Hierarchy Input Input--ProcessProcess-Output) - Iterative Stewise refinement (ISR) - Information hiding.
2.
Data--Oriented Methodologies Data Metodologi ini menekankan pada karakteristik dari data yang akan diproses.
a. DataData-flow Oriented Methodologies Metodologi ini secara umum didasarkan pada pemecahan dari sistem kedalam modulmodul-modul didasarkan jenis elemen data dan hubungan antara fungsi modulmodul-modul. Yang termasuk dalam kelompok metodologi ini: - SADT (Structured Analysis and Design Techniques) - Composite Design - SSAD (Structured Systems Analysis and Design) b. Data Structure Oriented Methodologies Metodologi ini menekankan struktur dari input dan output di sistem. Hubungan fungsi antar modul atau elemen--elemen sistem dijelaskan dalam struktur elemen sistemnya.
Yang termasuk dalam metodologi ini adalah: - JSD (Jackson’s Systems Development) - W/O (Warnier/Orr) 3.
Prescriptive Methodologies Yang termasuk dalam metodologi ini adalah: - ISDOS (Information System Design and OptimiOptimization System). - PLEXSYS - PRIDE - SDM/70 (System Development Methodology/70) - SRES (Software Requirment Engineering System)
PERANCANGAN PERANGKAT LUNAK (Menurut ANSI/IEEE ANSI/IEEE Std 729729-1983 1983)) Perancangan Perangkat Lunak adalah suatu perioda didalam siklus hidup rekayasa perangkat lunak, mulai dari analisis, dokumentasi, dan pemeriksaan kembali rancangan arsitektur arsitektur,, komponen komponen--komponen, komponen, interface dan data perangkat lunak, untuk memenuhi kebutuhan tententu.
Definisi Umum Perancangan perangkat lunak adalah suatu proses untuk mengubah kebutuhankebutuhan-kebutuhan (requirements) fungsional menjadi suatu struktur dan prosedur sebelum dilakukan pengkodean atau pemrograman. pemrograman.
PERANCANGAN PERANGKAT LUNAK Perancangan Sistem
KebutuhanKebutuhankebutuhan Fungsional
Struktur Perangkat Lunak
Perancangan Terinci
Kode/Pemrograman
Prosedur Perangkat Lunak
• Perancangan Sistem : membagi sistem atas komponen--komponen (modulkomponen (modul-modul). • Perancangan Terinci: menjelaskan prosedur dan fungsi dari setiap modul.
PERANCANGAN SISTEM Perancangan Sistem dibagi dua bagian: 1.
2.
Perancangan Sistem Secara Umum atau disebut juga general systems design, conceptual design, logical design, macro design. Tujuannya adalah untuk memberikan gambaran secara umum tentang sistem yang akan dibangun. Perancangan Sistem Terinci atau disebut juga physical systems design, internal design. Dimaksudkan untuk pemrogram komputer dan ahli teknik lainnya yang akan mengimplementasi sistem.
DEFINISI PERANCANGAN SISTEM
Menurut Robert J Verzello & John Reuter : Tahap setelah analisis dari siklus pengembangan sistem (pendefinisian dari kebutuhan-kebutuhan fungsional) yaitu persiapan untuk implementasi rancang bangun dan penggambaran dari suatu sistem yang akan dibentuk.
Menurut John Burch & Gary Grudnitski : Disain sistem dapat didefinisikan sebagai penggambaran, perencanaan dan pembuatan sketsa dan pengaturan elemen yang terpisah-pisah menjadi suatu kesatuan yang utuh dan berfungsi.
Menurut George M. Scott : Desain sistem menentukan bagaimana suatu sistem akan menyelesaikan apa yang mesti diselesaikan; tahap ini menyangkut konfigurasi dari komponen-komponen perangkat lunak dan perangkat keras suatu sistem sehingga setelah instalasi dari sistem akan benar-benar memuaskan rancang bangun yang telah ditetapkan pada akhir tahap analisis sistem.
Bagan Struktur Hierarkis Organisasi
Penjelasan Struktur organisasi di gambarkan dalam suatu arsitektur (bangunan) berupa kotakkotak-kotak untuk menggambarkan satuan dan garisgaris-garis untuk mengambarkan hubungan hirarki antara kotakkotak-kotak. Panah Panah--panah menunjukkan aliran dari kendali terhirarki antara kotakkotak-kotak. Setiap satuan mempunyai fungsi dan tugastugas-tugas (tusi) yang diuraikan dalam bentuk wewenang dan tanggung jawab dalam suatu hubungan lini (garis). Fungsi dijabarkan dalam bentuk perincian kegiatan secara sederhana yang disebut dengan tugastugas-tugas pekerjaan.
Wewenang menunjukkan hak untuk melakukan sesuatu atau memerintahkan orang lain untuk melakukan atau tidak melakukan sesuatu. Tanggung jawab merupakan kewajiban pemegang jabatan. Deskripsi pekerjaan menyebutkan atasan dan bawahan langsung pemegang jabatan serta kondisi kerja diuraikan secara ringkas
Struktur Perangkat Lunak
Pendekatan terstruktur menggambarkan perangkat lunak dalam bentuk sistem yang strukturnya didefinisikan dengan jelas.
Metodologi ini mengenalkan penggunaan alatalat-alat (tools) dan teknikteknik-teknik untuk mengembangkan sistem yang terstruktur.
Struktur Perangkat Lunak
Strutur Perangkat Lunak adalah suatu penggampenggambaran hirarkis yang menunjukkan hubungan antara elemenelemen-elemen (modul (modul--modul) dari pemecahan suatu perangkat lunak terhadap suatu masalah yang secara implisit telah ditentukan dalam analisis kebutuhan.
Struktur perangkat lunak memperlihatkan suatu arsitektur program dan implikasinya pada kendali terhirarki.. terhirarki
Structure Chart
Perangkat utama yang digunakan para perangcangan tersetruktur adalah Structure Chart. Chart.
Structure Chart memberi gambaran bagaimana sistem diorganisasikan menjadi modulmodul-modul yang tiap-tiap modul tersebut, dan terkelola, hirarki dari tiapinterface komunikasi antara modul.
Structure Chart tidak memperlihatkan prosedur internal yang dilakukan suatu modul atau data internal yang digunakan oleh suatu modul.
Structure Chart terdiri dari: (1) ModulModul-modul individual; (2) Data dari dan ke modul; (3) Kontrol sebagai interface antara modulmodul-modul.
Berbagai Aktivitas Bisnis
Simbol--simbol Structure Charts Simbol Panah lingkaran berlubang untuk menggambarkan data yang dipertukarkan antara dua modul Panah lingkaran solid untuk menggambrakan pesanpesan (flag) yang dilewatkan antara dua modul.
Get Customer Details Customer Account Number
Find Customer Name
Customer Name Account Number is OK
Flag dari pemaggil ke yang dipanggil Data dari pemaggil ke yang dipanggil Flag dari yang dipanggil ke pemanggil Data dari yang dipanggil ke pemaggil
Intan : hanya satu modul dibawahnya (subordinate) yang dipanggil. Kura garis: modulmodul-modul subordinat akan dipanggil secara berulangulang sampai kondisi akhir terpenuhi.
Contoh Structure Chart
Total for One Customer
GET TOTAL PAYMENT FOR ONE CUSTOMER
PUT CUSTOMER TOTAL
PUT FINAL TOTAL
EOVCR
Final Total Line
Customer Total Line
GET VALID CUSTOMER RECORD
Field Valid
Customer Record Field
READ
Total for All Customers
Total for One Customer
EOTP
Valid Customer Record
SUMMARIZE PAYMENTS FOR ALL CUSTOMERS
EDIT FIELD
PRINT
ANALISIS STRUKTUR (Information Description Description)) Struktur Analisis adalah suatu arus informasi dan teknik pemodelan isi (content). Informasi diubah kedalam bentuk alirannya pada sistem berbasis komputer. 1. 2. 3. 4. 5.
Data Flow Diagrams. Data Structure Representation. Data Dictionary. System Interface Description. Internal Interfaces
Diagram Aliran Data (Data Flow Diagrams) Diagram Aliran Data adalah suatu teknik grafik yang menggambarkan alur alur informasi dan transformasi menggunakan dekomposisi fungsi terhirarki dari suatu proses dalam suatu sistem.
Apa sebagai masukan. Apa sebagai keluaran. Bagaimana terjadi proses perubahan didalamnya
Simbol--simbol Diagram Aliran Data Simbol
File eksternal
Satuan
Aliran data
Proses
Penyimpan data
Label
Aturan--aturan Diagram Aliran Data Aturan
Aliran informasi dari sistem manual, otomatis, hibrid, dapat digambarkan dengan jelas. jelas.
Setiap gagasan membutuhkan penyempurnaan untuk memberikan pengertian yang lengkap. lengkap.
Aliran data diberi tekanan lebih dari pada aliran kendali.
Satuan eksternal dan manusia tidak dimodelkan dalam Diagram Aliran Data.
Setiap panah diberi label.
Panah yang membawa data, tidak punya relasi.
Contoh DFD
Pertanyaan Buat struktur dan data flow diagram dari model siklus transaksi aktivitas bisnis ? Siklus pengolahan transaksi adalah mengelompokkan transaksi berdasarkan kesamaan unsur dan /atau sasaran
Model Siklus Transaksi Bisnis Kejadiankejadian Ekonomik Transaksi-transaksi
Siklus Pendapatan
Siklus Pengeluaran
Siklus Produksi
Siklus Pelaporan Keuangan
Siklus Keuangan
Laporan Keuangan
Empat Siklus Aktivitas Bisnis yang Umum 1. Siklus Pendapatan. Pendapatan. KejadianKejadian-kejadian yang berkaitan dengan penjualan barang dan jasa dan penagihan hasil--hasilnya. hasil 2. Siklus Pengeluaran. Pengeluaran. KejadianKejadian-kejadian yang berkaitan dengan perolehan barang dan jasa dan pelunasan kewajiban / hutang. 3. Siklus Produksi. Produksi. KejadianKejadian-kejadian yang berkaitan dengan manajemen dan pengendalian sumber daya (investasi dan fasilitas). 4. Siklus Keuangan. Keuangan. KejadianKejadian-kejadian yang berkaitan dengan perolehan dan manajemen danadana-dana modal, termasuk kas.
Siklus Pelaporan Keuangan
Siklus Pelaporan Keuangan bukan merupakan siklus operasi.
Siklus ini memperoleh data akutansi dari operasi siklus lain, dan mengolah data tersebut untuk menghasilkan laporan keuangan.
Penyajian laporan keuangan yang sesuai dengan standar akutansi keuangan yang berlaku umum, membutuhkan banyak penilaian dan ayat jurnal penyesuaian yang tidak secara langsung dihasilkan dari transaksitransaksi-transaksi.
Konteks DFD
Diagram Level 0
Pertanyaan
Buat model struktur data dari suatu bahan pustaka berupa buku perpustakaan dan gambarkan juga dengan diagram W/O ? Dan tentukan kamus datanya (data dictionner).
Model Struktur Diagram Buku header
trn status
publisher
input
Language +
right
personalauthor
notes ?
corporatename*
book
title
bibliographic category +
conference*
descriptor +
format
keyword*
size
abstract*
isbn
subject
availability
type
notes ?
Diagram W/O Buku Perpustakaan
header (1)
book
bibliographic (1)
subject (1)
availability (1)
trn
type
status
publisher
input
Language +
right
personalauthor
notes ?
corporatename* title
category +
conference*
descriptor +
format
keyword*
size
abstract*
isbn notes ?
Kamus Data
Prosedur Perangkat Lunak
Prosedur Perangkat Lunak lebih menajamkan pada rincian tahapantahapan-tahapan pengolahan dari setiap modul secara individual.
Prosedur harus memberikan spesifikasi yang tepat dari suatu pengolahan, meliputi urutan urutan-urutan kejadian, kejadian, titiktitik-titik keputusan yang pasti, operasi--operasi berulang, dan organisasi data operasi dan struktur setiap kejadian.
Prosedur Perangkat Lunak
Peta Aliran (Flowchart) Peta Aliran memperlihatkan alur peta gerakan data masukkan, proses pengolahan, dan keluaran.
Umpan data input/output
Keputusan logika
Input manual
Database
Proses
OnOn-line storage
Operasi manual
Dokumen
Display
Kendali aliran
PROGRAM FLOWCHART: PROCESS A
SEQUENCE PROCESS B
R TRUE
PROCESS D
PROCESS E
TRUE
PROCESS C S
SELECTION
ITERATION
KONSTRUKSI FLOWCHARTs
Berurut
Seleksi
Bersyarat
Berulang
SYSTEM FLOWCHART: HUMAN RESOURCES DATA TIME CARDS
PAYROLL MASTER
LOAD & VALIDATE
PAYROLL SYSTEM VALID TRANSACTIONS
COMPARE &
PAYROLL REPORTS & CHECKS
DIRECT DEPOSITS
PAYROLL MASTER
UPDATE
GENERAL LEDGER
UPDATED PAYROLL MASTER
PROSES PERANCANGAN PERANGKAT LUNAK Proses Perancangan Perangkat Lunak menurut aspek manajemen proyek dibagi dua tingkat: 1. Perancangan Sistem (System/Preliminary Design) 2. Perancangan Terperinci (Detailed Design).
Preliminary design berhubungan dengan struktur perangkat lunak yaitu ukuran, kompleksitas dan arsitektur suatu perangkat lunak (organisasi (organisasi fungsional, hirarki dan hubungan antara modulmodul). modul). modul Detailed design terpusat pada prosedur untuk menggambarkan fungsi kerja perangkat lunak berupa rincian struktur data dan algoritma program (Membuat prosedur setiap modul). modul).
Aspek Manajemen dan Aspek Teknis Hubungan antara aspekaspek-aspek manajemen dengan aspek--aspek teknis dari perancangan aspek Aspek-aspek AspekManajemen
Preliminary Design Detail Design Data Design
Aspek-aspek AspekTeknis
Architectural Design Procedural Design Interface Design
Perancangan perangkat lunak menurut aspek teknis:
Perancangan Data (Data Design) Mengubah model domain informasi yang dibuat pada saat analisis menjadi strukturstruktur-struktur data. Perancangan Arsitektural (Architectural Design) Mendefiniskan hubungan antara komponenkomponenkomponen struktural utama dari program. Perancangan Prosedural (Procedural Design) Mengubah komponenkomponen-komponen struktural menjadi suatu gambaran prosedural dari perangkat lunak. Perancangan Antarmuka (Interface Design) Memberikan layout dan mekanisme interaksi antara manusia--mesin. manusia
Definisi Kebutuhan Perangkat Lunak • Definisi struktur modular dan struktur data. • Membuat antarmukaantarmuka-antarmuka modul. • Mengidentifikasikan hambatanhambatanhambatan
Revisi
Periksa kembali Diterima
Preliminary Design Description
Membuat spesifikasi aspekaspek-aspek prosedural dan struktur data untuk setiap modul Revisi
Periksa kembali Diterima Pengkodean
Revisi
Pengkodean dapat diterima Diterima
Detailed Design Description
Pemrograman
Pengujian • Unit • Integrasi • Validasi
Perencanaan dan Prosedur Pengujian
Perangkat Lunak siap untuk didi-release 1.
2.
3.
Preliminary Design dilihat kembali untuk kelengkapan dan penelusuran kebutuhan perangkat lunak. Perangkat bantu perancangan (design (design tool) tool) digunakan untuk memberikan deskripsi detailed design elemen perangkat lunak. Langkah berikutnya adalah pengkodean yaitu pembangpembangkitan suatu program dengan bahasa pemrogram tertentu.
PROSES PENGEMBANGAN TAHAP
HASIL PRODUKSI
PERENCANAAN
- Penggambaran Masalah. - Rencana Pengembangan PL. - Rencana Pengukuran Kinerja.
ANALISIS
-
Diagram Aliran Data. Spesifikasi Elemen Fungsi-fungsi. Model Entity-Relationship. Kamus Data Analisis. Rencana Pengujian Terintegrasi. Laporan Kesalahan Analisis.
TAHAP DISAIN
HASIL PRODUKSI -
Chart Struktur. Spesifikasi Modul. Tabel Normalisasi dan Jejak Navigasi. Kamus Data Rancangan. Matriks Cross Reference. Rencana Pengujian Terintegrasi Laporan Kesalahan Disain
PERANCANGAN SISTEM
Sistem didefinisikan sebagai suatu koleksi dari elemenelemenelemen yang saling berhubungan dan terkoordinasi dalam suatu kendali yang memungkinkan dari suatu masukan tercapainya suatu tujuan atau keluaran. keluaran.
MODUL--MODUL MODUL Perangkat Lunak yang akan dibangun umumnya besar besar,, kompleks,, jangka waktu yang panjang dan melibatkan kompleks banyak pihak. pihak. Sistem terdiri dari elemenelemen-elemen, dan elemen elemen-elemen utama dalam perangkat lunak disebut modul modul.. Berapa jumlah, besar dan kompleksitas suatu modul yang harus dibuat dari suatu perangkat lunak. Modul Modul--modul tersebut akan saling berinteraksi, dan bagaimana meminimalkan interaksi antara modul (low coupling).
MODULARITY
Modul adalah bagian dari suatu program yang dapat dipisah secara logika yaitu dapat berupa suatu paket, proses, prosedur, subrutin, fungsi atau makro. makro.
Modularity memungkinkan program dapat dikelola secara lebih mudah dan lebih cerdas.
Misal C(x) adalah suatu fungsi yang menentukan kompleksitas suatu masalah x dan E(x) adalah fungsi yang menentukan usaha atau waktu yang dibutuhkan untuk menyelesaikan masalah x.
Untuk suatu masalah p1 dan p2 , jika C(p1) > C(p2) Maka biasanya
E(p1) > E(p2)
Artinya diperlukan lebih banyak waktu untuk menyelesaikan masalah yang lebih kompleks
Sifat menarik lainnya dari pemecahan masalah oleh manusia adalah: C(p1 + p2) > C(p1) + C(p2) Artinya kompleksitas suatu masalah yang merupakan gabungan dari p1 dan p2 adalah lebih besar dari pada kompleksitas memecahkan masalah secara terpisah atau sendiri--sendiri. sendiri Sifat menarik lainnya dari pemecahan masalah oleh manusia adalah: E(p1 + p2) > E(p1) + E(p2) KESIMPULAN adalah lebih mudah menyelesaikan suatu masalah kompleks jika masalah tersebut dapat dipecah menjadi bagianbagian-bagian yang terkelola
Keuntungan melakukan pemodulan: 1.
Modul dapat lebih mudah untuk dipahami dan dijelaskan, sehingga pendokumentasiannya lebih cepat.
2.
Lebih mudah untuk diprogram karena setiap kelompok bebas dapat bekerja pada modulmodul-modul secara terpisah dengan sedikit melakukan komunikasi.
3.
Lebih mudah untuk di test, karena masingmasing-masing dapat diuji secara terpisah kemudian diintegrasikan dan diuji lagi secara bersama.
4.
Jika suatu modul tidak tergantung pada yang lain, maka akan lebih mudah pemeliharaannya. Perubahan dapat dilakukan tanpa mengganggu modulmodul-modul lain.
Suatu Rancangan Sistem harus:
menunjukan suatu organisasi terhirarki yang dapat mengendalikan komponenkomponen-komponen perangkat lunak. modular artinya perangkat lunak harus dapat dibagi secara logika kedalam komponenkomponen-komponen yang membentuk fungsifungsi-fungsi atau subsub-sub fungsi tertentu. memberikan penggambaran yang jelas dan terpisah dari data dan prosedur. prosedur. Menuju kepada modul (subroutine atau procedure). mempunyai sifatsifat-sifat fungsional yang independent. Membentuk antarmukaantarmuka-antarmuka yang mengurangi kerumitan hubungan antara modulmodul-modul dan dengan lingkungan luar.
Perinsip Dasar Perancangan Sistem
Kriteria apa yang dapat digunakan untuk membagi perangkat lunak menjadi komponenkomponen-komponen individual atau modulmodul-modul ?
Bagaimana fungsi dan rincian struktur data dipisahkan dari gambaran konsepsual perangkat lunak ?
Apakah ada keseragaman kriteria yang mendefinisikan kualitas teknik dari rancangan perangkat lunak ?
M
Usaha (biaya) untuk mengembangkan modul perangkat lunak secara individual akan berkurang dengan bertambahnya jumlah total dari modul tersebut.
M
Jumlah modul yang membesar berarti ukuran modul secara individu mengecil. Sebaliknya, kenaikan jumlah modul menyebabkan usaha (biaya) yang berhubungan dengan antarmuka (interfacing) antara modulmodul-modul meningkat. Dengan optimasi akan diperoleh suatu jumlah modul M yang memberikan biaya pengembangan paling kecil
ABSTRAKSI
Abstraksi adalah suatu perangkat yang sangat penting dalam pengembangan perangkat lunak. lunak. Abstraksi memungkinkan perancang untuk memusatkan suatu masalah pada tingkat abstrak lebih umum tanpa harus tahu rincianrincian-rincian dari komponen yang diimplementasikan pada tingkat lebih rendah yang tidak relevan. relevan. Artinya penggunaan abstraksi memungkinkan perancang bekerja dengan konsepkonsep-konsep dan istilahistilahistilah yang telah dikenal tanpa harus mengubah suatu lingkungan masalah menjadi suatu struktur yang tidak dikenal.
Perancangan harus menggambarkan masalah abstraksi pada tingkat terendah: Abstraksi fungsional Abstraksi data. Abstraksi kontrol
Dua kategori abstraksi dalam perancangan
1. Abstraksi Fungsional Dalam abstraksi fungsional suatu modul dicirikan dari fungsi yang dibentuknya. Abstraksi ini berhubungan dengan metodologi perancangan struktural Misalnya suatu modul untuk menghitung nilai sinus dapat diberi abstrak yang digambarkan sebagai fungsi sinus.. sinus
2. Abstraksi Data Dalam abstraksi data, data diperlakukan seperti suatu obyek dengan beberapa operasi yang ditentukan sebelumnya untuk datadata-data tersebut. Bentuk abstraksi ini merupakan dasar metodologi perancangan berorientasi obyek.
Suatu modul yang mengendalikan modul modul yang lain disebut superodinate terhadap modul tersebut. tersebut. Sedangkan suatu modul yang dikendalikan modul lain disebut subordinate terhadap modul tersebut
Menurut struktur perangkat lunak, suatu modul dapat dikategorikan sebagai: Modul berurutan (sequential module) yaitu diacu dan
dieksekusi tanpa adanya interupsi oleh perangkat lunak aplikasi. Misalnya subprogram konvensional, subroutine,, functions atau procedures. subroutine Module bertambah (incremental module) yaitu dapat diinterupsi sebelum menyelesaikan seluruh tugasnya oleh perangkat lunak aplikasi dan sesudah itu melanjutkan kembali dari titik yang terinterupsi Sering disebut dengan coroutines. Modul paralel yang melaksanakan secara simultan dengan modul lain dalam lingkungan multiprosesor yang bekerja secara paralel. Modul--modul paralel disebut conroutines Modul
MODUL MANDIRI (MODULE INDEPENDENCE ) Modul Mandiri dapat tercapai jika mengembangkan modul dengan suatu fungsi tunggal dan tidak terlampau banyak berinteraksi dengan modulmodul-modul yang lain.
Dua kategori untuk mengukur kualitas kemandirian yaitu: yaitu: Keterkaitan harus rendah (Low Coupling). adalah ukuran saling ketergantungan relatif antara modul--modul atau interaksi diantara modul kecil. modul
Keterpaduan harus tinggi (High Cohesion). adalah ukuran kekuatan fungsional relatif dari suatu modul dimana interaksi internalnya sangat besar.
Coupling & Cohesion coupling antara module
cohesion didalam module
Bagaimana terjadinya interaksi antara modulmodulmodul ? Jawab: 1. 2. 3. 4. 5.
Mengaktifkan kode modul yang lain. Melompat atau bercabang ke suatu tempat lain. Mengakses data bersama modul yang lain. Data yang bisa dipergunakan bersama Prosedur panggilan dengan suatu sakelar sebagai parameter. 6. Prosedur panggilan dengan data murni sebagai parameter. 7. Melewatkan arus data serial dari satu modul ke modul lain.
COUPLING
Coupling (keterkaitan) adalah ukuran bagaimana modul--modul saling berhubungan dan saling modul bergantungan. Modul yang tidak tergantung dari modul yang lain mempunyai derajat coupling rendah.
Jenis Coupling dan Derajadnya
Jenis Coupling
Jenjang
Derajad
Kualitas
Data coupling
1
Rendah
Terbaik
Stamp coupling
2
Control coupling
3
External coupling
4
Common coupling
5
Content coupling
6
Tinggi
Terjelek
1. No direct coupling Modul 1 dan modul 2 adalah subordinate terhadap modul--modul yang berbeda. Sehingga masingmodul masingmasing tidak berhubungan dan tidak ada penggandengan langsung yang terjadi antara keduanya.
2. Data coupling Dua buah modul dari sistem mempunyai data coupling jika komunikasi dari modulmodul-modul ini dilakukan lewat suatu data. Data dapat berupa sebuah item data tunggal atau elemen dari suatu larik (array).
3. Stamp coupling Dua buah modul dikatakan stamp coupling jika kedua modul ini berkomunikasi lewat suatu kelompok item data. Kelompok item data dapat berupa suatu record yang terdiri dari beberapa field atau larik yang terdiri dari beberapa elemen.
Module 1
Module 2
4. Control coupling Control coupling ditandai dengan adanya jalur kendali antara modul. Modul satu mengendalikan aliran data di modul yang lain, kendali dilakukan melalui flag yang mengontrol logika intern modul yang lain.
5. External coupling Tingkat coupling yang terjadi bila modulmodul-modul terikat pada lingkungan luar (external) dari perangkat lunak.
6. Common coupling Modul--modul dikatakan common coupling jika Modul mdoul--modul tersebut menggunakan data yang mdoul disimpan di area memori yang sama.
7. Content coupling Content coupling terjadi jika suatu modul menggumenggunakan data atau mengendalikan informasi dari modul yang lain tanpa berhubungan lewat suatu parameter. Content coupling dapat juga terjadi jika percabangan dilakukan ke tengahtengah-tengah suatu modul yang lain
Isi Jenis informasi komunikasi Low coupling (terbaik)
Sederhana, jelas
Data
Jenis hubungan Koneksi normal dengan parameter
Data coupling Stamp coupling Control coupling Common coupling Content coupling
High coupling (terjelek)
Rumit, Tidak jelas
Kontrol
Pathalogical, tidak dengan parameter
KEPADUAN (COHESION) Cohesion adalah ukuran keterpaduan dimana hubungan antara elemenelemen-elemen dalam suatu modul jelas dan terstruktur, sehingga modul dapat dipandang sebagai suatu unit dengan fungsi tunggal (functionally cohesive).
Ada beberapa tingkat dari keterpaduan : (1) Coincidental, (2) Logical, (3) Temporal, (4) Procedural, (5) Communicational, (6) Sequential, (7) Functional.
1. Coincidental cohesion jika modul terdiri dari beberapa fungsi tetapi tidak terdapat hubungan yang berarti antara elemenelemen-elemen dari modul tersebut. Suatu kejadian dimana secara kebetulan saja bahwa elemenelemenelemen berada dalam tempat yang sama. sama. Coincidental adalah tingkat terendah dari kepaduan.
2. Suatu modul memiliki logical cohesion jika terdiri dari beberapa fungsi yang mempunyai tugas serupa atau melakukan fungsi fungsi--fungsi yang masuk dalam kelas logika yang sama. sama.
3. Temporal cohesion jika modul terdiri dari beberapa fungsi dan suatu fungsi atau elemenelemen-elemen dalam modul membentuk fungsifungsi-fungsi yang berhubungan dengan waktu atau dieksekusi pada satu titik waktu tertentu.
4. Procedural cohesion yaitu modul terdiri dari beberapa fungsi, walaupun elemenelemen-elemen dalam modul kurang berhubungan tetapi pemrosesannya harus dilaksanakan dalam suatu urutan tertentu.
5. Communicational cohesion yaitu jika modul terdiri dari beberapa fungsi dan elemenelemen-elemen dalam modul beroperasi dengan menggunakan arus data yang sama.
6. Sequential cohesion jika keluaran dari suatu elemen merupakan masukan untuk elemen yang lain secara berurutan. Modul terdiri dari beberapa fungsi dimana elemen dalam modul bertindak sebagai suatu himpunan urutan aksiaksi-aksi atau fungsifungsi-fungsi sangat berikatan.
Compute square root
7.
Sort the array
Functional cohesion yaitu bila seluruh elemen dari modul terkait hanya melakukan suatu fungsi tunggal yang terdefinisi dengan baik, tanpa tergantung pada implementasi modulmodul-modul yang lain. Modul yang berisi beberapa fungsi bukan functional cohesion.
UMUMNYA YANG BAIK ADALAH
Low coupling High cohesion.
Bagaimana meminimalkan interaksi antara modul (low coupling) dengan meningkatkan interkasi internal di dalam modul itu sendiri sehingga dapat melakukan sutu fungsi tunggal yang terpadu (high cohesion).
Soal Misal suatu modul untuk mendukung file ditulis dalam bahasa Pascal seperti dibawah ini: procedure file (file_ptr, file_name, op_name); begin case op_name of “open”: membentuk aktivitas membuka file. “close”: membentuk aktivitas menutup file. “print”: mencetak file. end case end Cohesion jenis apa yang terjadi pada modul ini ? Bagaimana kita mengubah modul untuk menambah menambah cohesion.
Procedural cohesion Agar menjadi functional cohesion modul harus dibagi menjadi tiga modul:
1) procedure open_ open_file file (file_ptr, file_name); begin “open”: membentuk aktivitas membuka file. end 2) procedure close_ close_file file (file_ptr, file_name); begin “close”: membentuk aktivitas menutup file. end 3) procedure print_ print_file file (file_ptr, file_name); begin “print”: mencetak file end
Buat struktur dan flowchart dari program dibawah ini program abc (input, output) var x , y : integer; procedure hitung1; x := x + y; y := y + 5; end; procedure hitung2; x := x + 5; y := y + x; hitung1; end; begin x := 0; y := 0; hitung1; hitung2; end;
Jawab
Flowchart
Input
Struktur Informasi Inisialisasi x = 0, y = 0
abc
x=x+y y=y+5
hitung1
x, y
hitung2 x=x+5 y=y+x x=x+y y=y+5 Output
b.
c. d.
Jelaskan jenis coupling apa yang terjadi dan modifikasi program diatas untuk memperbaiki struktur programnya sehingga coupling menjadi lebih rendah. rendah. Jenis Content coupling Modifikasi menjadi data coupling dengan menghilangkan pemanggilan modul hitung 1 pada modul hitung 2
Otomatisasi Sistem Manual Terdefinisi Baik
Pertanyaan Apa perbedaan antara arus informasi (information flow)) dengan struktur informasi (information flow structure)) ?. structure Apakah ada sistem yang tidak memiliki information flow ? Apakah ada sistem yang tidak memiliki information structure?.
DETAILED DESIGN TOOLS
Graphical tools. Rincian prosedur digambarkan dalam bentuk bangunan logika dalam bentuk gambargambar-gambar khusus. - Flowchart. - Diagram Kotak (Box Diagram).
Tabular tools. Rincian prosedur direpresentasikan dalam bentuk tabel yang menggambarkan aksiaksi-aksi, kondisikondisikondisi dan alternatifalternatif-alternatif yang menghumenghu-bungan informasi masukan, pengolahan, dan keluaran. keluaran. - Tabel Keputusan (Decision Tables).
Language tools. tools. Rincian prosedur digambarkan dalam suatu pseudocode yang sangat menyerupai suatu bahasa pemrograman. - Program Design Language (PDL)
DIAGRAM KOTAK Diagram kotak disusun untuk mengembangkan suatu perangkat rancangan grafik yang tidak membolehkan adanya pelanggaran konsutriksi struktur Diagran NN-S charts (Nassi Nassi--Shneiderman charts) 1.
2.
3.
4.
Domain fungsional didefinisikan dengan baik dan terlihat jelas sebagai suatu representasi piktorial. piktorial. Perpindahan kendali yang berubahberubah-ubah tidak dimungkinkan. Batasan dari data lokal dan/atau global dapat dengan mudah ditentukan. ditentukan. Pengulangan dapat dengan mudah digambarkan.
DIAGRAM KOTAK
Berurut
Bersyarat
Berulang
Seleksi
DIAGRAM KOTAK 1. 2.
3.
4.
5.
Elemen utama dari diagram adalah suatu kotak. kotak. Untuk menggambarkan suatu urutan, dua atau lebih kotak dihubungkan dari atas ke bawah. Untuk menggambarkan if if--thenthen-else, else, suatu kotak kondisional diikuti dengan suatu kotak bagian then dan suatu kotak bagian else else.. Pengulangan digambarkan dengan suatu pola keliling yang melingkari proses (bagian dodo-while atau bagian repeat repeat--until) until) yang diulang. Seleksi digambarkan menggunakan bentuk kotak pilihan.
TABEL KEPUTUSAN Tabel keputusan (decision tables) adalah suatu perangkat yang menerjemahkan aksiaksi-aksi dan kondisikondisikondisi dalam bentuk tabular
Garis tebal membagi tabel menjadi empat bagian : Seperempat bagian kirikiri-atas berisi daftar dari segala kondisi--kondisi. kondisi Seperempat bagian kirikiri-bawah berisi daftar dari seluruh aksiaksi-aksi yang mungkin berdasarkan kombinasi dari kondisi diatas. Bagian kanan berbentuk matriks menunjukkan kombinasi kondisi dan aksiaksi-aksi berhubungan yang akan terjadi untuk suatu kombinasi tertentu. Setiap kolom matriks dapat dinterpretasikan sebagai suatu aturan pengolahan (processing rule).
Untuk mengembangkan tabel keputusan dilakukan langkah--langkah berikut: : langkah Daftar seluruh tindakan/aksi yang dapat dihubungkan dengan suatu prosedur tertentu. Daftar seluruh kondisi (atau keputusan yang dibuat) selama pelaksanaan prosedur . Satukan sejumlah kondisi tertentu dengan aksiaksi-aksi tertentu yang menghapuskan kombinasikombinasi-kombinasi yang tidak mungkin; kemungkinan lain, kembangkan setiap permutasi kondisikondisi-kondisi yang mungkin. Tentukan aturanaturan-aturan (rules) dengan menunjukkan aksi apa yang dapat terjadi untuk sejumlah kondisi.
TABEL KEPUTUSAN
IPO CHARTS
IPO CHARTS
Input--processing Input processing--output (IPO) charts adalah suatu perancangan perangkat lunak dan teknik dokumentasi yang dikembangkan oleh IBM.
Ciri yang paling penting dari IPO chart adalah kemampuannya untuk menggambarkan hubungan antara data input/output dan prosedur perangkat lunak
IPO CHARTS
IPO CHARTS Prosedur ditentukan dalam suatu kotak pengolah pusat dan hubungannya dengan input, output dan informasi database. database. Hal ini memungkinkan perancang secara eksplisit menghubungkan arus informasi dengan arus prosedural.. prosedural Pengolahan (processing) secara khusus ditentukan dengan suatu daftar langkah langkah--langkah, tetapi dapat diwakilkan juga dengan suatu flowchart, box diagram atau bahasa perancangan. perancangan.
PROGRAM DESIGN LANGUAGE
Program design language (PDL) disebut juga pseudocode adalah suatu bahasa perancangan yang umum dipakai dengan menggunakan perbendaha--raan kata dan sintaks bahasa Inggris perbendaha (bahasa Inggris terstruktur).
PDL terlihat sama dengan PL/1, PASCAL atau ALGOL. Perbedaan antara PDL dengan bahasa pemrograman tingkat tinggi diatas adalah penggunaan teks narasi yang tertanaman secara langsung didalam pernyataanpernyataan-pernyataan PDL. PDL.
Suatu bahasa perancangan harus memiliki sifat sebagai berikut :
Fixed syntax dari KEYWORDS yang diberikan untuk seluruh struktur konstruksi, deklarasi data dan karakteristik modularitas. modularitas.
Free syntax dari suatu bahasa alamiah yang memberi--kan ciri memberi ciri--ciri pengolahan.
Fasilitas deklarasi data, termasuk struktur data sederhana (skalar dan array) dan struktur data kompleks (linked atau hirarchical).
Definisi Subprogram dan teknik pemanggilan yang mendukung berbagai model deskripsi interface.
PROGRAM DESIGN LANGUAGE Bahasa perancangan tidak tergantung pada bahasa pemrograman, dimana bentuk dasar PDL meliputi:
Deklarasi Data Teknik penstrukturan blok. Konstruksi Kondisi Konstruksi Pengulangan (Repetition) Definisi Subprogram Penggambaran Interface Konstruksi I/O
PROGRAM DESIGN LANGUAGE Contoh: PDL untuk kendali pintu Lift (IEEE CSP).
Computer--Aided Software Engineering Computer (CASE)
Perangkat CASE membantu mengkaji dan merancang perangkat lunak, secara otomatis membangkitkan kode--kode komputer sesuai dengan model yang telah kode dibuat. CASE mewujudkan empat tahap pengembangan perangkat lunak:
1. Analisis (gambaran apa yang akan dibangun, fase pemodelan). 2. Disain (gambaran bagaimana membangunnya). 3. Implementasi (program untuk dijalankan, fase pengkodean). 4. Test dan integrasi (meyakinkan semua berjalan baik).