Anda di halaman 1dari 15

TUGAS

REKAYASA PERANGKAT LUNAK


Disusun untuk memenuhi tugas mata kuliah Rekayasa Perangkat Lunak

Anggota Kelompok :

1. Jordan Kelvin A. F. 10116277


2. Faisal Rahmi 10116312
3. Syahril Asidiq Firdaus 10116318
4. Rizqi Adiguna 10116319
5. Satria Dwi Rizqi 10116320

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

Bandung

2018
Kata Pengantar

Puji dan syukur penulis panjatkan atas kehadirat Allah SWT, yang telah

memberikan rahmat dan karunia-nya sehingga penulis dapat menyelesaikan

penyusunan makalah ini.

Penyusunan makalah ini dimaksudkan agar menjadi penunjang peningkatan

wawasan, daya kreativitas, serta mengembangkan gagasan untuk meningkatkan

kompetensi yang dimiliki pembaca agar mampu berinovasi dalam menciptakan

suatu karya yang baru.

Selain itu penulis menyadari dengan sepenuhnya bahwa penyusunan

makalah ini masih jauh dari kesempurnaan yang sesungguhnya, oleh karena itu

penulis berharap mengharapkan kritik dan saran yang membangun demi perbaikan

laporan ini. Semoga laporan ini dapat bermanfaat bagi semua pihak, umumnya bagi

pembaca dan khususnya bagi penulis.

Semoga amal baik yang diberikan kepada penulis sebelum dan sesudah

praktik mendapat balasan dari Allah SWT.

Bandung, April 2018

Penulis
BAB I
PENDAHULUAN

1.1. Latar Belakang Masalah


Dalam pembuatan sebuah perangkat lunak, perancang haruslah
memiliki Teknik analisa kebutuhan dan teknik permodelan yang baik,
sehingga dapat terwujud suatu perangkat lunak yang baik. Karena itu maka
diperlukanlah suatu pengenalan mengenai permodelan dalam suatu
pembangunan suatu perangkat lunak (Software).
Terdapat banyak permodelan mengenai pembangunan suatu perangkat
lunak seperti SDLC dan Agile Model. Yang dimana dari setiap model ini
memiliki macam-macam model lainnya. Berdasarkan tugas yang penulis
peroleh, penulis akan menjelaskan mengenai :.
1. Xtreme Programming
2. SCRUM
3. Adaptive Software Development

1.2. Rumusan Masalah


Berdasarkan pada penjelasan yang terdapat pada latar belakang masalah
di atas. Penulis akan menjelaskan :
1. Karakteristik dari proses model
2. Waktu yang tepat dalam penggunaan proses model
3. Gambaran dari proses model
4. Kelebihan dari proses model
5. Kekurangan dari proses model

1.3. Tujuan
Adapun tujuan dari pembuatan makalah ini adalah sebagai berikut :
1. Untuk memenuhi salah satu tugas dari mata kuliah Rekayasa
Perangkat Lunak semester 4
2. Untuk memperdalam pemahaman mengenai beberapa proses
model yang biasa digunakan dalam pembuatan perangkat lunak
BAB II
PEMBAHASAN

2.1 Xtreme Programming


Proyek Pemrograman Extreme pertama dimulai 6 Maret 1996. Extreme
Programming adalah salah satu dari beberapa Proses Agile populer. Sudah
terbukti sangat sukses di banyak perusahaan dari berbagai ukuran dan
industri di seluruh dunia.
XP dikembangkan oleh Kent Beck, yang menulis buku yang berjudul
“eXtreme Programming eXplained”. Proses instalasi Extreme
Programming dilakukan oleh Ron Jeffries, Ann Anderson, dan Chet
Hendrickson. Sedangkan Planning Extreme Programming dilakukan oleh
Kent Beck dan Martin Fowler.
Extreme Programming atau dikenal XP adalah suatu metode dalam
membangun software yang dikembangkan oleh Agile Software
Development.

2.1.1. Karakteristik
Extreme Programming sebagai sebuah metode yang dinamis
diperlihatkan dalam empat values yang dimilikinya dan keempatnya
merupakan dasar-dasar yang diperlukan dalam Extreme
Programming. Kent Beck menyatakan bahwa tujuan jangka pendek
individu sering berbenturan dengan tujuan sosial jangka panjang.
Karena itu dibuatlah values yang menjadi aturan, hukuman, dan juga
penghargaan. Keempat values tersebut adalah :

