dasar-dasar perancangan sistem · web viewpada rancangan secara modular, beberapa tingkatan...

20
IF0554 - REKAYASA PERANGKAT LUNAK 113 -–MODUL 7 DASAR-DASAR PERANCANGAN SISTEM Prinsip Dasar Perancangan Perangkat Lunak PENGANTAR Perancangan Perangkat Lunak merupakan proses penerjemahan dari kebutuhan menjadi perangkat lunak Hasil dari perancangan adalah : Rancangan data yang memetakan model domain informasi pada saat analisis menjadi struktur data yang dibutuhkan untuk implementasi perangkat lunak. Rancangan arsitektural yang mendefinisikan hubungan dari komponen-komponen struktural utama dari program. Rancangan prosedural yang memetakan komponen-komponen struktural ke deskripsi prosedur perangkat lunak ABSTRACTION ( Wasserman ) Pada rancangan secara modular, beberapa tingkatan abstraksi dapat diperoleh, sehingga perancang dapat mengkonsen- trasikan pada setiap tingkatan abstraksi yang lebih terinci. Pada level paling tinggi, solusi dinyatakan secara global dengan bahasa pada lingkungan masalah. Dan pada abstraksi paling bawah, solusi dinyatakan dalam bahasa yang dapat langsung diimplementasikan. Contoh Abstraksi Program dan Abstraksi Data : Versi 1.0 STIMIK PERBANAS Maret 2003

Upload: others

Post on 26-Dec-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DASAR-DASAR PERANCANGAN SISTEM · Web viewPada rancangan secara modular, beberapa tingkatan abstraksi dapat diperoleh, sehingga perancang dapat mengkonsen- trasikan pada setiap tingkatan

IF0554 - REKAYASA PERANGKAT LUNAK 113 -–MODUL 7

DASAR-DASAR PERANCANGAN SISTEM

Prinsip Dasar Perancangan Perangkat Lunak

PENGANTAR Perancangan Perangkat Lunak merupakan proses penerjemahan dari

kebutuhan menjadi perangkat lunak Hasil dari perancangan adalah :

Rancangan data yang memetakan model domain informasi pada saat analisis menjadi struktur data yang dibutuhkan untuk implementasi perangkat lunak.

Rancangan arsitektural yang mendefinisikan hubungan dari komponen-komponen struktural utama dari program.

Rancangan prosedural yang memetakan komponen-komponen struktural ke deskripsi prosedur perangkat lunak

ABSTRACTION ( Wasserman ) Pada rancangan secara modular, beberapa tingkatan abstraksi dapat

diperoleh, sehingga perancang dapat mengkonsen- trasikan pada setiap tingkatan abstraksi yang lebih terinci.

Pada level paling tinggi, solusi dinyatakan secara global dengan bahasa pada lingkungan masalah. Dan pada abstraksi paling bawah, solusi dinyatakan dalam bahasa yang dapat langsung diimplementasikan.

Contoh Abstraksi Program dan Abstraksi Data :

PROGRAM ABSTRACTION

Abstraksi tingkat pertama : CAD Software Task User interface Task 2-D Drawing Creation Task ……… end.

Abstraksi tingkat kedua : PROCEDURE User interface ……… …… end

DATA ABSTACTION

TYPE drawing IS STRUCTURE DEFINED Number IS INTEGER Icon IS ICON_STRUCTURE Notes IS STRING LENGTH (225) Versi IS STRING LENGTH ( 10 )

……………end

MODULARITY & SOFTWARE ARCHITECTURE

Versi 1.0 STIMIK PERBANAS Maret 2003

Page 2: DASAR-DASAR PERANCANGAN SISTEM · Web viewPada rancangan secara modular, beberapa tingkatan abstraksi dapat diperoleh, sehingga perancang dapat mengkonsen- trasikan pada setiap tingkatan

IF0554 - REKAYASA PERANGKAT LUNAK 213 -–MODUL 7

Perangkat lunak dibagi atas beberapa modul. Sebuah modul dapat dibagi lagi atas beberapa sub-modul Modul memiliki nama yang unik. Sebuah modul dapat memanggil modul lainya.

