when a SIMPLE PATH becomes an IMPORTANT ONE...
Yv's Territory: Rekayasa Perangkat Lunak
Showing posts with label Rekayasa Perangkat Lunak. Show all posts
Showing posts with label Rekayasa Perangkat Lunak. Show all posts

Wednesday, January 30, 2013

Refleksi Akhir RPL ....

Huaaah, finally, akhirnya minggu-minggu final telah berakhir, dan di sini lah saya sedang menulis post terakhir saya untuk semester ini. *hiks*
Flashback kembali ke mata kuliah RPL, sejujurnya mata kuliah ini juga memberi manfaat yang besar untuk saya. Seperti yang sudah saya katakan sebelumnya pada refleksi ASI, metode pembelajaran yang diberikan oleh dosen ini adalah metode yang bagus menurut saya, berhubung mata kuliah ASI dan RPL diajar oleh dosen yang sama, maka tentu saja kurang lebih "taste" nya akan samaa :p, terkecuali bahan pembelajaran nya, yang 'sebenarnya' secara keseluruhan, kedua mata kuliah ini mirip, tapi tetap ada saja bahan mata kuliah yang khusus adanya di RPL saja.
Saya terkenang dengan hari-hari terakhir perkuliahan RPL, yang merupakan hari tambahan di mana kami hampir seharian bersama dosen tercinta, Pak Sofyan XD.
Banyak kenangan manis dan pahit yang kami lalui bersama dengan beliau, dan tentu saja manfaat dari pertemuan kami di perkuliahan ini sangat besar (seperti yang sudah saya katakan sebelumnya).
Materi terakhir RPL, mengenai arsitektur sistem dan interface. Awalnya, kedua hal ini kurang saya mengerti, tetapi setelah seharian bersama beliau, *cring*, saya sungguh mendapat pencerahan.
Saya masih mendoakan hal yang sama dengan refleksi ASI saya, bahwa moga-moga kami dapat bertemu kembali di lain kesempatan dengan beliau.

Saya tidak akan berpanjang-panjang lagi untuk menuliskan refleksi akhir ini, karena hasil tulisan saya ini tidak akan jauh berbeda(terkecuali beberapa bahan pembelajaran) dengan refleksi yang sebelumnya hehehe

Thanks for read ♥


♥ ♥miss.yv

Sunday, November 25, 2012

SimSE

Hi there ♥
Pada postingan kali ini saya akan 'curhat' mengenai game simulator yang sempat mewarnai hari-hari saya dengannya XP.
Saya memilih untuk menjelaskan lebih detail mengenai Prototyping SimSE ini, karena bagi saya ini cukup menarik.
Awal saya memainkan game ini, saya mencoba step-step sesuai metode SDLC, saya requirement dll terlebih dahulu, lalu siapkan prototypenya, lalu nantinya akan saya delivery ke customer, tapi meskipun sudah 100 percentage selesainya, skornya tidak demikian, malahan berbanding terbalik.
Saya pun mencoba strategi baru, yaitu dengan develop prototypenya dulu, setelah terlebih dahulu meeting dengan customernya, dan ternyata strategi ini cukup bagus, skor saya naik dari yang sebelumnya.
Hanya saja, dalam metode ini ,saya harus memilih bahasa prototype dan bahasa implementasi nya, saya mencoba sembarang saja memilihnya, dan saya memilih Visual dan Visual. Alhasil, erornya 23 tanpa bisa diperbaiki, dan skor saya stuck di 79.
Kebetulan, pertemuan berikutnya, dosen saya membahas tentang bahasa pemrograman yang disarankan untuk digunakan dalam pembuatan prototype adalah dengan menggunakan bahasa visual, maka ketika pulang, saya mencoba lagi strategi baru dengan menetapkan Visual sebagai prototyping language ,dan Java sebagai implementation nya.
Saya juga sempat menetapkan C++ sebagai bahasa implementasinya, tapi hal itu malah membuat pembuatan program saya semakin lama, yang ujung-ujung nya malah kehabisan waktu, maka saya pun tetap menggunakan pasangan VB - Java.
Setelah itu , saya sempat masih bingung, karena kalau saya harus menunggu sampai evaluated prototype dan prototype yang kita kembangkan mencapai 100 -100 , waktu tidak cukup. Setelah berpikir beberapa lama, saya pun mencoba untuk membuat batasan ,seberapa besar prototype itu ingin saya kembangkan, dan ternyata BINGO! ,saya berhasil mendapatkan nilai 98 dengan strategi-strategi yang ditemukan dari hasil coba sana sini. hahaha XD
Masih ingin mencoba lagi sampai mendapatkan 100 sih, cuma belum bisa juga.

