Saturday 9 November 2013

Refleksi RPL


            Nah, pada pembahasan kali ini, saya akan menceritakan pengalaman pembelajaran saya sepanjang saya belajar RPL.

            Tidak terasa, sudah 6 kali pertemuan saya masuk ke kelas RPL. Pada pertemuan pertama, kelas besar digabung dengan kelas senior, sehingga membuat saya yang baru semester 3 ini merasa cukup kaget dan ragu-ragu untuk mengambil mata kuliah ini karena banyak senior lain yang mengatakan bahwa mereka baru saja mengambil mata kuliah RPL karena sangat sulit dipelajari.

            Pada pertemuan selanjutnya, kita sekelas pun juga di tantang untuk yakin mengambil mata kuliah ini atau membatalkannya. Akhirnya, saya pun tetap pada keputusan pertama saya untuk tetap mengambil mata kuliah RPL sebagai mata kuliah saya di semester 3 ini, karena saya pikir cepat atau lambat saya pasti akan menempuh mata kuliah ini. Seberapa susahnya juga pasti akan saya jalani, jadi lebih baik bersusah payah dahulu, bersenang-senang kemudian :p

            Yang saya rasakan selama menempuh proses belajar di kelas RPL adalah selalu saja ada metode pembelajaran yang berbeda-beda yang diberikan, sehingga saya di dalam kelas tidak merasa bosan. Terkadang tiba-tiba bank pendapat, pembagian kelompok dan persentase kelompok.

            Semua yang saya alami dan pelajari itu karena dibarengi dengan metode yang berbeda membuat pelajaran tersebut otomatis masuk dalam pikiran saya. Bahkan tanpa melihat buku saya bisa menjelaskan mengenai RAD secara mendadak (Presentase Karya RAD).

            Materi yang sudah saya mengerti cukup banyak, mulai dari proses software itu terbagi menjadi 5 macam , dimulai dari waterfall model. Model ini pada dasarnya sudah efisien, tetapi biaya (Iteration Cost) yang dikeluarkan jika terjadi kesalahan cukup besar. Selain itu, jika misalnya software analyst kesulitan dalam mengetahui criteria atau kebutuhan software, maka kemudian ada Prototype Model, dimana model ini memberi contoh kepada pelanggan seputar kebutuhan program yang diinginkan pelanggan. Selain itu, waterfall model ini membutuhkan waktu cukup lama, sehingga jika software analyst membutuhkan waktu yang singkat dalam menyelesaikan pengembangan system yang berskala kecil, maka ia membutuhkan RAD (Rapid Application Development), sebab dalam RAD itu terbagi ke dalam tim-tim yang mengerjakan modul-modul bersamaan kemudian diserahkan kepada software analyst, sehingga waktu pengembangan system menjadi lebih cepat. Nah, ketika software analyst mendapat proyek yang berskala besar, maka ia membutuhkan Incremental Model, dimana model ini memang dirancang untuk pengembangan system berskala besar yang dikerjakan secara bertahap. Dalam Incremental Model, kebutuhan yang dikerjakan memang untuk skala besar, tetapi belum dibutuhkan semuanya. Selanjutnya, jika software analyst ingin mengerjakan suatu proyek yang berskala besar secara berulang-ulang dengan memberi contoh terlebih dahulu, maka software analyst tersebut membutuhkan Iterative-Incremental Model, yang merupakan gabungan antara prototyping dan incremental model, sehingga model tersebut membuat contoh kebutuhan konsumen terlebih dahulu, kemudian mengerjakannya secara bertahap dan berulang-ulang.

            Materi yang masih saya kurang pahami adalah tentang iterative-incremental model, karena menurut saya sampai kapan pengerjaan software analyst akan terus berulang-ulang namun tetap dikerjakan secara bertahap.

            Secara garis besar, penjelasan tentang RPL sudah sangat saya pahami dan saya sudah bisa membedakan beraneka macam model yang dalam software process.

Perbandingan RAD dan Incremental Model



Selanjutnya, perbandingan model RAD (Rapid Application Development) dan Incremental Model akan di bahas di bawah ini.

RAD (Rapid Application Development) adalah suatu model yang digunakan oleh software analyst untuk mengembangkan suatu system proyek yang memiliki sedikit waktu, dimana pada model pengembangan ini, software analyst membagi anggota ke dalam beberapa tim, dimana setiap tim menyelesaikan modul-modul yang telah di bagi sebelumnya ; sedangkan Incremental Model adalah suatu model yang digunakan oleh software analyst untuk mengembangkan suatu proyek berskala besar yang terbagi ke dalam bagian-bagian yang belum dibutuhkan semuanya, karena pengerjaan suatu system dilakukan secara bertahap.