Gambar : Struktur Evolusi

Gambar : Struktur Berbeda

Versi 1.0 STIMIK PERBANAS Maret 2003

S1 S2

S4

S3

S5

Software “solution”“Problem” to be solved via software

PS5S4S1

S3

S2

S4

S1

S3

S5S2

S4S2 S3 S5S1

“Problem”

Structure 1 Structure 2 Structure 3

Page 3: DASAR-DASAR PERANCANGAN SISTEM · Web viewPada rancangan secara modular, beberapa tingkatan abstraksi dapat diperoleh, sehingga perancang dapat mengkonsen- trasikan pada setiap tingkatan

IF0554 - REKAYASA PERANGKAT LUNAK 313 -–MODUL 7

Struktur Terminologi

HIRARKI KONTROL ( STRUKTUR PROGRAM )

Menunjukkan organisasi dari modul-modul program dan menunjukan hirarki kontrolnya. Tidak merepresentasikan aspek prosedural dari perangkat lunak seperti urutan proses, keputusan, atau perulangan.

Kedalaman dan lebar menunjukkan jumlah tingkatan kontrol dan seluruh cakupan kontrol

Fan-out menunjukkan jumlah modul yang secara langsung dikontrol oleh modul lain

Fan-in menunjukkan jumlah modul yang mengontrol modul yang bersangkutan

Modul yang mengontrol modul yang lain disebut superordinate Modul yang dikontrol modul yang lain disebut subordinate

FAN-OUT Fan-out dari sebuah modul adalah banyaknya subordinate langsung dari

modul tersebut Perluasan kontrol dari sebuah modul sebaiknya tidak melebihi 7 + 2 ( kecuali

pada pusat-pusat transaksi ) Hindarkan Fan-out yang bersifat main-line (satu boss, dengan modul-modul

lain sebagai subordinate ) Sebuah modul dengan Fan-out yang banyak biasanya sukar dipelihara. Untuk memecahkan fan-out yang banyak gunakan modul-modul antara

Versi 1.0 STIMIK PERBANAS Maret 2003

Depth

Width

Fan-out

Fan-in

M

b ca

kd e l m

gf h on p q

i j r

Page 4: DASAR-DASAR PERANCANGAN SISTEM · Web viewPada rancangan secara modular, beberapa tingkatan abstraksi dapat diperoleh, sehingga perancang dapat mengkonsen- trasikan pada setiap tingkatan

IF0554 - REKAYASA PERANGKAT LUNAK 413 -–MODUL 7

FAN-IN Fan-in dari modul adalah banyaknya modul lain yang ( boss )

menggunakan/memanggil modul tersebut. Jika mungkin Fan-in harus dilakukan sebanyak-banyaknya. Fan-in yang banyak menghindari pengulangan pembuatan modul yang sama

atau serupa Fan-in yang banyak mempermudah pemeliharaan karena menempatkan suatu

fungsi yang sama dalam satu modul

STRUKTUR DATA Refresentasi lojikal dari hubungan antara elemen-elemen data.

Struktur Data Klasik

PROSEDUR PERANGKAT LUNAK Struktur program hanya mendefinisikan hirarki kontrol tanpa memperhatikan

urutan proses. Prosedur perangkat lunak berfokus pada rincian proses dari setiap modul.

INFORMATION HIDING ( by Pamas ) Prinsip dasar dalam pembentukan modul dimana hanya data yang benar-

benar perlu, yang dikenalkan dan dapat diakses oleh sebuah modul.

Versi 1.0 STIMIK PERBANAS Maret 2003

A linked list

A scalar item

A scalar item

An N-dimensional space

A hierarchical tree

Page 5: DASAR-DASAR PERANCANGAN SISTEM · Web viewPada rancangan secara modular, beberapa tingkatan abstraksi dapat diperoleh, sehingga perancang dapat mengkonsen- trasikan pada setiap tingkatan

IF0554 - REKAYASA PERANGKAT LUNAK 513 -–MODUL 7

Prosedur Berlapis

Versi 1.0 STIMIK PERBANAS Maret 2003

Module A

Module A

Prosedur di dalam suatu modul

