Anda di halaman 1dari 23

Rekayasa Perangkat Lunak

Tugas kuliah SIMMEB 8 April 2022

Dikumpulkan paling lambat tanggal : 13 April 2022 pk. 23.59

Kumpulkan via email : dika.jatnika@unpad.ac.id subject : MM-tugasRPL

Tahap pengembangan Software

1. Sebutkan 3 contoh dan terangkan fungsi dari masing-masing software :


a. System software dan system operasi
Jawab :
Sistem Software atau Sistem operasi adalah perangkat lunak (software) yang dapat
melakukan tugas mengontrol dan mengatur perangkat keras sekaligus operasi dasar
sistem lainnya dan juga bisa untuk menjalankan program aplikasi.
Contoh: IOS, Android, Windows, Linux, MacOS

b. Terangkan apa yang dimaksud dengan kernel


Jawab :
Kernel adalah bagian utama dari sebuah sistem operasi komputer. Sistem ini berupa
perangkat lunak yang memiliki tugas untuk melayani berbagai macam program aplikasi
yang diinstal agar dapat terhubung dengan perangkat keras atau perangkat keras
komputer secara aman. Definisi lain dari kernel yaitu merupakan software mediator
antara aplikasi dan hardware yang menyediakan berbagai sistem pelayanan seperti
pengaturan memori terhadap berbagai aplikasi yang sedang berjalan, pengaturan file,
pengaturan keluar program atau aplikasi lain, mengatur keyboard, mouse, monitor,
printer, speaker dan berbagai pengaturan perangkat keras lainnya. Adapun manfaat dari
kernel adalah sebagai berikut :
 mengelola segala sumber daya yang terdapat dalam komputer dan mendukung
perangkat lunak/aplikasi lain untuk menjalankan dan menggunakan sumber daya
tersebut.
 sebagai pelayan terhadap perangkat lunak agar dapat mengakses perangkat keras
pada sistem komputer secara aman
 sebagai memory management
 sebagai device manegement

Contoh Kernel: Kernel Monolitik, Mikrokernel, Kernel Hybrid, Nano Kernel, Exokernel.

c. Programming software
Jawab :
Software programming atau software pemrograman adalah perangkat lunak yang
menjadi sarana penulisan kode program (source code). Perangkat lunak ini merupakan
salah satu bentuk text editor yang memiliki fitur tambahan sebagai bentuk dukungan
dalam aktivitas pemrograman.
Contoh : Visual Studio Code, Notepad++, Sublime Text, Atom.

d. Application software
Jawab :
Application Software adalah jenis software yang dirancang untuk menyelesaikan tugas-
tugas spesifik dalam operating system. Beberapa dari tugas ini termasuk menangani
dokumen, menangani perhitungan, mengedit gambar, mengedit video, dan lainnya.
Contoh :
 Microsoft Word: aplikasi pengolah kata
 Adobe Photoshop: editor gambar.
 Spotify: aplikasi untuk mendengarkan musik.

2. Aktifitas pengembangan software tahap requirements :


a. Terangkan posisi bisnis proses pada tahap ini ?
Jawab :
Tahap ini merupakan tahapan bagi seorang analis dalam mencari tahu informasi
mengenai kebutuhan-kebutuhan apa saja yang diharapkan dalam pembangunan sebuah
aplikasi atau perangkat lunak. Mengumpulkan kebutuhan secara lengkap untuk
dianalisis dan kemudian mendefinisikan kebutuhan tersebut dan menentukan apa saja
yang harus dicapai oleh program . Informasi dapat diperoleh melalui wawancara,
diskusi, atau survey.

b. apa saja yang ditanyakan pada tahap wawancara ?


Jawab :
1. Apa tujuan dan manfaat yang diharapkan dari sebuah aplikasi.
2. Apa saja fitur yang dibutuhkan.
3. Siapa saja stakeholder yang terlibat dalam penggunaan aplikasi tersebut.
4. Jumlah anggaran yang dibutuhkan dalam pembuatan aplikasi.
5. Spesifikasi software yang dibutuhkan termasuk perangkat device yang digunakan.

3. aktifitas modeling :
a. jelaskan secara singkat tentang proses modeling :
i. Flowchart / map flow
Flowchart atau bagan alur adalah diagram yang menampilkan langkah-langkah dan
keputusan untuk melakukan sebuah proses dari suatu program. Setiap langkah
digambarkan dalam bentuk diagram dan dihubungkan dengan garis atau arah panah.
ii. CD/DFD
DFD adalah suatu diagram yang menggambarkan aliran data dari sebuah proses yang
sering disebut dengan sistem informasi. Di dalam data flow diagram juga
menyediakan informasi mengenai input dan output dari tiap entitas dan proses itu
sendiri. kecenderungan diagram ini lebih cocok dipakai pada tahap desain. Melalui
diagram alir data, batasan ruang lingkup sistem akan terlihat sangat jelas, sehingga
pekerjaan pengembangan sistem akan lebih fokus untuk dilakukan.

iii. ERD
ERD (Entity Relationship Diagram) atau diagram hubungan entitas adalah diagram
yang digunakan untuk perancangan suatu database dan menunjukan relasi antar
objek atau entitas beserta atribut-atributnya secara detail.

iv. 13 diagram UML


Jawab :
UML merupakan bahasa standar untuk penulisan blueprint software yang digunakan
untuk visualisasi, spesifikasi, pembentukan dan pendokumentasian alat-alat dari
sistem perangkat lunak. Berikut jenis dari diagram UML:
 Use Case Diagram :
digunakan untuk memodelkan semua bisnis proses berdasarkan perspektif
pengguna sistem. Use case diagram terdiri atas diagram untuk use case dan
actor. Actor merepresentasikan orang yang akan mengoperasikan atau orang
yang berinteraksi dengan sistem aplikasi. Use case merepresentasikan operasi-
operasi yang dilakukan oleh actor. Use case digambarkan berbentuk elips
dengan nama operasi dituliskan di dalamnya. Actor yang melakukan operasi
dihubungkan dengan garis lurus ke use case.
 Sequence Diagram
