Jumat, 12 Juli 2019

Design modular dan Design dokumentasi

Hasil gambar untuk design modular efektif



 Konsep modularitas dalam perangkat lunak komputer telah didukung selama hampir empat dekade. Arsitektur perangkat lunak memasukkan modularitas, dimana perangkat lunak dibagi ke dalam komponen-komponen bernama dan dapat dipanggil terpisah. Lima kriteria yang memungkinkan kita mengevaluasi suatu metode desain dengan merujuk pada kemampuannya untuk menentukan sistem modular yang efektif. Dekomposibilitas modular. Bila metode desain memberikan suatu mekanisme sistematis untuk melakukan dekomposisi terhadap masalah menjadi submasalah-submasalah, maka metode desain akan mengurangi kompleksitas keseluruhan masalah, sehingga dapat mencapai solusi modular efektif. Komposabilitas modular, bila suatu metode desain memungkinkan komponen-komponen desain (reusable) yang ada untuk dipasang ke dalam sebuah sistem baru, maka metode desain akan menghasilkan suatu solusi modular yang tidak berulang. Kemampuan pemahaman modular, jika sebuah modul dapat dipahami sebagai unit yang berdiri sendiri (tanpa referensi dari modul lain), maka modul akan lebih mudah dibangun dan diubah. Kontinuitas modular, Bila perubahan kecil pada persyaratan sistem menyebabkan perubahan kecil pada modul individual dan bukan perubahan sistem secara luas, maka pengaruh dari efek samping yang disebabkan oleh kesalahan oleh perubahan dapat diminimalkan. Proteksi modular, Bila terjadi kondisi yang menyimpang pada modul tersebut, pengaruh dari efek samping yang disebabkan oleh kesalahan akan diminimalkan. Akhirnya penting untuk dicatat bahwa suatu sistem dapat di desain secara modular, bahkan juga bila implementasinya harus “monolistik”. Ada situasi (misalnya perangkat lunak real time, perangkat lunak embedded) di mana kecepatan dan subrutin, prosedur) tidak dapat diterima. Dalam situasi seperti itu, perangkat lunak dapat dan harus dirancang dengan modularitas sebagai sebuah filosofi yang diprogram tidak kelihatan modular pada saat pertamanya, filosofi harus dijaga, dan program tersebut akan memberikan manfaat sistem modular.


Disini Terdapat beberapa Rangkaian Lengkap Dari Konsep dan Prinsip Design.

  • Desain software dan software engineering
  • Process desain
  • Prinsip desain
  • Konsep desain
  •  Abstraksi, perbaikan, modularity
  • Arsitektur software
  •  Hirarki control
  •  Partisi struktural
  •  Struktur data
  •  Procedur software
  •  Information yang tersembunyi
  • Desain modular yang efektif
  •  Ketergantungan fungsional, kohesi, penggabungan Desain heuristic untuk modularity efektif Model desain Dokumentasi desain.
Desain Software dan Software Engineering

Desain ->Langkah pertama dalam fase pengembangan untuk prodengineer manapun. Bertindak sebagai pondasi untuk semua software engineering dan pemeliharaan software dengan langkah-langkah yang mengikutinya.

Tujuan seorang perancang adalah menghasilkan suatu model(atau penyajian) dari sebuah entitas yang akan dibangun

Input desain software : Model analisa kebutuhan dan dokumentasi spesifikasi
Output desain software : Model desain dan dokumentasi spesifikasi desain

Desain - menerjemahkan kebutuhan ke model desain lengkap untuk sebuah produk software. 
- menyediakan representasi software yang dapat diduga untuk kualitas. 

Desain Software

Sejumlah metode desain dapat digunakan untuk menghasilkan desain software:
- Desain data: mentransformasi model domain informasi ke struktur data
- Desain arsitektur: menggambarkan relasi antar elemen struktural utama program
- Desain interface : mendeskripsikan bagaimana software berkomunikasi with user
- Desain prosedur: mentransformasikan elemen structural arsitektur program ke sebuah deskripsi prosedur dari komponen software. 