Page 6: DASAR-DASAR PERANCANGAN SISTEM · Web viewPada rancangan secara modular, beberapa tingkatan abstraksi dapat diperoleh, sehingga perancang dapat mengkonsen- trasikan pada setiap tingkatan

IF0554 - REKAYASA PERANGKAT LUNAK 613 -–MODUL 7

PERANCANGAN YANG MODULAR Keuntungan :

menurunkan kompleksitas mempermudah pengubahan implementasi yang lebih mudah karena bagian-bagian yang berbeda dapat

dibuat dengan paralel Evaluasi dari hubungan antar modul dapat dinilai dengan melihat kohesi dan

koplingnya ( Steven, Myers, dan Constantine )

KOPLING Kopling adalah tingkat saling ketergantungan antara dua modul. Kita menghendaki modul dengan kopling rendah yaitu modul-modul yang

sedapat mungkin tidak saling bergantungan. Kopling yang rendah adalah tanda dari pembagian sistem yang baik, dimana

sesuatu yang tidak berhubungan dipisahkan. Jika sedikit atau tidak ada interaksi dua modul disebut loosely coupled

(kopling rendah) dan jika sebaliknya disebut tighty coupled (kopling tinggi) Makin tinggi kopling yang ada makin sulit sebuah program untuk dimengerti. Jika dua modul memiliki kopling yang rendah, maka sebuah modul dapat

diubah tanpa perlu mengubah modul yang lain. Mengapa kopling yang rendah diperlukan ?

Untuk menghilangkan ripple effect (perubahan pada sebuah modul dapat berpengaruh pada modul lain). Sehingga dapat memelihara atau mengubah suatu modul dengan resiko yang minimal untuk mengubah modul lainnya. Jika mungkin kita ingin dapat bekerja dengan modul A tanpa perlu mengetahui tentang apapun dalam modul B.

Faktor-faktor yang berpengaruh pada kopling antara dua modul adalah : Jumlah item data yang disalurkan diantara dua modul (makin banyak data

yg disalurkan makin tinggi kopling yang terjadi). Jumlah data kontrol yang disalurkan diantara dua modul (makin banyak

data kontrol yang disalurkan makin tinggi kopling yang terjadi) Jumlah elemen data global yang digunakan bersama-sama oleh beberapa

modul (makin banyak data global yang digunakan, makin tinggi kopling yang terjadi)

KOHESI Melekatkan hal-hal yang berkaitan didalam modul yang sama, akan

mengurangi lalu-lintas diantara modul-modul . Apa yang terjadi diantara modul-modul (kopling) dipengaruhi oleh apa yang

terjadi dalam modul-modul tersebut secara individual (kohesi) Kohesi adalah ukuran kekuatan asosiasi antar elemen didalam suatu modul. Elemen yang dimaksud adalah : sebuah instruksi, sekumpulan intruksi, atau

pemanggilan ke modul lain. Kohesi tinggi jika sebuah modul hanya bertanggung jawab terhadap satu

pekerjaan saja.

Versi 1.0 STIMIK PERBANAS Maret 2003

Page 7: DASAR-DASAR PERANCANGAN SISTEM · Web viewPada rancangan secara modular, beberapa tingkatan abstraksi dapat diperoleh, sehingga perancang dapat mengkonsen- trasikan pada setiap tingkatan

X

X

Y

Y

Lalu lintas jalan

Kopling rendah Kohesi tinggi

Y

X

X

Y

Lalu lintas jalan

Kopling tinggi Kohesi rendah

IF0554 - REKAYASA PERANGKAT LUNAK 713 -–MODUL 7

RANCANGAN DATA Rancangan data yang bagus dapat membuat struktur program lebih baik,

modularitas efektif dan menurunkan kompleksitas prosedural Beberapa petunjuk :

Semua struktur data dan operasi yang mengolahnya harus didefinisikasi Selalu gunakan kamus data Rancanagan data yang bersifat low-level harus ditunda sampai akhir dari

proses perancangan Bentuk keputusan dan struktur data dan operasi-operasi yang

mengolahnya Bahasa pemrograman harus mendukung spesifikasi dan realisasi dari tipe

data abstrak.