Digunakan untuk memodelkan pengiriman pesan (message) antar objects.
Diagram ini menjelaskan interaksi objek yang disusun berdasarkan urutan
waktu. Secara mudahnya sequence diagram adalah gambaran tahap demi tahap
yang seharusnya dilakukan untuk menghasilkan sesuatu sesuai dengan use case
diagram. Bersifat dinamis. Diagram urutan adalah interaksi yang menekankan
pada pengiriman pesan (message) dalam suatu waktu tertentu.
 State Diagram
Diagram yang digunakan untuk memodelkan perilaku objects di dalam sistem.
Diagram ini menggambarkan urutan keadaan yang dilalui objek dalam suatu
kelas, karena suatu kejadian menyebabkan suatu perpindahan aktivitas/state.
State dari objek adalah penggolongan dari satu atau lebih nilai attribute pada
kelas.
 Activity Diagram
Activity diagram menyediakan analis dengan kemampuan untuk memodelkan
proses dalam suatu sistem informasi. Activity diagram dapat digunakan untuk
menggambarkan alur kerja model dan juga digunakan untuk memodelkan
perilaku Use Cases dan objects di dalam system.
 Class Diagram
Digunakan untuk memodelkan struktur kelas dalam suatu sistem. berfungsi
untuk menjelaskan tipe dari object sistem dan hubungannya dengan object yang
lain. Bersifat statis. Diagram ini memperlihatkan himpunan kelas-kelas,
antarmuka, kolaborasi-kolaborasi, serta relasi-relasi. Diagram ini umum dijumpai
pada pemodelan system berorientasi objek. Kelas Diagram berfungsi untuk
menjelaskan tipe dari object sistem dan hubungannya dengan object yang lain.
 Object Diagram
Digunakan dalam menggambarkan struktur objek dan hubungannya. Merupakan
sebuah gambaran tentang objek-objek dalam sebuah system pada satu titik
waktu. Karena lebih menonjolkan perintah-perintah dari pada class, object
diagram lebih sering disebut sebagai sebuah diagram perintah. Tujuan utama
dari diagram objek adalah untuk memungkinkan analis untuk mengungkap
rincian tambahan kelas.
 Component Diagram
Digunakan untuk memodelkan komponen object dan untuk menggambarkan
distribusi fisik dari modul perangkat lunak melalui jaringan. Misalnya, ketika
merancang sistem client-server, hal ini berguna untuk menunjukkan mana kelas
atau paket kelas akan berada pada node klien dan mana yang akan berada di
server. Diagram komponen juga dapat berguna dalam merancang dan
mengembangkan sistem berbasis komponen. Karena berfokus pada analisis
sistem berorientasi objek dan desain.
 Deployment Diagram
Digunakan untuk memodelkan distribusi aplikasi. Diagram ini menggambarkan
detail bagaimana komponen di deploy dalam infrastruktur system, dimana
komponen akan terletak (pada mesin, server atau piranti keras), bagaimana
kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain
yang bersifat fisikal. Hubungan antar node ( misalnya TCP/IP) dan requirement
dapat juga didefinisikan dalam diagram ini.
 Package Diagram
Diagram yang digunakan untuk mengelompokkan elemen diagram UML yang
berlainan secara bersama-sama ke dalam tingkat pembangunan yang lebih tinggi
yaitu berupa sebuah paket. Diagram paket pada dasarnya adalah diagram kelas
yang hanya menampilkan paket, disamping kelas, dan hubungan
ketergantungan, disamping hubungan khas yang ditampilkan pada diagram
kelas.
 Communication Diagram
Digunakan untuk menggambarkan interaksi antar objek seperti sequence
diagram, tetapi lebih menekankan pada peran masing-masing objek. Setiap
message memiliki sequence number, dimana message dari level tertinggi
memiliki Nomor 1. Diagram membawa informasi yang sama dengan diagram
Sequence, tetapi lebih memusatkan atau memfokuskan pada kegiatan obyek
dari waktu pesan itu dikirimkan.

 Composite Diagram :
Diagram ini bila dikombinasikan dengan diagram penyebaran dapat digunakan
untuk menggambarkan distribusi fisik dari modul perangkat lunak melalui
jaringan. Misalnya, ketika merancang sistem client-server, hal ini berguna untuk
menunjukkan mana kelas atau paket kelas akan berada pada node klien dan
mana yang akan berada di server. Diagram komponen juga dapat berguna dalam
merancang dan mengembangkan sistem berbasis komponen. Karena berfokus
pada analisis sistem berorientasi objek dan desain.
 Timing Diagram
Memperlihatkan interaksi ketika tujuan utama diagram adalah waktu.
Menggambarkan perubahan dalam state atau kondisi dari
pengelompokkaninstance atau tugas berlebihan. Biasanya dipakai untuk
memperlihatkan perubahan dalam state objectberlebihan dalam merespon ke
external events. Dipakai untuk memperlihatkan perilaku dari sebuah/ beberapa
object melaluiperiode waktu.
 Interaction Overview Diagram
adalah pencangkokan secara bersama antara activity diagram dengan sequence
diagram. Interaction Overview Diagram dapat dianggap sebagai activity diagram
dimana semua aktivitas diganti dengan sedikit sequence diagram, atau bisa juga
dianggap sebagai sequence diagram yang dirincikan dengan notasi activity
diagram yang digunakan untuk menunjukkan aliran pengawasan.

4. Aktifitas Design :
a. Apa dan bagaimana yang dimaksud dengan desain thinking
Jawab :
Design thinking adalah serangkaian proses kognitif, strategis, dan praktis yang
berulang; digunakan untuk memecahkan masalah dan menciptakan solusi inovatif yang
tidak terpikirkan sebelumnya dengan berusaha memahami pengguna dan
kebutuhannya, tidak membuat asumsi, dan membuat definisi ulang permasalahannya.
Design thinking dikenal pula sebagai Business of Experience (BX). Pasalnya, design
thinking bisa menjadi jembatan antara kebutuhan bisnis dan pengembangan kapasitas.
Hasil dari penerapan design thinking yang diharapkan adalah solusi pembelajaran yang
efektif selaras dengan kebutuhan bisnis dan pengembangan kapasitas. Prinsip atau
elemen dari design thinking ini adalah mewujudkan dan menciptakan nilai-nilai baru
dalam perusahaan.
Adapun tahapan dalam design Thinking, yaitu sebagai berikut:
 Empathize
