TUGAS MAKALAH SISTEM INFORMASI MANAJEMEN EXTREME PROGRAMMING (XP)
TUGAS
MAKALAH
SISTEM
INFORMASI MANAJEMEN
EXTREME
PROGRAMMING (XP)
Disusun Oleh :
1.
Miftachul Huda (15428008)
2.
Mauna Fitria (15428007)
3.
Arin Kurniasih (15429016)
4.
Endang Kusnaenah (15429033)
SEKOLAH TINGGI
MANAJEMEN
INFORMATIKA DAN
KOMPUTER CIKARANG
2017
Kata
Pengantar
Dengan menyebut
nama Allah SWT yang Maha Pengasih lagi Maha Panyayang, Kami panjatkan puja dan
puji syukur atas kehadirat-Nya, yang telah melimpahkan rahmat, hidayah, dan
inayah-Nya kepada kami, sehingga kami dapat menyelesaikan makalah ilmiah
tentang Extreme Programing.
Makalah ilmiah
ini telah kami susun dengan maksimal dan mendapatkan bantuan dari berbagai
pihak sehingga dapat memperlancar pembuatan makalah ini. Untuk itu kami
menyampaikan banyak terima kasih kepada bapak Asep Jalaludin, ST.MM sebagai
dosen pengampu mata kuliah Sistem Informasi Manajemen dan semua pihak yang
telah berkontribusi dalam pembuatan makalah ini.
Terlepas dari
semua itu, Kami menyadari sepenuhnya bahwa masih ada kekurangan baik dari segi
susunan kalimat maupun tata bahasanya. Oleh karena itu dengan tangan terbuka
kami menerima segala saran dan kritik dari pembaca agar kami dapat memperbaiki
makalah ilmiah ini.
Akhir kata kami berharap semoga makalah extreme programing ini dapat memberikan
manfaat maupun inpirasi terhadap pembaca.
Cikarang, Maret 2017
Penyusun
DAFTAR ISI
COVER..................................................................................................................................... I
KATA PENGANTAR ................................................................................................................. II
DAFTAR ISI............................................................................................................................. III
BAB I PENDAHULUAN
1.1. Latar Belakang Masalah........................................................................................ 1
1.2. Rumusan Masalah................................................................................................. 2
1.3. Tujuan.................................................................................................................... 2
BAB II PEMBAHASAN
2.1. Sejarah Extreme Programming............................................................................. 3
2.1. Sejarah Extreme Programming............................................................................. 3
2.2. Pengertian Extreme Programming ...................................................................... 3
2.3. Tujuan Extreme Programming ............................................................................. 4
2.4. Nilai Dasar Extreme Programing ........................................................................ 4
2.5. Aspek Dasar Extreme Programming .................................................................... 5
2.6. Kelebihan dan Kelemahan Extreme Programing.................................................. 8
2.3. Tujuan Extreme Programming ............................................................................. 4
2.4. Nilai Dasar Extreme Programing ........................................................................ 4
2.5. Aspek Dasar Extreme Programming .................................................................... 5
2.6. Kelebihan dan Kelemahan Extreme Programing.................................................. 8
2.6.1. Kelebihan Extreme Programing.................................................................. 8
2.6.2. Kekurangan Extreme Programing............................................................... 9
2.7. Kunci Utama Extreme Programing (XP Value).................................................... 10
2.8. Penerapan Exreme Programming....................................................................... 10
2.7. Kunci Utama Extreme Programing (XP Value).................................................... 10
2.8. Penerapan Exreme Programming....................................................................... 10
2.8.1. Kerangka Kerja Extreme Programing....................................................... 11
2.8.2. Pengertian UML......................................................................................... 12
2.8.3 Penerapan Diagram UML yang
Berkaitan Dengan Extreme Programing. 13
BAB III PENUTUP
3.1 Kesimpulan .......................................................................................................... 18
3.2 Pertanyaan dan Jawaban Hasil Presentasi........................................................... 20
DAFTAR PUSTAKA................................................................................................................. 21
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Perkembangan teknologi
informasi yang pesat membawa pengaruh yang sangat berarti pada
kehidupan manusia dewasa ini. Teknologi informasi memiliki berbagai unsur
yang membangunnya menjadi kesatuan yang kokoh. Salah satu unsur teknologi
informasi adalah perangkat lunak. Perangkat lunak merupakan kumpulan objek yang
membentuk kon gurasi yang dapat berupa program, dokumen, atau data. Perangkat
lunak adalah sesuatu yang dikembangkan, bukan dibuat secara pabrikan seperti
perangkat keras.
Pengembangan
perangkat lunak memerlukan langkah-langkah yang tepat, efektif dan e sien untuk
menjamin terpenuhinya kebutuhan user. Untuk itulah berkembang berbagai
metodologi pengembangan perangkat lunak. Sebelum era 2000-an kita mengenal
metodologi waterfall, spiral model, Rapid Application Development, dan masih
banyak beberapa lainnya. Semua metodologi tersebut merupakan metodologi yang
formal, dalam arti seluruhnya berjalan mengikuti aturan-aturan baku yang telah
ditetapkan. Pada era 2000-an mulai berkembang metodologi baru yang sangat eksibel,
yaitu Agile Methods. Agile methods merupakan salah satu dari beberapa
metode yang digunakan dalam pengembangan sooftware. Agile method adalah jenis
pegembangan sistem jangka pendek yang memerlukan adaptasi cepat dan pengembang
terhadap perubahan dalam bentuk apapun. Dalam Agile Software Development
interaksi dan personel lebih penting dari pada proses dan alat, software yang
berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan
klien lebih penting dari pada negosiasi kontrak, dan sikap tanggap terhadap
perubahan lebih penting daripada mengikuti rencana. Agile Method juga dapat
diartikan sekelompok metodologi pengembangan software yang didasarkan pada
prinsip-prinsip yang sama atau pengembangan system jangka pendek yang memerlukan
adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun. Agile
Software Development juga melihat pentingnya komunikasi antara anggota tim,
antara orang-orang teknis dan businessmen, antara developer dan managernya.
Pada
penulisan buku ini hanya extreme programming yang akan dibahas, karena extreme
programming merupakan metodologi yang paling kecil tingkat keformalannya.
1.2 Rumusan Masalah
Berdasarkan uraian permasalah diatas dapat dirumuskan masalah
sebagai berikut :
a. Apakah pengertian
extreme programming?
b. Bagaimana
penerapan extreme programing dalam membangun sebuah program?
c. Bagaimana contoh
study kasus yang menerapkan extreme programming?
1.3 Tujuan
a. Diharapkan
mahasiswa mengerti pengertian extreme programing.
b. Diharapkan
mahasisawa mengerti penerapan extreme programming dalam membangun sebuah
program.
c. Diharapkan
mahasiswa mengerti contoh study kasus yang menerapkan extreme programming.
BAB II
PEMBAHASAN MASALAH
2.1 Sejarah
Extreme Programming
Extrem programming dimunculkan untuk menangani
perubahan-perubahan yang biasanya sering terjadi pada saat pengembangan
berlangsung bahkan pada saat proses pengembangan sudah hampir berakhir.
Selainitu XP juga dimunculkan untuk mengatasi berbagai requirements yang tidak
jelasdari user. Sebagai sebuahmetodologi untuk mengembangkan peragkat lunak XP
tentu memiliki siklus hidup. Siklus hidup pada XP inierdapat lima fase yaitu :
Extreme Programming diciptakan oleh Kent Beck selama bekerja di Chrysler
MenyeluruhbSistem Kompensasi (C3) proyek penggajian. Beck C3 menjadi pemimpin
proyek Maret 1996 dan mulai untuk memperbaiki metode pengembangan yang
digunakan dalam proyek dan menulis sebuah buku tentang metode (pada
Oktober 1999, Extreme Programming Explained diterbitkan). Chrysler membatalkan
proyek C3 pada Februari 2000, setelah perusahaan diakuisisi oleh Daimler-Benz.
Meskipun Extreme Programming itu sendiri adalah relatif baru, banyak dari
praktik sudah ada selama beberapa waktu, metodologi, setelah semua, diperlukan
praktek terbaik untuk tingkat ekstrem. Sebagai contoh, tes-praktek pembangunan
pertama, perencanaan dan tes tertulis sebelum setiap mikro-increment digunakan
sebagai awal NASA Project Mercury, pada awal 1960-an (Larman 2003).
Refactoring, modularitas, bottom-up dan desain inkremental digambarkan oleh Leo
Brodie dalam bukunya yang diterbitkan pada tahun 1984.
2.2 Pengertian Extreme Programming
Extreme Programming (XP) merupakan salah satu metode
pengembangan software yang termasuk dalam Agile Software Development. XP
menggunakan pendekatan object-oriented. Dalam XP, terdapat 5 nilai yang menjadi
pondasi yaitu communication, simplicity, feedback, courage, dan
respect. Komunikasi yang efektif antara pengembang perangkat lunak
dan pihak-pihak yang terlibat sangatlah penting. Dalam XP, desain dijadikan
kebutuhan intermediate. Desain dibuat sesederhana mungkin agar mudah
mengimplementasikan code. Disini dapat terjadi perubahan struktur desain atau
perubahan source code tanpa mengubah fungsi utamanya (refactoring). Feedback
akan diberikan saat peningkatan dan pengimplementasian perangkat lunak.
2.3 Tujuan Extreme Programming
Tujuan utama
dalam extreme programming adalah menurunkan biaya dari adanya perubahan
software .Dalam metodologi pengembangan sistem tradisional, kebutuhan
sistem ditentukan padatahap awal pengembangan proyek dan bersifat xed. Hal ini
berarti biaya terhadap adanya perubahan kebutuhan yang terjadi pada tahap
selanjutnya akan menjadi mahal. XP diarahkan untuk menurunkan biaya dari adanya
perubahan dengan memperkenalkan nilai-nilai basis dasar, prinsip dan praktis.
Dengan menerapkan XP, pengembangan suatu sistem haruslah lebih eksibel terhadap
perubahan. Sasaran XP adalah tim yang dibentuk berukuran antara kecil sampai
medium saja, tidak perlu menggunakan sebuah tim yang besar. Hal ini dimaksudkan
untuk menghadapi requirements yang tidak jelas maupun terjadinya
perubahan-perubahan requirements yang sangat cepat. XP dimunculkan untuk
menangani perubahan-perubahan yang biasanya sering terjadi pada saat
pengembangan berlangsung bahkan pada saat proses pengembangan sudah hampir
berakhir.
2.4 Nilai Dasar Extreme Programming
1. Communication
Berfokus bagaimana cara agar hubungan komunikasi antar
anggota tim terjalin dengan baik. Setiap anggota tim harus bisa saling
pengertian dan berbagi pengetahuan serta keterampilan mengenai pengembangan
perangkat lunak.
2. Courage
Demi tercapainya proyek pengembangan yang sukses,
setiap masing-masing anggota tim harus selalu memiliki keberanian, keyakinan
serta integritas dalam melakukan tugasnya.
3. Simplicity
tim developer harus tetap melakukan semuanya
dengan sederhana, karena salah satu nilai dasar dari Extreme Programming adalah
mencoba untuk selalu mencari solusi yang paling sederhana dan paling
praktis. Gunakanlah method yang mudah, pendek atau tidak terlalu rumit
dalam pembuatan desain serta hilangkanlah fitur-fitur yang tidak berguna.
4. Feedback
Anggota tim harus selalu mendengarkan pendapat anggota
tim lainnya tanpa adanya cemohan terhadap pendapatnya tersebut.
2.5 Aspek Dasar Extreme Programing
Aspek dasar XP terdiri dari berbagai teknik
atau metode yang diterapkan Beck dan Jeffries pada C3 Project. Teknik-teknik tersebut antara lain:
1.
WholeTeam
Seluruh kontributor dalam proyek yang menggunakan pendekatan XP duduk bersama sebagai suatu tim. Tim ini terdiri beberapa peran, antara lain programmer, penguji,orang yang mengerti bisnis, analis, manajer, dan lain-lain. Setiap peran yang ada tidak mutlak menjadi peran dari satu orang saja. Tim terbaik dalam XP tidak harus memiliki pakar, hanya kontributor umum dengan keterampilan khusus saja. Semua orang di tim XP memberikan kontribusi dengan cara apapun yang mereka dapat lakukan.
Seluruh kontributor dalam proyek yang menggunakan pendekatan XP duduk bersama sebagai suatu tim. Tim ini terdiri beberapa peran, antara lain programmer, penguji,orang yang mengerti bisnis, analis, manajer, dan lain-lain. Setiap peran yang ada tidak mutlak menjadi peran dari satu orang saja. Tim terbaik dalam XP tidak harus memiliki pakar, hanya kontributor umum dengan keterampilan khusus saja. Semua orang di tim XP memberikan kontribusi dengan cara apapun yang mereka dapat lakukan.
2.
PlanningGame
Perencanaan dalam XP mengemukakan dua pertanyaan kunci dalam pengembangan perangkat lunak, yaitu memprediksi apa yang akan dicapai pada waktu tertentu, dan menentukan apa yang harus dilakukan setelah itu. Ada dua langkah kunci dalam perencanaan XP, yang menangani dua pertanyaan tersebut:
Perencanaan dalam XP mengemukakan dua pertanyaan kunci dalam pengembangan perangkat lunak, yaitu memprediksi apa yang akan dicapai pada waktu tertentu, dan menentukan apa yang harus dilakukan setelah itu. Ada dua langkah kunci dalam perencanaan XP, yang menangani dua pertanyaan tersebut:
a.
Release
Planning yaitu
praktek dimana Customer mengutarakan fitur yang diinginkannya ke programer, dan
programer memperkirakan tingkat kesulitannya. Dengan estimasi biaya di tangan,
dan dengan pengetahuan tentang pentingnya fitur yang diinginkan, Pelanggan
meletakkan satu rencana untuk proyek tersebut. Rencana rilis awal yang selalu
tepat: baik prioritas maupun perkiraan yang benar-benar solid, dan sampai tim
mulai bekerja, kita tidak akan tahu seberapa cepat mereka akan pergi. Bahkan
rencana rilis pertama cukup akurat untuk pengambilan keputusan, namun, dan tim
XP melakukan revisi terhadap rencana rilis secara teratur.
b.
Iteration
Planning adalah praktek di mana tim
diberikan petunjuk atau arahan setiap beberapa minggu sekali. Tim XP membangun
perangkat lunak dalam “iterasi” dua minggu, memberikan menjalankan perangkat
lunak yang berguna pada setiap akhir iterasi. Selama Iteration Planning,
Customer mengutarakan fitur yang diinginkan selama dua minggu ke depan. Para
programer memecahnya ke dalam pekerjaan yang lebih kecil, dan memperkirakan
biaya yang diperlukan.
3.
CustomerTests
Sebagai bagian dari presentasi masing-masing fitur yang diinginkan, Customer XP mendefinisikan satu atau lebih tes penerimaan otomatis untuk menunjukkan bahwa fitur tersebut bekerja dengan baik. Tim membangun tes ini dan menggunakannya untuk membuktikan pada kepada Customer bahwa fitur ini telah diimplementasikan dengan benar. Tes secara otomatis ini penting karena dalam XP hanya diberikan waktu yang singkat sehingga tes manual tidak akan digunakan karena memakan waktu yang lama.
Sebagai bagian dari presentasi masing-masing fitur yang diinginkan, Customer XP mendefinisikan satu atau lebih tes penerimaan otomatis untuk menunjukkan bahwa fitur tersebut bekerja dengan baik. Tim membangun tes ini dan menggunakannya untuk membuktikan pada kepada Customer bahwa fitur ini telah diimplementasikan dengan benar. Tes secara otomatis ini penting karena dalam XP hanya diberikan waktu yang singkat sehingga tes manual tidak akan digunakan karena memakan waktu yang lama.
4.
SmallRelease
Pada setiap Iterasi, tim mengerjakan sebuah unit atau bagian dari perangkat lunak, melakukan tes terhadap unit perangkat lunak yang dibangun, kemudian di akhir iterasi perangkat lunak yang dibangun diberikan kepada Customer. Oleh customer, perangkat lunak ini bisa dijadikan bahan evaluasi maupun langsung dirilis kepada end user. Bisa juga tim XP langsung merilis ke end user secara rutin.
Pada setiap Iterasi, tim mengerjakan sebuah unit atau bagian dari perangkat lunak, melakukan tes terhadap unit perangkat lunak yang dibangun, kemudian di akhir iterasi perangkat lunak yang dibangun diberikan kepada Customer. Oleh customer, perangkat lunak ini bisa dijadikan bahan evaluasi maupun langsung dirilis kepada end user. Bisa juga tim XP langsung merilis ke end user secara rutin.
5.
SimpleDesign
Tim XP membangun perangkat lunak dengan desain yang sederhana. Dimulai dengan desain yang sederhana, kemudian melalui pengujian program dan perbaikan desain. Desain yang dibuat harus benar-benar cocok untuk fungsi saat ini dari sistem sehingga tidak ada yang sia-sia dan perangkat lunak siap dikembangkan lagi selanjutnya. Namun, pembuatan desain dalam XP tidak dilakukan hanya sekali. Tahapan desain dalam Extreme Programming yang menghasilkan desain yang bagus dianggap sangat penting, sehingga selama proses development banyak difokuskan ke tahapan desain.
Tim XP membangun perangkat lunak dengan desain yang sederhana. Dimulai dengan desain yang sederhana, kemudian melalui pengujian program dan perbaikan desain. Desain yang dibuat harus benar-benar cocok untuk fungsi saat ini dari sistem sehingga tidak ada yang sia-sia dan perangkat lunak siap dikembangkan lagi selanjutnya. Namun, pembuatan desain dalam XP tidak dilakukan hanya sekali. Tahapan desain dalam Extreme Programming yang menghasilkan desain yang bagus dianggap sangat penting, sehingga selama proses development banyak difokuskan ke tahapan desain.
6.
PairProgramming
Semua perangkat lunak yang dibangun dengan pendekatan XP dibangun oleh dua orang programmer. Keduanya duduk berdampingan di satu komputer yang sama. Seorang programmer akan membuat code dan programmer yang lainnya akan mengoreksinya. Praktik seperti ini mungkin kelihatan tidak efisien. Namun dari segi hasil dari pair programming, desain akan lebih baik, pengujian lebih baik, dan code yang dihasilkan pun akan lebih baik.
Semua perangkat lunak yang dibangun dengan pendekatan XP dibangun oleh dua orang programmer. Keduanya duduk berdampingan di satu komputer yang sama. Seorang programmer akan membuat code dan programmer yang lainnya akan mengoreksinya. Praktik seperti ini mungkin kelihatan tidak efisien. Namun dari segi hasil dari pair programming, desain akan lebih baik, pengujian lebih baik, dan code yang dihasilkan pun akan lebih baik.
7.
Test-DrivenDevelopment
XP begitu terobsesi dengan umpan balik, dan dalam pengembangan perangkat lunak, umpan balik yang baik mensyaratkan pengujian yang baik pula. Test-Driven Development bergantung pada pengulangan siklus development yang sangat pendek. Pertama tim XP akan menuliskan automated test case yang mendefinisikan perbaikan yang diinginkan atau fungsi baru. Kemudian dari test case tersebut dihasilkan jumlah minimal code yang harus dituliskan untuk lulus tes tersebut. Setelah itu melakukan refactoring code baru agar memenuhi standar baru.
XP begitu terobsesi dengan umpan balik, dan dalam pengembangan perangkat lunak, umpan balik yang baik mensyaratkan pengujian yang baik pula. Test-Driven Development bergantung pada pengulangan siklus development yang sangat pendek. Pertama tim XP akan menuliskan automated test case yang mendefinisikan perbaikan yang diinginkan atau fungsi baru. Kemudian dari test case tersebut dihasilkan jumlah minimal code yang harus dituliskan untuk lulus tes tersebut. Setelah itu melakukan refactoring code baru agar memenuhi standar baru.
8.
DesignImprovement
XP berfokus pada memberikan nilai bisnis dalam setiap perulangan. Agar dapat mencapai tujuan tersebut selama proyek berlangsung, perangkat lunak harus dirancang dengan baik. XP menggunakan proses perbaikan desain secara terus menerus dengan Refactoring. Proses refactoring berfokus pada penghapusan duplikasi dari code yang telah dibuat. Disamping itu, proses refactoring didukung dengan pengujian yang komprehensif utnuk memastikan bahwa desain yang dibuat berkembang dan tiidak ada yang rusak.
XP berfokus pada memberikan nilai bisnis dalam setiap perulangan. Agar dapat mencapai tujuan tersebut selama proyek berlangsung, perangkat lunak harus dirancang dengan baik. XP menggunakan proses perbaikan desain secara terus menerus dengan Refactoring. Proses refactoring berfokus pada penghapusan duplikasi dari code yang telah dibuat. Disamping itu, proses refactoring didukung dengan pengujian yang komprehensif utnuk memastikan bahwa desain yang dibuat berkembang dan tiidak ada yang rusak.
9.
ContinuousIntegration
Beberapa kali dalam sehari, tim XP akan menggabungkan seluruh salinan pekerjaan tim menjadi satu dalam jaringan utama. Sehingga tim XP harus menjaga tim agar terintegrasi setiap saat.
Beberapa kali dalam sehari, tim XP akan menggabungkan seluruh salinan pekerjaan tim menjadi satu dalam jaringan utama. Sehingga tim XP harus menjaga tim agar terintegrasi setiap saat.
10. CollectiveCodeOwnership
Pada proyek XP, setiap pasang programmer dapat meningkatkan code apapun setiap saat. Semua code yang ada dimiliki secara kolektif oleh tim. Manfaatnya setiap code akan mendapat perhatian dari banyak orang, sehingga dapat meningkatkan kualitas code dan mengurangi cacat. Selain itu dapat mengurangi duplikasi code yang sama walaupun dibuat oleh pasangan programmer yang berbeda.
Pada proyek XP, setiap pasang programmer dapat meningkatkan code apapun setiap saat. Semua code yang ada dimiliki secara kolektif oleh tim. Manfaatnya setiap code akan mendapat perhatian dari banyak orang, sehingga dapat meningkatkan kualitas code dan mengurangi cacat. Selain itu dapat mengurangi duplikasi code yang sama walaupun dibuat oleh pasangan programmer yang berbeda.
11. CodingStandard
Setiap anggota tim XP harus mengikuti standar coding yang umum, sehingga semua code dalam sistem seolah-olah tampak dibuat oleh satu orang yang sangat kompeten. Selain itu hal ini sangat mendukung Collective Code Ownership.
Setiap anggota tim XP harus mengikuti standar coding yang umum, sehingga semua code dalam sistem seolah-olah tampak dibuat oleh satu orang yang sangat kompeten. Selain itu hal ini sangat mendukung Collective Code Ownership.
12. Metaphor
Tim XP akan membuat suatu deskripsi umum bagaimana program yang mereka kembangkan bekerja dengan benar.
Tim XP akan membuat suatu deskripsi umum bagaimana program yang mereka kembangkan bekerja dengan benar.
13. SustainablePace
Tim XP akan bekerjasama dalam jangka waktu lama. Mereka bekerja keras dengan kecepatan tertentu tanpa batas waktu. Tim XP akan bekerja lembur pada hari efektif dan memaksimalkan produktivitas setiap minggunya. Hal ini perlu diperhatikan dengan baik, karena akan mengurangi produktivitas atau sebaliknya menghasilkan perangkat lunak yang berkualitas.
Tim XP akan bekerjasama dalam jangka waktu lama. Mereka bekerja keras dengan kecepatan tertentu tanpa batas waktu. Tim XP akan bekerja lembur pada hari efektif dan memaksimalkan produktivitas setiap minggunya. Hal ini perlu diperhatikan dengan baik, karena akan mengurangi produktivitas atau sebaliknya menghasilkan perangkat lunak yang berkualitas.
2.6 Kelebihan Dan Kekurangan Extreme Programing
2.6.1
Kelebihan Extreme Programing
1. Ada interaksi
yang baik antara developer
2. Memberikan
pembelajaran kepada orang lain (client)
3. Pelanggan
mendapatkan timbal balik yang akurat
4. Dapat mengubah
pemikiran pelanggan
5. Developer tidak bekerja
secara berlebihan
6. Dapat membuat
keputusan teknikal
2.6.2
Kekurangan
Extreme Programing
1. Extreme
Programing hanya
menjalankan 1 proyek dan dijalankan oleh 1 tim
2. Developer harus dan akan menghadapi
perubahan yang harus mereka jalankan.
3. Extreme
Programming tidak dapat dikerjakan jika developer saling
terpisah
4. Extreme
programming belum terbukti dapat bekerja di dalam sistem yang mempunyai masalah
skalabilitas
2.7 Kunci
Utama Extreme Programing (XP Value)
XP sebagai sebuah metode yang dinamis
diperlihatkan dalam empat values yang
dimilikinya dan keempatnya merupakan dasar-dasar yang diperlukan
dalam XP
1.
Communication: (Komunikasi) Komunikasi menekankan pada pendekatan yang lebih menekankan
pada orang per orang secara langsung, dimana hal tersebut akan lebih baik
daripada hanya berdasarkan pada dokumen yang menjelaskan tentang software
yang dibangun. Dan juga, kemungkinan penggunaan dari beberapa parktis XP
sehingga dibutuhkan alokasi waktu yang banyak untuk berkomunikasi dengan
costomer.
2.
Simplicity: (Kesederhanaan) Simplicity adalah sebuah nilai (value) dari XP yang
digunakan untuk memberikan solusi dari problem atau permasalahan yang dihadapi
oleh customer sehingga problem atau masalah tersebut bisa disederhanakan. Kedua
pihak yaitu pengembang (developer) dan pemesan(customer) bisa mengerti solusi
software jika itu tidak nyata, dimana solusi tersebut merupakan
kandidat untuk praktis yang lain yang disebut dengan Refactoring (salah
satu inti dari praktis XP). Yang pasti, Simple Design (salah satu inti
dari praktis XP) merupakan sebuah paktis yang memberikan kontribusi bagi
nilai Simplicity.
3.
Feedback: berarti bahwa segala sesuatu yang telah dilakukan atau dicapai dievaluasi
dengan respect/ reaksi untuk mengetahui bagaimana agar pekerjaan tersebut
berjalan dengan baik dan menghasilkan software yang sesuai dengan
kebutuhan customer. Pernyataan Bagaimana agar pekerjaan tersebut berjalan
dengan baik mengindikasikan bahwa feedback diperoleh dari evaluasi setiap
bagian pekerjaan dari solusi. Feedback, yang merupakan hasil kerja dari
Nyquist di Laboratorium Bell pada awal tahun 1930, digunakan untuk
menjamin bahwa solusi tersebut adalah benar. Pada saat
engineers(insinyur) mulai mempelajari feedback, hal tersebut telah menjadi
salah satu jalan dalam mencari solusi dari suatu masalah.
4.
Courage: berarti bahwa pihak pengembang mempersiapkan segala sesuatunya untuk
membuat keputusan yang sangat penting yang mendukung praktis XP pada saat
membangun dan merelis(meluncurkan) software kepada customer untuk
masing-masing iterasi. Hal ini sangat menentukan untuk melihat
apakah hasil dari suatu iterasi tersebut sudah sesuai dengan requirement
(permintaan), bila ternyata hal tersebut belum sesuai maka pihak developer
akan meminta waktu untuk meninjau kembali modul modul yang telah dibuat
guna melakukan penyesuaian. Ada 2 jalan penting yang bisa ditempuh
oleh tim developer dalam meluncurkan small releases, yaitu : Pertama, tim
akan menjalankan releases tersebut, melakukan pengujian terhadap perangkat
lunak, dan mengirimkan nilai bisnis yang telah dipilih oleh customer,
untuk setiap iterasinya. Customer bisa menggunakan perangkat lunak ini
untuk tujuan lain, apakah akan dievaluasi atau akan dilepas kepada end
user. Aspect yang paling penting adalah bahwa perangkat lunak tersebut
ada, dan diberikan kepada customer, pada akhir setiap iterasi. Kedua, Tim
developer XP melepaskan release ke end user. Web project XP diluncurkan setiap
hari, di dalam software house setiap bulan atau lebih sering lagi.
2.8 Penerapan
Extreme Programing
Beberapa
hal yang harus dipertimbangkan sebelum seseorang masuk dalam dunia Extreme
Programmning adalah sebagai berikut:
1.
User
harus memahami konteks bisnis yang akan dikembangkan sistemnya, sehingga
developer dapat menangkap sistem secara aplikatif dan dapat mengusulkan
teknologi apa yang dapat dikembangkan dalam sistem barunya.
2.
Akan
lebih efektif apabila developer pernah menangani proyek pengembangan sistem
yang sejenis sehingga dapat memberikan usulan model sistem baru, di
samping alasan bahwa developer telah memiliki template aplikasi sistem
tersebut untuk dijadikan prototype sistem baru. Hal ini akan
berimplikasi kepada kemudahan dalam konstruksi sistem karena dikembangkan
berdasarkan template yang sudah ada.
3.
Extreme
programming menuntut komunikasi antar developer dan user secara intensif dan
komunikasi internal antar developer secara komprehensif, sehingga akan
lebih representatif apabila tahap pengembangan sistem dilakukan di lokal
yang mendukung proses komunikasi tersebut.
2.8.1 Kerangka
Kerja Extreme Programing
1. Planing
berfokus untuk mendapatkan gambaran fitur dan fungsi
dari perangkat lunak yang akan dibangun.
Aktivitas planning dimulai dengan membuat kumpulan gambaran atau cerita
yang telah diberikan oleh klien yang akan menjadi gambaran dasar dari perangkat
lunak tersebut. Kumpulan gambaran atau cerita tersebut akan dikumpulkan dalam
sebuah indeks dimana setiap poin memiliki prioritasnya masing-masing. Selama proses pengembangan
perangkat lunak, klien dapat mengubah setiap rencana dari aplikasi yang dibuat.
Tim XP akan mempertimbangkan semua hal yang ingin diubah oleh klien sebelum
mengubah aplikasi tersebut.
2. Design
bertujuan
untuk mengatur pola logika dalam sistem. Sebuah desain aplikasi yang baik adalah desain yang dapat mengurangi
ketergantungan antar setiap proses pada sebuah sistem. Jika salah satu fitur pada sistem mengalami kerusakan, maka hal
tersebut tidak akan mempengaruhi sistem secara
keseluruhan.
Tahap Design pada model proses Extreme
Programming merupakan panduan dalam membangun perangkat lunak yang didasari dari cerita klien
sebelumnya yang telah dikumpulkan pada tahap planning. Dalam XP, proses design terjadi
sebelum dan sesudah aktivitas coding berlangsung. Artinya, aktivitas design terjadi secara
terus-menerus selama proses pengembangan aplikasi berlangsung.
3. Coding
XP
menerapkan konsep Pair Programming dimana setiap tugas sebuah
modul dikembangkan oleh dua orang programmer. XP beranggapan, 2
orang akan lebih cepat dan baik dalam menyelesaikan sebuah masalah.
Selanjutnya, modul aplikasi yang sudah selesai dibangun akan digabungkan dengan
aplikasi utama.
4. Testing
XP akan terus mengecek dan memperbaiki semua
masalah-masalah yang terjadi walaupun hanya masalah kecil. Setiap modul yang
sedang dikembangkan, akan diuji terlebih dahulu dengan modul unit tes yang
telah dibuat sebelumnya.
Setelah semua modul selesai dan dikumpulkan ke dalam
sebuah sistem yang sempurna, maka tim XP akan melakukan pengujian penerimaan
atau acceptance test. Pada tahap ini, aplikasi akan langsung diuji coba oleh
user dank lien agar mendapat tanggapan langsung mengenai penerapan
gambaran dan cerita yang telah dilakukan sebelumnya.
2.8.2 Pengertian UML
UML adalah UML merupakan singkatan dari “Unified Modelling Language” yaitu
suatu metode permodelan secara visual untuk sarana perancangan sistem
berorientasi objek, atau definisi UML yaitu sebagai suatu bahasa yang
sudah menjadi standar pada visualisasi, perancangan dan juga pendokumentasian
sistem software. Saat ini UML sudah menjadi bahasa standar dalam penulisan
blue print software.
2.8.3 Contoh Penerapan UML yang Berkaitan
Dengan Extreme Programing
1. USE CASE DIAGRAM
Use case diagram pada sistem ini memiliki satu
aktor yaitu operator yang bertugas melakukan seluruh proses pada sistem ini.
Proses yang dimaksud adalah meng-input data pelamar, melihat master
lowongan, mengubah matriks perbandingan berpasangan, dan melihat hasil seleksi.
Beberapa dari proses itu terdapat proses tambahan yang dapat dilakukan operator
yang ditandai dengan tanda panah putus-putus serta bertanda extend seperti
proses input pelamar terdapat proses tambahan berupa lihat pelamar dan gunakan
SPK. Sebelum menggunakan sistem ini operator terlebih dahulu harus
melakukan login, hal itu ditandai dengan tanda panah putus-putus serta
bertanda include yang mengarah ke proses login dari setiap proses
yang ada pada sistem ini.
2. ACTIVITY
DIAGRAM
Activity diagram
atau diagram aktivitas yang dibuat pada penelitian ini
disesuaikan dari setiap proses utama yang ada pada use case diagram. Proses
login merupakan proses otentifikasi pengguna untuk mencegah orang lain
yang tidak memiliki hak menggunakan sistem sehingga keamanan data dapat terjaga.
Proses pembuatan activity
diagram :
1.
Proses input pelamar merupakan proses pemasukan data
pelamar ke dalam sistem. Pada proses ini diawali dengan memasukan lowongan dan
diikuti dengan memasukan data-data pelamar. Setelah data dimasukkan, sistem
akan menampilkan data pelamar yang sudah ada pada data base. Setelah
data pada data base ditampilkan, pengguna diberi pilihan apakah sudah
ingin menggunakan SPK atau belum.
2. Proses lihat
master lowongan merupakan proses dimana admin dapat melihat, mengedit,
dan menambahkan master lowongan. Master lowongan disini berisi data-data
mengenai posisi atau bagian apa saja yang sedang membuka lowongan untuk
penerimaan pegawai baru.
3. Proses lihat master jabatan merupakan proses dimana
admin dapat melihat data master jabatan yang ada di perusahaan ini. Master
jabatan berisi informasi jabatan mulai dari id, nama, hingga gaji dari tiap
jabatan struktural yang ada di perusahaan.
4. Proses ubah
matriks perbandingan berpasangan adalah proses dimana admin mengganti
nilai matriks perbandingan berpasangan yang digunakan sebagai salah satu syarat
penggunaan SPK bermetode AHP.
5.
Proses lihat seleksi adalah proses di mana sistem
menampilkan hasil seleksi yang telah dilakukan oleh SPK sesuai dengan lowongan
yang dipilih pengguna. Setelah proses ditampilkan, pengguna juga dapat melihat
apa faktor kriteria terbesar dalam penerimaan pegawai tersebut.
BAB III
PENUTUP
3.1 Kesimpulan
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.Extreme
Pemrograman berhasil karena menekankan kepuasan pelanggan. Alih-alih memberikan
semua yang anda mungkin inginkan pada tanggal beberapa jauh di masa depan
proses ini memberikan perangkat lunak yang Anda butuhkan saat Anda
membutuhkannya. Extreme Pemrograman memberdayakan pengembang Anda untuk percaya
diri menanggapi perubahan kebutuhan pelanggan, bahkan terlambat dalam siklus
hidup.Extreme Pemrograman menekankan kerja sama tim. Pengelola, pelanggan, dan
pengembang semua mitra setara dalam sebuah tim kolaboratif. Extreme Pemrograman
menerapkan, sederhana namun efektif yang memungkinkan tim lingkungan menjadi
sangat produktif. Tim mengorganisir diri mengatasi masalah untuk
menyelesaikannya see sien mungkin.Extreme Pemrograman meningkatkan proyek
perangkat lunak dalam lima cara penting; komunikasi, kesederhanaan, umpan
balik, rasa hormat, dan keberanian. Extreme Programmer selalu berkomunikasi
dengan pelanggan mereka dan programer sesama. Mereka terus desain mereka yang
sederhana dan bersih. Mereka mendapatkan umpan balik dengan menguji perangkat
lunak mereka dimulai pada hari pertama. Mereka memberikan sistem ke pelanggan
sebagai perubahan sedini mungkin dan melaksanakan seperti yang disarankan.
Setiap keberhasilan kecil memperdalam rasa hormat mereka atas kontribusi yang
unik dari masing-masing dan setiap anggota tim. Dengan dasar Extreme pemrogram
dapat berani merespon perubahan kebutuhan dan teknologi.Aspek yang paling
mengejutkan dari Extreme Programming adalah aturan sederhana. Sasaran Extreme
Programming adalah tim yang dibentuk berukuran antara kecil sampai medium
saja, tidak perlu menggunakan sebuah tim yang besar. Hal ini dimaksudkan untuk
menghadapi requirements yang tidak jelas maupun terjadinya perubahan-perubahan
requirements yang sangat cepat.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 panjangPerkembangan ilmu rekayasa perangkat lunak yang semakin
pesat dewasa ini telah menyebabkan perkembangan metodologi pengembangannya.
Tingkat kepuasan user terhadap proses pengembangan perangkat lunak juga semakin
kompleks menyangkut berbagi perubahan dan penambahan requirements . Oleh karena
itu XP menjawabnya sebagai sebuah metodologi pengembangan perangkat lunak yang
mampu mengatasi masalah requirements yang tidak jelas dan sering berubah-ubah.
Karena kemampuannya ini, XP memiliki kelebihan yang sekaligus menjadi
kekurangannya, yaitu XP tidak memiliki dokumentasi formal yang dibuat selama
pengembangan. Semua siklus hidup dan practice yang dimiliki XP menggambarkan
bahwa XP merupakan metodologi pengembangan perangkat lunak yang semi formal.
Konsep yang paling nyata dalam kesemiformalannya tersebut adalah komunikasi
yang selalu bersifat oral. JUnit adalah salah satu tools yang membantu kita
untuk melakukan unit testing terhadap kode yang cocok sekali bila
diimplementasikan dalam XP. Martin Fowler berkata Whenever you are tempted to
type something into a print statement or a debugger expression, write it as a
test instead. JUnit adalah sebuah framework yang dikembangkan di atas Java,
yang dibuat oleh masternya Extreme Programming, Kent Beck dan masternya Design
Pattern, Erich Gamma. JUnit dapat dikatakan sebuah simple test framework yang
didesain untuk melakukan testing yang bersifat berulang. Sebelumnya Kent Beck
mengembangkan Sunit yaitu unit testing untuk SmallTalk yang sangat populer
dengan MVC-nya. Extreme programming memiliki lima nilai yaitu :
a. Komunikasi: Nilai ini berfokus pada membangun orang-ke
- orang,saling pengertian dari lingkungan masalah melalui minimal resmi
dokumentasi dan melalui interaksi tatap muka maksimal . Praktek
XP dirancang untuk mendorong interaksi , pengembang - to- developer dan
pengembang - kepelanggan.
b. Kesederhanaan: Nilai ini menantang setiap anggota tim
untuk terus bertanya, Apa hal paling sederhana yang mungkin bisa bekerja ?
XP berpendapat bahwa lebih baik untuk melakukan hal yang sederhana dan
membayar sedikit lebih besok untuk perubahan daripada melakukan lebih
rumit,hal hari ini yang mungkin tidak akan pernah digunakan.
c. Tanggapan: Dalam extreme programming team mendapatkan
umpan balik dengan menguji perangkat lunak mereka,memberikan sistem ke
pelanggan sedini mungkin dan mengimplementasikan perubahan dan prioritas
seperti yang disarankan oleh umpan balik dari pelanggan.
d. Keberanian: Pengembang sering mengutip tekanan untuk
kapal produk buggy. Itu Dibutuhkan keberanian untuk menolak tekanan ini.
Beck juga menyatakan bahwa tim harus berani dan bersedia untuk membuat
perubahan di akhir proyek atau bahkan membuang kode dan mulai dari awal lagi.
3.2 Pertanyaan dan Jawaban Hasil Presentasi
1. Apa
kelebihan dan kekurangan Extreme Programing?
Jawaban :
a.
Kelebihan Extreme Programing
1. Ada interaksi
yang baik antara developer
2. Memberikan
pembelajaran kepada orang lain (client)
3. Pelanggan
mendapatkan timbal balik yang akurat
4. Dapat mengubah
pemikiran pelanggan
5. Developer tidak bekerja
secara berlebihan
6. Dapat membuat
keputusan teknikal
b.
Kekurangan
Extreme Programing
1.
Extreme Programing hanya menjalankan 1 proyek dan dijalankan
oleh 1 tim
2.
Developer harus dan akan menghadapi perubahan yang harus mereka
jalankan.
3.
Extreme Programming tidak dapat dikerjakan jika developer
saling terpisah
4.
Extreme programming belum terbukti dapat bekerja
di dalam sistem yang mempunyai masalah skalabilitas
2. Bagaimana bentuk aplikasi atau software dari
Extreme Programming ?
Jawaban :
XP bukanlah suatu bentuk aplikasi maupun
software melainkan XP adalah suatu metode yang digunakan oleh suatu programer
untuk membuat sebuah program yang diinginkan oleh klien atau suatu perusahaan
secara terorganisasi dari tahap awal sampai penyelesaian program yang di
inginkan oleh klien atau perusahaan tersebut.
3. Apakah hubungan XP dengan UML dan merupakan CBIS atau
bukan?
Jawaban :
XP dan UML saling berkaitan satu sama lain karena XP merupakan bagian dari
UML tahap-tahapan sama yaitu menggunakan tahap SDLC (System Development Life
Cycle). Oleh karena itu XP merupakan sebuah system CBIS (Computer Based
Information System)
DAFTAR PUSTAKA
4. http://www.pengertianku.net/2015/09/pengertian-uml-dan-jenis-jenisnya-serta-contoh-diagramnya.html
The chi titanium flat irons - The Ti-Titsanium Arts
BalasHapusThe titanium exhaust chi titanium flat black oxide vs titanium drill bits irons · The Tarot - the Titsanium Arts · The Ti-Titsanium Arts. The Tarot - the Titsanium Arts. The fallout 76 black titanium Tarot - the Titsanium Arts. The titanium rings Tarot - the Titsanium Arts. titanium dog teeth implants