Versi 1.0 STIMIK PERBANAS Maret 2003

Page 8: DASAR-DASAR PERANCANGAN SISTEM · Web viewPada rancangan secara modular, beberapa tingkatan abstraksi dapat diperoleh, sehingga perancang dapat mengkonsen- trasikan pada setiap tingkatan

IF0554 - REKAYASA PERANGKAT LUNAK 813 -–MODUL 7

PERANCANGAN ARSITEKTURAL Tujuan dari perancangan arsitektural adalah untuk membangun struktur

program yang modular dan membentuk hubungan kontrol antar modul Rancangan arsitektural menggabungkan struktur program dan struktur data serta mendefinisikan

interface yang membuat data melalui program. Dan dinyatakan dalam bentuk Bagan Susunan atau diagram Wamier/Orr.

BAGAN SUSUNAN (Structured Chart) Bagan susunan merupakan susunan hirarki dari modul-modul Bagan susunan menunjukkan - pembagian sistem menjadi modul-modul- hirarki dan organisasi modul-modul- komunikasi antar modul ( masukan dan keluaran ) - nama modul, yang berarti juga fungsi modul.

Bagan Susunan tidak menunjukkan :- Mekanik didalam modul ( seperti ukuran pemanggilan modul lain, loops

dsb )- Data internal dari modul

Simbol-simbol yang digunakan :

KOPEL DATA ( DATA COUPLE ) adalah aliran data dari modul yang memanggil ke modul yang dipanggil.

KOPEL KONTROL ( CONTROL COUPLE ) adalah elemen yang dikirimkan oleh modul yang dipanggil kepada modul yang memanggil sebagai tanda bahwa proses pemanggilan selesai (biasanya untuk proses pengulangan)

Versi 1.0 STIMIK PERBANAS Maret 2003

Pengirim PenerimaInformasi Informasi

: hubungan2

: pengulangan3

: Seleksi / pemilihan4

: Kopel Kontrol5

: Kopel Data6

: Nama Modul / Proses1

Page 9: DASAR-DASAR PERANCANGAN SISTEM · Web viewPada rancangan secara modular, beberapa tingkatan abstraksi dapat diperoleh, sehingga perancang dapat mengkonsen- trasikan pada setiap tingkatan

IF0554 - REKAYASA PERANGKAT LUNAK 913 -–MODUL 7

Perbedaan Kopel Data dan Kopel Kontrol- Kopel Data biasanya berhubungan dengan permasalahan ( diproses ) - Kopel Kontrol adalah alat bantu untuk implementasi tidak diproses

Contoh :

Versi 1.0 STIMIK PERBANAS Maret 2003

Hitung Potongan : Suatu modul dengan nama “Hitung Potongan”

A

B

: Modul A memanggil modul B, setelah proses modul B selesai maka proses kembali ke modul A

: Modul A memanggil modul B dan elemen data P dikirimkan dari modul A ke modul B. Kemudian modul B mengirimkan hasil proses ( elemen data Q dan elemen kontrol Flag ) ke modul A .

A

B

P Q

Flag

: Modul A memanggil modul B atau C sesuai dengan nilai kondisi yang diseleksi di modul terpenuhi

A

B C

A

B C

: Modul A memanggil modul B dan C secara berulang

Page 10: DASAR-DASAR PERANCANGAN SISTEM · Web viewPada rancangan secara modular, beberapa tingkatan abstraksi dapat diperoleh, sehingga perancang dapat mengkonsen- trasikan pada setiap tingkatan

IF0554 - REKAYASA PERANGKAT LUNAK 1013 -–MODUL 7

RANCANGAN PROSEDURAL Rancangan prosedural dilakukan setelah struktur program dan data telah

dibentuk Beberapa bentuk pernyataan :

- pemrograman terstruktur- notasi grafis : flowchart, box diagram/N-S charts- bentuk tabel- PDL

Contoh Rancangan Prosedural :

Versi 1.0 STIMIK PERBANAS Maret 2003

3. Open files and get fisrt account record

2. Initialize accounts receivable accumulators1. Initiate Processing

1. Print acount headings

1. Initiate account record

2. Get first transaction

