Perancangan Perangkat Lunak -...

51
Perancangan Perangkat Lunak I. Pendahuluan II. Siklus Pengembangan Perangkat Lunak Dr. Ahmad Sabri Universitas Gunadarma

Transcript of Perancangan Perangkat Lunak -...

Page 1: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Perancangan Perangkat LunakI. Pendahuluan

II. Siklus Pengembangan Perangkat Lunak

Dr. Ahmad SabriUniversitas Gunadarma

Page 2: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

• Software tidak hanya mengacu kepada program komputer• Software mencakup 3 hal

– Dokumentasi: mencakup spesifikasi kebutuhan fungsional, spesifikasi kebutuhan sistem, dokumen disain, dan dokumen pengujian

– Manual prosedur operasi standar mencakup manual instalasi software, manual operasi software, dan manual administrator sistem

– File-file konfigurasi software agar software dapat beroperasi dengan benar.

Page 3: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Berdasarkan peruntukannya, terdapat 3 jenis software:1. Software generik: adalah produk standalone yang dikembangkan

oleh perusahaan software seperti Microsoft, Oracle, IBM, dll, untuk dijual di pasaran. Software ini umumnya dapat beroperasi pada berbagai sistem operasi. Contoh: MS Office.

2. Software kustomisasi: diproduksi oleh perusahaan pengembang software berdasarkan kebutuhan spesifik klien mereka. Contoh: software ticketing untuk PT KAI, aplikasi m-banking untuk Bank XYZ, software kependudukan untuk Pemprov, dll.

3. Software tertanam (embedded): software yang sudah built-in pada perangkat elektronik sehingga dapat berjalan secara otomatis, seperti mesin cuci, oven microwave, dll.

Page 4: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Software besar

• Membutuhan lebih banyak waktu, usaha, dan dana untuk mendisain dan mengembangkannya

• Membutuhkan sumber daya manusia yang banyak• Membutuhkan kode-kode program yang banyak

Artinya: pengembangan software membutuhkan SDM, proses, dan teknologi, serta membutuhkan serangkaian tahapan aktivitas.Sehingga: Software Development adalah sebuah proyek.

Page 5: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

• Berdasarkan perkembangan saat ini, software tidak hanya terdiri dari OS dan aplikasi

• Kategori yang sedang berkembang saat ini:– open world computing– open source software– NoSQL software– Multitenant software

Page 6: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

• Semakin besar ukuran software (>100.000 baris coding), maka pengembangannya melibatkan banyak orang. Oleh karena itu harus mengikuti tahapan-tahapan rekayasa yang sistematis.

• Selama program ditangani secara manual dan tanpa tahapan yang benar, maka persentasi error sangat tinggi.

• Programmer jenius saja tidak cukup. Mereka harus mengikuti metodologi software engineering untuk menghasilkan software berkualitas.

Page 7: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Krisis SoftwareStudi di AS pada 1979 mengungkap:• Tidak ada standar dalam pemrograman menyebabkan sulitnya melakukan

debugging atas error yang terjadi.• Tidak adanya standar dalam pemrograman komputer menyebabkan

kenaikan biaya software sebesar 45%, karena software tidak sepenuhnya memenuhi kebutuhan user.

Studi oleh IBM tahun 1994 mengungkap:• 55% dari proyek software melebihi biaya yang ditetapkan• 68% melampaui jadwal yang telah ditetapkan• 88% memerlukan modifikasi setelah penyerahan kepada user. Hal ini akibat

kebutuhan user tidak dipahami secara utuh oleh developer

Page 8: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Setelah berkembangnya aplikasi berbasis Web, masalah ini semakin berlipat ganda. • Sekitar 63% aplikasi web melampaui budget• Sekitar 73% melampaui jadwal• Sekitar 53% tidak memberikan fungsi yang diinginkan• Sekitar 84% tidak memberikan keuntungan

(Cutter Consortium, 2000)

Page 9: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

• Para profesional dan peneliti menyadari bahwa problem ini dapat teratasi dengan menggunaan metodologi ilmiah dalam pengembangan software.

• Metodologi ini menerapkan metode, tools, dan prosedur yang terdefinisi dengan baik dan diterapkan secara terorganisir dan disiplin