Evolusi desain software:
- Konstruksi program modular[DEN73] dan metode perbaikan top-down[WIR71].
- Pemrograman terstruktur [DAH71, MIL72].
- Perpindahan data flow/data structure ke sebuah defenisi desain[JAC75][WAR74].
- Pendekatan berorientasi object[JAC92][GAM95].

Fitur umum metode desain software:
- Sebuah mekanisme untuk perpindahan sebuah model analisa ke representasi desain
Sebuah notasi untuk merepresentasi komponen fungsional dan interface-nya. 
Heuristic untuk perbaikan dan partisi
Panduan untuk assessment kualitas
11
  • Evaluasi “iterasi pertama” dari struktur program untuk mengurangi perangkaian dan meningkatkan kohesi.
  • Usahakan meminimalkan struktur dengan fan-out yang tinggi; usahakan untuk melakukan fan-in pada saat kedalaman (depth) bertambah.
  • Jagalah supaya lingkup efek dari suatu model ada dalam lingkup control.
  • Evaluasi interface modul untuk mengurangi kompleksitas dan redundansi.
  • Tetapkan modul-modul yang fungsinya dapat diprediksi, tetapi hindari modul yang terlalu restriktif.
  • Usahakan modul-modul “entri kontrol” dengan menghindari “hubungan patalogis”
  • Kemaslah software berdasarkan batasan desain dan persyaratan probabilitas.

Proses Desain

Desain software --> sebuah proses iteratif dimana kebutuhan diterjemahkan ke sebauh “blueprint” untuk mengkonstruksi software.

Desain direpresentasikan pada level atas abstraction. Saat iterasi desain terjadi, perbaikan subsequent membawa ke representasi desain pada level abstraksi yang lebih bawah. 

Kualitas desain sangat penting. Dua metode digunakan untuk mengecek kualitas: 
a) Tinjauan ulang teknis formal, dan b) desain walkthrough

Tiga fitur umum sebuah desain yang baik dari McGlaughlin’s [McG91]:
- Desain harus mengimplementasikan semua kebutuhan(eksplisit/implisit)
- Desain harus dapat dibaca dan dimengerti 
- Desain harus menyediakan suatu gambar lengkap software pada aspek aspek data, fungsi dan perilaku.

Kualitas Desain

Untuk mengevaluasi sebuah desain software, sebauh criteris kualitas desain dapat digunakan. 

Berikut panduan untuk sebuah desain yang baik:
- Sebuah desain harus A design should exhibit a hierarchical organization about software
- Sebuah desain harus modular berdasarkan pada partisi logical.
Sebuah desain terdiri dari data dan abstraksi prosedural. 
Sebuah desain harus membawa ke modul dengan fitur fungsional yang independen. 
Sebuah desain harus membawa interface yang sederhana antar modul. 
Sebuah desain harus diturunkan menggunakan metode yang dapat berulang. 

Proses desain software memacu desain yang baik dalam aplikasi dengan prinsip desain fundamental, metodologi yang sistematik, dan melalui review(pengulangan). 

Prinsip Desain

David [DAV95] memaparkan sekumpulan prinsip untuk desain software:

- Proses desain seharusnya tidak bertahan dari “tunnel vision”.
- Desain harus dapat di trace ke model analisa. 
- Desain seharusnya tidak menemukan/invent wheel.
- Desain harus “memperkecil jarak intellectual” antara software dan masalah-masalah pada dunia nyata.
- Desain harus mengeluarkan uniformity dan integrasi.
- Desain harus terstruktur untuk mengakomodasi perubahan. 
- Desain harus terstruktur untuk mendegradasi secara halus(degrade gently).
- Desain bukan coding.
- Desain harus di-assessed untuk kualitas.
Desain harus diulang untuk meminimalis kesalahan konsep. 

Faktor kualitas eksternal: diobservasi oleh user. 
Faktor kualitas internal: penting untuk engineer. 

Konsep Desain

Abstraksi: 

Tiap langkah pada proses software engineering adalah sebuah perbaikan pada tingkatan abstraksi dari solusi software.

- Abstraksi data: Sekumpulan data
- Abstraksi prosedural: 
Satu urutan instruksi pada sebuah fungsi spesifik
- Abstraksi kontrol:
Sebuah program mengkontrol mekanisme tanpa menspesifikasikan detail internal. 