Tahapan awal yang digunakan untuk mendapatkan pemahaman empati tentang
masalah yang dicoba untuk diselesaikan. Ini melibatkan para ahli konsultasi untuk
mencari tahu lebih banyak tentang bidang yang menjadi perhatian melalui
pengamatan, keterlibatan, dan empati dengan orang-orang untuk memahami
pengalaman dan motivasi mereka sehingga memperoleh pemahaman pribadi yang
lebih jelas tentang masalah yang terlibat.
 Define
Pada tahap ini kita mengumpulkan informasi yang telah dibuat dan kumpulkan
selama tahap empathize. Kemudian informasi tersebut dianalisis, diamati dan
diolah untuk dapat mengidentifikasi masalah inti. Sehingga pada tahap ini kita
dapat melakukan pendefinisian terhadap suatu masalah
 Ideate
Merupakan tahapan ketiga dari proses Design Thinking, dimana pada tahap ini
desainer siap untuk mulai menghasilkan ide-ide yang kreatif untuk menjawab
permasalahan pada tahap Define.
 Prototype
Setelah memperoleh ide dari tahap Ideate melalui brainstorming, maka langkah
selanjutnya adalah mengidentifikasi solusi dan membuatnya ke dalam bentuk
prototipe akhir atau fitur baru dari produk. Prototype ini merupakan visualisasi dari
bentuk nyata solusi untuk permasalahan yang ada.
 Testing
Pada tahapan terakhir, kita harus menguji secara langsung prototype yang telah kita
buat, apakah relevan dengan tujuan awal atau tidak.

b. Terangkan secara singkat tentang konsep UI/UX


Jawab :
 UI (User Interface)
User Interface adalah proses dimana menampilkan sebuah hasil dalam bentuk
tampilan yang dapat dilihat oleh pengguna (user). Lebih tepatnya adalah bagian
visual dari produk digital seperti: website, software, maupun hardware dalam
memudahkan interaksi user dengan produk digital tersebut. Tujuan dari User
Interface adalah untuk meningkatkan fungsionalitas serta user experience dari
pengguna.
 UX (User Experience)
user experience adalah proses dimana pengguna dapat berinteraksi dengan
interface secara baik dan nyaman dan bagaimana pengalaman pengguna dalam
berinteraksi/menggunakan produk digital. Pengalaman ini dilihat dari betapa
mudahnya pengguna untuk mendapatkan apa yang mereka inginkan dari produk
tersebut. Tujuan dari UX adalah untuk meningkatkan kepuasan pengguna saat
mengakses sebuah tampilan, baik dari sisi website, mobile, maupun desktop.

5. Aktifitas Implementasi
a. Terangkan secara singkat tentang algoritma
Jawab :
Algoritma adalah proses atau serangkaian aturan yang harus diikuti dalam perhitungan
atau operasi pemecahan masalah lainnya, terutama oleh komputer. Dengan kata lain,
semua susunan logis yang diurutkan berdasarkan sistematika tertentu dan digunakan
untuk memecahkan suatu masalah.
b. Jelaskan Macam-macam paradigm bahasa programming
Jawab :
 Paradigma Pemrograman Fungsional
Pemrograman jenis ini memiliki cara pandang dalam menyelesaikan suatu masalah
pemrograman sebagai suatu komposisi fungsi yang memetakan masalah ke
jawaban yang diinginkan. Jadi dasar pemecahan masalah adalah transformasional,
semua kelakuan program adalah suatu rantai transformasi dari sebuah keadaan
awal menuju ke suatu rantai keadaan akhir, yang mungkin melalui keadaan antara,
melalui aplikasi fungsi.
Contoh Bahasa pemrograman: LISP, Haskell, Scala, Scheme.

 Paradigma Pemrograman Prosedural atau Iterative


Procedural programming juga dapat disebut sebagai pemrograman imperatif.
Paradigma ini merupakan paradigma pemrograman yang didasarkan pada konsep
panggilan prosedur, di mana pernyataan disusun menjadi prosedur (juga dikenal
sebagai sub-rutin atau fungsi). Mereka adalah daftar instruksi untuk memberi tahu
komputer apa yang harus dilakukan langkah demi langkah, bahasa pemrograman
prosedural dikenal sebagai bahasa top-down. Sebagian besar bahasa pemrograman
awal semuanya prosedural.
Contoh Bahasa pemrograman: Pascal, C, PHP.

 Paradigma Pemrograman Berorientasi Objek


Sesuai dengan namanya, pemrograman ini menyelesaikan suatu masalah yang ada
dengan berorientasi kepada objek karena seluruh data serta fungsi yang ada di
dalamnya dikemas dalam suatu kelas atau objek-objek yang terpisah ke beberapa
bagian tertentu. setiap objek yang ada dapat menerima pesan yang dikirim,
memproses data yang ada, serta mengirimkan pesan ke objek lainnya tanpa harus
melakukannya secara berurut karena dapat dilakukan sekaligus dalam satu waktu.
Dalam framework ini, semua entitas dunia nyata diwakili oleh Class. Objek adalah
contoh kelas sehingga setiap objek merangkum state dan behavior. State
menyiratkan bidang, atribut dari objek dan behavior adalah apa yang kalian lakukan
dengan keadaan objek dan mereka adalah metode. Objek berinteraksi satu sama
lain dengan meneruskan pesan.
Contoh Bahasa pemrograman: C++, Java, Smalltalk, PHP.

 Paradigma Pemrograman Deklaratif, Predikatif atau Logic


Logical programming adalah paradigma pemrograman komputer yang didasarkan
pada logika matematika di mana pernyataan program mengungkapkan fakta dan
aturan tentang masalah dalam suatu sistem. Aturan ditulis sebagai klausa logis
dengan head dan body. Pemrogaman ini sifatnya mensolve problem bukan dengan
cara menspesifikasikan caranya (HOW) seperti pada Pemrograman Prosedural,
tetapi dengan menspesifikasikan/DECLARE apa yang dimau/dibutuhkan (the
WHAT).
Contoh Bahasa pemrograman: Prolog.

 Paradigma Pemrograman Konkuren