Berikut adalah gambar perbandingan RAD dan Incremental Model :


Gambar 1. RAD (Rapid Application Development)
Inti dari proses RAD adalah menyelesaikan suatu pengembangan system yang cepat karena software analyst melakukan pembagian tim dimana masing-masing tim mengerjakan tugas yang berbeda, sehingga pengembangan suatu system dapat selesai dalam waktu yang bersamaan.



Gambar 2. Incremental Model
Inti dari Incremental Model adalah pengembangan suatu proyek berskala besar yang terbagi ke dalam tim juga, tetapi masing-masing tim belum tentu mengerjakan suatu modul secara bersamaan, karena bisa saja ketika suatu tim sudah selesai mengerjakan suatu modul, maka tim tersebut dapat melanjutkan ke modul selanjutnya yang belum dikerjakan oleh tim lain.

            Contoh dari RAD adalah sebagai berikut : misalnya seorang software analyst menerima suatu proyek dari konsumen berupa proyek pengembangan system kalkulator. Dalam hal ini,  software analyst akan membagi anggotanya menjadi beberapa tim sehingga pengerjaan suatu program lebih cepat dan efisien, dimana masing-masing tim akan mengerjakan modul-modul tertentu, misalnya ada tim yang mengerjakan program tambah, ada tim yang mengerjakan program kurang, ada tim yang mengerjakan program kali, dan ada tim yang mengerjakan program bagi. Ketika tim sudah selesai membuat program tersebut, maka program tersebut secara bersamaan akan diserahkan kepada software analyst untuk dikembangkan untuk menjadi sebuah system kalkulator.

            Contoh dari Incremental Model adalah sebagai berikut : misalnya seorang software analyst menerima sebuah proyek besar berupa laporan penjualan suatu perusahaan raksasa terkemuka. Dalam hal ini, software analyst akan membagi anggotanya menjadi beberapa tim, tetapi belum tentu mengerjakan suatu modul secara bersamaan, karena pengerjaan dalam system ini dilakukan secara bertahap. Misalnya tim 1 akan mengerjakan program harga barang di perusahaan raksasa tersebut. Tim 2 mengerjakan program stok barang di perusahaan tersebut. Ketika misalnya tim 1 terlebih dahulu menyelesaikan programnya, maka tim 1 kemudian melanjutkan ke program penjualan produk yang di hasilkan oleh perusahaan raksasa ini. Ketika tim 2 sudah selesai dan tim 1 belum, maka tim 2 harus menunggu tim 1 selesai, barulah tim 2 dapat melanjutkan ke tahap terakhir, yaitu pembuatan program laporan penjualan di perusahaan rakasasa terkemuka tersebut.

            Inti perbedaan dari RAD (Rapid Application Development) dan Incremental Model sebenarnya terletak pada skala proyek dan pengerjaan tim. Metode RAD cocok untuk proyek yang berskala kecil karena dengan manajemen waktu dan biaya yang baik dapat betul-betul menghemat waktu dan uang. Sebenarnya, baik metode RAD dan Incremental sama-sama membagi anggota ke dalam tim, tetapi pada metode RAD, setiap tim mengerjakan modul bersama-sama dan dikumpulkan kepada software analyst dalam waktu yang bersamaan ; sedangkan pada metode Incremental, setiap tim mengerjakan modul yang berbeda bisa saja tidak bersamaan, tetapi menunggu tim tertentu selesai agar dapat melanjutkan ke tahap selanjutnya hingga akhirnya suatu program dapat diserahkan kepada software analyst untuk dikembangkan.

Thursday 7 November 2013