That's all.
Thanks ♥


♥miss.yv

Sunday, November 11, 2012

Si Yang Lain Daripada Yang Lain ...

Hi readers ♥
Pada postingan kali ini, saya akan menjelaskan tentang suatu model dari software proses, yang pernah dosen saya katakan , sebagai model yang lain daripada yang lainm yaitu PROTOTYPING.
Setelah perkuliahan kali ini saya pun bisa mengerti tentang pengertian dari prototype itu sendiri, di mana prototype merupakan model yang mula-mula (model asli) yang menjadi contoh.
Model prototyping ini biasanya digunakan untuk customer yang mempunyai banyak keinginan, tapi sulit mendeskripsikan / menjelaskan secara detail dan terperinci akan kebutuhan dan keinginan nya. Dan juga model ini cocok bagi para developer yang kurang yakin akan kemampuan software yang dibuatnya dalam beradaptasi dengan lingkungan nya, berinteraksi dengan manusia nya,dll.
Untuk itu, maka dalam model prototyping ini, seorang developer harus membuat sebuah contoh program / prototype ,(sebaiknya dengan bahasa visual (lebih mudah)) untuk diperlihatkan kepada customer terlebih dahulu.
Dalam hal ini, prototype awal di sini berfungsi hanya untuk mendeskripsikan kebutuhan customer secara lebih jelas melalui evaluasi yang diterima developer dari customernya tersebut.
Prototype sejenis ini ,disebut juga throw-away prototyping.
Sedangkan untuk beberapa jenis prototype yang lain (yang sesuai dengan keinginan customer), akan dilanjutkan desain & pengembangan nya, dimodifikasi, dll. Disebut juga Evolutionary prototyping.
Metode prototyping ini biasanya lebih menghemat waktu dalam pengembangan nya, dan juga membuat customer ikut berperan aktif dalam pembuatan software yang diinginkan nya. 
Hanya saja, kadang-kadang customer tidak menyadari kalau prototype yang diperlihatkan kepadanya , bukan lah langsung hasil jadi dari program itu nantinya, melainkan masih akan dikembangkan lebih lanjut, maka dari itu developer harus tentu saja lebih sabar dalam menghadapi customer-customer sejenis ini XD
Kurang lebih itu lah yang saya pahami mengenai prototype.
Sekian.



♥ ♥ miss.yv

Thursday, October 25, 2012

SOFTWARE PROCESS

hi readers ♥
Dalam tulisan kali ini, saya akan membahas mengenai software process, seperti yang tertera di judul post ini.
Software Process itu kurang lebih nya adalah kegiatan-kegiatan yang berkaitan dengan bagaimana kita sebagai software developer mengkomunikasikan rancangan dan bagaimana user mengkomunikasikan keinginan nya.
Untuk itu, dalam software process terdapat berbagai macam bentuk / model, yaitu :

♣ Linear Sequential Model / Waterfall Model

Model ini seringkali disebut sebagai classic life cycle, yang sistematis, dan berurutan (sequential).
Model yang satu ini mengharuskan kita benar-benar menyelesaikan suatu tahapan baru melangkah ke tahapan selanjutnya. Seperti yang terlihat pada gambar, ada tahapan-tahapan : Requirements (mengumpulkan, menganalisis, dan mendefinisikan kebutuhan user. Tahap ini harus dikerjakan secara lengkap sebelum maju ke tahap berikutnya),Design (mendesign software yang dapat dilakukan hanya setelah requirements nya lengkap), implementation and unit testing (diterjemahkan ke dalam bahasa pemrograman yang diinginkan, yang sudah ditentukan sebelumnya. Program yang dibangun langsung dapat diuji bagian-bagian nya), integration & system testing (penggabungan bagian-bagian program, yang langsung dites secara keseluruhan), dan maintenance (program dioperasikan di lingkungan nya, dan dilakukan pemeliharaan,seperti penyesuaian/adaptasi dengan situasi sebenarnya).
Karena itu, software developer harus benar-benar mengerti requirements (kebutuhan) user dengan baik, sehingga perubahan dapat ditekan sekecil mungkin.
Kelebihan dari model ini adalah ada penjadwalan / pengaturan yang dilakukan pada setiap tahap, sehingga mempermudah dalam pengontrolannya. Model ini juga cocok untuk sistem berskala besar. Sayangnya, selain dari sifatnya kaku (sulit menerima perubahan-perubahan), pembuatan software dengan model ini cenderung memakan waktu yang lama.


