Minggu, 29 Desember 2013

Dynamic System Development Method

BAB 1

1.1 Pendahuluan

Metodologi dalam perangkat lunak digunakan untuk merancang atau membangun suatu perangkat lunak,dengan perkembangan teknologi yang sangat pesat metodologi perangkat lunak juga terjadi perubahan atau penambahan requirements. Dari model waterfall sampai dengan model-model incremental. Semua metodologi yang berkembang sebelumnya tidak mampu menangani kemungkinan perubahan atau penambahan requirements. Metode pengembangan perangkat lunak telah dilacak kembali pada tahun 1957. Pada tahun tersebut EA Edmonds telah memperkenalkan proses pengembangan perangkat lunak adaptif. “Lightwight” merupakan metode pengembangan perangkat lunak yang berkembang pada tahun 1990, sebagai reaksi terhadap apa yang disebut metode “heavyweight”. Yang ditandai dengan kritik mereka terhadap metode waterfall.

Pada tahun 90-an diperkenalkan dengan metodologi baru yang dikenal dengan nama agile methods,kata Agile berarti bersifat cepat, ringan, bebas bergerak, waspada. Metodologi yang dikenal sebagai agile methods ini mengutamakan fleksibilitas terhadap perubahan-perubahan yang terjadi selama pengembangan. Bahkan perubahan ataupun penambahan pada saat fase terakhir pun teratasi apabila menggunakan metodologi ini..

Agile Methods dikembangkan karena pada metodologi tradisional terdapat banyak hal yang membuat proses pengembangan tidak dapat berhasil dengan baik sesuai tuntutan user. Konsep Agile Software Development dicetuskan oleh Kent Beck dan 16 rekannya dengan menyatakan bahwa Agile Software Development adalah cara membangun software dengan melakukannya dan membantu orang lain membangunnya sekaligus.

Saat bekerja dalam tim untuk mengerjakan suatu proyek sangatlah penting menentukan Metodologi pengembangan perangkat lunak dan Proses pengembangan perangkat lunak yang akan digunakan. Metodologi pengembangan perangkat lunak sendiri adalah sebuah metodologi yang digunakan untuk membuat struktur, rencana, dan kontrol pengerjaan suatu proyek, sedangkan Proses pengembangan perangkat lunak adalah model-model dan metodologi yang digunakan untuk mengembangkan suatu perangkat lunak. Ada beberapa model Metodologi pengembangan perangkat lunak diantaranya : waterfall, fountain, spiral, rapid, prototyping, incremental, build & fix, dan synchronize & stabilize. Terdapat enam langkah yang digunakan dalam Metodologi pengembangan perangkat lunak, yaitu :

- Perencanaan, pada langkah ini pengembang dan klien membuat rencana tentang kebutuhan dari perangkat lunak yang akan dibuat.

- Implementasi, bagian dari proses dimana programmer melakukan pengkodean perangkat lunak.

- Tes perangkat lunak, disini perangkat lunak yang telah dibuat di tes oleh bagian kontrol kualitas agar bug yang ditemukan bisa segera diperbaiki dan kualitas perangkat lunak terjaga.

- Dokumentasi, setelah dilakukan tes perangkat lunak langkah selanjutnya yaitu proses dokumentasi perangkat lunak untuk mempermudah proses maintenanance kedepannya.

- Deployment, yaitu proses yang dilakukan oleh penjamin kualitas untuk menguji kualitas sistem. Setelah sistem memenuhi syarat maka perangkat lunak siap dideployment.

- Pemeliharaan, langkah terakhir yaitu pemeliharaan. Tidak ada perangkat lunak yang 100% bebas dari bug, oleh karena itu sangatlah penting agar perangkat lunak dipelihara secara berkala.

1.2 Agile Method

Agile methods merupakan salah satu dari beberapa metode yang digunakan dalam pengembangan software. 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 development methods terdefinisi dalam empat nilai, biasa di sebut Agile Alliance’s Manifesto, diantaranya :

1. Interaksi dan personel lebih penting dari pada proses dan alat.

2. Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap.

3. Kolaborasi dengan klien lebih penting dari pada negosiasi kontrak.

4. Respon terhadap perubahan lebih penting daripada mengikuti rencana.

Pengertian dari Agile Alliance's Manifesto dijelaskan di bawah ini :

- Interaksi dan personel lebih penting dari pada proses dan alat, di dalam agile interaksi antar anggota tim sangatlah penting, karena tanpa adanya interaksi yang baik maka proses pembuatan perangkat lunak tidak akan berjalan sesuai rencana.

- Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap, saat melakukan proses demonstrasi kepada klien, perangkat lunak yang berfungsi dengan baik akan lebih berguna daripada dokumentasi yang lengkap.

- Kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, salah satu ciri dari agile adalah klien menjadi bagian dari tim pengembangan perangkat lunak. Kolaborasi yang baik dengan klien saat proses pembuatan perangkat lunak sangatlah penting ketika menggunakan agile. Karena fungsi-fungsi dari perangkat lunak yang dikembangkan harus terus menerus dibicarakan dan diimprovisasi disesuaikan dengan keinginan klien.

- Respon terhadap perubahan lebih penting daripada mengikuti rencana, agile development methods berfokus terhadap kecepatan respon tim ketika klien menginginkan perubahan saat proses pembuatan perangkat lunak.

1.2 Prinsip Agile Software Development

Agile Software Development juga melihat pentingnya komunikasi antara anggota tim, antara orang-orang teknis dan businessmen, antara developer dan managernya. Ciri lain adalah klien menjadi bagian dari tim pembangun software. Ciri-ciri ini didukung oleh 12 prinsip yang ditetapkan oleh Agile Alliance. Menurut Agile Alliance, 12 prinsip ini adalah bagi mereka yang ingin berhasil dalam penerapan Agile Software Development :

1. Kepuasan klien adalah prioritas utama dengan menghasilkan produk lebih awal dan terus menerus.

2. Menerima perubahan kebutuhan, sekalipun diakhir pengembangan.

3. Penyerahan hasil atau software dalam hitungan waktu beberapa minggu sampai beberapa bulan.

4. Pihak bisnis dan pengembang harus bekerja sama setiap hari selama pengembangan berjalan.

5. Membangun proyek dilingkungan orang-orang yang bermotivasi tinggi yang bekerja dalam lingkungan yang mendukun dan yang dipercaya untuk dapat menyelesaikan proyek.

6. Komunikasi dengan berhadapan langsung adalah komunikasi yang efektif dan efisien.

7. Software yang berfungsi adalah ukuran utama dari kemajuan proyek.

8. Dukungan yang stabil dari sponsor, pembangun, dan pengguna diperlukan untuk menjaga perkembangan yang berkesinambungan.

9. Kepada kehebatan teknis dan desain yang bagus meningkatkan sifat agile.

10. Kesederhanaan penting.

11. Arsitektur, kebutuhan dan desain yang bagus muncuk dari tim yang mengatur dirinya sendiri

12. Secara periodik tim evaluasi diri dan mencari cara untuk lebih efektif dan segera melakukannya.

Dua belas prinsip tersebut menjadi suatu dasar bagi model-model proses yang punya sifat agile. Dengan prinsip-prinsip tersebur Agile Process Model berusaha untuk menyiasati 3 asumsi penting tentang proyek software pada umumnya :

1. Kebutuhan software sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas klien juga sering berubah seiring berjalannya proyek.

2. Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain yang diperlukan sebelum pembangunan

3. Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang diinginkan.

Kelebihan Dari Agile Method

1. Meningkatkan kepuasan kepada klien.

2. Pembangunan system dibuat lebih cepat

3. Mengurangi resiko kegagalan implementasi software dari segi non-teknis

4. Jika pada saat pembangunan system terjadi kegagalan,kerugian dar segi materi relative kecil.

Kekurangan Dari Agile Method

1. Agile tidak akan berjalan dengan baik jika komitmen tim kurang.

2. Tidak cocok dalam skala tim yang besar (>20 orang).

3. Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.

1.3 Model-model Agile method

1. Extreme Programmning (XP)

2. Adaptive Software Development (ASD)

3. Dynamic Systems Development Method (DSDM)

4. Scrum Methodology

5. Crystal

6. Feature Driven Development (FDD)

7. Agile Modeling (AM)

8. Rational Unified Process

1.3.1 Extreme Programmning (XP)

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.

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 seefisien 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. Extreme Pemrograman sangat mirip jig gergaji teka-teki. Ada banyak potongan-potongan kecil. Individual potongan.Extreme Programming adalah metode pengembangan perangkat lunak yang ringan dan termasuk salah satu agile methods yang dipelopori oleh Kent Beck, Ron Jeffries, dan Ward Cunningham. Extreme Programming merupakan agile methods yang paling banyak digunakan dan menjadi sebuah pendekatan yang sangat terkenal. 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 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 feed back 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 refactoringprogram ketika diperlukan.

Extreme Programming menggunakan pendekatan berorientasi objek. Pada aktifitas Perencanaan terjadi pengumpulan user stories dari klien yang klien tetapkan prioritasnya. Setiap story ditetapkan harga dan lama pembangunan, jika terlalu besar, story dapat dipecah menjadi beberapa story yang lebih kecil. Terjadi pemeriksaan dan pertimbangkan resiko dan aktifitas Desain kegiatannya sederhana yaitu memanfaatkan kartu CRC (Class-Responsibility-Collaborator) untuk identifikasi dan mengatur class-class di konsep OO. Jika temuikan kesulitan, prototype dibangun [ini namanya spike solution].

Dilakukannya refactoring, yaitu mengembangkan desain dari program setelah ditulis. Pada aktifitas Pengkodean adalah penyiapan unit test sebelum pengkodean dipakai sebagai focus pemrogram untuk membuat program. Pair programming dilakukan untuk real time program solving dan real time quality assurance. Proses pengujiannya menggunakan unit test yang dipersiapkan sebelum pengkodean Menggunakan pendekatan berorientasi objek



Gambar 1. Proses Extreme Programming (XP)

Sebagai sebuah metodologi untuk mengembangkan peragkat 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

6. Death Phase



Gambar 2. Fase Extreme Programming (XP) sebelum dimodifikasi

Pada bagian ini akan dilakukan penambahan fase pada Extreme Programmning yaitu dengan menyisipkan sebuah fase yang disebut requirements management phase. Fase ini disisipkan tidak sekuensial tapi paralel dengan fase planning. Tujuan penyisipan secara paralel ini adalah mengurangi kemungkinan Extreme Programmning keluar dari lingkup agile. Tiga hal yang dilakukan yaitu:

1. Requirements Management

2. Pendokumentasian sederhana (simple documenting)

3. Mempertahankan index card yang telah diimplementasi dengan baik

Setelah dilakukan modifikasi terdapat beberapa pengaruh pada practice-nya. Dari dua belas practice yang terdapat pada Extreme Programmning, ada empat buah practice yang mempunyai singgungan kuat dengan requirements management yaitu planning game, metaphor, 40-hour week, On-site customer. Dari keempatnya planning game-lah yang paling besar keterkaitannya dengan requirements. Pada bagian ini akan dipaparkan yang terjadi pada keempat practice tersebut setelah dilakukan modifikasi pada Extreme Programmning tersebut.

Planning Game

Berikut ini adalah tabel setelah dilakukan perubahan pada siklus:





Sebelum modifikasi, pada exploration phase terdapat tiga kegiatan yaitu write story, estimate story, dan split story. Setelah dilakukan modifikasi satu kegiatan lagi yang dikerjakan oleh pihak development adalah summarize stories into simple document.

Demikian juga pada steering phase yang pada awalnya hanya terdiri atas kegiatan-kegiatan iteration, recovery, new story, dan re-estimate, setelah modifikasi ditambah satu lagi yaitu update simple document. Proses ini sebenarnya sama dengan summarize stories pada exploration phase, perbedaannya pada steering phase adalah untuk mengantisipasi adanya new story yang dikerjakan oleh pihak bisnis.

Metaphor, metaphor merupakan panduan (guidance) dalam melakukan pengembangan secara keseluruhan. Metaphor di sini memerlukan penjelasan rinci. Requirements yang diperoleh melalui proses summarize stories tersebut berperan sebagai metaphor, sedangkan penjelasan rincinya ada pada story awal.

40-hour week, Story yang telah selesai ditulis oleh customer langsung dirangkum ke dalam simple document pada fase requirements management. Terjadi penambahan waktu secara signifikan.On-site Customer, Komunikasi dengan on-site customer tetap dilakukan terus, termasuk dalam melakukan summarize stories. Sifatnya hanya merangkum story ke dalam requirements yang akan menjadi feature pada sistem yang dibuat.

Penerapan Extreme Programmning

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.

Extreme Programmning adalah suatu bentuk pembangunan perangkat lunak yang berbasis nilai kemudahan, komunikasi, umpan balik, dan keberanian. Bekerja dalamwhole team bersama-sama dengan praktek yang mudah. Dalam Extreme Programming terdapat 12 practices utama yaitu :

1. Planning Game Hubungan antara Customer dengan Programer untuk memperkirakan kenbutuhan –kebutuhan dari Custumer dalam implementasinya.

2. Small, frequent releases Memproduksi dengan cepat.

3. System metaphors System metaphors antara Customer dengan Programeruntuk menunjukkan semua perkembangan dengan menjelaskan bagaimana cara kerja system.

4. Simple design Perhatiannya pada pendisainnan atau perancngan solusi yang sederhana.

5. Testing (unit testing & TDD) Pelaksanaan pengujian atau testing keseluruhan.

6. Frequent refactoring Penyusunan system kembali dengan cara duplikat atau salinan,memperbaiki komunikasi, menambahkan kelenturan.

7. Pair programming Dua orang menulis kode pada 1 komputer.

8. Collective code ownership Siapapun dapat merubah bagian pada pengkodean setiap saat.

9. Continuous integration Bagian baru code di gabungkan ke dalam kode dasar.

10. 40-hour weak Max 40 jam kerja seminggu.

11. On-site customer Customer harus hadir dan ada setiap saat untuk teamnya.

12. Coding standards Terdapat aturan pengkodean dan di ikuti oleh programmer.

Keuntungan Extreme Programmning: :

Menjalin komunikasi yang baik dengan client. Meningkatkan komunikasi dan sifat saling menghargai antar developer.

Kerugian Extreme Programmning: :

Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima. Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).

1.3.2 . Adaptive Software Development (ASD)

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 : 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). 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. 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:

 - Focus group: klien dan pengguna memberi masukan terhadap software

- Formal Technique Reviews: Tim ASD lengkap melakukan review.

 - Postmortems: Tim ASD lakukan instrospeksi pada kinerja dan proses.

Gambar 4. Proses Adaptive Software Development (ASD)

1.3.3. Dynamic Systems Development Method (DSDM)