Paradigma ini didasari oleh kenyataan bahwa dalam keadaan nyata, sebuah sistem
komputer harus menangani beberapa program (task) yang harus dieksekusi secara
bersamaan dalam sebuah lingkungan baik mono ataupun multi-processor. Dalam
paradigma ini programmer tidak lagi berpikir sekuensial, melainkan harus
menangani komunikasi dan sinkronisasi antar task.

6. Aktifitas testing, apa yang dimaksud dengan alpha dan beta testing
Jawab :
 Alpha Testing
Alpha testing merupakan salah satu jenis user acceptance testing yang dilakukan secara
terbatas. Pengujian ini dilakukan dalam ruang lingkup internal yang terbatas. Dalam alpha
testing, pengujian produk atau aplikasi dilakukan oleh staf internal pengembang saja. Tes ini
biasanya dilakukan untuk menemukan bug atau cacat produk yang sifatnya basic. Apakah
fungsi-fungsi dasar sudah berfungsi, semua itu dipastikan melalui pengujian ini.
 Beta Testing
Beta testing merupakan metode untuk memeriksa dan mengesahkan suatu perangkat
lunak. Pengujian beta digunakan untuk menggambarkan proses pengujian eksternal dimana
perangkat lunak dapat digunakan untuk orang lain seperti pengguna yang mungkin
menggunakan perangkat lunak untuk kehidupan sehari-hari. Pengujian beta biasanya
berpengaruh pada tahap akhir pengembangan perangkat lunak dan biasanya menjadi suatu
pengesahan bahwa perangkat lunak sudah siap digunakan oleh pengguna. Tujuan dari
pengujian beta dapat beraneka ragam, seperti kesempatan media pers untuk memasukkan
dari pengguna untuk mengatasi bug dan kesalahan yang ada.

7. Pada deployment, sebutkan aktivitas apa saja yang dilakukan !


Jawab :
a. delivery (penyampaian)
Pada Aktivitas ini menyampaikan tentang perkembangan dan cara penggunaan
operasional software beserta fungsi dan fitur-fitur yang dapat digunakan
b. support (pendukung)
Tahap ini menyediakan dokumentasi dan campur tangan manusia terhadap semua
fungsi dan fitur yang dikenalkan pada proses deployment secara teratur sesuai
perkembangan.
c. feedback (respon).
Tahap ini menyediakan tim perancang software dengan petunjuk-petunjuk penting yang
mengarah pada modifikasi fungsi, fitur, dan langkah yang akan di ambil untuk
perkembangan selanjutnya sebagai bentuk respons terhadap kekurangan pada aplikasi.

8. Pada supporting terdapat aktifitas Audit IT :


a. Jelaskan apa yang disebut dengan ITIL (Information Technology Infrasructure Library)
Jawab :
Pemanfaatan teknologi ini mengharuskan organisasi untuk melakukan pengelolaan
dengan baik karena jika tidak efektif maka efeknya bagi organisasi akan menjadi tidak
optimal. Maka dari itu dibutuhkan pengelolaan yang berdasarkan best practice dan
membutuhkan panduan-panduan. Salah satu kerangka dan rangkaian konsep yang bisa
dipakai untuk pengelolaan layanan adalah Information Technology Infrastructure Library
atau sering disebut dengan ITIL.
ITIL (Information Technology Infrastructure Library) adalah suatu rangkaian konsep
dan teknik pengelolaan infrastruktur, pengembangan, serta operasi teknologi informasi
(TI). Dengan menggunakan dasar pendekatan sistematis ITIL untuk manajemen layanan
TI, ITIL memberikan manfaat dalam peningkatan pada sebuah perusahaan diantaranya:
 Peningkatan Return on Investment pada TI.
 Peningkatan Kapabilitas dan produktivitas.
 Peningkatan Kepuasan Pelanggan/Pengguna.
 Peningkatan Hasil Pemanfaatan aset.
 Peningkatan hubungan dan interaksi antara penyedia layanan TI dengan
pengguna/pelanggan.
 Menjaga organisasi untuk mengimbangi perubahan terkini yang mendorong
organisasi untuk terus berkembang.
 Integrasi Layanan TI

b. Jelaskan apa yang dimaksud dengan CISA


Jawab :
CISA (Certified Information Systems Auditor) adalah sebuah bukti pencapaian
kemampuan profesional di bidang audit, kontrol, dan keamanan sistem informasi yang
diakui di tingkat internasional. CISA dikeluarkan oleh ISACA (Information Systems Audit
and Control Association) sejak 1978.
CISA merupakan salah satu bentuk pengakuan mengenai keprofesionalan di kalangan
para auditor TI adalah diperolehnya CISA (Certified Information System Auditor). Untuk
mencapai itu seseorang harus sudah memenuhi persyaratan pengalaman praktik yang
memadai dan lulus dalam ujian sertifikasi.
Para penyandang CISA, memiliki nilai tambah tersendiri, antara lain adanya
pengakuan global. Sejak 1978, gelar CISA telah diakui hampir di seluruh dunia sebagai
suatu bentuk pencapaian prestasi tersendiri dan menunjukkan kualifikasi tertentu
sebagai seorang auditor TI atau auditor SI (sistem informasi). Saat ini, lebih dari 30,000
profesional di seluruh dunia, telah berhasil meraih gelar ini ( Indonesia memiliki sekitar
40-an CISA). Perusahaan-Perusahaan mulai memberi credit point khusus bagi mereka
yang berhasil meraih CISA.

c. Jelaskan apa yang dimaksud dengan TOGAF


Jawab :
The Open Group Architecture atau TOGAF Framework adalah sebuah kerangka kerja
yang dapat digunakan untuk mengembangkan arsitektur yang diperlukan untuk
pemenuhan kebutuhan bisnis. Sebagai sebuah metodologi enterprise architecture,
TOGAF menawarkan kerangka kerja level tinggi untuk pengembangakan enterprise
software. TOGAF pada awalnya dikembangkan oleh The Open Group pada tahun 1995
dan hingga tahun 2016 digunakan oleh 80% Global 50 Companies, serta 60% Fortune
500 Companies.