• Penerapan metodologi ini dalam pengembangan software disebut software engineering

Page 10: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Software Engineering (SE) terdiri dari:• Metode: mecakup aturan, langkah-langkah, dan teknik dalam

menyelesaikan siklus pengembangan software (software development life cycle)

• Tools: digunakan untuk mengotomasi metode. Tools ini berguna untuk membuat model dari disain software

• Prosedur: merupakan variasi urutan dari metode (waterfall, spiral, iteratif, dll)

Page 11: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

• Singkatnya: Software Engineering menerapkan prinsip-prinsip rekayasa, manajemen, metode, tools, dan prosedur untuk menghasilkan software berkualitas tinggi dalam periode dan batasan-batasan yang telah ditentukan.

Page 12: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

• Sasaran dari software engineer adalah menghasilkan software berkualitas tinggi

• Beberapa contoh produk software:– Accounts receivable processing– Order processing– Inventory monitoring and maintenance– Decision support for overnight funds– investment– Collateralized mortgage obligatien cost determination– Insurance reimbursement processing– Funds transfer processing– Early warning system for problems with critical success factors

Page 13: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Produk SE yang berkualitas adalah yang...• tepat waktu• terjangkau budget• fungsional (sesuai dengan apa yang diinginkan)• ramah pengguna• bebas kesalahan• fleksibel• mudah diadaptasikan

Page 14: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Siklus Pengembangan Perangkat Lunak/SPPL(Software Development Life Cycle /SDLC)

SPPL adalah serangkaian tahapan yang dilalui dalam mengembangkan perangkat lunak

Page 15: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Tahapan SPPL1. Analisa kelayakan

– Feasibility: apakah proyek ini dapat dilakukan?– Analisa pasar: apakah ada potensi pasar untuk proyek ini?

2. Kebutuhan– fungsional dan non-fungsional– menghimpun kebutuhan yang diinginkan pelanggan

3. Perencanaan– analisa biaya: berapa perkiraan biayanya?– work-breakdown: membagi kegiatan menjadi sub-subkegiatan yang lebih

kecil– penjadwalan: membuat jadwal untuk tahapan pengembangan– Pendefinisian software quality assurance: memastikan bahwa setiap tahap

dilalui dengan standar yang ditetapkan.

Page 16: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

4. Disain– disain arsitektural: struktur dari sistem– disain interface antar sistem– disain algoritma untuk setiap bagian

5. Implementasi: proses coding6. Pengujian/testing

– uji unit: pengujian setiap unit software oleh masing-masing developer– uji integrasi: pengujian terhadap penggabungan unit-unit software– uji sistem: pengujian software pada lingkungan yang sesuai dengan

lingkungan operasinya– uji alpha: pengujian oleh pelanggan di tempat developer– uji beta: pengujian oleh pelanggan di tempat pelanggan– uji akseptasi: pengujian apakah s/w ini dapat diterima oleh pelanggan– uji regresi

Page 17: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

7. Delivery– instalasi di lokasi pengguna– pelatihan bagi pengguna– layanan help desk

8. Maintenance– memperbaharui dan meningkatkan kemampuan software untuk

memastikan pemanfaatan yang berkelanjutan.

Page 18: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Beberapa model SPPL

1. Code and FixBiasanya digunakan untuk software kecil, atau dengan deadline yang sangat singkat. Developer menulis kode dan memperbaiki error yang muncul. Tidak ada analisa kebutuhan dan disain

Page 19: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

2. Waterfall

Page 20: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

3. V-model

Page 21: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

4. Iteratif

Page 22: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Aplikasi

• Aplikasi adalah kumpulan dari program yang mengotomasi suatu tugas

Page 23: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Aspek-aspek dalam Aplikasi

• Karakteristik• Ketanggapan (responsiveness)• Jenis

Page 24: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Aspek Karakteristik

Karakteristik adalah aspek umum yang ada pada semua aplikasi, yaitu:1. Data2. Proses3. Batasan4. Antarmuka (interface)

Page 25: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

1. Data

Semua aplikasi:• Bekerja atas data dan membutuhkan input, output,

penyimpanan dan penarikan data.• memuat perintah-perintah (proses) yang mentransformasikan

data menjadi informasi berdasarkan batasan-batasan yang ditetapkan

