PERANCANGAN SISTEM PERANCANGAN SISTEM • Proses untuk mendefinisikan suatu model atau rancangan sistem dengan menggunakan teknik dan prinsip tertentu sedemikian sehingga model atau rancangan tersebut dapat diwujudkan menjadi sistem. • Proses mendefinisikan arsitektur sistem, komponen, modul, antarmuka, pendekatan pengujian, serta data untuk memenuhi kebutuhan yang sudah ditentukan sebelumnya. • Proses bertahap dimana semua kebutuhan yang ada diterjemahkan menjadi suatu cetak biru yang akan digunakan untuk mengkonstruksi sistem. [Pressman, 2001] 2 Strategi Perancangan • Top Down • Bottom Up • Organizational Struktur proses perancangan dipengaruhi oleh faktorfaktor non teknis yang timbul dari faktor organisasi pemakai peangkat lunak • Cetak Biru Menggunakan strategi perancangan yang standar untuk beberapa masalah yang memiliki kesamaan paradigma 3 3 Karakteristik Evaluasi Perancangan • Perancangan harus mengimplementasikan keseluruhan kebutuhan eksplisit dan mengakomodasi semua kebutuhan implisit yang diinginkan • Perancangan harus menjadi panduan yang dapat dibaca, dipahami bagi programmer dan penguji sistem • Perancangan harus memberikan suatu gambaran lengkap mengenai sistem 4 Perancangan Sistem • Proses Perancangan Serangkaian langkah iteratif yang memungkinkan desainer menggambarkan semua aspek sistem yang dibangun • Model Perancangan Ekivalen rencana arsitek untuk sebuah rumah. (yang dibuat untuk perangkat sistem memberikan berbagai pandangan yang berbeda tentang program komputer 5 OBJEK PERANCANGAN • Data Struktur tabel basis data / file data Struktur data internal • Arsitektur perangkat lunak Structure chart Struktur menu program • Antarmuka pemakai • Spesifikasi program (algoritma) 6 TRANSFORMASI MODEL ANALISIS - PERANCANGAN Model Analisis • Diagram Konteks • DFD level 1, 2, … • Kamus Data Model Perancangan 2 • Rancangan Data 3 • Arsitektur PL (Structure Chart) • Antarmuka Pemakai • Spesifikasi Proses 1 • E-R Diagram 4 • Spesifikasi Program (Algoritma) 7 PERANCANGAN BASIS DATA • Transformasi Diagram E-R (conceptual data model, CDM) menjadi model relasi (skema relasi, tabel relasi). • Penentuan atribut relasi sesuai dengan kamus data yang telah dibuat. • Normalisasi. • Pendefinisian struktur tabel. • Pembuatan relasi antar tabel (physical data model, PDM) 8 CONTOH STRUKTUR TABEL BASIS DATA Tabel Penjualan • Fungsi • Jenis • Primary Key • Foreign Key • Struktur Tabel No. Nama Field : : : : : Menyimpan data transaksi penjualan Tabel Transaksi No_Faktur+Kode_Brg Kode_Brg Jenis Lebar Keterangan 1 No_Faktur String 10 Nomor Faktur 2 Kode_Brg String 8 Kode Barang 3 Hrg_Jual Long Integer 8 Harga jual barang saat transaksi 4 Kuantitas Integer 5 Banyaknya (kuantitas) barang 9 CONTOH RELASI ANTAR TABEL BARANG KODE_BRG KODE_SUP NAMA_BRG SATUAN JENIS HRG_BELI HRG_JUAL JML_STOK SUPPLIER A8 A6 A25 A4 A1 I I I KODE_SUP = KODE_SUP KODE_SUP NAMA_SUP ALAMAT KOTA TELEPON A6 A25 A30 A15 A12 KODE_BRG = KODE_BRG BAYAR JUAL KODE_BRG NO_FAKTUR HRG_JUAL KUANTITAS A8 A10 I NO_FAKTUR = NO_FAKTUR I NO_FAKTUR TANGGAL JML_BAYAR A10 D I 10 ARSITEKTUR PERANGKAT LUNAK • Gambaran bagaimana elemen/komponen fungsional perangkat lunak disusun, diorganisasi dan distrukturkan sehingga: Hubungan antar elemen/komponen dapat dijelaskan. Interface yang menghubungkan elemen/komponen dapat didefinisikan. Wujud dan penempatan elemen/komponen dalam tempat penyimpanan sekunder secara fisik dapat ditetapkan. 11 TRANSFORMASI DFD - STRUCTURE CHART XX B E U ??? A A C U F H YY B V G H C Get A XX G F D E YY ZZ Put H D ZZ Keterangan: menyatakan transaction center • Menggunakan teknik: Analisis transformasi Analisis transaksi 12 Aliran Transformasi Mentrasformasikan data eksternal ke bentuk internal diidenti fikasi sebagai aliran masuk, terjadi transisi , data masuk di lewatkan melalui pusat transformasi dan bergerak keluar melalui jalur keluar 13 Aliran Transaksi 14 CONTOH ARSITEKTUR PERANGKAT LUNAK Model Analisis (DFD level atomik) 1 Tambah Data Barang Bagian Penjualan id_barang Modul Pemanggil rec_barang id_supplier Barang rec_supplier rec_supplier Supplier 2 Tambah Data Supplier Arsitektur Perangkat Lunak (Structure Chart) Kelola Data Induk Proses 2.0 Proses 1.0 Tambah Data Barang id_barang Tambah Data Supplier rec_barang id_supplier rec_supplier supplier Modul-modul atomik (procedure, function) Baca Id_Barang Rekam Barang Baca Id_Supplier Rekam Supplier 15 STRUCTURE CHART (1) : PASCAL modul pemanggil A notasi untuk parameter input yang dikirimkan kepada modul yang dipanggil x, y p, q B notasi untuk parameter output yang diberikan pada modul pemanggil modul yang dipanggil Procedure A; Var p, q : Real; Procedure B(x, y : Real); Begin p := ... { manipulasi nilai p } q := ... { manipulasi nilai q } End; Begin B(x, y); { call procedure B } End; • Modul A memanggil modul B dengan data x dan y sebagai parameternya. • Modul B mengirimkan data p dan q sebagai return value ke modul A. Potongan kode program dalam bahasa Pascal 16 STRUCTURE CHART (2) : PASCAL • Modul A akan memanggil modul B jika kondisi dalam modul A dipenuhi. • Modul A akan memanggil modul C secara berulang. Potongan kode program dalam bahasa Pascal A B C Procedure C; Begin ... End; Procedure B; Begin ... End; Procedure A; Begin If True Then B; {call procedure B} While True Do C; {call procedure C} End; 17 STRUCTURE CHART (3) : PHP FormInput.html <html> ... <form method=post action=Rekam.php> ... </html> FormInput Rekam.php <? // Rekam.php function getId() { } function saveId(id) { } id = getId(); saveId(id) ?> Rekam id id getId saveId 18 STRUCTURE CHART (4) : DELPHI main.pas unit main; ... var Form1: TForm1; implementation uses Rekam; procedure TForm1.Click(Sender: TObject); begin frmRekam.Show; end; Main end. rekam.pas Rekam unit Rekam; ... var frmRekam: TForm1; implementation ... end. 19 PERANCANGAN ANTARMUKA PEMAKAI • Secara fisik antarmuka pemakai yang dirancang adalah tampilan layar (form, halaman web). • Jenisnya dapat berupa: Menu pilihan Form isian (entry) Penyajian informasi (report, query) Kotak dialog, jika diperlukan Fasilitas bantuan (Help), jika diperlukan 20 IDENTIFIKASI RANCANGAN ANTARMUKA PEMAKAI 1 Tambah Data Barang id_barang Bagian Penjualan rec_barang Ada interaksi antara pemakai dengan PL id_supplier Barang rec_supplier rec_supplier Supplier Ada data yang diberikan oleh pemakai ke PL 2 Tambah Data Supplier Harus ada user interface untuk Tambah Data Barang! Tambah Data Tambah DataBarang Barang XX Kode Barang: Nama Barang: Lihat kamus datanya!!! id_barang = kode_ brg + nama_brg + satuan + jenis + hrg_beli + hrg_jual + jml_stok + kode_sup Satuan: Jenis: 1:Milik 2:Konsinyasi Harga Beli: Rp. Harga Jual: Rp. Jumlah Stok: unit Kode Supplier: Rekam Batal 21 PENULISAN SPESIFIKASI PROGRAM • Deskripsi prosedural (algoritma) untuk semua modul-modul program yang menjadi elemenelemen struktural dari arsitektur perangkat lunak: Prosedur Fungsi • Merupakan penjelasan lebih rinci dan teknis dari spesifikasi proses. • Ditulis dengan menggunakan notasi pseudocode, atau notasi yang mirip dengan bahasa pemrograman yang digunakan. 22 SPESIFIKASI PROSES Proses 1.1 Tambah Data Barang Begin While data barang masih ada Do Baca identitas barang Verifikasi If not valid Then tulis pesan Else rekam ke tabel barang End 1 Tambah Data Barang id_barang Bagian Penjualan rec_barang id_supplier Barang rec_supplier rec_supplier Supplier 2 Tambah Data Supplier SPESIFIKASI PROGRAM ( DELPHI LIKE ) Procedure btnRekamBarangClick Kamus { Deklarasi variabel; TEdit, TDBLookupCombo, TTable terdefinisi } eKode, eNama, eSatuan, eJenis, eHrgBeli, eHrgJual, eJmlStok: TEdit DBLookupCombo1: TDBLookupCombo TabelBarang, TabelSupplier: TTable Algoritma { Buka tabel barang dan supplier } TabelBarang.Open TabelSupplier.Open { Baca identitas barang melalui komponen TEdit dan validasi } { Rekam ke tabel barang } TabelBarang.Append TabelBarang.FieldByName('Kode_Brg').AsString := eKode.Text TabelBarang.FieldByName('Nama_Brg').AsString := eNama.Text TabelBarang.FieldByName('Satuan').AsString := eSatuan.Text TabelBarang.FieldByName('Jenis').AsInteger:=StrToInt(eJenis.Text) TabelBarang.FieldByName('Hrg_Beli').AsInteger:=StrToInt(eHrgBeli.Text) TabelBarang.FieldByName('Hrg_Jual').AsInteger:=StrToInt(eHrgJual.Text) TabelBarang.FieldByName('Jml_Stok').AsInteger:=StrToInt(eJmlStok.Text) TabelBarang.FieldByName('Kode_Sup').AsString := DBLookupCombo1.Value; TabelBarang.Post 23