Pada Dynamic System Development Method menyajikan kerangka kerja (framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental dalam lingkungan yang terkondisikan. Metode ini akan membangun software dengan cepat: 80% dari proyek diserahkan dalam 20% dari waktu total untuk menyerahkan proyek secara utuh.

Dynamic System Development Method dapat dikombinasikan dengan Extreme Programmning menghasilkan kombinasi model proses yang mengikuti Dynamic System Development Method dan praktek yang sejalan dengan Extreme Programmning.

Dynamic System Development Method memiliki beberapa aaktifitas seperti :

- Feasibility study : siapkan requirement, dan batasan, lalu uji apakah sesuai gunakan proses DSDM.

- Business Study: susun kebutuhan fungsional dan informasi, tentukan arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi.

- Functional model iteration : hasilkan incremental prototype yang perlihatkan fungsi software ke klien untuk dapatkan kebutuhan lebih jelas dan konfirmasi.

- Design and Build Iteration : cek ulang prototype yang dibangun untuk pastikan bahwa prototype dibangun dengan cara yang memungkinkan fungsi tersebut benar-benar bekerja.

- Implementation: menempatkan software pada lingkungan sebenar sekalipun belum lengkap, atau masih ada perubahan.

1.3.4. Scrum Methodology

Pertama kali diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990an, dan dikembangkan selanjutnya dilakukan oleh Schwaber dan Beedle. Pada dasarnya Scrum merupakan salah satu komponen dari metodologi pengembangan Agile mengenai pertemuan harian untuk membahas kemajuan dan XP adalah menekankan metodologi yang berbeda sepasang ujian dulu pemrograman dan pembangunan.

Scrum menguraikan proses untuk mengidentifikasi dan katalogisasi pekerjaan yang perlu dilakukan, memprioritaskan yang bekerja dengan berkomunikasi dengan pelanggan atau wakil pelanggan, dan pelaksanaan yang bekerja menggunakan rilis iterative dan memiliki tujuan utama untuk mendapatkan perkiraan berapa lama akan pembangunan. XP lebih lanjut tentang pengembang membantu menyelesaikan pekerjaan secepat dan maintainably mungkin

Scrum memiliki prinsip yaitu :

- 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.

Scrum memiliki aktifitas yang meliputi :

1. Backlog Backlog adalah daftar kebutuhan yang jadi prioritas klien, dan daftar yang dibuat dapat bertambah.

2. Sprints Aktifitas Sprints merupakanunit pekerjaan yang diperlukan untuk memenuhi kebutuhan yang ditetapkan dalam backlog sesuai dengan waktu yang ditetapkan dalam time-box (biasanya 30 hari). Selama proses ini berlangsung backlog tidak ada penambahan.

3. Scrum Meetings Aktifitas Scrum Meeting merupakan pertemuan yang rutin dilakukan perhari untuk evaluasi apa yang dikerjakan, hambatan yang ada, dan target penyelesaian untuk bahan meeting selanjutnya.

4. Demo Aktifitas Demo adalah penyerahan software increment ke klien didemonstrasikan dan dievaluasi oleh klien.

1.3.5. Crystal

Crystal diperkenalkan oleh Cockburn dan Highsmith, Development yang tidak pada jalur kritis, dapat menghabikan waktu lebih, mereka yang memperbaiki produk atau membantu oaring yang ada di jalur proyek kritis.

Karakteristik Crystal :

1. Secara aktual sebuah model proses keluarga yang memungkinkan manuver berdasar karakteristik permasalahan.

2. Menyarankan penggunaan workshop refleksi untuk review kebiasaan kerja tim.

3. Selalu murah dan cepat berkomunikasi secara langsung.

4. Proyek berkembang sesuai ukuran team menjadi lebih atau luas dan metologi akan menjadi lebih tinggi.

1.3.6. Feature Driven Development

Feature Driven Development merupakan model proses praktis untuk keahlian proses software engineering, Feature merupakan sebuah fungsi yang berharga dimana dapat dilaksanakan.

Keuntungan dari metode feature :

1. User dapat menggambarkan dengan mudah bentuk system.

2. Dapat di organisasikan atau diatur ke dallamkelompok bisnis yang hirarki.

3. Desain dank ode lebih mudah diperiksa secara efektif.

4. Merancang proyek, penjadwalan dan jalur diarahkan oleh feature.

1.3.7. Agile Modeling

Dalam situasi pembangunan software harus membangun sistem bisnis yang besar dan penting. Jangkauan dan kompleksitas sistem harus dimodelkan sehingga dapat dimengerti, masalah dapat dibagi menjadi lebih kecil dan kualitas dapat dijaga pada tiap langkah pembangunan.

software. Agile Modeling adalah suatu metodologi yang praktis untuk dokumentasi dan pemodelan system software. Agile Modeling adalah kumpulan nilai-nilai, prinsip dan praktek-praktek untuk memodelkan software agar dapat diaplikasian pada software development proyek secara efektif.

Prinsip dalam Agile Modeling :

- Membuat model dengan tujuan: tentukan tujuan sebelum membuat model

- Mengunakan multiple models: tiap model mewakili aspek yang berbeda dari model lain.

- Travel light: simpan model-model yang bersifat jangka panjang saja

- Isi lebih penting dari pada penampilan: modeling menyajikan informasi kepada audiens yang tepat.

- Memahami model dan alat yang yang digunakan untuk membuat software

- Adaptasi secara local

1.3.8. Rational Unified Process

Rational Unified Process, adalah suatu kerangka kerja proses pengembangan perangkat lunak iteratif yang dibuat oleh Rational Software, suatu divisi dari IBM sejak2003. RUP bukanlah suatu proses tunggal dengan aturan yang konkrit, melainkan suatu kerangka proses yang dapat diadaptasi dan dimaksudkan untuk disesuaikan oleh organisasi pengembang dan tim proyek perangkat lunak yang akan memilih elemen proses sesuai dengan kebutuhan mereka.

Model ini membagi suatu sistem aplikasi menjadi beberapa komponen sistem dan memungkinkan para developer aplikasi untuk menerapkan metoda iterative (analisis, disain, implementasi dan pengujian) pada tiap komponen. Dengan menggunakan model ini, RUP membagi tahapan pengembangan perangkat lunaknya ke dalam 4 fase sebagai berikut :

- Inception, merupakan tahap untuk mengidentifikasi sistem yang akan dikembangkan. Aktivitas yang dilakukan pada tahap ini antara lain mencakup analisis sistem eksisting, perumusan sistem target, penentuan arsitektur global target, identifikasi kebutuhan, perumusan persyaratan perumusan kebutuhan pengujian, pemodelan diagram UML, dan pembuatan dokumentasi.

- Elaboration, merupakan tahap untuk melakukan disain secara lengkap berdasarkan hasil analisis di tahap inception. Aktivitas yang dilakukan pada tahap ini antara lain mencakup pembuatan disain arsitektur subsistem), disain komponen sistem, disain format data disain database, disain antarmuka/tampilan, disain peta aliran tampilan, penentuan design pattern yang digunakan, pemodelan diagram UML, dan pembuatan dokumentasi.

- Construction, merupakan tahap untuk mengimplementasikan hasil disain dan melakukan pengujian hasil implementasi. Pada tahap awal construction, ada baiknya dilakukan pemeriksaan ulang hasil analisis dan disain, terutama disain pada domain perilaku (diagram sequence) dan domain struktural (diagram class, component, deployment). Apabila disain 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 disain (misal menggunakan Class Responsibility Collaborator untuk kasus pemrograman berorientasi obyek), pendataan kebutuhan implementasi lengkap (berpedoman pada identifikasi kebutuhan di tahap analisis), penentuan coding pattern yang digunakan, pembuatan program, pengujian, optimasi program, pendataan berbagai kemungkinan pengembangan / perbaikan lebih lanjut, dan pembuatan dokumentasi.

- Transition, merupakan tahap untuk menyerahkan sistem aplikasi ke konsumen (roll-out), yang umumnya mencakup pelaksanaan pelatihan kepada pengguna dan testing beta aplikasi terhadap ekspetasi pengguna.

BAB 2

Dynamic Systems Development Method

2.1 Pengertian

DSDM adalah suatu kerangka kerja awalnya didasarkan pada Rapid Application Development (RAD). DSDM mengutamakan keterlibatan pemakai secara berkesinambungan dengan pendekatan pengembangan secara berulang dan bertambah, tanggap terhadap perubahan, untuk membangun sistem perangkat lunak yang memenuhi kebutuhan bisnis tepat waktu dan tepat anggaran. DSDM merupakan salah satu metode Agile untuk pengembangan perangkat lunak, dan bagian dari Agile Alliance. DSDM pertama kali diperkenalkan pada tahun 1995, di mana merupakan satu-satunya publikasi penggunaan metode RAD di dunia.

Sebagai perluasan dari RAD, DSDM memusatkan pada proyek sistem informasi yang dicirikan oleh jadwal dan anggaran yang ketat. DSDM berupaya mengatasi penyebab-penyebab kegagalan proyek, di antaranya melebihi anggaran, terlambat dari jadwal, kurangnya keterlibatan pengguna, dan lemahnya komitmen dari para pimpinan. Kerangka kerja DSDM menyediakan dasar ideal bagi proses pengembangan dan penerapan sistem informasi, meliputi orang (misal organisasi, staf, keahlian), teknologi pendukung (misal teknologi informasi, otomatisasi kantor, komunikasi) dan proses yang menyatukan keduanya (dalam rangkaian strategi bisnis).

DSDM terdiri dari 3 tahapan utama, dan 5 sub tahap :

1. Sebelum proyek, di mana kandidat proyek diidentifikasi, pembiayaan proyek terpenuhi, dan jaminan proyek dipastikan. Penanganan hal-hal tersebut pada tahap ini menghindari masalah pada tahap-tahap berikutnya.

2. Siklus hidup proyek, merupakan inti dari DSDM, yang terdiri dari 5 sub tahap yaitu : 1 studi kelayakan, 2 studi bisnis, 3 perulangan model fungsional, 4 perulangan perancangan dan pembuatan, 5 penerapan.

3. Setelah proyek, yaitu memastikan sistem berjalan secara efektif dan efisien. Hal ini diwujudkan dengan perawatan, peningkatan dan perbaikan sesuai prinsip-prinsip DSDM. Perawatan dapat dilihat sebagai usaha meneruskan pengembangan berdasarkan sifat alami DSDM, yaitu perulangan dan pertambahan.

Terdapat 9 prinsip mendasar dari DSDM, yang menjadikan kekuatan dari DSDM, yaitu :

1. Keterlibatan pengguna adalah kunci utama dalam menjalankan proyek secara efisien dan efektif. Pengguna dan pengembang saling bekerja sama sehingga keputusan dapat diambil secara tepat dan akurat.

2. Tim pengembang proyek diberi wewenang untuk membuat keputusan yang penting untuk kemajuan proyek, tanpa menunggu persetujuan dari tingkat di atasnya.

3. Memusatkan pada seringnya produk dihasilkan, dengan anggapan menghasilkan sesuatu “cukup baik” lebih awal adalah lebih baik daripada menghasilkan keseluruhan “sempurna” pada akhirnya. Dengan seringnya penyampaian produk pada tahap-tahap awal proyek, produk tersebut dapat diujicoba dan ditinjau di mana hasilnya merupakan pertimbangan untuk maju ke putaran atau tahap berikutnya.

4. Kesesuaian dari tujuan bisnis merupakan kriteria utama dalam penerimaan hasil. Menghasilkan suatu sistem yang memenuhi semua kemungkinan dari kebutuhan bisnis adalah kurang penting dibanding memusatkan pada fungsi-fungsi yang kritis.

5. Pengembangan secara berulang dan bertambah adalah penting, dilandasi masukan dari pengguna untuk mencapai solusi bisnis yang efektif.

6. Seluruh perubahan yang terjadi dalam pengembangan dapat dikembalikan (reversible).

7. Setiap persyaratan dan kebutuhan harus sudah ditentukan sebelum proyek dimulai.

8. Pengujian dilakukan pada keseluruhan siklus hidup proyek. Dalam hal ini ujicoba bukan kegiatan terpisah dalam pengembangan. Tinjauan dari pengembang dan pengguna adalah penting untuk memastikan proyek berjalan baik dari sisi bisnis maupun teknis.

9. Kerjasama yang efektif dan efisien dari setiap pihak yang berkepentingan adalah penting.

Metode Pengembangan Sistem Dinamis (DSDM) pada dasarnya merupakan suatu metodologi pengembangan perangkat lunak pada awalnya didasarkan pada Aplikasi Rapid Development metodologi. Pada tahun 2007 DSDM menjadi pendekatan umum untuk proyek pengiriman manajemen dan solusi. DSDM adalah iteratif dan incremental pendekatan yang menekankan pengguna kontinu / keterlibatan pelanggan.

Tujuannya adalah untuk memberikan proyek-proyek tepat waktu dan menyesuaikan anggaran sementara untuk perubahan kebutuhan sepanjang jalan. DSDM adalah salah satu dari sejumlah metode Agile untuk mengembangkan perangkat lunak dan non-IT solusi, dan itu merupakan bagian dari Aliansi Agile.

Nama Atern adalah pemendekan dari Arctic tern - sebuah kolaboratif yang dapat menempuh jarak yang luas dan banyak aspek melambangkan metode yang merupakan cara alami misalnya prioritas kerja dan kolaborasi.

Versi sebelumnya DSDM (dirilis pada Mei 2003) yang masih banyak digunakan dan masih berlaku adalah DSDM 4.2 yang merupakan versi sedikit diperpanjang versi DSDM 4. Versi diperpanjang berisi petunjuk tentang cara menggunakan DSDM dengan Extreme Programming



Gambar 2.1 DSDM

Sekilas DSDM Atern

Pada tahun 2007 sebuah tim yang dibentuk oleh Konsorsium DSDM melihat ke dalam isi dari DSDM dan memutuskan bahwa mekanisme yang mendasari dan struktur benar-benar suara tapi bahwa terminologi dan fokus murni pada aplikasi TI harus diperbarui untuk memenuhi kebutuhan proyek yang baru milenium. Versi baru diluncurkan di Cafe Royale di London pada tanggal 24 April 2007.

Sekilas DSDM versi 4.2

Sebagai perpanjangan dari pengembangan aplikasi yang cepat , DSDM berfokus pada Sistem Informasi proyek yang dicirikan dengan jadwal yang ketat dan anggaran. DSDM alamat kegagalan yang paling umum dari proyek sistem informasi, termasuk anggaran yang melebihi, tenggang waktu yang hilang, dan kurangnya keterlibatan pengguna dan komitmen top manajemen. Dengan mendorong penggunaan RAD, bagaimanapun, adopsi ceroboh DSDM dapat meningkatkan risiko sudut pemotongan terlalu banyak. DSDM terdiri dari :

- Tiga tahap : pra-proyek tahap, proyek-fase siklus hidup, dan tahap pasca proyek.

- Sebuah proyek fase siklus hidup dibagi ke dalam 5 tahapan: studi kelayakan, studi bisnis, model fungsional iterasi, desain dan membangun iterasi, dan implementasi.

Dalam beberapa situasi, ada kemungkinan untuk mengintegrasikan praktek-praktek dari metodologi lain, seperti Rational Unified Process (RUP) , Extreme Programming (XP) , dan PRINCE2 , sebagai pelengkap untuk DSDM. Metode lain tangkas yang memiliki beberapa kesamaan dalam proses dan konsep DSDM adalah Scrum .

DSDM dikembangkan di Inggris pada 1990-an oleh Konsorsium DSDM, sebuah asosiasi vendor dan ahli di bidang rekayasa perangkat lunak dibuat dengan tujuan "bersama-sama mengembangkan dan mempromosikan kerangka RAD independen" dengan menggabungkan mereka praktik terbaik pengalaman. DSDM adalah sebuah nirlaba, organisasi vendor independen yang memiliki dan mengelola kerangka DSDM. Versi pertama selesai pada Januari 1995 dan telah diumumkan pada bulan Februari 1995. Pada bulan Juli 2006, DSDM Publik Versi 4.2 dibuat tersedia bagi individu untuk melihat dan menggunakan, namun siapa pun menjual kembali DSDM masih harus menjadi anggota tidak-untuk keuntungan konsorsium.

2.2 Pendekatan DSDM

Prinsip

Ada sembilan prinsip dasar yang terdiri dari empat yayasan dan lima mulai-poin :

- Keterlibatan pengguna merupakan kunci utama dalam menjalankan proyek efisien dan efektif, di mana baik pengguna dan pengembang berbagi tempat kerja, sehingga keputusan dapat dibuat secara akurat.

- Tim proyek harus diberdayakan untuk membuat keputusan yang penting bagi kemajuan proyek tanpa menunggu persetujuan tingkat lebih tinggi.

- Fokus pada sering pengiriman produk, dengan asumsi bahwa untuk menyampaikan sesuatu yang "cukup baik" sebelumnya selalu lebih baik daripada untuk memberikan segalanya "sempurna" pada akhirnya. Dengan memberikan produk sering dari tahap awal proyek, produk dapat diuji dan ditinjau di mana catatan uji dan telaah dokumen dapat diperhitungkan pada iterasi berikutnya atau tahap.

- Kriteria utama penerimaan suatu "deliverable" adalah memberikan sebuah sistem yang membahas kebutuhan bisnis saat ini. Memberikan sistem yang sempurna yang membahas semua kebutuhan bisnis yang mungkin adalah kurang penting dibandingkan berfokus pada fungsi kritis.

- Pembangunan iteratif dan inkremental dan digerakkan oleh 'umpan balik pengguna untuk berkumpul di suatu solusi bisnis yang efektif.

- Semua perubahan selama pengembangan adalah reversibel.