Kelebihan TOGAF adalah sebagai berikut:


 Bersifat open source sehingga fleksibel untuk digunakan
 Implementasi teknologi software yang terstruktur dan terorganisir
 Mampu membuat pendekatan yang sistematis dalam rangka penyatuan proses
pengembangan yang dapat direplika dengan sedikit error
 Memiliki kekayaan materi yang dapat digunakan untuk enterprise architecture oleh
new architect dan experienced architect

Beberapa software yang dapat digunakan untuk TOGAF adalah:

 Alfabet AG: planningIT 7.1 and later


 Avolution: ABACUS 4.0 or later
 BiZZdesign: BiZZdesign Enterprise Studio
 BOC Group: ADOIT
 Orbus Software: iServer Business and IT Transformation Suite 2015 or later
 Planview: Troux
 Software AG: ARIS 9.0 or later
 Sparx Systems: Enterprise Architect v12
Metodologi Pengembangan Software
Terangkan dengan singkat metodologi pengembangan software dibawah ini :

1. Waterfall

Waterfall adalah salah satu jenis model pengembangan aplikasi dan termasuk ke dalam
classic life cycle (siklus hidup klasik), yang mana menekankan pada fase yang berurutan dan
sistematis. Untuk model pengembangannya, dapat dianalogikan seperti air terjun, dimana setiap
tahap dikerjakan secara berurutan mulai dari atas hingga ke bawah.

Tahapan Metode Waterfall :


a. Requirement
Pada tahap ini pengembang harus mengetahui seluruh informasi mengenai kebutuhan
sofatware seperti kegunaan software yang diinginkan oleh pengguna dan batasan software.
Informasi tersebut biasanya diperoleh dari wawancara, survey, ataupun diskusi. Setelah itu
informs dianalisis sehingga mendapatkan data-data yang lengkap mengenai kebutuhan
pengguna akan software yang akan dikembangkan.

b. Design
Tahap selanjutnya yaitu Desain. Desain dilakukan sebelum proses coding dimulai. Ini
bertujuan untuk memberikan gambaran lengkap tentang apa yang harus dikerjakan dan
bagaimana tampilan dari sebuah sistem yang diinginkan. Sehingga membantu
menspesifikasikan kebutuhan hardware dan sistem, juga mendefinisikan arsitektur sistem
yang akan dibuat secara keseluruhan.

c. Implementation
Proses penulisan code ada di tahap ini. Pembuatan software akan dipecah menjadi modul-
modul kecil yang nantinya akan digabungkan dalam tahap selanjutnya. Dalam tahap ini juga
akan dilakukan pemeriksaan lebih dalam terhadap modul yang sudah dibuat, apakah sudah
memenuhi fungsi yang diinginkan atau belum.
d. Integration & Testing
Pada tahap keempat ini akan dilakukan penggabungan modul-modul yang sudah dibuat
sebelumnya. Setelah itu akan dilakukan pengujian yang bertujuan untuk mengetahui apakah
software sudah sesuai desain yang diinginkan dan apakah masih ada kesalahan atau tidak.

e. Operation Maintenance
Operation & Maintenance adalah tahapan terakhir dari metode pengembangan waterfall. Di
sini software yang sudah jadi akan dijalankan atau dioperasikan oleh penggunanya.

2. Prototyping

Prototyping perangkat lunak adalah salah satu metode siklus hidup sistem yang didasarkan
pada konsep model bekerja (working model). Tujuannya adalah mengembangkan model
menjadi sistem final. Artinya sistem akan dikembangkan lebih cepat dari pada metode
tradisional dan biayanya menjadi lebih rendah. Ciri dari metode ini adalah pengembang dan
pelanggan dapat melihat dan melakukan pengerjaan dengan bagian dari sistem komputer dari
sejak awal proses pengembangan.

Tahapan Metode Prototyping :


a. Requirements Gathering and Analysis (Pengumpulan Kebutuhan)
Tahapan model prototype dimulai dari analisis kebutuhan. Dalam tahap ini kebutuhan
sistem didefinisikan dengan rinci. Dalam prosesnya, klien dan tim developer akan bertemu
untuk mendiskusikan detail sistem seperti apa yang diinginkan oleh user.
b. Membangun prototyping
Membangun prototyping dengan membuat perancangan sementara yang berfokus pada
penyajian kepada pelanggan (misalnya dengan membuat input dan format output).
pembangunan prototipe sebenarnya yang akan dijadikan rujukan tim programmer untuk
pembuatan program atau aplikasi.
c. Evaluasi prototyping
Evaluasi ini dilakukan untuk mengetahui apakah prototyping sudah sesuai dengan harapan
pelanggan.
d. Mengkodekan sistem
Pada tahap ini prototyping yang sudah disetujui akan diubah ke dalam bahasa
pemrograman.
e. Menguji sistem
Di tahap ini dilakukan untuk menguji sistem perangkat lunak yang sudah dibuat. Di tahap ini,
sistem yang telah dibuat dalam bentuk prototipe di presentasikan pada klien untuk di
evaluasi. Selanjutnya klien akan memberikan komentar dan saran terhadap apa yang telah
dibuat.
f. Evaluasi Sistem
Perangkat lunak yang sudah siap jadi akan dievaluasi oleh pelanggan untuk mengetahui
apakah sistem sesuai dengan yang diharapkan. Jika klien tidak mempunyai catatan revisi dari
sistem yang dibuat, maka tim bisa lanjut pada tahapan 7, namun jika klien mempunyai
catatan untuk perbaikan sistem, maka fase 4-5-6 akan terus berulang sampai klien setuju
dengan sistem yang akan dikembangkan.
g. Menggunakan sistem
Perangkat lunak yang sudah diuji dan disetujui oleh pelanggan siap digunakan.

3. Spiral