1. Komunikasi (Communication)
Tugas utama developer dalam membangun suatu sistem
perangkat lunak adalah mengkomunikasikan kebutuhan sistem
kepada pengembang perangkat lunak. Komunikasi dalam
Extreme Programmning dibangun dengan melakukan
pemrograman berpasangan (pair programming). Developer
didampingi oleh pihak klien dalam melakukan coding dan unit
testing sehingga klien bisa terlibat langsung dalam
pemrograman sambil berkomunikasi dengan developer.
Tujuannya untuk memberikan pandangan pengembang sesuai
dengan pandangan pengguna sistem.

2. Kesederhanaan (Simplicity)
XP mencoba untuk mencari solusi paling sederhana dan
praktis. Perbedaan metode ini dengan metodologi
pengembangan sistem konvensional lainnya terletak pada proses
desain dan coding yang terfokus pada kebutuhan saat ini
daripada kebutuhan besok, seminggu lagi atau sebulan lagi.
Lebih baik melakukan hal yang sederhana dan
mengembangkannya besok jika diperlukan.

3. Umpan Balik (Feedback)


Hal ini diperlukan untuk mengetahui kemajuan dari proses
dan kualitas dari aplikasi yang dibangun. Informasi ini harus
dikumpulkan setiap interval waktu yang singkat secara
konsisten. Ini dimaksudkan agar hal-hal yang menjadi masalah
dalam proses pengembangan dapat diketahui sedini mungkin.
Setiap feedback ditanggapi dengan melakukan tes, unit test atau
system integration dan jangan menunda karena biaya akan
membengkak (uang, tenaga, waktu).

4. Keberanian (Courage)
Berani mencoba ide baru. Berani mengerjakan kembali dan
setiap kali kesalahan ditemukan, langsung diperbaiki. Contoh
dari courage adalah komitmen untuk selalu melakukan design
dan coding untuk saat ini dan bukan untuk esok. Ketika ada kode
yang terlalu rumit, sulit dibaca dan dipahami, tidak sesuai
dengan kemauan pelanggan, dll maka seharusnya kode program
seperti itu di refactor (kalau perlu dibangun ulang). Hal ini
menjadikan pengembang merasa nyaman dengan refactoring
program ketika diperlukan.

Sebagai sebuah metodologi untuk mengembangkan perangkat


lunak Extreme Programming tentu memiliki siklus hidup. Siklus
hidup pada Extreme Programming ini terdapat lima fase yaitu :
1. Exploration Phase
2. Planning Phase
3. Iteration to Release Phase
4. Productionizing Phase
5. Maintenance Phase

2.1.2. Kapan Xtreme Programming Digunakan


2.1.3. Gambaran Dari Xtreme Programming
2.1.4. Kelebihan
 Menjalin komunikasi yang baik dengan klien. (Planning
Phase)
 Menurunkan biaya pengembangan (Implementation Phase)
 Meningkatkan komunikasi dan sifat saling menghargai antar