♣ Incremental Model










Pada model ini, software developer membagi proses dalam beberapa inkremen. Setiap inkremen nanti nya akan menyediakan sedikit dari fungsional sistem. 
Model ini tidak sekaku model sebelumnya(waterfall model), karena bisa saja, sebelum inkremen pertama benar-benar selesai, inkremen kedua telah boleh dijalankan, karena inkremen kedua merupakan lanjutan / pengembangan yang lebih dalam dari inkremen pertama.
Kelebihan dari model ini adalah user tidak harus menunggu sampai keseluruhan program / inkremen selesai baru bisa menggunakan programnya, karena ketika inkremen pertama telah selesai, user dapat mulai menggunakan nya. Jadi, dengan model ini, user dapat menggunakan program yang sedang dikembangkan, dan dapat pula memberikan informasi yang nanti nya dapat menjadi referensi untuk inkremen berikutnya.
Oleh karena itu, maka inkremen pertama pasti harus menjalani testing yang ketat, karena inkremen selanjutnya akan berhubungan dengan nya. Hanya saja, terkadang ada kesulitan dalam memberi gambaran tentang kebutuhan pelanggan pada inkremen dengan ukuran yang benar. (Mungkin saja pelanggan ingin lebih lengkap pada tahap inkremen awal, dst)

♣ Prototyping Model

Pembuatan software dengan model ini sangat melibatkan user / customer. Biasanya, developer akan membuat suatu prototype sederhana untuk diperlihatkan kepada customer / user untuk dievaluasi olehnya. Setelah menerima evaluasi dari customer, maka mulailah program tersebut terus dikembangkan sesuai keinginan dari user, sedangkan bila tidak sesuai dengan apa yang diinginkan oleh si user, maka developer harus mengulang prototype nya lagi. Model ini biasanya digunakan pada customer / user yang belum benar-benar mengerti tentang program seperti apa yang diinginkan nya. 
Kelebihan dari model ini, tentu saja bahwa user sangat berperan dalam pembuatan software nya, dan dapat mempersingkat waktu pengembangan softwarenya.
Sayangnya, developer biasanya tidak maksimal dalam implementasi nya, dan kalau waterfall model tadi mudah dalam dokumentasinya, maka model yang satu ini mengalami kesulitan dalam hal dokumentasi dikarenakan struktur / prototype program yang bisa saja terus mengalami perubahan.

♣ Rapid Application Development (RAD)

Model ini dapat dikatakan sebagai pengembangan lebih lanjut dari waterfall model dan incremental model. Karena, dalam model ini tahapan-tahapan yang dilakukan juga sama dengan waterfall hanya saja dibagi menjadi 3 tim, yang akan mengerjakan pekerjaan yang sama dengan deadline yang sama pula. Hal ini agak mirip dengan incremental model yang juga membagi pekerjaan nya, tetapi kalau incremental model maka pekerjaan yang dikerjekan dan deadline nya itu berbeda.
Tahapan-tahapan dalam model ini mulai dari business modelling(lebih kepada seperti apa jenis bisnis nya / jenis informasi bisnis yang akan diproses oleh sistem nantinya, dan hal-hal mendasar seputar itu), data modelling (bentuk data nya, objek nya, dll), process modelling (seperti apa proses nya), application generation (mirip dengan tahap design, tentang bagaimana model aplikasinya dalam bentuk program), dan testing/turnover (pengecekan kesalahan dalam sistem / program). Nantinya, ketiga tim ini akan menggabungkan hasil kerja nya dan membentuk suatu software secara utuh. 
Kelebihan dari sistem ini, tentu saja akan menghemat waktu bia sampai 60-90 hari dan cocok untuk sistem berskala besar, tapi seperti yang bisa kita bayangkan, model ini akan membutuhkan tenaga kerja yang cukup banyak.

♣ Spiral Model / Incremental Prototyping Model
Seperti yang terlihat pada gambar, tahapan pertama dalam model ini adalah CUSTOMER COMMUNICATION di mana user akan mengkomunikasikan keinginan nya untuk membuat program yang diinginkan nya kepada developer. 
Selanjutnya, PLANNING. User dan developer merencanakan bersama tentang software seperti apa yang sesuai dengan kebutuhan nya,waktu yang dibutuhkan dan informasi-informasi lainnya.
RISK ANALYSIS. Pada tahapan ini, developer akan menganalisis mengenai apa-apa saja yang dibutuhkan dalam sistem beserta resiko-resikonya.
ENGINEERING. Pembuatan contoh-contoh aplikasi ,misalnya prototype,
CONSTRUCTION AND RELEASE. Pembangunan/pembuatan program/sistem, menguji, memasang, dan memberikan help/buku panduan dalam penggunaan nya yang ditujukan untuk user.
CUSTOMER EVALUATION. Evaluasi dari customer mengenai program yang telah digunakan nya.