Refinement(perbaikan): Perbaikan sebenarnya adalah sebuah proses dari elaborasi. 

Stepwise dari perbaikan adalah sebuah strategi desain top-down yang dikeluarkan oleh Niklaus [WIR71].
Arsitektur sebuah program dikembangkan dengan sukses memperbaiki 
level detail procedural. 

Proses perbaikan program analog terhadap proses perbaikan dan partisi yang digunakan selama analisa kebutuhan. Perbedaan utama berada pada level detail implementasi, disamping pendekatannya. 

Abstraksi dan perbaikan secara komplemen dikonsep. 
Abstraksi memungkinkan seorang desainer untuk menspesifikasi prosedur dan data w/o detail. 
Perbaikan membantu desainer untuk me-reveal detail low-level.

Konsep Desain - Modularity

Konsep modularity telah dipakai selama hampir empat dekade.
Software dibagi komponen dengan nama dan alamat yang berbeda, disebut modul. 
Meyer [MEY88] mendefenisikan lima kriteria yang memungkinkan kita mengevaluasi sebuah metode desain dengan bergantung kepada kemampuannya mendefenisikanfive sebuah sistem modular efektif:
Modular decomposability: sebuah metode desain menyediakan sebuah mekanisme sistematik untuk men- decompose atau membagi masalah ke sub-masalahà mengurangi kompleksitas dan mendapatkan modularity

Modular composability: sebuah metode desain memungkinkan komponen desain yang telah ada dirakit ke sebuah sistem baru. 

Modular understandability: sebuah modul dapat dimengerti sebagai sebuah unit yang berdiri sendiri dan akan lebih mudah membangun dan mengubahnya. 

Modular continuity: perubahan kecil terhadap kebutuhan sistem menghasilkan perubahan pada tiap modul, dibanding perubahan system-wide.


Modular protection: sebuah kondisi aberrant terjadi dalam sebuah modul dan efeknya di-constrain
dalam modul.

Arsitektur Software

Arsitektur software adalah struktue hirarki dari komponen program components dan interaksinya. 

Shaw dan Garlan [SHA95a] menggambarkan sekumpulan properti desain arsitektur:

Properti structural : Desain arsitektur mendefenisikan komponen sistem dan interaksinya. 

Properti extra-functional : Desain arsitektur harus meng-address bagaimana arsitektur desain menerima kebutuhan untuk performance, kapasitas, ketersediaan(reliability), adaptability, keamanan.

Kumpulan sistem yang berhubungan:
desain arsitektur harus menggambar pola yang dapat diulang pada desain dengan sistem yang sama. 


Metode desain arsitektural yang berbeda: 

Model structural: merepresentasikan arsitektur sebagai sebuah koleksi terorganisir dari komponen

Model framework: meningkatkan level desain abstraksi dengan mengidentifikasi secara berulang 
framework desain arsitektur(pola-pola)

Model dinamis: meng-address aspek-aspek perilaku arsitektur program

Model prosess: fokus pada desain bisnis atau proses teknis

Model functional: dapat digunakan untuk merepresentasikan hierarki fungsional sebuah sistem

Partisi Structural

Struktur program harus dipartisi secara horizontal dan vertikal. (Gambar 13.4)

(1)Partisi horizontal menggambarkan cabang-cabang yang terbagi dari hierarki modular untuk tiap fungsi program utama. 

Cara termudah adalah mempartisi sebuah sistem menjadi:
input, transformasi data(pemrosesan), dan output

Keuntungan dari partisi horizontal:
- mudah untuk diuji, di-maintain, dan extend
- efek yang lebih kecil pada perubahan propagasi atau error propagasi

Kerugian: lebih banyak data dilewatkan melalui interface modul 
--> menyulitkan kontrol keseluruhan dari aliran program

(2) Partisi vertical memaparkan kontrol dan work harus terdistribusi top-down dalam struktur program.

Keuntungan: baik pada kesesuain untuk perubahan: 
- mudah untuk me-maintain perubahan
- mengurangi pengaruh perubahan dan propagasi. 