Spiral Model adalah model proses pengembangan perangkat lunak berbasis risiko. Ini
adalah kombinasi dari model air terjun dan model iteratif. Model Spiral membantu mengadopsi
elemen pengembangan perangkat lunak dari berbagai model proses untuk proyek perangkat
lunak berdasarkan pola risiko unik yang memastikan proses pengembangan yang efisien.
Fungsi model spiral adalah untuk melakukan perubahan, penambahan dan pengembangan
perangkat lunak dengan memaksimalkan aspek kecepatan dan ketepatan berdasarkan keinginan
dan kebutuhan penggunanya.

Tahapan Metode Spiral :


a. Tahap Liaison
Tahap ini berhubungan dengan komunikasi antara pihak-pihak yang terlibat dalam
pengembangan softaware (seperti: system analyst) dengan pelanggan (user). Tujuannya
adalah memperbaiki dan mengembangan software sesuai kebutuhan dan keinginan hingga
memuaskan pelanggan.
b. Tahap Planning
Tahap perencanaan meliputi estimasi biaya yang digunakan, batas waktu, pengaturan
jadwal, identifikasi lingkungan kerja, sumber-sumber informasi untuk melakukan iterasi
(Teknik perulangan). Hasil dari tahapan ini adalah dokumen spesifikasi kebutuhan sistem
dan bisnis.
c. Tahap Analisis Resiko
Tahap analisis reisiki berfungsi untuk mengidentifikasi resiko yang berpotensi akan terjadi
dan menghasilkan solusi alternatif secara teknis dan manajemen saat strategi mitigasi
(upaya untuk mengurangi resiko bencana) direncanakan dan diselesaikan.
d. Tahap Rekayasa (Engineering)
Pada tahap rekayasa, beberapa kegiatan ini yang akan dilakukan, yaitu:
 Menguji, coding dan mengembangkan software
 Menginstal software
 Membuat prototype
 Mendesain dokumen
 Meringkas suatu pengujian software
 Membuat laporan atas kekurangan dari software agar segera diperbaiki

e. Tahap Evaluasi
Pada tahap evaluasi, system analyst membutuhkan masukan dan tanggapan dari para user
dalam mengevaluasi perangkat/produk yang diuji dan memastikan bahwa produk
dibutuhkan sesuai ketentuan yang telah dibicarakan diawal dengan user. System analyst
memastikan pelanggan puas dengan produk yang akan dihasilkan untuk menjawab
persoalan bisnis mereka. Selain itu, system analyst harus tetap memantau resiko yang akan
terjadi seperti faktor-faktor yang dapat menyebabkan cost overrun (pembengkakan biaya).

4. RAD (Rapid Application Development)

Rapid application development (RAD) adalah metode yang berfokus pada pengembangan
aplikasi secara cepat, melalui pengulangan dan feedback berulang-ulang. Keuntungan utama
menjalankan rapid application development adalah jangka waktu pengembangan lebih cepat
karena feedback dari pelanggan cepat didapatkan dan semua perubahan yang dilakukan akan
sesuai hasil tersebut. Metode pengembangan aplikasi RAD sangatlah cocok diterapkan ketika
proyek pengembangan aplikasi/sistem yang diambil memiliki batasan waktu yang pendek.
Metode ini tidak menghabiskan banyak waktu di tahap perencanaan. Sebaliknya, proses
pengembangan aplikasi bisa berjalan fleksibel dan sesuai kebutuhan.

Tahapan Metode RAD (Rapid Application Development) :


a. Perencanaan Kebutuhan.
Tahapan ini merupakan tahap awal dalam suatu pengembangan sistem, dimana pada tahap
ini dilakukan identifikasi masalah dan pengumpulan data yang diperoleh dari pengguna atau
stakeholder pengguna yang bertujuan untuk mengidentifikasi maksud akhir atau tujuan dari
sistem dan kebutuhan informasi yang diinginkan. Pada tahap ini keterlibatan kedua belah
sangatlah penting dalam mengidentifikasi kebutuhan untuk pengembangan suatu sistem.
b. Desain Sistem.
Di dalam tahap desain sistem, keaktifan pengguna yang terlibat sangatlah penting untuk
mencapai tujuan karena pada tahapan ini dilakukan proses desain dan proses perbaikan
desain secara berulang-ulang apabila masih terdapat ketidaksesuaian desain terhadap
kebutuhan pengguna yang telah diidentifikasi pada tahapan sebelumnya. Luaran dari
tahapan ini adalah spesifikasi software yang meliputi organisasi di dalam sistem secara
umum, struktur data, dan lain-lain.
c. Proses pengembangan dan pengumpulan feedback.
Pada tahap ini desain sistem yang telah dibuat dan disepakati, diubah ke dalam bentuk
aplikasi versi beta sampai dengan versi final. Pada tahapan ini juga programmer harus terus-
menerus melakukan kegiatan pengembangan dan integerasi dengan bagian-bagian lainnya
sambal terus mempertimbangkan feedback dari pengguna atau klien. Jika proses berjalan
lancar maka dapat berlanjut ke tahapan berikutnya, sedangkan jika aplikasi yang
dikembangkan belum menjawab kebutuhan, programmer akan kembali ke tahapan desain
sistem.
d. Implementasi atau penyelesaian produk.
Tahapan ini merupakan tahapan dimana programmer menerapkan desain dari suatu sistem
yang telah disetujui pada tahapan sebelumnya. Sebelum sistem diterapkan, terlebih dahulu
dilakukan proses pengujian terhadap program untuk mendeteksi kesalahan yang ada pada
sistem yang dikembangkan. Pada tahap ini biasa memberikan tanggapan akan sistem yang
sudah dibuat dan mendapat persetujuan mengenai sistem tersebut.

5. Iterative
Iteration process merupakan proses pengembangan perangkat lunak yang berfokus pada
kecepatan sehingga implementasi fitur dapat segera dilakukan tanpa harus menghabiskan
waktu lama atau menunggu hingga produk benar-benar sempurna. Proses berulang dimulai
dengan implementasi sederhana dari subset dari persyaratan perangkat lunak dan secara
berulang meningkatkan versi yang berkembang sampai sistem penuh diimplementasikan. Pada
setiap iterasi, modifikasi desain dibuat dan kemampuan fungsional baru ditambahkan. Ide dasar
di balik metode ini adalah untuk mengembangkan sistem melalui siklus berulang (berulang) dan
dalam porsi yang lebih kecil pada satu waktu (inkremental).