• memiliki beberapa antarmuka manusia dan antarmuka komputer

Page 26: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini
Page 27: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

• Entitas adalah objek yang dinyatakan dalam sebuah deskripsi• Data adalah deskripsi spesifik atas entitas • Kumpulan deskripsi sejenis membentuk atribut• Contoh entitas: pelanggan, mahasiswa• Contoh atribut: alamat, tanggal lahir

Page 28: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Data

Input

Output

Penyimpanan dan penarikan

logikal

fisik

relasional

hirarkis

berorientasi objek

jaringan

Page 29: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Contoh hubungan Entitas - Atribut

Page 30: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Contoh relasi antar-entitas

Page 31: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Contoh detail relasi antar-entitas

Page 32: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Pemodelan data secara hirarki antar entitas

Page 33: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Pemodelan data secara networked

Page 34: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Pemodelan data secara object oriented

Page 35: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

2. Proses

Proses adalah barisan instruksi ataupun sekumpulan kejadian yang dioperasikan pada data

Page 36: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

3. Batasan

Batasan didefinisikan dalam 5 kategori:1. Prerequisites: kondisi yang harus terpenuhi agar proses

dijalankan2. Postrequisites: kondisi yang harus dipenuhi agar proses

dinyatakan lengkap3. Waktu4. Struktur5. Kontrol6. Inferensi

Page 37: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Contoh batasan prerequisites

Page 38: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Contoh batasan berdasar waktu

Page 39: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Contoh batasan berdasar struktur

Page 40: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

4. Antarmuka

Jenis:1. Manusia2. Komputer/terotomasi

Page 41: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

• Antarmuka manusia adalah cara aplikasi berkomunikasi dengan manusia sebagai pengguna.

• Paling sulit dirancang dan sangat rentan terhadap perubahan teknologi

Page 42: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

rancangan yang buruk rancangan yang baik

Page 43: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

• Antarmuka komputer/terotomasi adalah cara komputer berinteraksi dengan komputer/perangkat lain

• Antarmuka komputer cenderung berbeda-beda untuk pabrikan yang berbeda. Untuk mengatasinya, diperlukan standarisasi

• Contoh: – standar untuk antarmuka LAN didefinisikan oleh IEEE– standar untuk open system interface (OSI) didefinisikan oleh ISO

• Tidak terstandarkan: GUI

Page 44: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Aspek ketanggapan

Ketanggapan aplikasi (application responsiveness) berkaitan dengan berapa lama waktu yang dibutuhkan sistem untuk bereaksi dan memberi respon atas tindakan dari pengguna.

Page 45: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

3 jenis desain ketanggapan aplikasi:1. berorientasi batch2. on-line3. real-time

Page 46: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Aplikasi batch

• Aplikasi berdasar batch memproses transaksi secara berkelompok (batch).

• Transaksi yang masuk ditampung dalam periode waktu tertentu, setelah itu diproses pada jadwal yang telah ditentukan.

Page 47: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Alur pemrosesan aplikasi berdasar batch

Page 48: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Aplikasi on-line

• Pengertian on-line dalam konteks ini berbeda dengan pengertian on-line dalam konteks jaringan

• Pemrosesan secara on-line berarti: program tetap berada dalam memori, sehingga dapat langsung merespon transaksi tanpa loading kembali

Page 49: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Alur pemrosesan aplikasi dengan pendekatan on-line

Page 50: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Batch vs on-line

• Aplikasi berdasar batch: – passing data antar modul dilakukan dengan menggunakan file– tidak ada syntax controlling pada entri transaksi

• Aplikasi on-line: – passing data antar modul dilakukan secara langsung– ada syntax controlling pada entri transaksi

Page 51: Perancangan Perangkat Lunak - sabri.staff.gunadarma.ac.idsabri.staff.gunadarma.ac.id/Downloads/files/54809/Perancangan... · Setelah berkembangnya aplikasi berbasis Web, masalah ini

Aplikasi real-time

• Aplikasi real-time adalah aplikasi on-line di mana perubahan data direspon langsung oleh sistem, sehingga aplikasi memberikan informasi berdasarkan kondisi terkini dari data.

• Contoh: mesin ATM, mesin barcode, reservasi tiket pesawat, dll.