Desain Modular Efektif

Informasi yang disimpan: Modul-modul seharusnya dispesifikasi dan didesain sehingga detail internal dari modul darus dapat terlihat atau dapat diakses terhadap modul lainnya. 

Keuntungan utama: mengurangi pengaruh perubahan pada testing(pengujian) dan maintenance(perawatan). 

Independen fungsional: Mendesain modul-modul berdasarkan fitur fungsional independen. 

Keuntungan utama: modularity efektif

Cohesion: sebuah ekstensi alami dari konsep informasi yang disimpan sebuah modul dapat menampilkan sejumlah tusk

Sebuah modul cohesive menampilkan sebuha task tunggal dalam sebuah prosedur dengan interaksi kecil dengan lainnya. 

Goal: untuk mencapai cohesion yang tinggi untuk modul-modul pada sebuah sistem. 

Tipe-tipe yang berbeda dari cohesion:
- coincidentally cohesive: sekumpulan task yang berhubungan satu sama lain secara bebas. 
- logically cohesive: koneksi logical antara elemen-elemen pemrosesan
- communication cohesion: data di-share antar elemen-elemen pemrosesan
 - procedural cohesion: pemesanan antara elemen-elemen pemrosesan

9



Desain Modular Efektif

Coupling: (Gambar 13.8)
Suatu ukuran interkoneksi antar modul-modul dalam sebuah struktur program.
Coupling tergantung pada kompleksitas interface antar modul. 

Goal: mencoba untuk coupling terendah yang mungkin antar modul. 

Coupling yang baik à mengurangi atau mencegah pengaruh perubahan dan efek ripple.
à mengurangi biaya pada perubahan program, testing, 
maintenance

Tipe-tipe coupling:

- data coupling: parameter passing atau interaksi data
- control coupling: share logical kontrol yang berhubungan (untuk sebuah data kontrol) 
- common coupling: sharing data umum
- content coupling: modul, penggunaan data atau pengontrolan
informasi di-maintain modul lain.
10

Senin, 16 Oktober 2017

DATABASE II dbms




Hasil gambar untuk dbms dan informasi





1. APA ITU DATA?

Pengertian data adalah kumpulan kejadian yang diangkat dari suatu kenyataan (fakta), dapat berupa angka-angka, huruf, simbol-simbol khusus, atau gabungan dari ketiganya. Data masih belum dapat 'bercerita' banyak sehingga perlu diolah lebih lanjut. Pengertian data juga bisa berarti kumpulan file atau informasi dengan tipe tertentu, baik suara, gambar atau yang lainnya. Menurut kamus oxford definis data adalah "facts or information used in deciding or discussing something". Terjemahan bebasnya: "fakta atau informasi yang digunakan dalam menentukan atau mendiskusikan sesuatu". Juga bisa berarti "information prepared for or stored by a computer" dalam bahasa Indonesia berarti "informasi yang disiapkan untuk atau disimpan oleh komputer". Menurut Kamus Besar Bahasa Indonesia pengertian data adalah keterangan yang benar dan nyata. Atau keterangan atau bahan nyata yang dapat dijadikan bahan kajian (analisis atau kesimpulan).

2. APA ITU INFORMASI?

Informasi adalah Sekumpulan data/ fakta yang diorganisasi atau diolah dengan cara tertentu sehingga mempunyai arti bagi penerim. Data yang telah diolah menjadi sesuatu yang berguna bagi si penerima maksudnya yaitu dapat memberikan keterangan atau pengetahuan. Dengan demikian yang menjadi sumber informasi adalah data. Informasi dapat juga di katakan sebuah pengetahuan yang diperoleh dari pembelajaran, pengalaman, atau instruksi.
Contoh informasi: dokumen dalam Microsoft exel, berbentuk spreadsheet seringkali digunakan untuk membuat sebuah informasi dari data yang terdapat di dalamnya, seperti laporan untung, rugi dan neraca adalah bentuk informasi dan angka yang terdapat di dalamnya adalah data. 

3. HUBUNGAN DATA DENGAN INFORMASI?