- Ruang lingkup tingkat tinggi dan persyaratan harus basa-pohon sebelum proyek dimulai.

- Pengujian dilakukan sepanjang hidup-siklus proyek. (Lihat -didorong pengembangan Test untuk perbandingan).

- Komunikasi dan kerjasama antara semua pemangku kepentingan proyek ini harus efisien dan efektif.

Prasyarat untuk menggunakan DSDM

Agar DSDM untuk menjadi sukses, sejumlah prasyarat perlu direalisasikan. Pertama, perlu ada interaktivitas antara tim proyek, pengguna akhir masa depan dan manajemen yang lebih tinggi. Ini membahas juga dikenal kegagalan IS proyek-proyek pembangunan karena kurangnya motivasi manajemen puncak dan / atau keterlibatan pengguna. Yang kedua prasyarat untuk proyek DSDM adalah bahwa proyek dapat membusuk dalam ke bagian yang lebih kecil memungkinkan penggunaan pendekatan iteratif.

Dua contoh jenis proyek yang DSDM tidak dianggap cocok adalah :

1. Kritis proyek Keselamatan - pengujian ekstensif dan validasi ditemukan dalam proyek kritis konflik keamanan dengan tujuan DSDM menjadi tepat waktu dan sesuai anggaran.

2. Proyek-proyek yang bertujuan untuk memproduksi komponen yang dapat digunakan kembali - tuntutan pada kesempurnaan seringkali terlalu tinggi dan konflik dengan% 80 / 20 prinsip% dijelaskan sebelumnya .

Proyek DSDM Life-cycle

Tiga tahap DSDM

Kerangka DSDM terdiri dari tiga tahap berurutan, yaitu pra-proyek, proyek siklus-hidup dan fase pasca-proyek. Fase proyek DSDM adalah yang paling rumit dari tiga tahap. Proyek hidup-fase siklus terdiri dari 5 tahapan yang membentuk pendekatan langkah-demi-langkah iteratif dalam mengembangkan sebuah IS. Tiga fase dan tahap yang sesuai dijelaskan secara luas di bagian berikutnya. Untuk setiap tahap / fase, aktivitas yang paling penting adalah ditangani dan point yang disebutkan.

Tahap 1 - Proyek-Pra

Dalam proyek tahap pra-proyek kandidat diidentifikasi, pendanaan proyek direalisasikan dan komitmen proyek terjamin. Penanganan masalah ini pada tahap awal menghindari masalah pada tahap akhir dari proyek seperti sapi.

Tahap 2 - siklus hidup Proyek

Gambaran umum proses dalam gambar di bawah ini menunjukkan umur proyek-siklus fase ini DSDM. Ini menggambarkan 5 tahapan proyek akan harus melalui untuk menciptakan IS. Dua tahap pertama, Studi Kelayakan dan Belajar Usaha adalah fase berurutan yang melengkapi satu sama lain. Setelah fase ini telah menyimpulkan, sistem dikembangkan iteratif dan bertahap dalam Fungsional Model Iterasi, Design & Build Iterasi dan tahap Implementasi. Sifat iteratif dan incremental dari DSDM akan dibahas lebih lanjut pada bagian selanjutnya.

Tahap 3 - Post-proyek

Tahap pasca proyek memastikan sistem beroperasi secara efektif dan efisien. Hal ini diwujudkan dengan pemeliharaan, peningkatan dan perbaikan sesuai dengan prinsip-prinsip DSDM. pemeliharaan ini dapat dilihat sebagai pembangunan berkelanjutan berdasarkan sifat iteratif dan incremental DSDM. Alih-alih menyelesaikan proyek dalam satu siklus biasanya proyek dapat kembali ke tahap sebelumnya atau tahap sehingga langkah sebelumnya dan produk deliverable dapat disempurnakan.

Berikut ini adalah diagram proses-data DSDM sebagai siklus hidup Proyek utuh dengan semua dari empat langkah. Diagram ini menggambarkan perkembangan berulang DSDM, dimulai pada iterasi model fungsional, desain dan membangun iterasi, dan fase implementasi. Deskripsi dari setiap tahap akan dijelaskan nanti dalam entri ini .



Gambar 2.2

Empat tahapan-siklus hidup Proyek

Tahap 1A: Studi Kelayakan

Selama tahap proyek, kelayakan proyek untuk penggunaan DSDM diperiksa. Prasyarat untuk penggunaan DSDM ditangani dengan menjawab pertanyaan-pertanyaan seperti: "ini memenuhi proyek yang diperlukan? kebutuhan bisnis Bisa ',' Apakah proyek ini cocok untuk penggunaan DSDM? dan 'Apa risiko yang paling penting yang terlibat?'. Yang penting teknik yang paling banyak digunakan dalam tahap ini adalah Lokakarya .

Point-point untuk tahap ini adalah Laporan Kelayakan dan Kelayakan Prototipe yang membahas kelayakan proyek di tangan. Hal ini diperpanjang dengan Global Garis Besar Rencana untuk sisa proyek dan Log Risiko yang mengidentifikasi risiko yang paling penting bagi proyek.

Tahap 1B: Kajian Bisnis

Studi bisnis memperluas studi kelayakan . Setelah proyek tersebut telah dianggap layak untuk penggunaan DSDM, tahap ini meneliti proses bisnis dipengaruhi, pengguna kelompok yang terlibat dan kebutuhan masing-masing dan keinginan. Sekali lagi lokakarya adalah salah satu teknik yang paling berharga, workshop di mana berbagai stakeholder berkumpul untuk membahas sistem yang diusulkan. Informasi dari sesi ini adalah digabungkan menjadi sebuah persyaratan daftar. Properti penting dari daftar kebutuhan adalah kenyataan bahwa persyaratan yang (bisa) diprioritaskan . Persyaratan ini diprioritaskan menggunakan MOSKOW pendekatan. Berdasarkan prioritas ini, rencana pembangunan adalah dibangun sebagai pedoman untuk sisa proyek.

Teknik proyek penting yang digunakan dalam pengembangan program ini adalah timeboxing . Teknik ini sangat penting dalam mewujudkan tujuan DSDM, yaitu berada di waktu dan anggaran, menjamin kualitas yang diinginkan. Sebuah arsitektur sistem merupakan bantuan untuk memandu pengembangan kiriman IS.The untuk tahap ini adalah definisi area bisnis yang menggambarkan konteks proyek dalam perusahaan, arsitektur sistem definisi yang menyediakan arsitektur global awal dari IS dalam pengembangan bersama dengan sebuah rencana.pengembangan yang menguraikan langkah yang paling penting dalam proses pembangunan. Di dasar kedua dokumen terakhir ada daftar kebutuhan prioritas. Daftar ini menyatakan semua persyaratan untuk sistem, diatur sesuai dengan MOSKOW prinsip. Dan terakhir Log Risiko diperbarui dengan fakta-fakta yang telah diidentifikasi selama fase DSDM.

Tahap 2: Model Iterasi Fungsional

Persyaratan yang telah diidentifikasi pada tahap sebelumnya dikonversi ke model fungsional. Model ini terdiri dari kedua prototipe berfungsi dan model. Prototyping adalah salah satu teknik proyek kunci dalam tahap yang membantu untuk mewujudkan keterlibatan pengguna yang baik di seluruh proyek. Prototipe yang dikembangkan ditinjau oleh kelompok-kelompok pengguna yang berbeda. Dalam rangka menjamin kualitas, pengujian dilaksanakan di seluruh setiap iterasi dari DSDM. Bagian penting dari pengujian tersebut diwujudkan dalam Model Iterasi Fungsional. Model Fungsional dapat dibagi menjadi empat sub-tahap :

- • Mengidentifikasi Fungsional Prototype: Tentukan fungsi untuk diterapkan di prototipe yang dihasilkan dari iterasi ini.

- • Setuju Jadwal: Setuju tentang bagaimana dan kapan untuk mengembangkan fungsi ini.

- • Buat Fungsional Prototype: Mengembangkan prototipe. Menyelidiki, memperbaiki, dan konsolidasi dengan prototipe Fungsional gabungan dari iterasi sebelumnya.

- • Review Prototype: Periksa kebenaran prototipe dikembangkan. Ini dapat dilakukan melalui pengujian oleh pengguna akhir, kemudian gunakan catatan pengujian dan masukan pengguna untuk menghasilkan dokumen prototipe review fungsional.

Point-point untuk tahap ini adalah Model Fungsional dan Prototipe Fungsional yang bersama-sama mewakili fungsi yang dapat direalisasikan dalam iterasi ini, siap untuk pengujian oleh pengguna. Di samping ini, Persyaratan Daftar diperbarui, menghapus item yang telah terwujud dan memikirkan kembali prioritas persyaratan yang tersisa. Log Risiko juga diperbarui dengan memiliki analisis risiko pengembangan lebih lanjut setelah mengkaji dokumen prototipe.

Tahap 3: Desain dan Build Iterasi

Fokus utama dari iterasi DSDM adalah untuk mengintegrasikan komponen fungsional dari tahap sebelumnya ke dalam satu sistem yang memenuhi kebutuhan pengguna. Ini juga membahas kebutuhan non-fungsional yang telah ditetapkan untuk IS. Sekali lagi pengujian adalah kegiatan berlangsung penting dalam tahap ini. Desain dan Build Iterasi dapat dibagi menjadi empat sub-tahap :

- • Mengidentifikasi Desain Prototype: Mengidentifikasi kebutuhan fungsional dan non-fungsional yang perlu dalam sistem diuji.

- • Setuju Jadwal: Setuju tentang bagaimana dan kapan untuk mewujudkan persyaratan ini.

- • Buat Desain Prototype: Buat suatu sistem yang dapat dengan aman diserahkan kepada end-user untuk penggunaan sehari-hari. Mereka menyelidiki, memperbaiki, dan mengkonsolidasikan prototipe iterasi saat ini dalam proses prototyping juga penting dalam tahap-sub.

- • Review Desain Prototype: Periksa kebenaran sistem yang dirancang. Sekali lagi menguji dan memeriksa adalah teknik utama yang digunakan, karena catatan pengujian dan masukan pengguna adalah penting untuk menghasilkan dokumentasi pengguna.

Point-point untuk tahap ini adalah Prototipe Desain selama fase yang mendapatkan pengguna akhir untuk menguji dan pada akhir Desain dan Build Iterasi Sistem Tested diserahkan ke tahap berikutnya. Pada tahap ini, sistem ini terutama dibangun dimana desain dan fungsi konsolidasi dan terintegrasi dalam prototipe. Lain deliverable untuk tahap ini adalah Dokumentasi User.

Tahap 4: Implementasi

Pada tahap implementasi, sistem diuji termasuk dokumentasi pengguna dikirim ke pengguna dan pelatihan calon pengguna direalisasikan. Sistem akan dikirimkan telah ditinjau untuk menyertakan persyaratan yang telah ditetapkan pada tahap awal proyek. Tahap Implementasi dapat dibagi menjadi empat sub-tahap :

- • Persetujuan User dan Pedoman: Pengguna akhir menyetujui sistem diuji untuk implementasi dan pedoman yang berkaitan dengan pelaksanaan dan penggunaan sistem diciptakan.

- • Train Pengguna: Train pengguna akhir masa depan dalam penggunaan sistem.

- • Melaksanakan: Menerapkan sistem diuji pada lokasi pengguna akhir.

- • Review Bisnis: Review dampak dari sistem yang diterapkan pada bisnis, isu sentral akan menjadi apakah sistem memenuhi tujuan yang ditetapkan pada awal proyek. Tergantung pada proyek ini pergi ke tahap berikutnya, pasca-proyek atau loop kembali ke salah satu fase sebelumnya untuk pengembangan lebih lanjut.

DSDM Fungsional Model Iterasi

Model Meta

Asosiasi antara konsep dari kiriman dalam tahap Iterasi Fungsional Model digambarkan dalam model meta-data di bawah ini. Model meta-data yang akan dikombinasikan dengan diagram meta-proses Fungsional tahap Iterasi Model di bagian berikutnya.



Gambar 2.3

Model Proses

Mengidentifikasi kegiatan prototipe fungsional adalah untuk mengidentifikasi fungsi yang akan di prototipe iterasi saat ini. Ingat bahwa kedua, analisis dan pengkodean dilakukan; prototipe dibangun, dan pengalaman yang diperoleh dari mereka yang digunakan dalam meningkatkan model analisis (didasarkan juga pada update daftar prioritas kebutuhan dan log risiko diperbarui). Prototipe dibangun tidak dapat dibuang seluruhnya, namun secara bertahap mengarahkan terhadap kualitas sehingga mereka dapat dimasukkan dalam sistem final. Setuju jadwal adalah untuk menentukan kapan dan bagaimana prototyping akan dilaksanakan, ia meluas lingkup ke jadwal yang tersedia dan rencana prototyping. Dan karena pengujian dilaksanakan di seluruh seluruh proses, itu juga merupakan bagian penting dari tahap ini, dan oleh karena itu termasuk dalam hak aktivitas Prototipe Review setelah prototipe fungsional dibangun dan catatan pengujian akhirnya akan digunakan dalam proses prototipe meninjau dan menghasilkan dokumen review. Berikut ini adalah diagram proses-data Fungsional tahap Iterasi Model.



Gambar 2.4

Inti Teknik DSDM

• Timeboxing

 Timeboxing adalah salah satu teknik proyek DSDM. Hal ini digunakan untuk mendukung tujuan utama dari DSDM untuk mewujudkan pengembangan IS tepat waktu, sesuai anggaran dan dengan kualitas yang diinginkan. Gagasan utama di balik timeboxing adalah membagi proyek dalam porsi, masing-masing dengan anggaran tetap dan tanggal pengiriman. Untuk setiap bagian sejumlah persyaratan dipilih yang diprioritaskan sesuai dengan MOSKOW prinsip. Karena waktu dan anggaran yang tetap, sisanya hanya variabel persyaratan. proyek kehabisan waktu atau uang kebutuhan dengan prioritas terendah dihilangkan. Ini tidak berarti bahwa produk yang belum selesai disampaikan, karena pareto prinsip bahwa 80% dari proyek tersebut berasal dari 20% dari kebutuhan sistem, sehingga selama 20% yang paling penting dari persyaratan tersebut diimplementasikan ke dalam sistem, sistem Oleh karena itu memenuhi kebutuhan bisnis dan bahwa tidak ada sistem dibangun sempurna di coba pertama.

• MoSCoW

 Moskow merupakan cara memprioritaskan item. Dalam konteks DSDM teknik Moskow digunakan untuk memprioritaskan kebutuhan. Ini adalah singkatan yang berdiri untuk:

 HARUS memiliki kebutuhan untuk memenuhi kebutuhan bisnis.

 HARUS memiliki kebutuhan jika mungkin, namun keberhasilan proyek tidak bergantung pada ini.

 BISA mempunyai kebutuhan ini jika tidak mempengaruhi kebugaran kebutuhan bisnis proyek.

 AKAN memiliki kebutuhan pada kemudian hari jika ada beberapa waktu tersisa (atau dalam pengembangan masa depan sistem).

• Prototyping

 Teknik ini mengacu pada penciptaan prototipe sistem di bawah pengembangan pada tahap awal proyek. Hal ini memungkinkan penemuan awal kekurangan dalam sistem dan memungkinkan pengguna masa depan untuk 'uji coba' istem. Keterlibatan pengguna ini diwujudkan dengan cara yang baik, salah satu faktor kunci keberhasilan DSDM, atau proyek Pengembangan Sistem dalam hal ini.

• Testing Pengujian

Sebuah aspek penting yang ketiga tujuan DSDM adalah penciptaan IS dengan kualitas yang baik. Dalam rangka mewujudkan solusi yang berkualitas baik, advokat DSDM pengujian seluruh setiap iterasi. Karena DSDM adalah metode dan teknik independen alat, tim proyek bebas memilih sendiri cara uji manajemen , misalnya TMap .

 • Workshop Bengkel

 Salah satu proyek teknik's DSDM yang bertujuan untuk membawa para pemangku kepentingan yang berbeda dari proyek tersebut bersama-sama untuk mendiskusikan kebutuhan, fungsi dan saling pengertian. Dalam lokakarya para pemangku kepentingan berkumpul dan mendiskusikan proyek.