Tahapan Metode Iterative :


a. Tahap Perencanaan
tahap ini digunakan untuk memetakan persyaratan tertentu. Baik itu perangkat keras
maupun perangkat lunak.
b. Tahap Analisis.
Hal ini dilakukan untuk memeriksa apakah model yang diperlukan, logika bisnis dimasukkan
ke dalam proyek atau tidak. Di sini, seorang analis memecahkan hasil yang diharapkan
menjadi persyaratan bisnis yang lebih rinci. Rencana Manajemen Persyaratan dibuat untuk
menentukan bagaimana persyaratan akan didokumentasikan, dikomunikasikan, dilacak, dan
diubah sepanjang sisa proyek. Arah yang akan diambil proyek dan penggunaan dokumen
strategi proyek juga ditentukan selama tahap ini.
c. Tahap Design
Pada tahap ini, tim proyek harus memiliki seperangkat persyaratan lengkap untuk bekerja
bersama dengan arah yang akan diambil untuk proyek dan Desain Sistem Konseptual.
Sekalipun proyeknya kecil dan persyaratan proyeknya sederhana, masih ada proses desain
mental yang terjadi di antara memahami persyaratan proyek dan mulai membangunnya.
Desain menjadi semakin penting karena ukuran proyek menjadi lebih besar dan lebih
kompleks. Tahap Desain adalah di mana banyak solusi potensial untuk proyek dianalisis.
Solusinya dipersempit. Setelah itu, cara yang paling efektif dan efisien untuk membangun
sistem diputuskan. Persyaratan teknis untuk proyek dirinci untuk memenuhi kebutuhan apa
pun yang ditemukan selama tahap analisis.
d. Tahap Implementasi dan Pemrograman
Semua persyaratan, perencanaan, dan rencana desain diimplementasikan dan dikodekan
dalam tahap ini. Ini adalah titik dalam proyek ketika konstruksi sistem yang sebenarnya
dimulai. Inilah saatnya untuk mulai menulis kode program untuk proyek tersebut.
e. Tahap Pengujian.
Di sini iterasi build saat ini diuji terhadap beberapa standar dan norma untuk memeriksa
apakah mereka memenuhinya. Prosedur pengujian ini ditetapkan untuk mengetahui bug
atau kesalahan pada. Solusi proyek divalidasi ulang untuk stabilitas. Dengan kata lain,
dipastikan bahwa koreksi satu bug tidak menyebabkan bug baru pada sistem. Ada berbagai
jenis teknik pengujian yang dapat diterapkan oleh tim untuk menguji sistem mereka. Ini
termasuk – pengujian kinerja, pengujian stres, pengujian keamanan, pengujian persyaratan,
pengujian kegunaan, pengujian multi-situs, pengujian pemulihan bencana, dll.
f. Tahap Evaluasi
Evaluasi yang cermat dilakukan pada sistem yang dikembangkan hingga tahap ini. Tim
pengembang dan pemangku kepentingan dapat memeriksa sistem dan memberikan umpan
balik mereka mengenai berbagai aspek sistem

6. RUP (Rational Unified Process)


Rational Unified Process (RUP) merupakan suatu metode rekayasa perangkat lunak yang
dikembangkan dengan mengumpulkan berbagai best practices yang terdapat dalam industri
pengembangan perangkat lunak. Ciri utama metode ini adalah menggunakan use-case driven
dan pendekatan iterative untuk siklus pengembangan perangkat lunak. Metodologi Rational
Unified Process (RUP). Metode RUP merupakan metode pengembangan kegiatan yang
berorientasi pada proses.

Tahapan Metode RUP (Rational Unified Process):


a. Inception
Merupakan tahap untuk mengidentifikasi sistem yang akan dikembangkan. Pada tahap
ini pengembang mendefinisikan batasan kegiatan, melakukan analisis kebutuhan user, dan
melakukan perancangan awal perangkat lunak (perancangan arsitektural dan use case).
Pada akhir fase ini, prototipe perangkat lunak versi Alpha harus sudah dirilis.

Aktivitas yang dilakukan pada tahap ini antara lain mencakup:


 analisis sistem existing
 perumusan sistem target
 penentuan arsitektur global target
 identifikasi kebutuhan
 perumusan persyaratan (fungsional, performansi, keamanan, GUI, dll)
 perumusan kebutuhan pengujian (level unit, integrasi, sistem, performansi,
fungsionalitas, keamanan, dll)
 UML diagram
 dan pembuatan dokumentasi.
b. Elaboration
Elaboration merupakan tahap untuk melakukan desain secara lengkap berdasarkan hasil
analisis pada tahap inception. Pada tahap ini dilakukan perancangan perangkat lunak mulai
dari menspesifikasikan fitur perangkat lunak hingga perilisan prototipe versi Betha dari
perangkat lunak.

Aktivitas yang dilakukan pada tahap ini antara lain mencakup:


 pembuatan desain arsitektur subsistem (architecture pattern)
 desain komponen sistem
 desain format data (protokol komunikasi)
 desain database
 desain user interface
 pemodelan diagram UML(diagram sequence, class, component, deployment, dll.)
 dan pembuatan dokumentasi.

c. Construction
Construction merupakan tahap untuk mengimplementasikan hasil desain dan melakukan
pengujian hasil implementasi. Pada tahap awal construction, ada baiknya dilakukan
pemeriksaan ulang hasil analisis dan desain, terutama desain pada sequence diagram, class
diagram, component dan deployment. Apabila desain yang dibuat telah sesuai dengan
analisis sistem, maka implementasi dengan bahasa pemrogramanan tertentu dapat
dilakukan.

Aktivitas yang dilakukan pada tahap ini antara lain mencakup:


 pengujian hasil analisis dan desain
 pendataan kebutuhan implementasi lengkap (berpedoman pada identifikasi
kebutuhan di tahap analisis)
 penentuan coding pattern yang digunakan
 pembuatan dan pengujian program
 Optimasi program
 pendataan berbagai kemungkinan pengembangan atau perbaikan lebih lanjut
 dan pembuatan dokumentasi.