Mengenal RAD

            Sebelum kita mengenal RAD (Rapid Application Development), sebaiknya kita terlebih dahulu mengetahui apa itu software process. Software Process atau yang biasa disebut dengan proses perangkat lunak adalah suatu proses dalam pembuatan sebuah perangkat lunak, dimulai dari tahap pengomunikasian, perencanaan, persyaratan kebutuhan, pemodelan, pengonstruksian, pengujian program, pemasangan program, sampai pada tahap implementasi dan pengembangan kedepannya sebagai tanggungjawab software analyst.

            Ada beberapa macam software process, diantaranya : waterfall model, prototyping model, Rapid Application Development, Incremental Model, Iterative-Incremental Model. Nah, pada pembahasan kali ini akan membahas mengenai salah satu dariantara beberapa macam software process yang sudah disebutkan, yaitu Rapid Application Development (RAD).

            RAD (Rapid Application Development) adalah proses pengerjaan (pembangunan) perangkat lunak yang dikerjakan secara bertingkat yang hanya mempunyai waktu pengerjaan yang singkat, sehingga mengutamakan pada siklus pembangunan yang singkat dan cepat. Berarti dalam hal ini, metode RAD itu dikerjakan dalam beberapa tim kerjam sehingga dapat menjalankan proses ke dalam model waterfall , namun dalam bagian-bagian software yang terpisah.

            Maksud dari pengerjaan dalam tim adalah berarti pengerjaan model RAD ini dibagi ke dalam beberapa tim dimana masing-masing tim mengerjakan sebuah modul tertentu yang sudah ditentukan sebelumnya, sehingga waktu untuk menyelesaikan sebuah software menjadi lebih singkat. Contohnya : jika seorang software analyst ingin membuat program kalkulator sederhana, maka ia membentuk 4 tim, diantaranya ada tim yang mengerjakan program tambah, ada yang mengerjakan program kurang, ada yang mengerjakan program kali dan ada yang mengerjakan program bagi.



Gambar Pengerjaan RAD
Pengerjaan RAD terbagi dalam tim yang mengerjakan pekerjaan yang setingkat tetapi berbeda sesuai dengan pembagian modul system yang sudah ditentukan sebelumnya

           
Ada beberapa alasan kebanyakan software analyst memilih metode RAD, yaitu jika software analyst ingin mendapatkan desain system untuk diserahkan kepada konsumen dengan batasan system yang jelas sehingga tidak mengalami perubahan dan system tersebut dapat dikembangkan dengan mudah, serta sekaligus dapat menghemat waktu dan mengoptimalkan kualitas system yang dihasilkan.

Ada juga beberapa alasan negative yang patut dipertimbangkan oleh software analyst jika ingin memilih metode RAD, yaitu jika software analyst hanya ingin menggunakan metode RAD untuk menghemat biaya dan waktu pengembangan system karena sulit menemukan tim yang sungguh-sungguh mampu memanajemen biaya dan waktu sehingga biaya dan waktu yang dikeluarkan tidak menjadi lebih besar dari perkiraan(target).

Tujuan digunakannya metode RAD oleh software analyst adalah :
a.      Memperkecil kemungkinan terjadinya kesalahan karena system analyst tidak mempunyai hak untuk mengubah komponen system.
b.     Meningkatkan kepuasan konsumen karena jika dilakukan pengorbanan kebutuhan sekunder konsumen maka system dapat diselesaikan menurut jadwal.
c.      Biaya pengembangan system termurah karena dengan menggunakan komponen yang sudah ada dapat memperkecil biaya jika dibanding bila menggunakan komponen yang dikembangkan sendiri.

Kelebihan metode RAD adalah selain pengerjaan system lebih cepat, system analyst juga dapat menggunakan kembali komponen yang sudah ada sehingga system analyst tidak perlu mengembangkan komponen dari awal lagi. Selain itu, proses pengiriman system menjadi lebih mudah karena system dibuat modul per modul berupa potongan script program, sehingga membutuhkan waktu pengerjaan yang singkat. Metode RAD ini dapat dikatakan lebih efektif jika dibandingkan dengan metode waterfall, sebab metode RAD ini menghasilkan system yang langsung memenuhi kebutuhan pelanggan.

Kekurangan metode RAD adalah metode ini tidak tepat jika digunakan untuk membuat system yang memiliki ukuran besar dan mempunyai resiko tekhnik yang tinggi, sebab pembuatan system bisa mencapai kegagalan jika waktu kesepakatan tidak terpenuhi sesuai permintaan konsumen. Selain itu, metode RAD ini membutuhkan banyak orang yang akan dibagi ke dalam tim untuk menyelesaikan sebuah proyek, dimana antara software analyst, tim yang terbentuk dan konsumen harus memiliki komitmen yang kuat dalam menyelesaikan sebuah system, dan jika system tersebut tidak dibangun dengan benar, maka metode ini akan menjadi bermasalah. Metode RAD ini cukup merepotkan bagi software analyst dan konsumen, sebab jika terjadi perubahan komitmen ditengah pengembangan program, maka perlu dibuat kontrak baru diantara mereka. Selain itu, metode RAD ini juga memiliki resiko kerja yang cukup tinggi karena dikerjakan dalam modul yang berbeda dalam waktu yang bersamaan namun di tempat yang belum tentu sama, sehingga kurangnya komunikasi antara anggota tim bisa menjadi salah satu pemicu lamban dan gagalnya system yang dikembangkan dengan metode RAD.