• Modeling Modeling

Teknik ini sangat penting dan sengaja digunakan untuk memvisualisasikan representasi diagram dari aspek tertentu dari sistem atau bidang usaha yang sedang dikembangkan. pemahaman yang lebih baik untuk tim proyek DSDM lebih dari domain bisnis.

 • Manajemen Konfigurasi

Sebuah implementasi yang baik dari manajemen konfigurasi teknik penting bagi sifat dinamis dari DSDM. Karena ada lebih dari satu hal yang ditangani sekaligus selama proses pengembangan sistem, dan produk yang disampaikan sering pada tingkat yang sangat cepat, produk sehingga perlu dikontrol ketat karena mereka mencapai (sebagian) selesai.

Peran dalam DSDM

Ada beberapa peran yang diperkenalkan dalam lingkungan DSDM. Adalah penting bahwa para anggota proyek harus ditunjuk untuk peran yang berbeda sebelum mereka mulai menjalankan proyek. Setiap peran mempunyai tanggung jawab sendiri. Peran adalah :

• Sponsor Eksekutif Jadi disebut "Proyek Champion". Peran penting dari organisasi pengguna yang memiliki kemampuan dan tanggung jawab untuk melakukan dana yang tepat dan sumber daya. Peran ini memiliki kekuasaan tertinggi untuk mengambil keputusan.

• Visioner Orang yang memiliki tanggung jawab untuk memulai proyek ini dengan memastikan bahwa persyaratan penting yang ditemukan sejak dini. Visioner memiliki persepsi yang akurat sebagian besar tujuan bisnis dari sistem dan proyek. tugas lain adalah untuk mengawasi dan menjaga proses pembangunan di jalur yang benar.

 • Duta Besar Membawa Pengguna pengetahuan masyarakat pengguna ke proyek, memastikan bahwa para pengembang menerima cukup jumlah's umpan balik pengguna selama proses pembangunan.

• Penasihat Pengguna Dapat setiap pengguna yang mewakili sudut pandang penting dan membawa pengetahuan harian proyek.

• Manajer Proyek Bisa siapa saja di masyarakat pengguna atau staf TI yang mengelola proyek secara umum.

• Kordinator Teknis Bertanggung jawab dalam merancang arsitektur sistem dan pengendalian kualitas teknis dalam proyek tersebut.

• Ketua Tim Memimpin tim dan memastikan bahwa tim bekerja secara efektif secara keseluruhan.

• Pengembang Interpretasikan persyaratan sistem dan model ini termasuk pengembangan kode deliverable dan membangun prototipe.

• Tester Cek kebenaran dalam luasan teknis dengan melakukan beberapa pengujian. Tester harus memberikan beberapa komentar dan dokumentasi.

• Scribe Bertanggung jawab untuk mengumpulkan dan merekam persyaratan, perjanjian, dan keputusan yang dibuat di setiap lokakarya.

• Fasilitator Bertanggung jawab dalam mengelola kemajuan workshop, bertindak sebagai motor untuk persiapan dan komunikasi.

• Bisnis Spesialis Peran Arsitek, Kualitas Manager, System Integrator, dll.

BAB 3

3.1 Perangkat Lunak Sumber Tebuka

Perangkat lunak sumber terbuka (Open source software) adalah jenis perangkat lunak yang kode sumber-nya terbuka untuk dipelajari, diubah, ditingkatkan dan disebarluaskan. Karena sifat ini, umumnya pengembangannya dilakukan oleh satu paguyuban terbuka yang bertujuan mengembangkan perangkat lunak bersangkutan. Anggota-anggota paguyuban itu seringkali sukarela tapi bisa juga pegawai suatu perusahaan yang dibayar untuk membantu pengembangan perangkat lunak itu. Produk perangkat lunak yang dihasilkan ini biasanya bersifat bebas dengan tetap menganut kaidah dan etika tertentu. Semua perangkat lunak bebas adalah perangkat lunak sumber terbuka, tapi sebaliknya perangkat lunak sumber terbuka belum tentu perangkat lunak bebas, tergantung kaidah yang dipakai dalam melisensikan perangkat lunak sumber terbuka tersebut.

3.1.2 Perbedaan perangkat lunak sumber terbuka dengan perangkat lunak gratis

Serupa dengan perangkat lunak gratis, perangkat lunak sumber terbuka merupakan perangkat lunak yang juga dapat diperoleh dan didistribusikan secara bebas. Berbeda halnya dengan perangkat lunak gratis yang belum tentu boleh dilihat kode aslinya, perangkat lunak sumber terbuka dapat dibaca kode-kode pemrograman sesuai aslinya. Kode pemrograman ini dapat juga diubah, dimodifikasi dan dikembangkan sendiri oleh kita dengan tetap memperhatikan kaidah yang berlaku sesuai dengan lisensi perangkat lunak tersebut. Sebagai contoh untuk memahami perbedaan antara kedua jenis perangkat ini dapat diilustrasikan misalnya perusahaan Microsoft pada suatu saat menjadikan salah satu produknya menjadi perangkat lunak gratis. Hal ini berarti siapapun dapat mendapatkannya secara gratis. Akan tetapi anda tidak diperkenankan untuk kemudian memodifikasi dan mengembangkan produk perangkat lunak tersebut. Dapat disimpulkan, perangkat lunak sumber terbuka sudah pasti merupakan perangkat lunak gratis, namun sebaliknya perangkat lunak gratis belum tentu merupakan perangkat lunak sumber terbuka.

3.1.3 Skema Lisensi perangkat lunak sumber terbuka, Open Source Software (OSS)



Tabel 2. OSS

3.2 Open Source



Gambar 3.1 Open Source Symbol

Pergerakan perangkat lunak bebas dan sumber terbuka saat ini membagi pergerakannya dengan pandangan dan tujuan yang berbeda. Sumber terbuka adalah pengembangan secara metodelogi, perangkat lunak tidak bebas adalah solusi suboptimal. Bagi pergerakan perangkat lunak bebas, perangkat lunak tidak bebas adalah masalah sosial dan perangkat lunak bebas adalah solusi.

Sumber terbuka (Open source) adalah sistem pengembangan yang tidak dikoordinasi oleh suatu individu / lembaga pusat, tetapi oleh para pelaku yang bekerja sama dengan memanfaatkan kode sumber (source-code) yang tersebar dan tersedia bebas (biasanya menggunakan fasilitas komunikasi internet). Pola pengembangan ini mengambil model ala bazaar, sehingga pola Open Source ini memiliki ciri bagi komunitasnya yaitu adanya dorongan yang bersumber dari budaya memberi, yang artinya ketika suatu komunitas menggunakan sebuah program Open Source dan telah menerima sebuah manfaat kemudian akan termotivasi untuk menimbulkan sebuah pertanyaan apa yang bisa pengguna berikan balik kepada orang banyak. Pola Open Source lahir karena kebebasan berkarya, tanpa intervensi berpikir dan mengungkapkan apa yang diinginkan dengan menggunakan pengetahuan dan produk yang cocok. Kebebasan menjadi pertimbangan utama ketika dilepas ke publik. Komunitas yang lain mendapat kebebasan untuk belajar, mengutak-ngatik, merevisi ulang, membenarkan ataupun bahkan menyalahkan, tetapi kebebasan ini juga datang bersama dengan tanggung jawab, bukan bebas tanpa tanggung jawab.

3.2.2 Konsep dan definisi

Pada intinya konsep sumber terbuka adalah membuka "kode sumber" dari sebuah perangkat lunak. Konsep ini terasa aneh pada awalnya dikarenakan kode sumber merupakan kunci dari sebuah perangkat lunak. Dengan diketahui logika yang ada di kode sumber, maka orang lain semestinya dapat membuat perangkat lunak yang sama fungsinya. Sumber terbuka hanya sebatas itu. Artinya, dia tidak harus gratis. Definisi sumber terbuka yang asli adalah seperti tertuang dalam OSD (Open Source Definition)/Definisi sumber terbuka.

3.2.3 Pergerakan sumber terbuka dan perangkat lunak bebas

Pergerakan perangkat lunak bebas dan sumber terbuka saat ini membagi pergerakannya dengan pandangan dan tujuan yang berbeda. Sumber terbuka adalah pengembangan secara metodelogi, perangkat lunak tidak bebas adalah solusi suboptimal. Bagi pergerakan perangkat lunak bebas, perangkat lunak tidak bebas adalah masalah sosial dan perangkat lunak bebas adalah solusi.

3.3 Free Software

Perangkat lunak bebas (Free software) adalah istilah yang diciptakan oleh Richard Stallman dan Free Software Foundation yang mengacu kepada perangkat lunak yang bebas untuk digunakan, dipelajari dan diubah serta dapat disalin dengan atau tanpa modifikasi, atau dengan beberapa keharusan untuk memastikan bahwa kebebasan yang sama tetap dapat dinikmati oleh pengguna-pengguna berikutnya. Bebas di sini juga berarti dalam menggunakan, mempelajari, mengubah, menyalin atau menjual sebuah perangkat lunak, seseorang tidak perlu meminta izin dari siapa pun. Untuk menjadikan sebuah perangkat lunak sebagai perangkat lunak bebas, perangkat lunak tersebut harus memiliki sebuah lisensi, atau berada dalam domain publik dan menyediakan akses ke kode sumbernya bagi setiap orang. Gerakan perangkat lunak bebas (free software movement) yang merintis perangkat lunak bebas berawal pada tahun 1983, bertujuan untuk memberikan kebebasan ini dapat dinikmati oleh setiap pengguna komputer. Dengan konsep kebebasan ini, setiap orang bebas untuk menjual perangkat lunak bebas, menggunakannya secara komersial dan mengambil untung dari distribusi dan modifikasi kode sumbernya. Walaupun demikian setiap orang yang memiliki salinan dari sebuah perangkat lunak bebas dapat pula menyebarluaskan perangkat lunak bebas tersebut secara gratis. Model bisnis dari perangkat lunak bebas biasanya terletak pada nilai tambah seperti dukungan, pelatihan, kustomisasi, integrasi atau sertifikasi. Perangkat lunak bebas (free software) jangan disalahartikan dengan perangkat lunak gratis (freeware) yaitu perangkat lunak yang digunakan secara gratis. Perangkat lunak gratis dapat berupa perangkat lunak bebas atau perangkat lunak tak bebas. Sejak akhir tahun 1990-an, beberapa alternatif istilah untuk perangkat lunak bebas digulirkan seperti "perangkat lunak sumber terbuka" (open-source software), "software libre", "FLOSS", dan "FOSS". Saat ini, umumnya perangkat lunak bebas tersedia secara gratis dan dibangun/dikembangkan oleh suatu paguyuban terbuka. Anggota-anggota paguyuban tersebut umumnya bersifat sukarela tetapi dapat juga merupakan karyawan suatu perusahaan yang memang dibayar untuk membantu pengembangan perangkat lunak tersebut.

Pada 1950-an, 1960-an dan 1970-an, suatu perangkat lunak dapat dibagi penggunaannya secara bebas oleh pengguna-pengguna komputer. Industri perangkat keras sangat diuntungkan karena dengan dibuatnya suatu perangkat lunak yang berjalan di atas perangkat keras yang mereka buat, menjadikan perangkat keras mereka berguna. Pada 1970-an dan akhir 1980-an, perusahaan-perusahaan pembuat perangkat lunak mulai menggunakan hak cipta untuk melarang penggunaan perangkat lunak berbagi, dan mulai menyebarkan perangkat lunak dalam format biner (format terkompilasi) dan bukannya dalam kode sumber untuk mencegah perangkat lunak untuk dapat dipelajari atau dimodifikasi. Pada 1983, Richard Stallman meluncurkan proyek GNU setelah merasa frustasi dengan efek yang ditimbulkan dari perubahan budaya industri komputer dan pengguna-penggunanya. Pengembangan perangkat lunak sistem operasi GNU dimulai pada Januari 1984, dan Yayasan Perangkat Lunak Bebas (FSF) didirikan pada Oktober 1985. Ia memperkenalkan definisi perangkat lunak bebas dan "copyleft", yaitu sebuah model lisensi yang memastikan kebebasan dalam hal penggunaan perangkat lunak bebas bagi semua orang.[2] Perangkat lunak bebas merupakan upaya besar dari dunia internasional untuk menghasilkan perangkat lunak yang digunakan oleh individu, perusahaan besar dan lembaga pemerintah. Perangkat lunak bebas memiliki penetrasi pasar yang tinggi dalam aplikasi server Internet seperti Apache HTTP Server, sistem basisdata MySQL, dan bahasa skrip PHP. Paket besar perangkat lunak bebas juga tersedia seperti GNU/Linux dan FreeBSD. Pengembang-pengembang perangkat lunak bebas juga telah membuat versi bebas dari aplikasi-aplikasi dekstop yang umum digunakan seperti penjelajah web, paket perkantoran dan pemutar multimedia. Tetapi perlu dicatat bahwa dalam banyak kategori, perangkat lunak bebas yang digunakan untuk pengguna-pengguna individu atau pengguna rumahan hanya memiliki porsi kecil dari pasar yang lebih banyak dikuasai oleh perangkat lunak berbayar. Kebanyakan perangkat lunak bebas didistribusikan secara online dan gratis, atau secara off-line dengan dikenai sejumlah biaya untuk distribusi. Keuntungan ekonomis dari model perangkat lunak bebas telah diakui oleh beberapa perusahaan besar seperti IBM, Red Hat, dan Sun Microsystems. Banyak perusahaan yang bisnis intinya tidak berada dalam sektor teknologi informasi memilih perangkat lunak bebas sebagai solusi Internet mereka karena investasi yang rendah dan kebebasan untuk kustomisasi.

3.3.2 Contoh perangkat lunak bebas

Beberapa perangkat lunak bebas yang dikenal secara internasional :

- Sistem operasi: GNU/Linux, BSD, Darwin, Debian, Ubuntu, dan OpenSolaris

- Pemutar Media: Rhythmbox, VLC, Amarok

- Kompilator GCC, GDB debugger dan C libraries

- Server: BIND name server, Sendmail mail transport, Apache HTTP Server, dan Samba file server

- RDBMS: MySQL dan PostgreSQL

- Bahasa pemrograman: Perl, PHP, Python, Ruby dan Tcl

- GUI: X Window System, GNOME, KDE, dan Xfce

- Paket perkantoran OpenOffice.org, Mozilla dan penjelajah web Firefox serta penyunting grafis GIMP

- Sistem dokumen TeX dan LaTeX

- Alat bantu UNIX untuk otomatisasi skrip dan pengujian: Expect

- Alat bantu UNIX untuk layanan pemantauan jaringan: Nagios

- Sistem manajemen konten MediaWiki

- ogg: tipe berkas perangkat lunak bebas yang fungsinya menyerupai MP3 atau MP4

3.3.3 Defenisi

Untuk membantu membedakan antara perangkat lunak bebas dan perangkat lunak gratis, Richard Stallman, pendiri gerakan perangkat lunak bebas, menjelaskan: "Perangkat lunak bebas adalah perihal kebebasan, bukan harga. Untuk mengerti konsepnya, Anda harus memikirkan 'bebas' seperti dalam "kebebasan berpendapat", bukan 'bebas' dalam "bir gratis".

Menurut Richard Stallman dan Yayasan Perangkat Lunak Bebas, suatu perangkat lunak dikatakan perangkat lunak bebas jika pengguna yang menerima salinan perangkat lunak tersebut memiliki empat kebebasan yaitu :

• Kebebasan 0: Bebas untuk menjalankan perangkat lunak untuk tujuan apapun.

• Kebebasan 1: Bebas untuk mempelajari dan mengubah perangkat lunak.

• Kebebasan 2: Bebas untuk menyalin perangkat lunak, sehingga Anda dapat membantu tetangga Anda.

• Kebebasan 3: Bebas untuk memajukan perangkat lunak, dan merilisnya ke publik, sehingga komunitas dapat menikmati keuntungan tersebut.

Kebebasan 1 dan 3 membutuhkan akses atas kode sumber, karena tidak mungkin untuk mempelajari dan mengubah perangkat lunak tanpa kode sumbernya. Kelompok lainnya telah mempublikasikan definisi lain yang menggambarkan hal yang hampir sama tentang perangkat lunak bebas. Panduan Perangkat Lunak Bebas Debian (Debian Free Software Guidelines) dan Definisi Sumber Terbuka (Open Source Definition) adalah contohnya.