d. Transition
Transition merupakan tahap untuk menyerahkan sistem aplikasi kepada user (roll-out), yang
umumnya mencakup pelatihan dan beta testing aplikasi.

Aktivitas yang dilakukan pada tahap ini antara lain mencakup:


 Instalasi
 deployment
 dan sosialisasi perangkat lunak

7. Extreme Programming
Extreme Programming (berikutnya akan disingkat sebagai XP) adalah sebuah pendekatan
atau model pengembangan perangkat lunak yang mencoba menyederhanakan berbagai
tahapan dalam proses pengembangan tersebut sehingga menjadi lebih adaptif dan fleksibel. XP
bukan hanya berfokus pada coding tetapi meliputi seluruh area pengembangan perangkat lunak.
XP mengambil pendekatan ‘ekstrim’ dalam iterative development.

Tahapan Metode Extreme Programming :


a. Planning
Tahapan perencanaan ini digunakan untuk memahami konsep bisnis, pengumpulan
kebutuhan sistem, menggambarkan output, fitur-fitur, dan fungsionalitas yang diperlukan
untuk dibangun dengan menggunakan rekayasa perangkat lunak.
b. Design
Setelah memperoleh data pada tahap planning, maka tahap selanjutnya yaitu proses
perancangan sistem dengan menggunakan UML yang mempunyai manfaat untuk
pemodelan sistem yang sudah memiliki standar. Sistem ini digunakan untuk dapat
memastikan perangkat lunak yang akan dibangun selesai tepat waktu sesuai dengan
anggaran, dan sesuai dengan spesifikasi yang ditetapkan pada tahap planning.
c. Coding
Merupakan tahap pemrograman perangkat lunak dengan kerjasama dalam suatu tim kecil,
dimana kegiatan dilakukan secara bertahap sesuai dengan panduan alur sistem yang sudah
dirancang pada tahap design. Tahap ini menggunakan refactoring agar mudah dibaca dan
dimodifikasi. Hal ini merupakan ciri khas dari XP sehingga hasil yang diharapkan dengan
metode ini akan menjadi lebih cepat.
d. Testing
Merupakan tahap akhir dari metode XP yang akan dilakukan dengan pengujian Beta Test
untuk mendapatkan feedback dari orang yang telah melakukan pengujian fungsional
perangkat lunak.

8. Agile
Agile Software Development adalah metodologi pengembangan software yang didasarkan
pada proses pengerjaan yang dilakukan berulang dimana, aturan dan solusi yang disepakati
dilakukan dengan kolaborasi antar tiap tim secara terorganisir dan terstruktur. Agile artinya cara
pengembangan produk sebagai alternatif dari metode konvensional. Dengan kata lain,
pengertian agile adalah suatu terobosan atau pembaharuan terhadap alur kerja lama yang tidak
berkembang ketika melihat dinamika pasar. Berawal dari kekakuan model waterfall, metode
agile adalah cara efektif dalam memahami keinginan pasar.

Tahapan Metode Agile :


Secara umum, ada enam langkah inti dalam agile.

1. Perencanaan
2. Implementasi
3. Tes perangkat lunak
4. Dokumentasi
5. Deployment
6. Pemeliharaan perangkat lunak

9. Scrum
Scrum adalah teknik bagian dari agile framework dalam perusahaan. Saat ini, scrum banyak
digunakan dalam pengembangan software. Tapi pada dasarnya metode tersebut bisa diterapkan
ke dalam segala upaya product atau project development. Proses kompleks dari project
management sebuah perusahaan seringkali menjadi penyebab munculnya hambatan baru
dalam operasionalisasi perusahaan. Metode seperti scrum bisa menjadi solusi pemecah masalah
tersebut. Metode scrum adalah rangkaian kegiatan untuk meminimalisir kesulitan saat
mengerjakan sebuah proyek. Contohnya, ketika suatu perusahaan menghadapi masalah, salah
satu solusi yang bisa dilakukan untuk mempermudah masalah tersebut adalah dengan
melakukan metode scrum.

Tahapan Metode Scrum :


a. Product backlog
Tahapan yang pertama ini menjadi tanggung jawab product owner atau manajer. Secara
sederhana, tahapan ini berisi daftar apa saja yang harus tim lakukan sesuai dengan skala
prioritas perusahaan. Perwakilan perusahaan bersama representasi stakeholder bertugas
untuk terus menata ulang product backlog. Hal ini karena kondisi pasar akan selalu berubah,
sehingga apa yang tidak esensial dalam backlog juga harus dihilangkan.
b. Sprint planning
Dalam tahapan sprint planning, produk atau proyek teratas dalam product backlog
kemudian disusun kembali menjadi sprint backlog. Tugas lain yang dilakukan tim scrum
adalah menentukan bagaimana mereka akan menyelesaikan apa yang ada dalam sprint
backlog.
c. Sprint
Setelah cara dan batas waktu pengerjaan ditentukan dalam sprint planning, tahapan metode
scrum selanjutnya adalah melakukan sprint. Proses ini dilakukan melalui kegiatan daily
scrum. Daily scrum adalah saat dimana tim berkumpul dan bekerja untuk memastikan
perkembangan produk terus berjalan. Dalam proses ini juga dikenal adanya peran scrum
master. Umumnya, tim yang terlibat dalam proses scrum adalah sekelompok orang.
Diantara orang-orang tersebut, ada perwakilan yang berperan sebagai scrum master. Tugas
scrum master adalah untuk membantu tim agar tetap fokus.
d. Sprint Review
Sprint review adalah tahapan sprint yang terakhir. Dalam proses ini, produk atau projek yang
dikerjakan harus sudah selesai dan siap digunakan. Kemudian produk tersebut akan di
review kembali.
e. Retrospective Process
Scrum adalah metode yang sifatnya berulang. Proses yang dilakukan perusahaan mulai dari
pembuatan backlog hingga review diingat dan dilakukan kembali dalam proses scrum projek
selanjutnya.

Anda mungkin juga menyukai