1. Update transaction accumulators

2. Calculate transaction service charge and new account balances

3. Print transaction detail line

4. Get next tansaction

2. CLOSE FILES

1. Print account summary totals

3. Get next account record

3. Terminate processing

2. Produce account transaction history

2. Main Processing

Produce Acounts Receivables Report

1. Print account general information

Page 11: DASAR-DASAR PERANCANGAN SISTEM · Web viewPada rancangan secara modular, beberapa tingkatan abstraksi dapat diperoleh, sehingga perancang dapat mengkonsen- trasikan pada setiap tingkatan

IF0554 - REKAYASA PERANGKAT LUNAK 1113 -–MODUL 7

atau :

Versi 1.0 STIMIK PERBANAS Maret 2003

Main Processing

Terminate processing

Print acount headings

Initiate account record

Print account general

information

Get first transaction

Produce account transaction history

Get next Record account

Print account summary totals

Update transaction accumulators

Calculate transaction service charge and new account balances

Print transaction detail line

Get next tansaction

CLOSE FILES

Initialize accounts receivable

accumulators

Initiate Processing

Produce Acounts Receivables Report

Open files and get fisrt account record

Page 12: DASAR-DASAR PERANCANGAN SISTEM · Web viewPada rancangan secara modular, beberapa tingkatan abstraksi dapat diperoleh, sehingga perancang dapat mengkonsen- trasikan pada setiap tingkatan

IF0554 - REKAYASA PERANGKAT LUNAK 1213 -–MODUL 7

BOX DIAGRAM (N/S CHART)

Versi 1.0 STIMIK PERBANAS Maret 2003

Loop condition

Do – while – part

Repeat – until – part

Loop condition

First task

Next task

N + 1 task

Sekuensial

Condition

Else - part

Then - part

If – then - else

Repetition

Case Condition

Value

Selection

Value Value

Case - part

Case - part

Case - part

Case - part

Page 13: DASAR-DASAR PERANCANGAN SISTEM · Web viewPada rancangan secara modular, beberapa tingkatan abstraksi dapat diperoleh, sehingga perancang dapat mengkonsen- trasikan pada setiap tingkatan

IF0554 - REKAYASA PERANGKAT LUNAK 1313 -–MODUL 7

Contoh :Dari Flow-chart berikut :

maka diagram-box-nya adalah :

Versi 1.0 STIMIK PERBANAS Maret 2003

A

x8

b

x1

Case xi, I = 2, 3, 4

x6x2 x4x3

g

hx7

ix5

ced

j

a

a

b

x1

x2

x3

x4 e

d

c

x5 f

h

g

x6

i

x7

x8

j

f

Page 14: DASAR-DASAR PERANCANGAN SISTEM · Web viewPada rancangan secara modular, beberapa tingkatan abstraksi dapat diperoleh, sehingga perancang dapat mengkonsen- trasikan pada setiap tingkatan

IF0554 - REKAYASA PERANGKAT LUNAK 1413 -–MODUL 7

KARAKTERISTIK NOTASI PERANCANGAN Mendukung modularistasSederhana Mudah diubahDapat dibaca oleh mesinDapat dipeliharaStructured enforcermentCode-to-abilityDapat diverifikasi

PERANCANGAN SISTEM INTERAKSI & PENULISAN PROGRAM

Beberapa Pedoman Pemakai sistem harus selalu mengetahui apa yang mesti dilakukan berikutnya

- beritahu pemakai apa yang diharapkan oleh sistem sekarang Contoh : SIAP, MASUKKAN PERINTAH, MASUKKAN PILIHAN atau MASUKKAN DATA.

- Beritahu pemakai bahwa data telah dimasukkan dengan benar, Bisa berupa perpindahan kursor ke data berikutnya atau pesan : MASUKKAN VALID

- Beritahu pemakai bahwa pemasukkan data salah. Pemberitahuan format yang benar lebih baik.

Bentuk pemakaian alasan adanya delay dalam pemrosesan.Contoh : SORTING, PLEASE STAND BY, INDEXING, PLEASE WAIT, THIS MAY TAKE A FEW MINUTES, TUNGGU SEBENTAR, Adanya pesan membuat pemakai mengetahui bahwa sistem tidak gagal.