3.3.4 Penamaan

Beberapa pengguna menggunakan istilah "libre" untuk menghindari disambiguasi dari kata free. Istilah tersebut kebanyakan ditemui di gerakan perangkat lunak bebas. Istilah lainnya yang digunakan adalah "perangkat lunak sumber terbuka" ("open source software") yang tercantum dalam Panduan Perangkat Lunak Bebas Debian yang dibuat pada tahun 1998.

3.3.5 Lisensi

Baik Yayasan Perangkat Lunak Bebas (Free Software Foundation) maupun Inisiatif Sumber Terbuka (Open Source Initiative) mempublikasikan daftar lisensi yang cocok dengan definisi perangkat lunak bebas dan perangkat lunak sumber terbuka. (Lihat: Daftar lisensi perangkat lunak yang disetujui FSF dan Daftar lisensi perangkat lunak yang disetujui OSI). Beberapa lisensi perangkat lunak bebas yang umumnya dipakai adalah :

• Lisensi Publik Umum GNU

• LGPL

• BSD License

• Lisensi Umum Mozilla

• MIT License

• Lisensi Apache

Lisensi permisif dan copyleft

FSF mengelompokkan lisensi-lisensi perangkat lunak bebas ke dalam :

• Lisensi-lisensi copyleft, adalah GNU General Public License yang paling menonjol. Lisensi-lisensi ini mengakui hak cipta oleh penciptanya dan mengizinkan pendistribusian dan modifikasi dengan beberapa syarat yang memastikan bahwa semua versi yang telah dimodifikasi tetap bebas selama waktu yang diinginkan penciptanya.

• Lisensi-lisensi BSD, dimana umumnya perangkat lunak yang berlisensi ini didistribusikan dengan sistem operasi BSD. Penciptanya memegang hak cipta dan mengharuskan atribusi pada versi-versi yang dimodifikasi, tetapi tetap mengizinkan pendistribusian dan modifikasi selama waktu yang diinginkan penciptanya.

• Perangkat lunak domain publik - Pencipta meninggalkan hak ciptanya. Karena perangkat lunak domain publik tidak memiliki perlindungan hak cipta, perangkat lunak lisensi ini dapat secara bebas digunakan dalam bentuk apapun termasuk ke dalam bentuk berbayar. Penciptanya dalam kondisi apapun tidak bisa lagi menetapkan pembatasan-pembatasan apapun setelah dirilis dan diedarkan.

3.3.6 Dampak

Perangkat lunak bebas memainkan sejumlah peranan dalam pengembangan Internet, World Wide Web dan infrastruktur dari perusahaan-perusahaan dot-com. Perangkat lunak bebas menyebabkan pengguna-pengguna dapat bekerja sama dalam memperbaiki dan memajukan program yang mereka gunakan sehingga menjadikan perangkat lunak bebas sebagai barang publik dan bukannya barang pribadi.

Dalam model bisnis perangkat lunak bebas, pembuat dapat mengenakan biaya untuk distribusi dan menawarkan dukungan berbayar serta kustomisasi perangkat lunak. Perangkat lunak tak bebas (proprietary software) menggunakan model bisnis yang berbeda, di mana pengguna harus membayar lisensi sebelum dapat menggunakan perangkat lunak. Terkadang beberapa jenis dukungan purna jual termasuk dalam lisensi perangkat lunak tak bebas tersebut, tetapi tidak banyak perangkat lunak berbayar mengenakan biaya tambahan untuk dukungan.

Perangkat lunak bebas pada umumnya tersedia secara gratis atau dengan harga yang relatif murah dibandingkan dengan harga perangkat lunak tak bebas. Dengan perangkat lunak bebas, pebisnis dapat menyesuaikan perangkat lunak sesuai dengan kebutuhan dengan mengubah perangkat lunak. Perangkat lunak bebas pada umumnya tidak memiliki garansi dan tidak mengenakan kewajiban legal kepada siapa pun. Walaupun demikian, garansi kadang-kadang dibuat antara dua belah pihak tergantung perangkat lunak dan penggunaannya berdasarkan persetujuan terpisah dari lisensi perangkat lunak bebas yang bersangkutan.

Banyak pihak memperdebatkan segi keamanan dari perangkat lunak bebas yang dianggap lebih rentan dari perangkat lunak berbayar. Pihak pengguna perangkat lunak bebas mengklaim angka celah keamanan perangkat lunak bebas yang lebih banyak dibandingkan celah keamanan yang ditemukan pada perangkat lunak berbayar disebabkan karena kode sumber perangkat lunak bebas dapat diakses siapa pun termasuk pihak-pihak yang menggunakannya secara ilegal. Mereka juga mengklaim walaupun perangkat lunak berbayar tidak mempublikasikan celah keamanan, tetapi celah tersebut ada dan kemungkinan diketahui oleh para peretas. Di segi lain, ketersediaan kode sumber dari perangkat lunak bebas menyebabkan banyak pengguna dapat menganalisa kode sumber tersebut dan menjadikan tingkat kemungkinan tinggi bagi seseorang untuk menemukan suatu celah dan membuat perbaikannya.

3.3.7 Kontroversi

Kode sumber terbuka merupakan keharusan dalam perangkat lunak bebas. Ada beberapa kontroversi yang disebabkan oleh beberapa bagian dari perangkat lunak bebas yang bertentangan dengan semangat kode sumber terbuka :

• Binary blobs. Pada tahun 2006, OpenBSD memulai kampanye pertama menentang penggunaan binary blobs, binary large objects, dalam kernel. Blobs merupakan device driver yang secara didistribusikan secara bebas untuk perangkat keras dimana kode sumbernya tidak dirilis oleh pembuatnya. Hal ini membatasi kebebasan pengguna untuk mengubah perangkat lunak tersebut. Blobs juga tidak didokumentasikan dan dapat memiliki bug, sehingga memiliki risiko keamanan terhadap kernel yang menggunakannya. Sasaran dari kampanye menentang blobs adalah untuk mengumpulkan dokumentasi perangkat keras yang dapat mendukung pengembang untuk menulis driver yang bebas. Isu blobs dalam kernel Linux dan device driver lainnya memotivasi beberapa pengembang di Irlandia untuk meluncurkan gNewSense, sebuah distro Linux yang tidak memiliki binary blobs. Proyek ini menerima dukungan dari FSF.

• BitKeeper. BitKeepeer adalah sebuah perangkat lunak pengontrol versi buatan Larry McVoy. Ia kemudian membuat proyek-proyek perangkat lunak bebas yang menggunakan BitKeeper, dengan maksud untuk menarik para pengguna. Pada tahun 2002 sebuah keputusan kontroversial dibuat untuk menggunakan BitKeeper dalam pengembangan kernel Linux yang notabene merupakan proyek perangkat lunak bebas. Berikut kutipan dari sebuah tulisan di Newsforge oleh Richard Stallman yang menggambarkan kenapa ini menjadi sumber utama kontroversi. Gerakan perangkat lunak bebas telah mengatakan "Pikirkan kebebasan berpendapat, dan bukannya bir gratis" selama 15 tahun. McVoy mengatakan hal yang sebaliknya; ia mengundang para pengembang untuk memfokuskan pada kurangnya harga dan bukannya kebebasan. Aktivis perangkat lunak bebas seharusnya meninggalkan ide ini, tetapi beberapa orang dalam komunitas kita yang menilai keuntungan teknis di atas kebebasan dan komunitas terpengaruh olehnya.Sebuah kernel bebas, bahkan sebuah sistem operasi secara keseluruhan, tidaklah cukup untuk menggunakan komputer Anda secara bebas; kita membutuhkan perangkat lunak bebas untuk hal-hal lainnya. Aplikasi bebas, driver bebas, BIOS bebas: beberapa proyek tersebut menghadapi kendala besar -- yaitu kebutuhan untuk melakukan rekayasa terbalik atau menekan perusahaan agar membuat dokumentasi yang diperlukan, atau untuk bekerja dalam ancaman paten. Kesuksesan membutuhkan kekuatan dan determinasi. Kernel yang lebih baik tentu saja dibutuhkan, tetapi tidak atas suatu harga yang akan melemahkan kekuatan untuk membebaskan dunia perangkat lunak yang tersisa." Sehubungan dengan rekayasa terbalik atas protokol-protokol BitKeeper yang dilakukan kemudian, McVoy akhirnya menarik penggunaan gratis untuk proyek-proyek perangkat lunak bebas.

• Kesepakatan paten. Pada November 2006, Microsoft dan Novell mengumumkan sebuah kerjasama kontroversial yang antara lain berisi tentang proteksi paten untuk beberapa pelanggan Novell dalam beberapa kondisi tertentu.

3.4 Bahasa Pemrograman

Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer atau bahasa pemrograman komputer, adalah instruksi standar untuk memerintah komputer. Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.

Menurut tingkat kedekatannya dengan mesin komputer, bahasa pemrograman terdiri dari :

1. Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner, contohnya 01100101100110

2. Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan (bah.Inggris Assembly), yaitu memberikan perintah kepada komputer dengan memakai kode-kode singkat (kode mnemonic), contohnya MOV, SUB, CMP, JMP, JGE, JL, LOOP, dsb.

3. Bahasa Tingkat Menengah, yaitu bahasa komputer yang memakai campuran instruksi dalam kata-kata bahasa manusia (lihat contoh Bahasa Tingkat Tinggi di bawah) dan instruksi yang bersifat simbolik, contohnya {, }, ?, <<, >>, &&, ||, dsb.

4. Bahasa Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi berasal dari unsur kata-kata bahasa manusia, contohnya begin, end, if, for, while, and, or, dsb.

Sebagian besar bahasa pemrograman digolongkan sebagai Bahasa Tingkat Tinggi, hanya bahasa C yang digolongkan sebagai Bahasa Tingkat Menengah dan Assembly yang merupakan Bahasa Tingkat Rendah.



Gambar 3.2 C++

3.5 Basis Data

Pangkalan data atau basis data (Database), atau sering pula dieja basisdata, adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (database management system, DBMS). Sistem basis data dipelajari dalam ilmu informasi.

stilah "basis data" berawal dari ilmu komputer. Meskipun kemudian artinya semakin luas, memasukkan hal-hal di luar bidang elektronika, artikel ini mengenai basis data komputer. Catatan yang mirip dengan basis data sebenarnya sudah ada sebelum revolusi industri yaitu dalam bentuk buku besar, kuitansi dan kumpulan data yang berhubungan dengan bisnis.

Konsep dasar dari basis data adalah kumpulan dari catatan-catatan, atau potongan dari pengetahuan. Sebuah basis data memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya: penjelasan ini disebut skema. Skema menggambarkan obyek yang diwakili suatu basis data, dan hubungan di antara obyek tersebut. Ada banyak cara untuk mengorganisasi skema, atau memodelkan struktur basis data: ini dikenal sebagai model basis data atau model data. Model yang umum digunakan sekarang adalah model relasional, yang menurut istilah layman mewakili semua informasi dalam bentuk tabel-tabel yang saling berhubungan dimana setiap tabel terdiri dari baris dan kolom (definisi yang sebenarnya menggunakan terminologi matematika). Dalam model ini, hubungan antar tabel diwakili denga menggunakan nilai yang sama antar tabel. Model yang lain seperti model hierarkis dan model jaringan menggunakan cara yang lebih eksplisit untuk mewakili hubungan antar tabel.

Istilah basis data mengacu pada koleksi dari data-data yang saling berhubungan, dan perangkat lunaknya seharusnya mengacu sebagai sistem manajemen basis data (database management system/DBMS). Jika konteksnya sudah jelas, banyak administrator dan programer menggunakan istilah basis data untuk kedua arti tersebut.

3.5.2 Lingkungan basis data

Lingkungan basis data adalah sebuah habitat di mana terdapat basis data untuk bisnis. Dalam lingkungan basis data, pengguna memiliki alat untuk mengakses data. Pengguna melakukan semua tipe pekerjaan dan keperluan mereka bervariasi seperti menggali data (data mining), memodifikasi data, atau berusaha membuat data baru. Masih dalam lingkungan basis data, pengguna tertentu tidak diperbolehkan mengakses data, baik secara fisik maupun logis. (Koh, 2005, dalam Janner Simarmata & Imam Paryudi 2006: 33).

3.5.3 MySql

MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL.

Tidak sama dengan proyek-proyek seperti Apache, dimana perangkat lunak dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia MySQL AB, dimana memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael "Monty" Widenius.

Sistem manajemen basis data relasional