Kelebihan dari model ini, adalah :
Software dapat digunakan untuk waktu yang cukup lama, cocok pula untuk program berskala besar dan pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses.
Akan tetapi, ada kesulitan dalam meyakinkan pelanggan bahwa setiap evolusi ini bisa dikontrol dan cenderung butuh waktu yang lama.

Referensi : 


That's all.



♥ ♥ miss. yv


Sunday, October 14, 2012

R-E-A-D-I-N-G ...

hi guys ♥
Kali ini saya tidak akan menulis ulasan dari materi seperti sebelum-sebelumnya, tapi saya akan menulis tentang reading..
Sudah pasti kita telah mengetahui apa yang dimaksudkan dengan reading itu..


Reading(Inggris) - Membaca (Indonesia).

Banyak orang yang menyepelekan dan tidak suka dengan kegiatan membaca, padahal manfaat membaca sudah banyak diketahui sebenarnya.
Manfaat-manfaat tersebut di antara nya :
♦ Menambah pengetahuan dan wawasan kita tentang materi yang kita baca tersebut
♦ Membuat kemampuan berpikir kita semakin berkembang ,karena biasa diasah ketika membaca
♦ Dapat menjadi kegiatan pengisi waktu, menyelamatkan waktu kita dari kesia-siaan
♦ Makin banyak kosa kata yang dapat kita mengerti, karena pada saat membaca, otomatis ketika kita menemukan kata-kata sulit yang belum kita mengerti, kita akan mencari tahu mengenai nya (pengalaman pribadi XD)
♦ Orang yang suka membaca tidak akan menjadi bodoh, malahan sebaliknya
♦ Dapat menjadi bahan untuk berdiskusi dengan orang lain (dosen,teman,dsb).

