Nama : Khanif Maulana
Nim : 1117101511
Kelas : SP 4.2
Jawaban
1.
Tahapan Pengembangan perangkat lunak beserta penjelasan
A.
WATERFALL
Model Pengembangan Air Terjun (waterfall), merupakan paradigma model
pengembangan perangkat lunak paling tua, dan paling banyak dipakai. Model ini
mengusulkan sebuah pendekatan perkembangan perangkat lunak yang sistematik dan
sekunsial yang dimulai pada tingkat dan kemajuan sistem pada seluruh tahapan
analisis, desain , kode, pengujian, dan pemeliharaan.
Berikut merupakan tahapan-tahapan dari pengembangan perangkat lunak model
air terjun (waterfall):
a. Rekayasa dan Pemodelan Sistem/Informasi
Langkah pertama yaitu
dimulai dengan membangun keseluruhan elemen sistem dan memilah bagian-bagian
mana saja yang akan dijadikan bahan pengembangan perangkat lunak, dengan
memperhatikan hubungannya dengan Hardware, User,
dan Database.
b. Analisis Kebutuhan Perangkat Lunak
Pada proses analisis
kebutuhan perangkat lunak ini, dilakukan penganalisaan dan pengumpulan
kebutuhan sistem yang meliputi Domain informasi, fungsi yang dibutuhkan unjuk
kerja/performansi dan antarmuka. Hasil penganalisaan dan pengumpulan tersebut
didokumentasikan dan diperlihatkan kembali kepada pelanggan.
c. Desain
Selanjutnya pada
proses Desain, dilakukan penerjemahan syarat kebutuhan sebuah perancangan
perangkat lunak yang dapat diperkirakan sebelum dibuatnya proses pengkodean (coding).
Proses ini berfokus pada struktur data, arsitektur perangkat lunak,
representasi interface, dan detail algoritma prosedural.
d. Pengkodean
Pengkodean merupakan
proses menerjemahkan perancangan desain ke bentuk yang dapat dimengerti oleh
mesin (bahasa pemrograman).
e. Pengujian
Setelah Proses
Pengkodean selesai, dilanjutkan dengan proses pengujian pada program perangkat
lunak, baik Pengujian logika internal, maupun Pengujian eksternal fungsional
untuk memeriksa segala kemungkinan terjadinya kesalahan (bug) dan
memeriksa apakah hasil dari pengembangan tersebut sesuai dengan apa yang
diinginkan.
f. Pemeliharaan
Proses Pemeliharaan
merupakan bagian paling akhir dilakukan dari siklus pengembangan dan dilakukan
setelah perangkat lunak dipergunakan atau dipublikasikan.
Contoh penerapan dari
pengembangan model air terjun (waterfall) adalah sebuah program
pendaftaran online kesuatu instansi pendidikan, dengan demikian calon pendaftar
akan terbantu sekaligus kegiatan pendaftaran menjadi lebih efektif.
Kelebihan model waterfall:
·
Tahapan proses pengembangannya tetap (pasti), mudah diaplikasikan, dan
prosesnya teratur.
·
Cocok digunakan untuk produk software/program yang sudah jelas kebutuhannya
di awal, sehingga minim kesalahannya.
·
Software yang dikembangkan dengan metode ini biasanya menghasilkan kualitas
yang baik.
·
Dokumen pengembangan sistem sangat terorganisir, karena setiap fase harus
terselesaikan dengan lengkap dan sebelum melangkah ke fase berikutnya.
Kekurangan model waterfall:
Proyek yang sebenarnya
jarang mengikuti alur sekuensial seperti diusulkan, sehingga perubahan yang
terjadi dapat menyebabkan hasil yang sudah didapatkan tim pengembang harus
diubah kembali/iterasi sering menyebabkan masalah baru.
·
Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel,
karena komitmen harus dilakukan pada tahap awal proses.
·
Sulit untuk mengalami perubahan kebutuhan yang diinginkan oleh
customer/pelanggan.
·
Pelanggan harus sabar untuk menanti produk selesai, karena dikerjakan tahap
per tahap, dan proses pengerjaanya akan berlanjut ke setiap tahapan bila tahap
sebelumnya sudah benar-benar selesai.
·
Perubahan ditengah-tengah pengerjaan produk akan membuat bingung tim
pengembang yang sedang membuat produk.
·
Adanya waktu kosong (menganggur) bagi pengembang, karena harus menunggu
anggota tim proyek lainnya menuntaskan pekerjaannya.
B.
SPIRAL
Model ini mengadaptasi dari dua model perangkat lunak yang ada yaitu model
prototyping dengan pengulangannya dan model waterfall dengan
pengendalian dan sistematikanya. Model ini dikenal juga dengan sebutan Spiral
Boehm. Pengembang dalam model ini memadupadankan beberapa model umum tersebut
untuk menghasilkan produk khusus atau untuk menjawab persoalan-persoalan
tertentu selama proses pengerjaan suatu proyek.
Tahapan-tahapan dari model spiral ini dapat dijelaskan secara ringkas yaitu
sebagai berikut:
a. Tahap Liason
Tahap Liason merupakan tahap membangun komunikasi yang baik dengan calon
pengguna/pemakai.
b. Tahap Planning
Pada tahap Planning ini ditentukan sumber-sumber
informasi, batas waktu dan informasi-informasi yang dapat menjelaskan proyek
yang dikerjakan.
c. Tahap Analisis Resiko
Tahap ini mendefinisikan resiko, menentukan apa saja yang menjadi resiko
baik teknis maupun manajemen.
d. Tahap Rekayasa
Tahap rekayasa (engineering) ini merupakan tahap dimana prototype
dibuat.
e. Tahap Konstruksi
dan Pelepasan
Pada tahap ini dilakukan pembangunan perangkat lunak yang dimaksud, diuji,
diinstal dan diberikan sokongan-sokongan tambahan untuk keberhasilan proyek.
f. Tahap Evaluasi
Pelanggan/pemakai/pengguna biasanya dapat memberikan masukan berdasarkan
hasil yang didapat dari tahap engineering dan instalasi.
Kelebihan model
spiral:
·
mempertimbangkan resiko kemungkinan munculnya kesalahan sehingga sangat
dapat diandalkan untuk pengembangan perangkat lunak skala besar.
·
Pendekatan model ini dilakukan melalui tahapan-tahapan yang sangat baik
dengan menggabungkan model waterfall ditambah dengan pengulangan-pengulangan
sehingga lebih realistis untuk mencerminkan keadaan sebenarnya.
·
Baik pengembang maupun pemakai dapat cepat mengetahui letak kekurangan dan
kesalahan dari sistem karena proses-prosesnya dapat diamati dengan baik.
Kekurangan model
spiral:
·
Waktu yang dibutuhkan untuk mengembangkan perangkat lunak cukup panjang
demikian juga biaya yang besar.
·
Sangat tergantung kepada tenaga ahli yang dapat memperkirakan resiko.
·
Terdapat pula kesulitan untuk mengontrol proses. Sampai saat ini, karena
masih relatif baru, belum ada bukti apakah metode ini cukup handal untuk
diterapkan.
·
Meyakinkan konsumen (khusunya dalam situasi kontrak) bahwa pendekatan
evolusioner bisa dikontrol.
3.
PROTOTYPE
Metode Prototype merupakan suatu paradigma baru dalam metode pengembangan
perangkat lunak dimana metode ini tidak hanya sekedar evolusi dalam dunia
pengembangan perangkat lunak, tetapi juga merevolusi metode pengembangan
perangkat lunak yang lama yaitu sistem sekuensial yang biasa dikenal dengan
nama SDLC atau waterfall development model.
Dalam Model Prototype, prototype dari perangkat lunak yang dihasilkan
kemudian dipresentasikan kepada pelanggan, dan pelanggan tersebut diberikan
kesempatan untuk memberikan masukan sehingga perangkat lunak yang dihasilkan
nantinya betul-betul sesuai dengan keinginan dan kebutuhan pelanggan.
Tahapan-tahapan dalam
model prototype dijelaskan secara ringkas sebagai berikut:
a.
Pengumpulan Kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh
perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem
yang akan dibuat.
b.
Membangun Prototyping
Membangun prototyping dilakukan dengan membuat perancangan sementara yang
berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan
format output).
c.
Evaluasi Prototyping
Evaluasi ini dilakukan oleh pelanggan, apakah prototyping yang sudah
dibangun sudah sesuai dengan keinginan pelanggan atau belum. Jika sudah sesuai,
maka langkah selanjutnya akan diambil. Namun jika tidak, prototyping direvisi
dengan mengulang langkah-langkah sebelumnya.
d.
Mengkodekan Sistem
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam
bahasa pemrograman yang sesuai.
e.
Menguji Sistem
Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai,
kemudian dilakukan proses Pengujian. Pengujian ini dilakukan dengan White Box, Black Box, Basis Path,
pengujian arsitektur, dll.
f.
Evaluasi Sistem
Pelanggan mengevaluasi apakah perangkat lunak yang sudah jadi sudah sesuai
dengan yang diharapkan . Jika ya, maka proses akan dilanjutkan ke tahap
selanjutnya, namun jika perangkat lunak yang sudah jadi tidak/belum sesuai
dengan apa yang diharapkan, maka tahapan sebelumnya akan diulang.
g.
Menggunakan Sistem
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk
digunakan.
Contoh penerapan
prototyping, Sebuah rumah sakit ingin membuat aplikasi sistem database untuk
pendataan pasiennya. Seorang atau sekelompok programmer akan melakukan
identifikasi mengenai apa saja yang dibutuhkan oleh pelanggan, dan bagaimana
model kerja program tersebut. Kemudian dilakukan rancangan program yang
diujikan kepada pelanggan. Hasil/penilaian dari pelanggan dievaluasi, dan
analisis kebutuhan pemakai kembali di lakukan.
Kelebihan prototyping:
·
Pelanggan berpartisipasi aktif dalam pengembangan sistem, sehingga hasil
produk pengembangan akan semakin mudah disesuaikan dengan keinginan dan
kebutuhan pelanggan.
·
Penentuan kebutuhan lebih mudah diwujudkan.
·
Mempersingkat waktu pengembangan produk perangkat lunak.
·
Adanya komunikasi yang baik antara pengembang dan pelanggan.
·
Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan.
·
Lebih menghemat waktu dalam pengembangan sistem.
·
Penerapan menjadi lebih mudah karena pelanggan mengetahui apa yang
diharapkannya.
Kekurangan
prototyping:
·
Proses analisis dan perancangan terlalu singkat.
·
Biasanya kurang fleksibel dalam mengahadapi perubahan.
·
Walaupun pemakai melihat berbagai perbaikan dari setiap versi prototype,
tetapi pemakai mungkin tidak menyadari bahwa versi tersebut dibuat tanpa
memperhatikan kualitas dan pemeliharaan jangka panjang.
·
Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan
sistem operasi yang tidak relevan dan algoritma yang tidak efisien.
4.
EXTREME PROGRAMMING
Extreme Programming (XP) merupakan
suatu pendekatan yang paling banyak digunakan untuk pengembangan perangkat
lunak cepat. Tahapan-tahapan pada extreme programming yaitu:
a.
Perencanaan
Pada tahap perencanaan ini dimulai dari pengumpulan kebutuhan yang membantu
tim teknikal untuk memahami konteks bisnis dari sebuah aplikasi. Selain itu
pada tahap ini juga mendefinisikan outputyang akan dihasilkan,
fitur yang dimiliki oleh aplikasi dan fungsi dari aplikasi yang dikembangkan.
b.
Desain
Metode ini menekankan desain aplikasi yang sederhana, untuk mendesain
aplikasi dapat menggunakan Class-Responsibility-Collaborator (CRC) cards yang
mengidentifikasi dan mengatur classpada object–oriented.
-Pengkodean
Konsep utama dari
tahapan pengkodean pada extreme programming adalah pair programming,melibatkan
lebih dari satu orang untuk menyusun kode.
-Pengujian
Pada tahapan ini lebih
fokus pada pengujian fitur dan fungsionalitas dari aplikasi.
5.
EVOLUSIONER
Model pengembangan
evolusioner ini berdasarkan pada implementasi awal yang akan menghasilkan
komentar pemakai, sehingga dapat dilakukan perbaikan melalui banyak versi
sampai sistem yang mencukupi dapat dikembangkan. Selain memiliki
aktivitas-aktivitas yang terpisah, model ini memberikan umpan balik dengan
cepatdan serentak.
Ada 2 tipe dalam model
pengembangan evolusioner :
1.
Pemrograman Evolusioner.
Dalam tipe
ini, tujuan proses adalah bekerja sama dengan konsumen untuk menghasilkan
kebutuhan-kebutuhan dan menyampaikan sistem akhir kepada
pemakai/konsumen. Pengembangan dimulai dengan bagian-bagian sistem yang
dimengerti. Sistem dikembangkan melalui penambahan features sesuai yang
diusulkan oleh konsumen.
2.
Permodelan
Dalam tipe yang kedua ini, tujuan proses adalah mengetahui
kebutuhan-kebutuhan konsumen dan mengembangkan definisi kebutuhan yang lebih
baik untuk sistem. Model atau contoh difokuskan pada penelitian
bagian-bagian kebutuhan konsumen yang kurang dimengerti.
Pengembangan
evolusioner lebih cocok untuk:
·
Pengembangan sistem yang relatif kecil. Masalah-masalah mengenai perubahan
sistem yang ada dihindari dengan mengimplementasi ulang sistem keseluruhan
kapanpun perubahan yang signifikan diperlukan. Jika permodelan digunakan,
tidak terlalu mahal.
·
Pengembangan sistem yang memiliki masahidup yang relatif singkat. Di sini, sistem
dikembangkan untuk mendukung beberapa aktivitas yang dibatasi oleh waktu.
Contohnya sebuah sistem yang mungkin dikembangkan secara khusus untuk
peluncuran produk baru. Pengembangan sistem atau bagian-bagian dari sistem yang
besar dimana tidak memungkinkan untuk menyatakan spesifikasi secara
rinci. Contohnya sistem AI dan interface pemakai.
6.
AGILE
Agile Process merupakan sekelompok
aktifitas pembangunan perangkat lunak secara iteratif yang menekankan pada
aktifitas konstruksi (desain dan koding). Agile Process mengeliminasi
sebagian besar waktu untuk melakukan perencanaan sistem dan berusaha sebisa
mungkin mematuhi jadwal deliver sistem yang telah
dijanjikan. Requirements yang dibutuhkan secara langsung di-drive oleh
pelanggan itu sendiri, dan apabila terjadi perubahan terhadap requirements tersebut,
pengembang dituntut mampu beradaptasi dengan perubahan yang terjadi.
Adapun tahapan-tahapan
dari metode agile:
1.
Inception
Merupakan tahap untuk
mengidentifikasi sistem yang akan dikembangkan. Aktivitas yang dilakukan pada
tahap ini antara lain mencakup analisis sistem, perumusan target dari sistem
yang dibuat, identifikasi kebutuhan, perumusan kebutuhan pengujian, pemodelan
diagram UML, dan pembuatan dokumentasi.
2.
Elaboration
i.
Merupakan tahap untuk melakukan disain secara lengkap berdasarkan hasil
analisis di tahap inception. Aktivitas yang dilakukan pada tahap
ini antara lain mencakup pembuatan disain arsitektur subsistem, disain komponen
sistem, disain format data disain database, disain
antarmuka/tampilan, disain peta tampilan, penentuan design pattern yang
digunakan, pemodelan diagram UML, dan pembuatan dokumentasi.
3.
Construction
i.
Merupakan tahap untuk mengimplementasikan hasil disain dan melakukan
pengujian hasil implementasi. Pada tahap awal construction, ada
baiknya dilakukan pemeriksaan ulang hasil analisis dan disain, terutama disain
pada diagram sequence,class, component, dan deployment. Apabila
disain yang dibuat telah sesuai dengan analisis sistem, maka implementasi
dengan bahasa pemrograman tertentu dapat dilakukan. Aktivitas yang dilakukan
pada tahap ini antara lain mencakup pengujian hasil analisis dan disain (misal
menggunakan class responsibility collaborator untuk kasus
pemrograman berorientasi obyek), pendataan kebutuhan implementasi lengkap
(berpedoman pada identifikasi kebutuhan di tahap analisis), penentuan coding pattern yang
digunakan, pembuatan program, pengujian, optimasi program, pendataan berbagai
kemungkinan pengembangan / perbaikan lebih lanjut, dan pembuatan dokumentasi.
4.
Transition
a.
Merupakan tahap untuk menyerahkan sistem aplikasi ke konsumen (roll–out),
yang umumnya mencakup pelaksanaan pelatihan kepada pengguna dan testing beta
aplikasi terhadap ekspetasi penggunan.
2. Karakteristik Perangkat Lunak
Setiap
individu menilai perangkat lunak secara berbeda. Ini karena mereka terlibat
dengan perangkat lunak dengan cara yang berbeda. Misalnya, pengguna ingin
perangkat lunak tampil sesuai dengan kebutuhan mereka. Demikian pula,
pengembang (developer) yang terlibat dalam perancangan, pengkodean, dan
pemeliharaan perangkat lunak mengevaluasi perangkat lunak dengan melihat
karakteristik internalnya, sebelum mengirimkannya ke pengguna. Karakteristik
perangkat lunak dikelompokkan menjadi enam komponen utama.
·
Functionality: Mengacu pada tingkat
kinerja perangkat lunak terhadap tujuan yang telah ditentukan.
·
Reliability: Mengacu pada
kemampuan perangkat lunak untuk menyediakan fungsionalitas yang diinginkan
dalam kondisi tertentu.
·
Usability: Mengacu pada sejauh
mana perangkat lunak dapat digunakan dengan mudah.
·
Efficiency: Mengacu pada
kemampuan perangkat lunak untuk menggunakan sumber daya sistem dengan cara yang
paling efektif dan efisien.
·
Maintainability: Mengacu pada
kemudahan modifikasi yang dapat dilakukan dalam sistem perangkat lunak untuk
memperluas fungsinya, memperbaiki kinerjanya, atau memperbaiki kesalahannya.
·
Portability: Mengacu pada kemudahan
pengembang perangkat lunak (software developer) mana yang dapat mentransfer
perangkat lunak dari satu platform ke platform lainnya, tanpa (atau dengan
minimum) perubahan. Secara sederhana, ini mengacu pada kemampuan perangkat
lunak untuk berfungsi dengan baik pada berbagai platform perangkat keras
(hardware) dan perangkat lunak (software) tanpa membuat perubahan apa pun di
dalamnya.
Selain
karakteristik yang disebutkan di atas, robustness dan integrity juga penting.
Robustness mengacu pada sejauh mana perangkat lunak dapat tetap berfungsi
meskipun dilengkapi data yang tidak valid sementara integrity mengacu pada
sejauh mana akses yang tidak sah terhadap perangkat lunak atau data dapat
dicegah.
B. Software Engginering Layer
Software layer merupakan salah konsep utama yang harus diketahui,
dikenali, dimengerti dan diimplementasikan pada saat akan membangun sebuah
perangkat lunak (software). Software Layer terbagi menjadi empat lapisan, yaitu
:
1. A
Quality Focus
2.
Process
3.
Methods
4.
Tools
1. QUALITY FOCUS (FOKUS KUALITAS)
Pada saat kita membangun sebuah aplikasi, Fokus pertama kali yang dibuat
adalah Kita akan membangun kualitas yang seperti apa,siapa sasaran
kita, aplikasi yang dibangun siapa pengguna dan lai-lain, Oleh
karena itu FOKUS KUALITAS ini programmer akan mengetahui levelsebuah
aplikasiyang dibangun.Misalnya akan dibangun APLIKAS PEMUTAR MUSIC
. Dengan berpatokan pada FOKUS KUALITAS maka Programmer akan mengetahui
sampai dimana aplikasi yang akan dibangun. File Music bisa beraneka ragam
mulai dari MP3, MP2, AUDIO TRACK, WAV, MDI dan lain-lain. Dengan
mengetahui, Aplikasi ini dibuat untuk File music apa, maka programmer
akan mengetahui segala hal yang berhubungan dengan program yang
dibuat. Apakah aplikasi yang dibuat akan mendukung untuk MP3, MP2,
WAV, OGG, TRACK atau yang lainnya. Jika dilihat dari segi Interaksi
Manusia dan Komputer, maka dengan FOKUS KUALITAS programmer akan
mengetahui bentuk dari aplikasi yang akan bangun.
2. PROCESS
Process atau Proses adalah merupakan lapisan kedua dalam SOFTWARE LAYER, Lapisan ini
terletak setelah QUALITY FOCUS,hal ini disebabkan setelah diketahui Fokus Kualitas dari
Perangkat Lunak yang akan dibangun, maka pemrogram harus mengetahui bagaimana
proses yang harus dijalani oleh pemrograman sehubungan dengan Fokus Kualitas dari
Perangkat Lunak yang diharapkan, Proses-proses ini dilakukan terurut dan tepat, agar
tidak terjadi kesalahan pada saat sebuah aplikasi di Launching.Proses-proses yang ada
akan dikerjakan sesuai dengan Kunci Proses Area yang ada (KPA/Key Process Area).
3. METHODS
Methods atau Metode merupakan salah satu hal yang penting dalam Pembuatan
Perangkat Lunak. Dengan metode, pembuat program akan melakukan
langkah-langkah dan tindakan-tindakan yang sesuai dengan metode yang ada.
Metode yang digunakan harus disesuaikan dengan perangkat lunak yang
dibangun, dan tujuan dari pembuatan perangkat lunak.
4. TOOLS
Tools merupakan alat bantu yang dapat digunakan oleh programmer dalam
menyelesaikan proyek yang ada. Mulai dari tools animasi tools multimedia,
tools normalisasi dan lain-lain. Misalnya : X3D, power designer, paintshop pro, etc.
3.
Game
pengenalan panca indra dan kegunaannya,banyak anak-anak di usia dini yang belum
mengenal nama panca indra karena kurangnya perhatian dan didikan orang tua game
ini membantu untuk anak usia 2 sampai 5 tahun fungsi dari game ini adalah
mengenalkan pannca indra dan kegunaan dari panca indra tersebut, game ini
membantu anak-anak dalam mengenal dan mengetahui fungsi panca indra.
Model Proses yg akan digunakan
adalah waterfal, (waterfall), merupakan paradigma
model pengembangan perangkat lunak paling tua, dan paling banyak dipakai. Model
ini mengusulkan sebuah pendekatan perkembangan perangkat lunak yang sistematik
dan sekunsial yang dimulai pada tingkat dan kemajuan sistem pada seluruh
tahapan analisis, desain , kode, pengujian, dan pemeliharaan. Alasan menggunakan model proses ini adalah mudah untuk dipahami dan mempunyai alur yang sistematik.
1. Context Diagram
2.
Dekomposisi
Diagram
3.
DFD
level 0 dan 1
a.
Level 0
b.
level 1
·
https://iwayanwidiana054.wordpress.com/2016/09/27/tahapan-tahapan-pengembangan-perangkat-lunak/amp/