MySQL adalah sebuah implementasi dari sistem manajemen basisdata relasional (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Setiap pengguna dapat secara bebas menggunakan MySQL, namun dengan batasan perangkat lunak tersebut tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam basisdata yang telah ada sebelumnya; SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian basisdata, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis.

Kehandalan suatu sistem basisdata (DBMS) dapat diketahui dari cara kerja pengoptimasi-nya dalam melakukan proses perintah-perintah SQL yang dibuat oleh pengguna maupun program-program aplikasi yang memanfaatkannya. Sebagai peladen basis data, MySQL mendukung operasi basisdata transaksional maupun operasi basisdata non-transaksional. Pada modus operasi non-transaksional, MySQL dapat dikatakan unggul dalam hal unjuk kerja dibandingkan perangkat lunak peladen basisdata kompetitor lainnya. Namun demikian pada modus non-transaksional tidak ada jaminan atas reliabilitas terhadap data yang tersimpan, karenanya modus non-transaksional hanya cocok untuk jenis aplikasi yang tidak membutuhkan reliabilitas data seperti aplikasi blogging berbasis web (wordpress), CMS, dan sejenisnya. Untuk kebutuhan sistem yang ditujukan untuk bisnis sangat disarankan untuk menggunakan modus basisdata transaksional, hanya saja sebagai konsekuensinya unjuk kerja MySQL pada modus transaksional tidak secepat unjuk kerja pada modus non-transaksional.



Gambar 3.3 MySql

3.6 World Wide Web

World Wide Web, biasa lebih terkenal disingkat sebagai WWW adalah suatu ruang informasi yang dipakai oleh pengenal global yang disebut Pengidentifikasi Sumber Seragam untuk mengenal pasti sumber daya berguna. WWW sering dianggap sama dengan Internet secara keseluruhan, walaupun sebenarnya ia hanyalah bagian daripada Internet.

WW merupakan kumpulan peladen web dari seluruh dunia yang mempunyai kegunaan untuk menyediakan data dan informasi untuk dapat digunakan bersama. WWW adalah bagian yang paling menarik dari Internet. Melalui web, para pengguna dapat mengakses informasi-informasi yang tidak hanya berupa teks tetapi bisa juga berupa gambar, suara, video dan animasi.

Kegunaan ini tergolong masih baru dibandingkan surat elektronik, sebenarnya WWW merupakan kumpulan dokumen yang tersimpan di peladen web, dan yang peladennya tersebar di lima benua termasuk Indonesia yang terhubung menjadi satu melalui jaringan Internet. Dokumen-dokumen informasi ini disimpan atau dibuat dengan format HTML (Hypertext Markup Language).

Suatu halaman dokumen informasi dapat terdiri atas teks yang saling terkait dengan teks lainnya atau bahkan dengan dokumen lain. Keterkaitan halaman lewat teks ini disebut pranala. Dokumen infomasi ini tidak hanya terdiri dari teks tetapi dapat juga berupa gambar, mengandung suara bahkan klip video.Kaitan antar-dokumen yang seperti itu biasa disebut hipermedia.

adi dapat disimpulkan bahwa WWW adalah sekelompok dokumen multimedia yang saling bertautan dengan menggunakan tautan hiperteks. Dengan mengeklik pranala (hipertaut), maka para pengguna bisa berpindah dari satu dokumen ke dokumen lainnya.

3.7 HTML

HyperText Markup Language (HTML) adalah sebuah bahasa markah yang digunakan untuk membuat sebuah halaman web, menampilkan berbagai informasi di dalam sebuah penjelajah web Internet dan pemformatan hiperteks sederhana yang ditulis dalam berkas format ASCII agar dapat menghasilkan tampilan wujud yang terintegerasi. Dengan kata lain, berkas yang dibuat dalam perangkat lunak pengolah kata dan disimpan dalam format ASCII normal sehingga menjadi halaman web dengan perintah-perintah HTML. Bermula dari sebuah bahasa yang sebelumnya banyak digunakan di dunia penerbitan dan percetakan yang disebut dengan SGML (Standard Generalized Markup Language), HTML adalah sebuah standar yang digunakan secara luas untuk menampilkan halaman web. HTML saat ini merupakan standar Internet yang didefinisikan dan dikendalikan penggunaannya oleh World Wide Web Consortium (W3C). HTML dibuat oleh kolaborasi Caillau TIM dengan Berners-lee Robert ketika mereka bekerja di CERN pada tahun 1989 (CERN adalah lembaga penelitian fisika energi tinggi di Jenewa).



Gambar 3.4 HTML

3.8 PHP

PHP: Hypertext Preprocessor adalah bahasa skrip yang dapat ditanamkan atau disisipkan ke dalam HTML. PHP banyak dipakai untuk memrogram situs web dinamis. PHP dapat digunakan untuk membangun sebuah CMS.



Gambar 3.5 PHP

3.7 Web Server

Server web atau peladen web dapat merujuk baik pada perangkat keras ataupun perangkat lunak yang menyediakan layanan akses kepada pengguna melalui protokol komunikasi HTTP atau HTTPS atas berkas-berkas yang terdapat pada suatu situs web dalam layanan ke pengguna dengan menggunakan aplikasi tertentu seperti peramban web.

Penggunaan paling umum server web adalah untuk menempatkan situs web, namun pada prakteknya penggunaannya diperluas sebagai tempat peyimpanan data ataupun untuk menjalankan sejumlah aplikasi kelas bisnis.

DEFINISI

Fungsi utama sebuah server web adalah untuk mentransfer berkas atas permintaan pengguna melalui protokol komunikasi yang telah ditentukan. Disebabkan sebuah halaman web dapat terdiri atas berkas teks, gambar, video, dan lainnya pemanfaatan server web berfungsi pula untuk mentransfer seluruh aspek pemberkasan dalam sebuah halaman web yang terkait; termasuk di dalamnya teks, gambar, video, atau lainnya.

Pengguna, biasanya melalui aplikasi pengguna seperti peramban web, meminta layanan atas berkas ataupun halaman web yang terdapat pada sebuah server web, kemudian server sebagai manajer layanan tersebut akan merespon balik dengan mengirimkan halaman dan berkas-berkas pendukung yang dibutuhkan, atau menolak permintaan tersebut jika halaman yang diminta tidak tersedia.

Saat ini umumnya server web telah dilengkapi pula dengan mesin penerjemah bahasa skrip yang memungkinkan server web menyediakan layanan situs web dinamis dengan memanfaatkan pustaka tambahan seperti PHP, ASP.

Pemanfaatan server web saat ini tidak terbatas hanya untuk publikasi situs web dalam World Wide Web, pada prakteknya server web banyak pula digunakan dalam perangkat-perangkat keras lain seperti printer, router, kamera web yang menyediakan akses layanan http dalam jaringan lokal yang ditujukan untuk menyediakan perangkat manajemen serta mempermudah peninjauan atas perangkat keras tersebut.

3.7.2 Apache HTTP Server

Server HTTP Apache atau Server Web/WWW Apache adalah server web yang dapat dijalankan di banyak sistem operasi (Unix, BSD, Linux, Microsoft Windows dan Novell Netware serta platform lainnya) yang berguna untuk melayani dan memfungsikan situs web. Protokol yang digunakan untuk melayani fasilitas web/www ini menggunakan HTTP.

Apache memiliki fitur-fitur canggih seperti pesan kesalahan yang dapat dikonfigur, autentikasi berbasis basis data dan lain-lain. Apache juga didukung oleh sejumlah antarmuka pengguna berbasis grafik (GUI) yang memungkinkan penanganan server menjadi mudah.

Apache merupakan perangkat lunak sumber terbuka dikembangkan oleh komunitas terbuka yang terdiri dari pengembang-pengembang dibawah naungan Apache Software Foundation.



Gambar 3.6 Apache

3.8 Email Client

Sebuah program yang digunakan untuk mengelola email Menggantikan peran browser untuk mengelola email Mendownload semua email dari akun email kemudian dibaca secara offline.



Gambar 3.7 Mozzila ThunderBird

BAB 4

4.1 Pengembangan Sistem Berbasis Open Source

Perangkat lunak berbasis open source menampilkan pendekatan baru dibanding cara-cara tradisional atau pendekatan closed source. Secara metodologi, elemen paling dikenal dari open source adalah tinjauan luas dari sebaya (peer) dan kontribusi yang terdesentralisasi. Sebuah pengertian kunci adalah “berikan cukup bola mata, maka seluruh kesalahan menjadi dangkal”. Metodologi ini terutama dipelopori oleh Linus Torvalds pada pembuatan sistem operasi Linux, yaitu: menciptakan sendiri kode inti; membuatnya tersedia di Internet untuk ditinjau; saring perubahan terhadap kode dasar; dan ketika kode dasar menjadi terlalu besar untuk dikelola oleh satu orang, serahkan tanggungjawab atas komponen utama pada orang yang terpercaya. Dengan demikian kekuatan dari pendekatan open source berasal dari tinjauan besar-besaran dan luas atas program yang disajikan.

Berlawanan dengan dunia akademis dari rekayasa perangkat lunak, komunitas pengembangan open source tidak terlihat siap mengadopsi atau mempraktekkan proses rekayasa perangkat lunak modern. Komunitas tersebut membangun perangkat lunak yang bermanfaat, secara umum handal, tersedia luas, dan siap digunakan untuk kepentingan komunitas pengguna sejawatnya. Komunitas terbentuk dari mereka yang mengidentifikasi diri dalam pengembangan suatu perangkat lunak. Para peserta biasanya mengambil bagian dalam peran berbeda dan memberi kontribusi tersendiri (program, artifak, ujicoba, tinjauan kode, komentar, dll) melalui situs web yang tersedia pada setiap komunitas.

Terdapat 5 jenis tahapan proses dalam pengembangan secara open source. Setiap proses berbeda dari ketentuan rekayasa perangkat lunak tradisional, meski begitu tidak satupun yang berlaku bebas atau lebih penting dari lainnya. Proses-proses ini dapat berlangsung serempak, tidak mesti berurutan seperti pada model siklus hidup tradisional. Berikut tahapan tersebut :

1. Analisa persyaratan dan spesifikasi.

2. Kendali versi yang terkoordinasi, pembuatan sistem, dan penjadwalan hasil secara bertahap.

3. Perawatan sebagai pengembangan ulang yang revolusioner, perbaikan dan penyebaran ulang.

4. Pengelolaan proyek.

5. Transfer teknologi perangkat lunak.

Scacchi menjelaskan organisasi untuk proyek open source sebagai “komunitas longgar dari pengembang dan pengguna yang saling tertarik”. Hal ini khususnya berlaku untuk aplikasi di mana pengguna memiliki pengetahuan luas tentang bidang yang ditanganinya tetapi kurang dari segi teknis, sebaliknya pengembang sangat menguasai teknis aplikasi tapi tidak memiliki pengalaman terhadap pengunaan aplikasi tersebut. Contohnya pada aplikasi perpustakaan dan pengelolaan informasi.

Scacchi juga menyatakan salah satu kelebihan mendasar dari metode pengembangan open source adalah pembentukan dan pembuatan perangkat lunak yang rumit melalui koordinasi lepas dari pengembang dan penyokong yang (dapat) tersebar secara global. Para pelaku ini dapat berupa pegawai yang ditunjuk dan dibayar penuh oleh perusahaan, maupun mereka yang bekerja secara sukarela meluangkan waktu, tenaga dan sumber daya yang tersedia untuk terlibat dalam proyek.

Gacek et al. membuat ilustrasi kebanyakan komunitas open source seperti di bawah (berdasarkan studi kasus Apache, Cocoon, dan NetBSD) [6]. Dalam model diperlihatkan berbagai tugas berkaitan dengan proyek dilakukan dalam peran berbeda, menunjukkan pula keterlibatan orang dalam suatu proyek dapat berganti menurut waktu.



Gambar 4.1 Ilustrasi komunitas open source.

Eric S. Raymond membedakan metode pengembangan perangkat lunak secara open source menjadi 2 jenis, yaitu:

• Katedral. Merupakan cara pengembangan secara konvensional, yaitu tertutup atau closed source, perencanaan secara terpusat, organisasi yang kaku, satu proses dari mulai hingga selesai, dan pengembang menghabiskan waktu pada pencarian kesalahan dan memenuhi permintaan fasilitas.

• Bazar. Merupakan proses utama dalam pengembangan open source, tumbuh secara organik, setiap orang dapat memberi masukan dan berdiskusi tentang itu, pengguna diperlakukan sebagai rekan pengembang, dan pengguna dapat menunjuk langsung pada kesalahan, bahkan membetulkannya.

Beberapa keuntungan dari metode pengembangan open source :

• Mengurangi kerja ganda, mengingat setiap orang dapat memperoleh kode sumber dari program, pengembangan dilakukan pada hal-hal yang belum ada atau memenuhi kebutuhan.

• Pembangunan atas dasar kerja yang lain. Keberhasilan dari proyek open source adalah komunitas yang saling bekerja sama untuk menghasilkan yang lebih besar.

• Kendali kualitas yang lebih baik. Semakin banyak pihak turut serta dalam pengembangan, maka kekurangan-kekurangan dari sistem dapat lebih terlihat.

• Mengurangi biaya perawatan, mengingat beban pengerjaan dipikul bersama.

Metode pengembangan open source sebagai kerja kolaboratif antara para pengembang maupun pengguna, dapat menggunakan teknik-teknik yang berkembang dalam rekayasa perangkat lunak.

Berikut beberapa pokok dari rekayasa pemakaian ulang menurut Ian Sommerville :

• Perancangan dengan pemakaian ulang melibatkan rancangan yang baik dari perangkat lunak dan komponen yang ada.

• Keuntungan yang didapat adalah biaya murah, pengembangan lebih cepat, dan kecenderungan resiko yang rendah.

• Komponen pakai ulang harus bebas, mencerminkan penjabaran stabil dari bidang permasalahan, dan menyediakan akses melalui operasi antarmuka.

• Kelompok aplikasi yang terkait dibangun menggunakan inti bersama.

4.2 Analisa Masalah

4.2.2 Sistem Editorial Majalah Z

Sistem Editorial Majalah Z (SEMZ) adalah suatu sistem pengelolaan naskah pada sebuah perusahaan media cetak yang menerbitkan majalah dwi mingguan. Lingkungan kerjanya adalah jaringan intranet perusahaan dan dimungkinkan pengoperasian lewat Internet. Perangkat keras yang digunakan adalah Personal Computer standar, baik sebagai client maupun server.

Berikut tujuan yang ingin dicapai oleh SEMZ :

• Berbiaya murah. Pembuatan sistem sejak awal disyaratkan menggunakan perangkat lunak dengan lisensi yang non komersil, sehingga berbiaya murah, baik itu dibuat sendiri ataupun menggunakan perangkat lunak berbasis open source.

• Mudah digunakan. Pertimbangan utama adalah keterampilan pengguna dalam menggunakan perangkat yang ada, terutama pada era Internet berbasiskan web.

• Mudah diperlihara. Agar terjadi pengelolaan sistem yang berkesinambungan, maka pembuatan perangkat lunak diselaraskan dengan kemampuan petugas Teknologi Informasi (TI) yang tersedia di perusahaan tersebut. Digunakan bahasa pemrograman yang banyak dikuasai, sederhana, mudah dibuat dan dipelihara.

• Mendukung kerja secara keseluruhan redaksional majalah, dimulai dari tahap perencanaan hingga dokumentasi naskah. Sistem diharapkan membuat pengelolaan naskah lebih terpadu dan terkontrol dengan baik.

• Memungkinkan pengembangan dan integrasi dengan sistem lain. Mengingat terdapat beberapa sistem lain, diharapkan sistem yang dihasilkan nantinya dapat dikembangkan dan terintegrasi dengan sistem-sistem tersebut.

Sistem diharapkan mencakup hal-hal utama berikut :

• Alur pengisian naskah, sejak tahap usulan s/d terbit di majalah, baik berupa tulisan maupun foto. Seluruh tahap dalam pengisian naskah sepenuhnya menggunakan komputer.

• Pengisian item penilaian untuk reporter dan fotografer.

• Arsip untuk internal karyawan maupun bagian riset dan dokumentasi.

• Pelaporan dan evaluasi dari statistik naskah untuk pemilik perusahaan dan pihak terkait.

Kondisi yang sedang berjalan adalah pengelolaan naskah menggunakan komputer, dengan program pengolah kata yang tersedia, dan mekanisme pemisahan bagian menggunakan sharing folder yang berbeda-beda sesuai tahapan naskah. Setiap petugas dari masing-masing bagian mengambil naskah dari folder yang bersangkutan, mengolahnya, dan menyimpannya ke folder yang lain. Alur naskah dan folder yang ada tergambar dari bagan berikut.



Gambar 4.2 Alur naskah dan folder sistem berjalan.

Berdasarkan hasil analisa alur naskah yang berjalan, didapat 8 jenis pembagian kerja dalam pengisian naskah, yaitu :

1. Reporter, yaitu petugas pencari berita. Reporter mendapat tugas liputan dari Koordinator Reporter.

2. Fotografer, yaitu petugas pencari foto. Fotografer mendapat tugas liputan dari Redaktur Foto.

3. Periset, yaitu petugas yang melakukan riset arsip maupun dokumentasi. Periset mendapat tugas riset dari Manager Riset.

4. Penulis, yaitu petugas yang membuat tulisan untuk suatu rubrik. Bahan untuk tulisan berasal dari Reporter, Fotografer dan Periset.

5. Redaktur Kompartemen, yaitu petugas yang melakukan pengecekan tulisan dari Penulis. Redaktur Kompartemen merupakan petugas dengan kewenangan tertinggi yang bertanggungjawab penuh atas pemuatan suatu tulisan.

6. Editor Naskah, yaitu petugas yang melakukan editing final tulisan. Editing meliputi keseluruhan teks, baik berupa tulisan maupun keterangan foto atau gambar.

7. Petugas Tata Muka, yaitu petugas yang membuat layout final tulisan untuk dicetak dalam majalah.

8. Redaktur Eksekutif, yaitu petugas yang menentukan garis besar isi yang akan dibahas dalam majalah. Secara alur berperan dalam finalisasi outline isi.

Pembuatan sistem yang baru tidak mengubah cara kerja menurut sistem yang lama. Hasil analisa permasalahan yang ada pada sistem yang berjalan sebagai berikut :

• Sistem pengelompokan naskah menggunakan sharing folder, sehingga tidak terdapat kontrol terhadap waktu maupun pengawasan atas jalannya naskah atau tulisan.

• Pengaturan kewenangan yang ada sangat terbatas, yaitu sebatas pengaturan hak akses terhadap operasi file, yaitu tidak ada akses (none), hanya baca (read only), dan baca / tulis (read write).

• Arsip untuk bagian Riset dan Dokumentasi dilakukan secara manual. Mengingat perpindahan naskah dilakukan oleh petugas pada masing-masing folder, setiap akhir penerbitan majalah petugas dari bagian TI perlu memindah file-file tersebut baik sebagai arsip maupun kepentingan penerbitan berikutnya.

• Pencarian teks pada naskah maupun foto tidak dapat dilakukan, karena teknik penyimpanan yang berupa file. Petugas TI perlu mengolah secara manual agar file dapat ditemukan.

• Ketergantungan yang tinggi terhadap program pengolah kata, seperti Microsoft Word atau Open Office. Selain itu isi dari file tersebut sulit dipindahkan (non portable) karena menggunakan format dari program pengolah kata tersebut.

• Penilaian berjalan secara terbatas, yaitu manual melalui kertas yang disediakan, hingga tidak berjalan efektif karena pengawasan yang kurang dan tidak terintegrasi.

• Tidak bisa dikerjakan dari tempat lain atau lewat Internet, mengingat sharing folder hanya tersedia dalam jaringan Intranet kantor.

• Keterlibatan proses secara manual, yang dilakukan melalui kertas berjalan, masih cukup tinggi, mengingat teknik penyimpanan file yang sederhana. Dalam prakteknya kebutuhan terhadap kertas dan pencetakan menjadi tidak terhindarkan.

• Lingkungan pengembangan perangkat lunak yang dikuasai oleh petugas TI didominasi oleh bahasa scripting, seperti Perl, ASP, atau PHP. Beberapa aplikasi yang sudah ada dan berjalan menggunakan bahasa tesebut.

4.2.3 Modifikasi DSDM

Melihat hasil dari analisa permasalahan, DSDM dapat digunakan sebagai metodologi dalam proses pengembangan sistem. Hal yang menjadi perhatian utama dari DSDM adalah menghasilkan sistem secara tepat waktu dan tepat anggaran, dengan melakukan pengerjaan secara berulang dan bertambah menurut skala prioritas dari bagian-bagian dari sistem. DSDM juga tanggap terhadap perubahan yang cepat, dan bisa digunakan pada tim yang kecil. Menghasilkan produk sesuai dengan jadwal adalah faktor penting dalam keberhasilan pengerjaan proyek sistem informasi.

Namun demikian, terdapat 2 hal tambahan yang menjadi pertimbangan lain, yaitu sistem sejenis sudah pernah dibuat untuk majalah yang lain dan berkembangnya metode pengembangan sistem berbasis open source. Diperlukan modifikasi lebih lanjut terhadap DSDM agar bisa mengakomodasi 2 hal tersebut, yang membantu mempercepat pengerjaan sistem. Modifikasi ini dapat dinyatakan sebagai Rekayasa Pemakaian Ulang (reusability engineering).

Rekayasa Pemakaian Ulang dapat dibagi menjadi 4 bagian :

1. Mengenali yang ada (identify existing), berupa pencarian sistem atau sub sistem dari yang telah ada, bersumber dari proyek terdahulu maupun yang ada di Internet.

2. Rekayasa terbalik (reverse engineering), melakukan dekomposisi fungsional dari sistem menjadi komponen-komponen terpisah.

3. Penyusunan ulang (restructuring), melakukan penyusunan ulang struktur dari komponen, disesuaikan dengan kerangka besar aplikasi maupun database.

4. Rekayasa maju (forward engineering), menyiapkan komponen agar siap pakai untuk kebutuhan sistem.



Gambar 4.3 Modifikasi DSDM

Tahapan Rekayasa Pemakaian Ulang ini pada dasarnya dapat disisipkan pada banyak tahap dari DSDM. Mengingat sifat siklus hidup DSDM adalah dapat dikembalikan (reversible), maka tahap rekayasa ini lebih efektif ditempatkan setelah tahap Perulangan Model Fungsional. Hasil dari rekayasa adalah mempercepat tahap berikutnya, yaitu Perulangan Perancangan dan Pembuatan.



Gambar 4.4 Konsep pembuatan sistem menggunakan komponen.

Pemanfaatan kembali perangkat lunak atau komponen-komponennya memberikan beberapa keuntungan, yaitu :

• Peningkatan kualitas, akibat perbaikan kesalahan dari tiap-tiap kali pemakaian ulang. Hal ini bila pemakaian komponen disertai dengan melakukan peninjauan dan perawatan.

• Peningkatan produktivitas, mengingat lebih sedikit kode yang dibuat. Berkurangnya tenaga dan waktu yang dibutuhkan yang secara keseluruhan menekan pengeluaran biaya.

• Perbaikan unjuk kerja. Menggunakan komponen yang dipakai berulang-ulang dan teruji baik akan lebih memberi jaminan daripada komponen yang hanya sekali pakai.

• Keandalan lebih baik. Penggunaan komponen secara berulang pada berbagai sistem menyebabkan kesalahan lebih mudah diketahui sehingga kepercayaan meningkat.

• nteroperabilitas lebih tinggi. Berbagai sistem dapat bekerja baik bila antarmuka komponen dirancang secara konsisten untuk pemakaian lebih luas.

4.3 Penerapan dan Pembahasan

Penggunakan DSDM yang telah dimodifikasi dalam pengembangan SEMZ akan dibahas tahap demi tahap sesuai urutan kegiatan.

4.3.2 Sebelum Proyek

Tahap sebelum proyek berupa pengajuan proposal pembuatan sistem editorial di majalah Z. Proposal ini pada intinya berisi hal berikut :

1. Pengajuan pembuatan program beserta spesifikasi sistem.

2. Biaya yang ditawarkan.

3. Waktu yang dibutuhkan.

Proposal diberikan kepada pemilik perusahaan. Persetujuan atas proposal yang diajukan merupakan komitmen dasar mengenai 3 hal di atas, sekaligus menandai dimulainya proses pengembangan sistem yang ditawarkan.

4.3.3 Studi Kelayakan

Tahap ini terpusat pada persiapan di lingkungan internal pengembang. Teknik kunci yang digunakan adalah mengadakan pertemuan dari seluruh anggota yang akan terlibat. Hasil yang dicapai dari pertemuan ini yaitu :

• Peninjauan kelayakan metodologi pengembangan sistem yang akan digunakan, dalam hal ini DSDM. Berdasarkan hasil analisa dan tujuan-tujuan yang ingin dicapai, dinyatakan proyek dapat dibuat menggunakan DSDM, dengan catatan perlu tambahan tahap Rekayasa Pemakaian Ulang.

• Komitmen dari setiap anggota untuk bekerja hingga proyek selesai, disertai konsekuensi bila anggota mangkir dari tugasnya. Mengingat tim pengembang bersifat ad-hoc, yaitu dibuat hanya untuk kepentingan proyek, maka komitmen ini harus disepakati dan dipatuhi sebaik-baiknya.

• Dibuat garis besar rencana, menyangkut tata cara pengerjaan proyek, penjadwalan, dan pembagian tugas bagi tiap-tiap anggota tim. Pengaturan waktu menjadi penting, mengingat DSDM mensyaratkan tidak ada kompromi soal waktu dalam pengerjaan proyek. Kesepakatan soal waktu juga menjadi dasar dari kemampuan pengerjaan dari tim, sehingga fasilitas yang akan ditawarkan disesuaikan dengan waktu yang tersedia.

• Penentuan pembagian hasil untuk tiap-tiap anggota. Transparansi dalam pembagian hasil bertujuan memperjelas pengeluaran yang akan dikeluarkan, dilihat dari anggaran yang tersedia. Selain itu memperjelas lingkup tugas dan beban kerja masing-masing anggota tim.

• Membuat catatan resiko, yaitu kendala-kendala yang dapat terjadi, beserta cara-cara penanggulangannya.

Mengingat pentingnya hubungan antara pengembang dan pengguna, maka kejelasan personil dari kedua pihak sangat menentukan keberhasilan dari proyek. Pengerjaan pun dibagi menjadi 2 pihak dengan rincian :

• Tim pengembang, terdiri dari 5 orang, yaitu 1 analis sistem, 2 pembuat program, 1 pembuat desain web dan 1 pendukung. Penugasan dari tiap-tiap orang tidak bersifat kaku, dapat merangkap yang lain disesuaikan dengan kemampuan yang ada.

• Pengguna perwakilan, yaitu perwakilan dari perusahaan yang mempunyai akses menentukan dalam penerapan sistem dan memiliki pemahaman luas terhadap operasional sistem. Terdiri dari petugas Teknologi Informasi dari perusahaan dan pengguna setingkat redaktur kompartemen (dikenal juga sebagai redaktur pelaksana).

4.3.4 Studi Bisnis

Tahap ini terpusat pada membuat kesepakatan tentang apa yang ingin dibuat dari sistem, antara tim pengembang dan calon-calon pengguna. Teknik paling penting yang dilakukan adalah mengadakan lokakarya. Berikut teknik-teknik yang digunakan dalam tahap ini :

• Lokakarya atau rapat. Bertemunya tim pengembang dengan calon-calon pengguna. Mengingat sistem melibatkan banyak bagian, diambil perwakilan yang berkompeten dari masing-masing bagian. Pengguna yang memiliki kewenangan tinggi dan pengetahuan yang luas tentang aturan-aturan bisnis sangat dibutuhkan dalam rapat ini. Dari rapat ini akan diketahui kebutuhan ataupun keinginan pengguna dari sistem yang baru.

• Membicarakan sistem yang diusulkan. Usulan sistem terutama berasal dari sistem sejenis yang pernah dibuat sebelumnya. Mengingat telah berjalannya sistem editorial naskah beserta alur naskahnya, maka usulan sistem merupakan paduan dari sistem yang pernah dibuat dan sistem yang sedang berjalan. Dari sini akan didapat daftar keperluan yang akan dibangun di sistem yang baru.

• Membuat daftar prioritas kebutuhan yang akan dikerjakan, menggunakan teknik MoSCoW. Daftar ini yang kemudian berlaku sebagai rencana pengembangan sistem. Pembuatan sistem dilakukan secara bertahap, dengan bagian terpenting dikerjakan lebih dahulu.

• Memecah pengerjaan sistem ke dalam bagian-bagian pekerjaan, menggunakan teknik timeboxing. Tujuan utama agar sesuai dengan waktu dan anggaran yang tersedia.

• Menentukan dengan jelas batasan-batasan pengerjaan dari proyek, yang merupakan wilayah bisnis yang ingin dicakup oleh sistem. Pada SEMZ maka ini meliputi hal-hal yang berkaitan dengan alur naskah pada sisi editorial majalah. Batasan jelas ini perlu ditetapkan secara pasti dan mengikat agar pengerjaan proyek tidak melebar dan menghambat pekerjaan.

• Memperbarui catatan resiko sesuai hasil rapat.

Menurut prinsip dari DSDM yang berulang dan bertambah, suksesnya pembangunan sistem adalah keterlibatan dan dukungan pengguna atas sistem yang baru. Mengupayakan agar sistem yang baru hadir dan digunakan secepatnya merupakan cara jitu untuk membangkitkan gairah dari pengguna. Berdasarkan daftar prioritas dan keperluan, maka diusahakan secepatnya agar fungsionalitas sistem berjalan, yaitu menggantikan sistem lama dengan sharing folder dengan sistem baru, meliputi usulan naskah hingga terbit di majalah. Dengan fungsi inti sistem berjalan dan pengguna terbiasa menggunakan, diharapkan perubahan cara kerja dapat berjalan lancar.

Melihat hasil analisa masalah, maka ditentukan arsitektur sistem sebagai berikut :

• Sistem berbasis web, yang berjalan pada intranet kantor maupun diakses lewat Internet.

• Pembuatan program menggunakan bahasa scripting PHP. Direncanakan nantinya petugas TI dapat merawat dan mengembangkan sistem lebih lanjut.

• Menggunakan perangkat yang tersedia saat ini, dengan catatan server akan ditingkatkan kemampuannya bila sistem sudah berjalan penuh.

• Sistem dibuat secara terbuka dengan lisensi bebas. Seluruh komponen sistem menggunakan produk-produk dari open source, yaitu sistem operasi Linux (server dan client), server web dengan Apache dan server database menggunakan MySQL.

Pengerjaan sistem dilakukan menurut 3 prioritas sesuai teknik MoSCow seperti berikut :

1. Pengisian dan alur naskah. Mengingat fungsi pokok dari editorial adalah pengelolaan naskah maka didahulukan sistem fungsional untuk pengiriman naskah sesuai alur dan pengawasan jalannya naskah.

2. Pengisian penilaian untuk reporter dan fotografer. Walaupun fasilitas ini ikut tertanam dalam form-form isian naskah, tetapi mengingat kerumitan dan kebutuhan laporan akan cukup tinggi serta sifatnya tidak mendesak maka hal ini akan dikerjakan belakangan.

3. Arsip dan fasilitas-fasilitas pendukung, seperti pesan, forum, dll. Fasilitas ini akan dibuat bila secara fungsional alur naskah dan penilaian telah berjalan baik.

Alur naskah menurut skema yang diberikan (dari perusahaan), dan secara teoritis sudah berjalan, adalah rumit dan panjang. Setelah melalui serangkaian diskusi dengan pihak-pihak terkait maka skema tersebut dapat disederhanakan tanpa mengubah struktur maupun kewenangan dari tiap-tiap bagian. Penyederhanaan ini penting agar mudah diwujudkan dalam bentuk program. Komitmen dari pihak-pihak terkait juga diperlukan agar alur naskah dalam bentuk tersistem tidak bisa dikompromikan atau dilewati. Namun pada situasi tertentu, petugas TI atau yang ditunjuk tetap dapat melakukan tindakan-tindakan yang perlu untuk mengatasi kemacetan aliran naskah. Bentuk penyerhanaan ini seperti alur naskah dan folder pada gambar 4.4.

Melihat pola kerja dan alur naskah dari redaksional majalah, diputuskan bahwa sistem menggunakan konsep ‘ban berjalan’ dalam menyampaikan naskah dari awal hingga akhir. Makna ‘ban berjalan’ adalah proses diawali dengan data-data awal (dalam hal ini naskah) yang kemudian bergerak sesuai alur sistem yang menyebabkan data-data tersebut semakin lengkap dan matang. Dalam hal ini terdapat 3 jenis kondisi :

• Data tersedia untuk diolah, bisa berasal dari proses sebelumnya maupun sumber-sumber luar (misalnya laporan, foto, hasil riset).

• Data selesai diolah dan bergerak maju.

• Data ditolak dan bergerak mundur, yang mencerminkan perlu perbaikan dari data

4.3.5 Perulangan Model Fungsional

Pada tahap ini dipusatkan pada pembentukan model dari sistem. Teknik utama yang digunakan adalah pembuatan prototip. Mengingat sistem adalah berbasis web, maka pembuat desain web terlebih dahulu membuat bentuk dan model dari prototip sistem, berupa dokumen-dokumen statis berformat HTML. Dokumen statis ini dibuat secara lengkap, memperlihatkan seluruh kemungkinan dari tampilan sistem. Hal yang menjadi perhatian dari desain web adalah tampilan yang menarik dan komunikatif, mencakup informasi yang lengkap dengan struktur mudah dipahami.

Hasil tampilan sistem selanjutnya ditinjau oleh calon pengguna sistem. Diadakan rapat khusus yang memperkenalkan contoh sistem dengan tujuan mendapatkan masukan-masukan dari mereka. Tinjauan meliputi banyak hal, seperti bentuk menu, susunan item, jenis huruf, tampilan gambar, alur dokumen, susunan form, dst. Mengingat calon pengguna terdiri dari banyak bagian, maka perwakilan tiap bagian ataupun yang berkompeten turut serta memberikan penilaian.

Salah satu masalah yang mengemuka pada tahap ini adalah terjadi ketidakjelasan pembagian wewenang atas penggunaan sistem. Dengan kata lain menentukan siapa berhak mengakses apa. Mengingat teknik pembagian menurut folder adalah sederhana, mencoba membuat rumusan baku dari semua kewenangan ke dalam sistem menciptakan sistem yang rumit dan kaku, apalagi bila tertanam di program (hardcoding). Sebagai jalan tengah, dibuat sebuah tabel matriks kewenangan yang berlaku menyeluruh dalam program. Tabel ini dapat diubah oleh administrator sistem, sesuai perkembangan sistem.



Gambar 4.5 Tampilan isian menu untuk mengatur kewenangan hak akses sistem.

Pada form isian menu di atas, terdapat pembagian kewenangan sebagai berikut :

• Pengaturan hak akses per halaman atau form. Seperti gambar di atas adalah menentukan hak akses untuk form Penulis.

• Terdapat 3 jenis mode akses, yaitu tulis (insert), ubah (update) dan hapus (delete).

• Terdapat 8 jenis pembagian kerja, sesuai bagian-bagian yang ada di alur naskah.

• Terdapat 3 tingkat kewenangan per bagian, yaitu level 1 (tingkat user), level 2 (tingkat koordinator), dan level 3 (tingkat administrator).

Sesuai hasil studi bisnis di mana terdapat 3 kondisi dari naskah, maka pada setiap form terdapat input standar yang merupakan mekanisme dari pergerakan naskah :

• Simpan, isi form disimpan tetapi belum diteruskan ke proses berikutnya. Naskah untuk selanjutnya hanya dapat dibaca/tulis oleh pengguna tersebut atau tingkat lebih tinggi.

• Lanjut, isi form disimpan dan diteruskan ke proses selanjutnya. Naskah tidak lagi dapat dibaca atau tulis oleh pengguna yang bersangkutan.

• Revisi, isi form dikembalikan ke proses sebelumnya untuk perbaikan. Naskah tidak lagi dapat dibaca atau tulis oleh pengguna.

• Drop, isi form dibatalkan untuk kemudian disimpan sebagai arsip. Naskah tidak dapat dibaca atau tulis oleh siapapun, kecuali dalam pencarian arsip.

Sesuai teknik kunci dari DSDM, pengujian dilakukan secara menyeluruh terhadap sistem. Sehingga baik tampilan maupun aturan bisnis senantiasa diselaraskan sesuai kebutuhan dan persyaratan. Daftar persyaratan dan catatan resiko juga diperbaharui sesuai perkembangan yang ada.

4.3.6 Rekayasa Pemakaian Ulang

Pada tahap ini berusaha mewujudkan hal-hal yang telah berbentuk model-model fungsional. Diawali dengan mengenali ketersediaan sumber daya yang ada, yang berasal dari proyek terdahulu maupun pencarian di Internet. Pencarian bisa melalui mesin pencari seperti Google, ataupun situs penyimpan open source, seperti sf.net, freshmeat.net atau hotscripts.net. Setiap aplikasi yang didapat dinilai apakah layak untuk digunakan, disesuaikan dan dikembangkan lebih lanjut, atau dibuat lagi dari awal. Bila diputuskan untuk dibuat baru, maka proses pada tahap ini dihentikan, untuk dilanjutkan ke tahap Perancangan dan Pembuatan.

Setelah didapat sumber daya yang bisa dimanfaatkan ulang, selanjutnya dilakukan proses rekayasa terbalik yang menghasilkan komponen-komponen fungsional secara terpisah. Pemecahan aplikasi dapat mencakup seluruh fungsionalitas yang ada, baik itu fungsi-fungsi, tampilan, gambar, script, struktur database, maupun alur sistem. Pemilahan dan pemilihan komponen-komponen siap pakai juga menghindari aplikasi yang bengkak oleh hal-hal yang tidak perlu (bloated) yang bisa mempengaruhi keandalan sistem.



Gambar 4.6 Pemilahan dan pemilihan komponen yang siap pakai.

Sebagai contoh dari proses rekayasa terbalik adalah mengurai suatu Content Management System (CMS) hingga didapat komponen-komponen siap pakai, seperti modul otorisasi dan editor teks berformat Rich Text Format (RTF). Teks dengan format RTF memungkinkan bentuk huruf bermacam-macam, seperti miring (italic), tebal (bold), dan garis bawah (underline). Diperoleh pula fungsi-fungsi Asynchronous Java Script Access (AJAX), yang melakukan akses tak serempak ke server web, sehingga pengisian input dari form berjalan lebih interaktif. Bila tahap rekayasa dianggap gagal, kebutuhan yang ada akan dibuat baru dan dilanjutkan ke tahap berikutnya.



Gambar 4.7 Tampilan form isian usulan 1 dengan editor Rich Text Format.

Setelah komponen-komponen siap pakai didapat, perlu dilakukan penyusunan ulang. Penyusunan mencakup pembenahan program, script, dan pengubahan struktur database. Proses ini juga dimanfaatkan untuk memoles dan memperbaiki komponen dari kesalahan, termasuk membuatnya bekerja lebih efisien. Mengingat pengembangan bermetode open source dikerjakan oleh banyak pihak, kualitas dari perangkat lunak yang dihasilkan bisa sangat beragam. Dengan penyusunan ulang diharapkan memperbaiki unjuk kerja komponen tersebut.

Proses akhir pada tahap ini adalah melakukan rekayasa maju, yaitu mempersiapkan komponen agar dapat diintegrasikan secara mulus ke dalam sistem. Beberapa langkah agar penggabungan berjalan mulus yaitu menentukan definisi yang konsisten dari tiap-tiap fungsi dan antarmuka komponen. Pengembangan sistem dengan pemakaian ulang mensyaratkan rancangan yang baik dari aplikasi dan komponen, dengan demikian rekayasa maju juga berfungsi mempersiapkan komponen untuk penggunaan dalam jangka panjang.

4.3.7 Perancangan dan Pembangunan

Tahap ini merupakan inti dari pengembangan sistem sesungguhnya. Di sini segala persyaratan yang dibutuhkan sudah tersedia, yaitu model-model fungsional, komponen-komponen siap pakai, dan aturan bisnis. Diawali dengan mengenali prototip rancangan, baik secara fungsional maupun non fungsional. Bila tahap rekayasa pemakaian ulang telah menghasilkan komponen siap pakai, proses ini memastikan prototip yang dihasilkan telah sesuai kebutuhan. Bila diputuskan dibuat baru, rancangan diterjemahkan dalam bentuk struktur tampilan dan kode-kode program.

Penting untuk disepakati mengenai jadwal pengerjaan pada proses pembangunan. Setiap pihak, baik pengembang maupun calon pengguna, harus berkomitmen pada bagaimana dan kapan untuk mengerjakan persyaratan yang ingin dipenuhi. Proses ini dapat dilewati bila telah tersedia komponen siap pakai hasil dari tahap rekayasa pemakaian ulang.

Selanjutnya proses pembangunan dilakukan. Proses ini menyatukan berbagai subsistem yang telah tersedia, termasuk membangun subsistem baru sesuai kebutuhan. Mengingat tim pengembang bersifat ad-hoc di luar perusahaan, pengerjaan dilakukan di tempat pembuat program. Komunikasi dan koordinasi antar anggota tim dilakukan menggunakan media Internet. Dalam hal berhubungan dengan calon pengguna, tenaga analis dan pendukung secara bergantian atau bersama-sama mengadakan rapat di kantor Z. Pertemuan diadakan sedikitnya sekali dalam seminggu. Sasaran dari proses ini adalah sistem yang sudah teruji.



Gambar 4.8 Tampilan Sistem Editorial Majalah Z.

Pada tahap pembangunan, sesuai teknik kunci DSDM, pengujian dan peninjauan dilakukan sepanjang pengerjaan program. Bila dirasa rancangan sistem dirasa matang, calon pengguna dipersilakan untuk mencoba dan memberikan masukan. Proses ini menandai pula proses terakhir dari tahap ini, yaitu tinjauan dari prototip rancangan. Kebenaran dari hasil rancangan sistem ditentukan di sini. Dibuat pula dokumentasi maupun catatan hasil pengujian.

Bila pengembang dan pengguna telah sepakat sistem berjalan baik, dapat dilanjutkan ke tahap berikutnya. Tidak tertutup sistem yang dihasilkan tidak memenuhi persyaratan awal, sehingga perlu kembali ke tahap sebelumnya, yaitu pembuatan model fungsional atau rekayasa pemakaian ulang. Keseluruhan tahap ini membutuhkan dukungan penuh dari Senior Management dalam melibatkan dan memastikan komitmen pengguna akhir terhadap sistem terus berlanjut.

4.3.8 Penerapan

Pada akhir dari siklus hidup DSDM, sistem yang sudah teruji siap untuk digunakan di lapangan. Sebelumnya petugas TI telah melakukan tinjauan akhir dan sepenuhnya menguasai pengoperasian sistem. Penyaringan ketat dari petugas TI bersifat strategis, karena merekalah yang nantinya terjun langsung dalam pengawasan pelaksanaan sistem. Selanjutnya perwakilan dari calon pengguna melakukan penilaian akhir. Hasil dari penilaian ini adalah persetujuan dari pengguna akhir bahwa sistem sudah memenuhi kriteria yang disepakati di awal proyek, menetapkan pedoman pengoperasian, dan mematuhi ketentuan sistem yang telah dibuat. Dibuat pula dokumentasi lengkap baik sisi teknis maupun pengoperasian.

Setelah persetujuan didapat, dilakukan pelatihan terhadap keseluruhan calon pengguna. Pelatihan ini dilakukan secara bertahap, melihat kemampuan pelatih maupun yang dilatih. Pembagian tahapan pelatihan dibagi per kompartemen, yang mewakili pengelompokan bidang kerja menurut rubrikasi majalah. Saat pelatihan ini tim pengembang diwakili oleh petugas pendukung, sedangkan pihak perusahaan oleh petugas TI. Hasil akhir dari proses ini adalah sekelompok pengguna yang terlatih.

Setelah sistem, sarana pendukung dan pengguna telah siap, sistem yang baru dilakukan sepenuhnya dijalankan. Seluruh penggunaan sistem yang lama dihentikan untuk mencegah kerja ganda dan kesimpangsiuran pelaksanaan. Pada proses ini baik tim pengembang dan petugas TI secara ketat mengawasi jalannya sistem dan siap terjun langsung ke lapangan. Hingga waktu yang dirasa cukup, yaitu hingga minimal 3x penerbitan majalah, maka sistem dianggap berjalan baik dan sepenuhnya di bawah kendali petugas TI perusahaan.

Proses akhir dari tahap ini adalah tinjauan bisnis, dengan isu pokok adalah penilaian apakah sistem secara keseluruhan memenuhi tujuan yang ditentukan di awal proyek. Berdasarkan penilaian ini ditentukan apakah proyek berlanjut ke tahap berikutnya, atau kembali ke tahap-tahap sebelumnya untuk diperbaiki lebih lanjut. Pada pengerjaan menurut prioritas pengerjaan, selesainya suatu bagian berarti berputar lagi ke awal siklus untuk meneruskan prioritas pekerjaan yang lain.

4.3.9 Setelah Proyek

Setelah siklus hidup DSDM dilakukan berulang-ulang hingga keseluruhan sistem terbangun lengkap, tahap akhir yang perlu dilakukan adalah memastikan sistem berjalan secara efektif dan efisien. Perawatan, peningkatan dan perbaikan di sisi aplikasi maupun infrastruktur pendukung dilakukan. Hal yang perlu ditinjau secara periodik adalah operasional database. Seiring berjalannya waktu data yang tersimpan di database akan semakin membesar. Struktur data yang tidak efisien maupun indeks yang keliru menjadi bom waktu yang berakibat kegagalan sistem di masa depan. Tujuan yang ingin dicapai pada tahap ini adalah jaminan bahwa sistem berjalan dengan baik.

Melalui perawatan sistem yang teratur dan berkesinambungan, setelah sistem sekian lama berjalan dapat dilakukan penijauan kembali, sebagai upaya melakukan pembangunan yang berkelanjutan. Bila dirasa ada hal-hal baru yang belum tercakup dari sistem yang telah dibuat, dapat dilakukan pertimbangan untuk pengajuan pengembangan sistem lebih lanjut. Hal ini berdasarkan sifat alami DSDM, yaitu perulangan dan pertambahan.

BAB 5

PENUTUP

5.1 Kesimpulan

Pembuatan sistem informasi yang lengkap secara keseluruhan memakan waktu lama dengan tingkat resiko kegagalan yang tinggi. Salah satu metodologi dalam pembuatan sistem informasi adalah Dynamic Systems Development Method (DSDM), dengan konsep dasar pengembangan secara berulang dan bertambah. Berkembang pula metode pengembangan sistem berbasis open source, yaitu di mana pengembang dan pengguna saling bekerja sama secara longgar menggunakan media Internet. Modifikasi dari DSDM diperlukan sedemikian rupa sehingga model pengembangan open source dapat dimanfaatkan secara optimal.

Modifikasi DSDM dengan menambahkan tahap Rekayasa Pemakaian Ulang dapat menjembatani antara tahap Perulangan Model Fungsional dan tahap Perulangan Perancangan dan Pembuatan. Melalui teknik pemakaian ulang maka sumber daya dari proyek-proyek terdahulu maupun open source dapat digunakan secara optimal, sehingga mengurangi waktu pengerjaan dan meningkatkan keandalan dari sistem. Dengan semakin tepat waktu maupun tepat anggaran maka tingkat keberhasilan dalam pengembangan sistem informasi akan semakin tinggi dan mendapat kepercayaan lebih baik dari penggunanya.

5.2 Information System Development Methodology (ISDM)

Menurut Buckingham et al. (1987), sistem informasi adalah suatu sistem yang merakit, menyimpan, memproses, dan menghasilkan informasi yang relevan untuk suatu organisasi (atau komunitas), sedemikian rupa sehingga informasi dapat dijangkau dan bermanfaat bagi mereka yang menggunakan, termasuk manager, staf, klien dan masyarakat. Sebuah sistem informasi adalah sistem aktivitas manusia (sosial) yang mungkin atau tidak melibatkan penggunaan dari sistem komputer.

Beberapa bagian dari sistem informasi, merupakan suatu cara dari melihat komponen-komponen yang saling berinteraksi, yaitu :

• Orang, misalnya analis sistem, pemakai, dan pengurus.

• Obyek, misalnya perangkat komputer, antarmuka pemakai, jaringan telekomunikasi, Internet atau situs web.

• Prosedur, misalnya proses bisnis, ISDM, dan aturan bisnis.

• Organisasi, misal: perusahaan, satuan kerja atau komunitas.

Menurut Avison dan Fitzgerald, ISDM adalah: “Suatu koleksi dari prosedur, teknik, perangkat, dan dokumentasi yang membantu pengembang sistem dalam usahanya untuk menerapkan sistem informasi yang baru. Sebuah metodologi terdiri dari tahap-tahap, berikut pula sub tahap, yang memandu para pengembang sistem pada teknik yang dipilih yang mungkin sesuai pada tiap tahapan proyek, juga membantu mereka dalam merencanakan, mengelola, mengatur dan mengevaluasi proyek-proyek dalam sistem informasi.”

Metodologi tidak hanya koleksi dari yang disebutkan, tetapi merupakan pandangan filosofikal, dengan kata lain merupakan sebuah metode atau resep. Teknik dan alata bantu atau perangkat kerja berperan dalam setiap metodologi. Teknik adalah cara dalam melakukan suatu kegiatan dalam proses pengembangan sistem informasi. Suatu metodologi mungkin menyarankan suatu teknik tertentu. Setiap teknik dapat melibatkan penggunaan satu atau lebih perangkat yang merupakan artefak dalam pengembangan sistem informasi. Suatu metodologi juga bisa menyarankan suatu alat dalam melakukan prosesnya.

Beberapa tujuan dari metodologi sebagai berikut :

• Mencatat secara akurat kebutuhan untuk sebuah sistem informasi.

• Menyediakan metode pengembangan secara sistematis sehingga perkembangan yang terjadi dapat diawasi secara efektif.

• Menyediakan sebuah sistem informasi dalam waktu yang memadai dan biaya yang dapat diterima atau disetujui.

• Menghasilkan sebuah sistem yang terdokumentasi dengan baik dan mudah untuk dipelihara.

• Menyediakan sebuah petunjuk perubahan yang dibutuhkan secepatnya dalam proses pengembangan.

• Menyediakan sebuah sistem yang disukai dari pihak yang terlibat dalam sistem tersebut.

ISDM, dalam usaha untuk membuat efektif penggunaan teknologi informasi, juga berusaha membuat efektif teknik dan perangkat yang tersedia. Bisa dikatakan ISDM juga tentang bagaimana menyeimbangkan aspek teknis dan aspek tingkah laku (dengan orientasi pada orang). Keseimbangan antara dua aspek tersebut adalah salah satu tema berkelanjutan dalam pengembangan sistem informasi.

DAFTAR PUSTAKA

1. http://en.wikipedia.org/Dynamic_System_Development_Method

2. http://id.wikipedia.org/wiki/Sumber_terbuka

3. http://id.wikipedia.org/wiki/Perangkat_lunak_bebas

4. http://id.wikipedia.org/wiki/Perangkat_lunak_sumber_terbuka

5. http://oguds.wordpress.com

6. yunuskom.blogspot.com

7. http://maslanpaloh.blogspot.com

8. http://dwijaantara.wordpress.com/

9. http://alfiyah-faith.blogspot.com/

10. http://dsdmofagilemethodology.wikidot.com

11. http://www.dsdm.org/content/history-dsdm

12. http://www.dsdm.org/content/what-dsdm

13. http://www.codeproject.com/Articles/5097/What-Is-DSDM

14. http://books.google.com