Hubungan data dan Informasi adalah , Informasi merupakan hasil dari pengolahan data menjadi bentuk yang lebih berguna bagi yang akan menerimanya, menggambarkan suatu kejadian-kejadian nyata dan dapat digunakan sebagai manfaat. Sebuah informasi actual diperoleh dari adanya data-data yang dikumpulkan dari sebuah peristiwa, penelitian atau pengawasan. Jadi informasi menjelaskan dari data yang ada menjadi kata – kata yang mudah dimengerti.

Pada intinya data adalah bahan baku informasi, dengan adanya data maka akan ada informasi, karena informasi merupakan hasil pengolahan dari data yang diorganisasikan , sehingga data dan informasi sangat berhubungan erat.

4. APA ITU DATABASE?

database adalah sekumpulan data yang sudah disusun sedemikan rupa dengan ketentuan atau aturan tertentu yang saling berelasi sehingga memudahkan pengguna dalam mengelolanya juga memudahkan memperoleh informasi. Selain itu adapula yang mendefinisikan database sebagai kumpulan file, tabel, atau arsip yang saling terhubung yang disimpan dalam media elektronik. Beberapa manfaat database yang bisa kita dapatkan antara lain:
Manfaat Penggunaan Database
  • Kecepatan dan Kemudahan
Database memiliki kemampuan dalam menyeleksi data sehingga menjadi suatu kelompok yang terurut dengan cepat. Hal inilah yang ahirnya dapat menghasilkan informasi yang dibutuhkan secara cepat pula. Seberapa cepat pemrosesan data oleh database tergantung pula pada perancangan databasenya.
  • Pemakaian Bersama-sama
Suatu database bisa digunakan oleh siapa saja dalam suatu perusahaan. Sebagai contoh database mahasiswa dalam suatu perguruan tinggi dibutuhkan oleh beberapa bagian, seperti bagian admin, bagian keuangan, bagian akademik. Kesemua bidang tersebut membutuhkan database mahasiswa namun tidak perlu masing-masing bagian membuat databasenya sendiri, cukup database mahasiswa satu saja yang disimpan di server pusat. Nanti aplikasi dari masing-masing bagian bisa terhubung ke database mahasiswa tersebut.
  • Kontrol data terpusat
Masih berkaitan dengan point ke dua, meskipun pada suatu perusahaan memiliki banyak bagian atau divisi tapi database yang diperlukan tetap satu saja. Hal ini mempermudah pengontrolan data seperti ketika ingin mengupdate data mahasiswa, maka kita perlu mengupdate semua data di masing-masing bagian atau divisi, tetapi cukup di satu database saja yang ada di server pusat.
  • Menghemat biaya perangkat
Dengan memiliki database secara terpusat maka di masing-masing divisi tidak memerlukan perangkat untuk menyimpan database berhubung database yang dibutuhkan hanya satu yaitu yang disimpan di server pusat, ini tentunya memangkas biaya pembelian perangkat.
  • Keamanan Data
Hampir semua Aplikasi manajemen database sekarang memiliki fasilitas manajemen pengguna. Manajemen pengguna ini mampu membuat hak akses yang berbeda-beda disesuaikan dengan kepentingan maupun posisi pengguna. Selain itu data yang tersimpan di database diperlukan password untuk mengaksesnya.
  • Memudahkan dalam pembuatan Aplikasi baru