Beritahu pemakai sebuah pekerjaan selesai atau tidak selesai dilakukan Contoh : PRINTING, COMPLETE, PRINTER NOT READY – PLEASE CHECK AND TRY AGAIN.

Versi 1.0 STIMIK PERBANAS Maret 2003

Page 15: DASAR-DASAR PERANCANGAN SISTEM · Web viewPada rancangan secara modular, beberapa tingkatan abstraksi dapat diperoleh, sehingga perancang dapat mengkonsen- trasikan pada setiap tingkatan

IF0554 - REKAYASA PERANGKAT LUNAK 1513 -–MODUL 7

Rancangan Layar : Layar sebaiknya diatur agar beberapa tipe informasi, intruksi dan pesan selalu

muncul di area yang konsisten. Ini akan membantu pemakai mencari informasi yang spesifik

Perancangan layar yang terlalu “ norak “ Berikan kesempatan pemakai menghemat pengetikan dengan function keys Jika memungkinkan, berikan harga baku Antisipasi kesalahan yang mungkin dibuat oleh pemakai.

Contoh : YAKIN DIHAPUS ? Selalu Konsisten Kurang jumlah informasi yang harus diingat diantaranya aksi

Penulisan Program Cobalah untuk langsung menggunakan keistimewaan yang ada pada bahasa

pemrograman Cobalah untuk menggunakan library dan fungsi-fungsi yang telah ada pada

bahasa pemrograman Jangan mengabaikan pesan-pesan peringatan ( warning message )

Beberapa pedoman Bahasa Sederhana, dan benar secara aturan bahasa.

- Bahasa percakapan lebih baik daripada bahasa tulisan Jangan berusaha melucu atau “ sok imut “.

- jika penggunaan harus memakainya 25x seharai. Akan tidak lucu lagi. Jangan menyinggung intelegensia pemakaiPenulisan Pemrograman Jumlah perintah dalam suatu subprogram sebaiknya 5 – 100 perintah Jumlah paremeter yang di-pass sebaiknya <= 5 Hindari penggunaan GO TO Gunakan identitasi Kedalaman pernyataan bersarang sebaiknya < 5. Pengecualian untuk

penggunaan fungsi rekursif. Kemampuan program untuk dibaca lebih penting dari pada efesiensi program Gunakan nama-nama yang punya arti

Komentar Berilah komentar pada program anda. Hindari komentar yang terlalu panjang Komentar merupakan jawaban dari pertanyaan pembaca program Berilah komentar setiap variabel Komentar bukan terjemahan dari program anda.

Perbaikan Program

Versi 1.0 STIMIK PERBANAS Maret 2003

Page 16: DASAR-DASAR PERANCANGAN SISTEM · Web viewPada rancangan secara modular, beberapa tingkatan abstraksi dapat diperoleh, sehingga perancang dapat mengkonsen- trasikan pada setiap tingkatan

IF0554 - REKAYASA PERANGKAT LUNAK 1613 -–MODUL 7

Lupakan semua tentang efisiensi sampai program anda dapat bekerja dengan benar.

Jangan mencoba untuk memperbaiki sampai anda mengerti benar programnya Jangan mengorbankan kemampuan untuk dibaca demi efisiensi

Pemilihan Bahasa Jika dibutuhkan struktur data yang kompleks : PASCAL, C Jika kinerja, kemampuan real-time : ADA Jika perlu efisiensi memori :C Banyak report & banyak manipulasi berkas : COBOL, 4GL, RPG Akan lebih mudah jika hanya satu bahasa tersedia atau sudah ditemukan oleh

pemakai. Pada banyak kasus mengikuti sistem yang sudah ada

Beberapa de-facto :- C untuk sistem software- Ada, C, Modula-2 untuk aplikasi real-time- COBOL, 4GL untuk aplikasi bisnis- FORTRAN untuk aplikasi sains dan teknik- PASCAL, C untuk program-program aplikasi di PC- LISP, PROLOG untuk kecerdasan buatan

Versi 1.0 STIMIK PERBANAS Maret 2003