Hal ini semakin saya sadari, sewaktu baru saja mengalami 'benturan' pada saat perkuliahan RPL :(
Kami sekelas lupa untuk membaca materi yang dosen kami minta untuk baca.
Akibatnya, kami sama sekali belum ada pengetahuan tentang materi yang akan dibawakan oleh dosen kami. 
Padahal, seandainya kami telah membaca materi tersebut terlebih dahulu (pengetahuan dasar), kami akan lebih mudah menjalani perkuliahan, dan tentu saja dapat tinggal bertanya hal-hal yang belum kami ketahui.
Maka dari itu, saya BERJANJI untuk rajin membaca, terutama membaca materi-materi perkuliahan sebelum perkuliahan itu sendiri. Karena saya sadar, membaca itu memberikan banyak manfaat dan tak memberi kerugian sama sekali. ☺

Friday, October 5, 2012

Bermain Sambil Belajar

Hi there ☺

Hari ini ,saya akan bercerita tentang pengalaman dalam perkuliahan Rekayasa Perangkat Lunak.
Ini berbeda dengan tulisan saya sebelumnya ,yang merupakan refleksi dari perkuliahan Analisis Sistem Informasi.
Pertemuan hari ini, merupakan pertemuan kedua kami untuk mata kuliah ini, yang berarti ini adalah pertemuan pertama di mana kami mulai belajar mengenai RPL (Rekayasa Perangkat Lunak) itu sendiri. (berhubung minggu lalu kami hanya perkenalan saja).
"Apa itu Software?", ujar dosen saya pada awal perkuliahan.
Jawaban yang pertama kali terdengar adalah, "Perangkat Lunak, Pak." Sejujurnya, saya pun saat itu bingung bagaimana harus mendeskripsikan apa itu software, karena dalam benak saya, saya sepertinya mengerti apa itu software, tetapi ketika ditanya pengertian nya, saya bingung bagaimana cara menjelaskan nya, sehingga kata perangkat lunak pun menjadi jawaban yang juga pertama kali terlintas di pikiran saya.
Sebelum perkuliahan hari ini, hal mengenai software/perangkat lunak yang 'sepertinya' saya tahu itu ternyata kurang tepat :|
Tetapi, setelah perkuliahan hari ini, cukup banyak hal mengenai software yang telah saya ketahui.
Ternyata, software itu bukan hanya program/aplikasi saja, seperti yang selama ini sebagian besar orang lain pikirkan.
"Software adalah kumpulan item / objek yang mebentuk konfigurasi yang terdiri dari :
data (inputan untuk program), program ,dan dokumen (petunjuk bagaimana program digunakan & bagaimana data disiapkan)" 
Ada berbagai macam software, di antaranya :
◘ System software (software yang melayani software yang lain) ex : proxy, antivirus,windows, etc
◘ Real time software (melakukan olah data pada waktu yang real) ex : atm, messenger, etc
◘ Business software (software untuk bisnis)
◘ Engineering/scientific software (software untuk keperluan teknis / pengukuran /science)
◘ Embedded software (software yang dimasukkan ke dalam perangkat keras) ex: software pada jam, ac, etc
◘ PC software (software untuk keperluan PC) ex: MS Office, WMP, etc
◘ AI software (software yang digunakan untuk memprediksi)
◘ Web application (berbasis web) ex: klikbca, etc.

Tetapi, pokok bahasan kami untuk mata kuliah RPL yang sebenarnya adalah, mengenai Software Proses !
Saya sempat kaget lagi, karena mengira pembahasan kami hari ini hanya tentang software dan pengertian nya saja.٩(̃-̮̮̃-)۶
"Software Proses itu sendiri adalah bagaimana kita sebagai software development mengkomunikasikan rancangan dan user mengkomunikasikan keinginan."

Nah, dalam software proses itu , masalah-masalah / permasalahan nya adalah sbb :
❧ Harus ada pengukuran (engineering) sebelum pembuatan software (mengukur kebutuhan software)
❧ Dibuat untuk jangka waktu yang panjang ,akan tetapi,
❧ Software sama dengan pabrik yang menua, yang berarti akan tiba masanya di mana software tidak
sesuai lagi (out of date)
❧ Software itu kompleks, banyak hal yang harus dipertimbangkan untuk membangun/mendesign software
❧ Software merupakan "differentiator" (pembeda). Keunggulan-keunggulan di software menjadi ciri dari pebisnis (nilai unggul nya).

Perlu juga diketahui, kalau seharusnya semakin berjalan nya waktu, software itu makin stabil. Tapi, kalau software terus diubah, akhirnya tingkat kegagalan akan semakin besar. Hal ini bisa saja disebabkan oleh si pemesan yang telah bosan dengan perubahan yang terus terjadi.
Oleh karena itu, ketika kita akan merancang / membuat sebuah software, kita perlu membuat software yang dapat digunakan untuk jangka panjang, tetapi bisa menerima perbaikan (upgrade).

Uniknya, pada perkuliahan hari ini, kami diberi sebuah permainan yang membuat kami secara tidak langsung telah mempraktekkan kira-kira seperti apa Development as Conversation itu.
Sebelumnya, kami diberikan kertas oleh dosen , yang berisi 2 material utama yang harus kami pikirkan untuk digunakan dalam pembuatan sebuah objek. Masing-masing individu dalam kelas harus merahasiakan kedua material utamanya, dan objek yang dirancang. Kami juga harus menuliskan tujuan dari objek tersebut dibuat.
Setelah itu, kami dibagi ke dalam beberapa kelompok ,di mana setiap kelompok terdiri dari 2 / 3 orang. Masing-masing kelompok, akan bertukar tujuan dan saling menebak (dengan cara memberi pertanyaan) tentang 2 material utama, dan objek yang dibuat oleh pasangan (teman kelompok) nya.
Kami disuruh menuliskan semua pertanyaan dari si penanya, yang hanya boleh dijawab Ya dan Tidak. Kami diberikan waktu 20 menit untuk menebak nya.
Respon dari orang yang sedang kami tanyai ada berbagai macam, mulai dari yang berteriak sambil menyerukan kata Tidak, hingga yang menjawab Ya dengan bahagia karena objek beserta kedua material utama nya berhasil dengan mudah ditebak oleh teman kelompok.
Di akhir permainan, dosen memberitahu maksud dari permainan tersebut kepada kami. Bagaimana kami sedang diajar tentang cara berkomunikasi dengan orang lain. (Development as Conversation, Software Proses)
Perihal berkomunikasi ini sangat penting dalam langkah awal untuk membuat sebuah software. Langkah-langkah lengkap nya dapat kita lihat pada gambar berikut :


Linier Sequential Model
(Waterfall Model)


Mengenai Waterfall Model dan model-model yang lain akan saya lanjutkan di post berikutnya.
Stay tune ♥ ♥




♥ miss.yv