developer. (Implementation Phase)
 XP merupakan metodologi yang semi formal. (Planning
Developer harus selalu siap dengan perubahan karena
perubahan akan selalu diterima, atau dengan kata lain eksibel.
(Maintenance Phase)

2.1.5. Kekurangan
 Tidak bisa membuat kode yang detail di awal (prinsip
simplicity dan juga anjuran untuk melakukan apa yang
diperlukan hari itu juga).
 Selain dari keunggulan dan kelemahan XP yang telah
disebutkan diatas, XP juga memiliki keunggulan yang
sekaligus menjadi kelemahannya, yaitu XP tidak memiliki
dokumentasi formal yang dibuat selama pengembangan. Satu-
satunya dokumentasi adalah dokumentasi awal yang dilakukan
oleh user.

2.2 SCRUM
Scrum adalah sebuah kerangka kerja untuk mengembangkan dan
mengelola produk kompleks. Scrum dapat digunakan untuk menyelesaikan
permasalahan kompleks yang senantiasa berubah, dimana pada saat
bersamaan menghasilkan produk dengan nilai setinggi mungkin secara
kreatif dan produktif. Scrum telah digunakan untuk mengelola
pengembangan produk kompleks semenjak awal tahun 1990-an. Scrum
bukan menrupakan sebuah proses ataupun teknik untuk mengembangkan
produk; daripada itu, ini adalah sebuah kerangka kerja dimana di dalamnya
dapat dimasukkan beragam proses dan teknik.

2.2.3. Karakteristik
 ukuran tim yang kecil melancarkan komunikasi,
mengurangi biaya, dan memberdayakan satu sama lain
 proses dapat beradaptasi terhadap perubahan teknis dan
bisnis
 proses menghasilkan beberapa software increment
 pembangunan dan orang yang membangun dibagi dalam
tim yang kecil
 dokumentasi dan pengujian terus menerus dilakukan setelah
software dibangun
 proses scrum mampu menyatakan bahwa produk selesai
kapanpun diperlukan

2.2.4. Kapan Scrum Digunakan


2.2.5. Gambaran Dari Scrum
Scrum building block disebut Sprint. Sprint adalah sebuah
kotak-waktu (yang biasanya mempunyai durasi 1 hingga 4 minggu)
dimana tim pengembang fokus dalam mencapai target yang jelas.
Setiap Sprint selalu berakhir dengan diikuti Sprint Review, dimana
hasil yang sudah dibuat dipresentasikan dan didemontrasikan
didalam sebuah rapat tim. Dan berikut adalah istilah-istilah yang
terdapat dalam metode scrum :
1. Product Backlog
Pemilik Proyek menyusun dan mengumpulkan semua
permintaan dan kebutuhan sistem, misalnya fitur-fitur yang
dibutuhkan dan-atau kebutuhan non-fungsional sistem. Setelah
tujuannya sudah ditetapkan, semua permintaan dan kebutuhan
tersebut dibagi-bagi menjadi bagian-bagian kecil yang mana setiap
bagian kecil tersebut harus mempunyai nilai dan layak untuk
dikembangkan.
Pemilik Proyek juga menentukan skala prioritas dalam
pengerjaan bagian-bagian kecil tersebut. Bagaimana dan seperti apa
bagian-bagian kecil tersebut diimplementasikan dan di-deliver?.
Pertanyaan tersebut akan menghasilkan sebuah to-do-list
berdasarkan kebutuhan pasar dan kebutuhan pelanggan yang selalu
berubah seiring dengan berjalannya waktu.
2. Backlog Refinement
Backlog harus di-maintain dengan baik dan tepat oleh Tim
Scrum untuk dilakukan perencanaan, sehingga Sprint dapat berjalan
dengan lancar. Hal-hal yang harus dilakukan dalam me-maintain
backlog antara lain adalah melakukan proses estimasi dan
breakdown kebutuhan, Hal tersebut dilakukan agar kondisi Sprint
(1-4 minggu) terpenuhi.
3. Sprint
Sprint adalah kotak-waktu yang berisi periode kerja dimana
pada sprint fokus terhadap delivery produk berdasarkan item-item
yang dipilih dari Product Backlog.
4. Daily Scrum
Setiap hari, Tim Scrum harus melakukan pertemuan (rapat) selama
maksimal 15 menit. Hal ini dilakukan dengan tujuan untuk
mensinkronkan progres, mengidentifikasi masalah dan
menyelesaikan masalah yang ada dalam mengerjakan pekerjaannya.
5. Sprint Review
Setiap Sprint selalu berakhir dengan mendemontrasikan dan
mempresentasikan fitur-fitur yang telah dikerjakan. Hal tersebut
dilakukan untuk memastikan bahwa fitur-fitur tersebut dapat bekerja
dengan baik.
6. Sprint Retrspective
Didalam Sprint Retrspective, Tim Scrum merefleksikan
bagaimana pekerjaan-pekerjaan berjalan pada Sprint sebelumnya?.
Harapan yang ingin dicapai pada Sprint Retrspective adalah
adanya perbaikan tindakan sehingga Sprint berikutnya dapat
dikerjakan dengan lebih baik lagi. Perbaikan-perbaikan tersebut
harus diimplementasikan pada Sprint berikutnya.

2.2.6. Kelebihan
 Keperluan berubah dengan cepat
 Tim berukuran kecil sehingga melancarkan komunikasi,
mengurangi biaya dan memberdayakan satu sama lain
 Pekerjaan terbagi-bagi sehingga dapat diselesaikan dengan
cepat
 Dokumentasi dan pengujian terus menerus dilakukan setelah
software dibangun
 Proses Scrum mampu menyatakan bahwa produk selesai
kapanpun diperlukan
2.2.7. Kekurangan
 Developer harus selalu siap dengan perubahan karena
perubahan akan selalu diterima.
 Scrum sederhana namun sulit untuk dikuasai

2.3 Adaptive Software Development


Adaptive Software Development (ASD) diajukan oleh Jim Highsmith
sebagai teknik untuk membangun software dan sistem yang kompleks.
Filosofi yang mendasari Adaptive Software Development (ASD) adalah
kolaborasi manusia dan tim yang mengatur diri sendiri.
System kerja adaptive software development ada 3 : Speculation,
Collaboration dan Learning. Adaptive cycle planning yaitu menggunakan
informasi awal seperti misi dari klien, batasan proyek dan kebutuhan dasar
untuk definisikan rangkaian software increment (produk software yang
secara berkala diserahkan).
2.3.8. Karakteristik
 Perencanaan berbasis misi
 Fokus berbasis komponen
 Menggunakan “time-boxing”
 Konsideran eksplisit pada resiko
 Menekankan kolaborasi bagi pengumpulan kebutuhan
 Menekankan pembelajaran melalui proses

2.3.9. Kapan Adaptive Software Development Digunakan


2.3.10. Gambaran Dari Adaptive Software Development
ASD merupakan suatu model yang tergolong dalam pendekatan
agile yang diusulkan oleh Jim Highsmith. ASD menekankan pada
pengorganisasian tim secara mandiri, kolaborasi antar-
perseorangan, dan terus belajar, baik secara individu maupun secara
tim. ASD menggunakan tools yang disebut "time-boxing" - yaitu
berupa aktifitas yang menentukan jangka waktu tertentu yang
dialokasikan untuk menyelesaikan berbagai macam tugas. Apabila
waktu yang ditentukan tersebut selesai, maka pembangunan sistem
akan pindah ke tugas berikutnya, dengan harapan bahwa sebagian
besar dari critical work telah berhasil diselesaikan sebelum waktu
keseluruhan tugas berakhir. Terdapat tiga tahapan pada model ASD,
yaitu: Speculation, Collaboration, dan Learning.
Pada tahap Speculation, proyek dimulai dan adaptive cycle
planning diselenggarakan. Pada tahapan ini, didefinisikan visi dan
misi pengguna terhadap sistem yang akan dibuat, selanjutnya
mendefinisikan project constraints, misalnya : waktu deliver. dan
selanjutnya mendefinisikan satu set dari requirements yang akan
dikerjakan dalam suatu cycle.
Pada tahap Collaboration, pada tahap ini diorganisasikan tim
kerja untuk membangun sistem. Direkomendasikan menggunakan
model Joint Application Development (JAD). Collaboration : orang-
orang yang bermotivasi tinggi bekerja sama: saling melengkapi, rela
membantu, kerja keras, trampil di bidangnya, dan komunikasikan
masalah untuk hasilkan penyelesaian yang efektif.
Pada tahap Learning, terdapat tiga aktifitas yaitu: pelanggan atau
end-user menyediakan feedback terhadap hasil incremental
delivery, tim ASD melakukan review terhadap komponen perangkat
lunak untuk memperbaiki dan meningkatkan kualitas perangkat
lunak yang sedang dibuat. Learning : tim pembangun sering merasa
sudah tahu semua hal tentang proyek,
padahal tidak selamanya begitu. Karena itu proses ini membuat
mereka belajar lebih tentang proyek melalui 3 cara:
1. Focus group : klien dan pengguna memberi masukan
terhadap software
2. Formal Technique Reviews : Tim ASD lengkap melakukan
review
3. Postmortems : Tim ASD lakukan instrospeksi pada kinerja
dan proses

2.3.11. Kelebihan
2.3.12. Kekurangan
BAB III
KESIMPULAN

Xtreme Programming, SCRUM, Adaptive Software Development merupakan


proses model atau metodologi untuk merancang sebuah perangkat lunak yang
memiliki karakteristik, kelebihan dan kekurangan masing-masing. Sehingga
pembuatan sebuah perangkat lunak akan menjadi semakin baik apabila
menggunakan proses model yang sesuai dengan proyek yang akan dibangun.

Anda mungkin juga menyukai