Dalam poin ini database yang dirancang dengan sangat baik, sehingga si perusahaan memerlukan aplikasi baru tidak perlu membuat database yang baru juga, atau tidak perlu mengubah kembali struktur database yang sudah ada. Sehingga Si pembuat aplikasi atau programmer hanya cukup membuat atau pengatur antarmuka aplikasinya saja.
Dengan segudang manfaat dan kegunaan yang dimiliki oleh database maka sudah seharusnya semua perusahaan baik itu perusahaan skala kecil apalagi perusahaan besar memilki database yang dibangun dengan rancangan yang baik. Ditambah dengan pemanfaatan teknologi jaringan komputer maka manfaat database ini akan semakin besar. Penggunaan database sekaligus teknologi jaringan komputer telah banyak digunakan oleh berbagai macam perusahaan, contohnya saja perbankan yang memiliki cabang di setiap kotanya. Perusahaan Bank tersebut hanya memiliki satu database yang disimpan di server pusat, sedangkan cabang-cabangnya terhubung melalui jaringan komputer untuk mengakses database yang terletak di sever pusat tersebut.
5. HUBUNGAN DATABASE DENGAN INFORMASI?
Hubungan data dan Informasi adalah , Informasi merupakan hasil dari pengolahan data menjadi bentuk yang lebih berguna bagi yang akan menerimanya, menggambarkan suatu kejadian-kejadian nyata dan dapat digunakan sebagai manfaat. Sebuah informasi actual diperoleh dari adanya data-data yang dikumpulkan dari sebuah peristiwa, penelitian atau pengawasan. Jadi informasi menjelaskan dari data yang ada menjadi kata – kata yang mudah dimengerti.

Pada intinya data adalah bahan baku informasi, dengan adanya data maka akan ada informasi, karena informasi merupakan hasil pengolahan dari data yang diorganisasikan , sehingga data dan informasi sangat berhubungan erat.

tujuan percancangan database:
  • untuk memenuhi informasi yang berisikan kebutuhan-kebutuhan user secara khusus dan aplikasi-aplikasinya
  • memudahkan pengertian struktur informasi
  • mendukung kebutuhan-kebutuhan pemrosesan dan beberaoa obyek penampilan(response time,processing time,dan storage space)database life cycle
6. PERANCANGAN DATABASE KONSEPTUAL

merupakan langkah awal dalam perancangan database.pada tahap ini kita hanya menentkan konsep-konsep yang berlaku dalam sistem database yang akan di bangun.langkah-langkah utama dalam perancangan secara konseptual adalah sebagai berikut:
  1. prosedur kerja secara keseluruhan yang berlaku pada sistem yang berjalan
  2. informasi(output)apa yang diinginkan database?
  3. apa saja kelemahan-kelemahan dari sistem berjalan?
  4. pengembangan sistem di masa yang akan datang?
  5. bagaimana tingkat keamanan data saat ini?
  6. siapa saja yang terlibat dalam sistem berjalan?
  7. apa saja input yang diperlukan?
7. APA ITU ERD?
  
Pengertian dari ERD (Entity Relationship Diagram) adalah suatu model untuk menjelaskan hubungan antar data dalam basis data berdasarkan objek-objek dasar data yang mempunyai hubungan antar relasi.
ERD untuk memodelkan struktur data dan hubungan antar data, untuk menggambarkannya digunakan beberapa notasi dan simbol

CONTOH DARI GAMBAR ERD: 

8. GAMBARKAN DAN JELASKAN DARI ERD BESERTA SIMBOL-SIMBOLNYA?

  1. Entitas (Entity)
    entitas (entity)Entitas ialah suatu objek yang dapat dibedakan dengan objek lainnya. Entitas berfungsi untuk memberikan identitas pada entitas yang memiliki label dan nama. Entitas memiliki bentuk persegi panjang.
  2. Relasi/Hubungan Antar Entitas (relationship)relasi (relationship)Relasi ialah hubungan yang terjadi antara 1 entitas atau lebih yang tidak mempunyai fisik tetapi hanya sebagai konseptual. Dan berfungsi untuk mengetahui jenis hubungan yang ada antara 2 file. Relisi memiliki bentuk belah ketupat.
  3. AtributatributAtribut ialah karakteristik dari entitas atau relasi yang menyediakan penjelasan detil tentang entitas atau relasi tersebut. Dan berfungsi untuk memperjelas atribut yang dimiliki oleh sebuah entitas. Atribut memiliki bentuk lingkarang lebih tepatnya elips.
  4. Alur
    alurAlur memiliki fungsi untuk menghubungkan atribut dengan entitas dan entitas dengan relasi. Dan berbentuk garis.
Di bawah ini adalah contoh ERD Penyewaan mobil :





Design modular dan Design dokumentasi

 Konsep modularitas dalam perangkat lunak komputer telah didukung selama hampir empat dekade. Arsitektur perangkat lunak memasukka...