Jumat, 07 Februari 2014

SATU SEMESTER BERSAMA REKAYASA PERANGKAT LUNAK




Tidak terasa satu semester sudah saya mengikuti mata kuliah Rekayasa Perangkat Lunak. Berbagai suka duka saya rasakan selama 15 pertemuan di kelas bersama teman-teman dan juga dosen. Kali ini saya ingin berbagi cerita pengalaman selama satu semester bergulat tentang mata kuliah ini.

Selama mengikuti mata kuliah RPL ini saya merasakan pengalaman belajar yang beda dari biasanya. Jika di beberapa mata kuliah kita dituntut menghafal ataupun menerima materi doank tapi di mata kuliah ini suasana dan model belajar sangat berbeda. Kita ditekankan untuk berpikir terbuka, mencari berbagai sumber, belajar aktif dalam kelompok, dan menyuarakan pendapat.

Pada awalnya saya agak risih juga dengan banyaknya tugas yang diberikan seperti misalnya membuat postingan di blog tentang apa saja yang berhubungan dengan pembelajaran sebelumnya. Bagi sebagian orang bahkan saya awalnya merasa malas dan menganggap hal ini membuang waktu saja tapi setelah melewati beberapa minggu saya mulai dapat merasakan maanfaat dari mengerjakan tugas membuat postingan blog ini.
Kesimpulan yang saya dapat tarik adalah bahwa dengan mengerjakan tugas blog ini kita diharuskan mencari dari berbagai sumber dan melatih saya untuk berusaha sesuai kemampuan juga memancing kreativitas karena tiap postingan di blog diharuskan tidak boleh sama dan harus benar-benar orisinil hasil dari buah pemikiran sendiri. Selain itu melalui blog kita juga dapat berbagi informasi dan pengetahuan kita kepada orang lain sehingga kita harus bertanggung jawab dengan hasil tulisan kita sendiri agar tetap relevan.

Dan juga di dalam kelas dianut system kelompok sehingga kita belajar bekerjasama, berunding, memecahkan masalah secara kelompok, dan mencari solusi dari setiap tugas yang berikan sehingga secara tidak langsung mengajarkan kita softskill tentang bagaimana cara berinteraksi, memaparkan hasil presentasi, menyampaikan pendapat ke kelompok lain dan melatih kepemimpinan dan tanggung jawab bersama.

Sebenarnya banyak sekali manfaat yang bisa saya tarik sehingga tak cukup untuk saya sampaikan semua. Padahal pada awalnya saya sempat pesimis dan tak bersemangat untuk mengikuti mata kuliah RPL ini. Namun selalu ada manfaat yang kita bisa tarik dari suatu permasalahan yang kita hadapi. Dan akhir kata saya mengucapkan terima kasih kepada Dosen Rekayasa Perangkat Lunak kami bapak Sofyan Thayf yang telah bersedia membagi ilmunya dan yang telah bersabar dalam menghadapi kami mahasiswa selama proses belajar.

Nah sekian kali ini postingan saya tentang refleksi tentang proses belajar Rekayasa Perangkat Lunak selama satu semester ini. Sampai Jumpa di postingan saya selanjutnya !!!


TAHAP - TAHAP PENGEMBANGAN PERANGKAT LUNAK





Pada kesempatan kali ini saya akan merangkum bagaimana tahapan pengembangan perangkat lunak mulai dari tahapan pembuatan model bisnis, model data, model fungsi, behaviour model, sampai tahapan user interface. Setiap langkah di atas sangatlah penting jadi jika ingin membuat perangkat lunak yang lebih sempurna, maka kita tidak boleh melewatkan setiap langkah. Untuk lebih jelasnya maka akan saya jelaskan satu persatu.

Untuk tahapan awalnya kita harus merancang model bisnis dari aplikasi yang akan dibuat. Di dalam model bisnis sendiri kita harus mendefinisikan informasi apa yang berjalan didalam perangkat lunak yang kita rancang selain itu perlu juga dianalisis informasi apa yang nantinya akan dihasilkan dan kemana arah informasi itu dan pada bagian mana informasi itu nantinya diolah. Di model bisnis erat kaitannya dengan masalah Input, Proses, dan Outputnya. Dari model bisnis kita dapat menentukan dalam suatu proses apa saja inputannya, apa saja resourcenya, tujuannya (Goal), serta outputnya dan semua harus didefinisikan secara jelas dan terperinci.

Setelah itu kita masuk ke pembuatan model data (ERD) disini biasanya digambarkan dalam bentuk diagram yang menjelaskan bagian mana yang akan menjadi entity dalam suatu proses kerja dalam perangkat lunak yang kita bangun, bagaimana relasinya antara satu entity ke entity lain, dan apa saja atribut yang terkandung didalamnya. Dan jangan lupa untuk menyertakan kardinalitasnya. Dari situ kita mendapat gambaran data apa saja yang akan menjadi inputan, yang mana menjadi primary key dan foreign keynya dan lain lain.

Langkah selanjutnya adalah model fungsi yaitu DFD (Data Flow Diagram) atau Diagram Arus Data. Dalam tahap pembuatan DFD ini kita harus lebih mendefinisikan lagi dari ERD yang dibuat sebelumnya yaitu dengan menentukan yang mana data storagenya, terminator lalu dibuat diagram berjenjang yang panjangnya tergantung dari banyak proses yang terjadi dan sertakan pula diagram terperinci dari tiap level diagram yang dibentuk. Disini kita juga harus tentukan yang mana yang menjadi primitive yang nantinya akan kita lanjutkan di bagian behaviour model.

Di Behaviour model dijelaskan tentang tahap kerja dari suatu fungsi yang telah primitif. Yang mana dijelaskan kebiasaan dari tahapan kerja fungsi tersebut atau flowchart yang nantinya akan diterjemahkan oleh programmer ke dalam suatu kode. Di bagian ini pula kita sudah dapat merancang user interface dari perngkat lunak yang kita buat seperti apa karena alur dan inputan sudah terlihat jelas dan juga outputnya juga sudah dapat diperkirakan.
Setelah melewati tahapan behaviour model dan user interface maka rancangan perangkat lunak kita sudah akan diterjemahkan dalam kode program yang nantinya akan dikerjakan dari programmer yang telah kita siapkan.


Sekian penjelasan saya tentang proses pengembangan perangkat lunak mulai dari pembuatan model bisnis hingga tahap behaviour model. Jika ada kekurangan atau kesalahan pengetikan mohon dikoreksi. Terima kasih atas kunjungan anda!!!

Rabu, 11 Desember 2013

Aplikasi - Aplikasi Database



Halo teman sekalian selamat datang di blog saya yang sederhana ini. Pada postingan kali ini saya akan membahas tentang aplikasi – aplikasi yang bisa digunakan dalam pembuatan database. Mungkin beberapa dari teman sekalian sudah pernah menggunakan salah satu dari aplikasi database yang akan saya jelaskan nanti sehingga jika ada yang ingin menambahkan atau mengkoreksi bisa dengan memberi komen pada postingan kali ini. So tanpa basa-basi lagi mari kita lanjutkan.


Sebelum membahas aplikasinya ada baiknya saya menjelaskan kembali apakah sebenarnya database atau basis data itu. Jadi database dapat kita simpulkan sebagai kumpulan suatu file yang berisi informasi yang saling berhubungan dan berkaitan yang disimpan pada perangkat keras komputer dan nantinya akan diolah dan dimanipulasi menggunakan suatu software atau perangkat lunak.


Jadi berikut adalah aplikasi atau software yang bisa kita gunakan untuk mengolah basis data:


Oracle

Yang pertama kali mengembangkan Oracle adalah Larry Ellison,  Bob Miner, dan Ed Oates di tahun 1977. Oracle adalah basis data yang saling berhubungan yang didalamnya terdapat kumpulan data dalam sistem manajemen database RDBMS. Kelebihan dari Oracle adalah bisa berjalan di banyak jenis platform komputer. Dan sebagai bahasa perantara antara pengguna dan database, Oracle menggunakan SQL (Structured Query Language). Keistimewaan Oracle adalah lengkapnya tool yang bisa digunakan untuk mempermudah pengerjaan database seperti Oracle Enterprise Manager, Recovery Manager untuk membackup dan merecover file database, dan ada juga Data Pump yang mempermudah dalam memindahkan data dari satu database ke database lain.



Microsoft Access

Microsoft Access adalah program aplikasi database untuk kalangan pemula dan kebutuhan rumahan. Microsoft Access merupakan bagian dari aplikasi Microsoft Office seperti halnya Microsoft Word, Microsoft Excel dll. Microsoft Access bisa digunakan sebagai database untuk aplikasi berbasis web. Kelebihan lainnya adalah sangat kompatibel dengan bahasa pemrograman SQL sehingga bisa disimpan dan mendukung format Microsoft Jet Database Engine, Oracle Database, Microsof SQL Server dan format lain yang berstandar ODBC. Selain itu juga tampilan interfacenya sangat menarik dan mudah dioperasikan oleh kalangan pemula.


MySQL

MySQL adalah program aplikasi database server (DBMS) yang modern yang banyak digunakan oleh banyak orang di seluruh dunia. MySQL bisa dikatakan berfitur komplit seperti bisa dijalankan di berbagai platform OS seperti Linux, Windows, Mac OS dan banyak lagi. Selain itu My SQL mendukung fitur multiuser yang membuat beberapa pengguna bisa mengakses dan menggunakannya dalam waktu bersamaan dan juga dilengkapi fitur perintah lengkap dalam query dan juga bila terdapat kesalahan code maka akan tercantum pesan error yang mendukung lebih dari 20 bahasa dan bantak lagi fitur yang tidak akan habis jika saya tuliskan disini   :D



Jadi dengan mengenal berbagai macam aplikasi database, kita bisa menentukan mana yang lebih cocok untuk kita gunakan dalam membuat suatu basis data. Terima kasih atas kunjungan teman sekalian dan semoga tulisan kali ini bisa menambah pengetahuan kita semua.

Selasa, 10 Desember 2013

Fungsi Dan Peranan ERD



Halo teman-teman! Pada postingan kali ini saya akan menjelaskan tentang fungsi dan peranan dari ERD (Entity Relationship Diagram). Sebelum membahas tentang fungsi dan peranannya, terlebih dahulu kita harus tahu apa sih itu ERD dan seperti apa ERD itu maka dari itu akan saya jelaskan dahulu.

Konsep Entity Relationalship Diagram ditemukan pertama kali oleh Peter Chen di tahun 1976. Entitiy Relationalship Diagram dapat dideskripsikan sebagai model yang menjelaskan isi dan hubungan data dalam suatu basis data dalam bentuk entitas, atribut, serta relationship antar entitas.

Fungsi ERD
  • Untuk merancang model dasar dari struktur data serta relationship atau hubungan dari setiap data tersebut.
  • Untuk mempermudah pengerjaan basis datanya karena dalam ERD kita sudah menjelaskan hubungan dari data satu ke data lainnya
  • Untuk mempermudah dalam mengubah dan menganalisis suatu sistem secara dini
  • Untuk mempermudah dalam pengembangan suatu sistem karena dalam ERD sudah terdapat gambaran umum serta detil dari suatu sistem yang dirancang.

Lalu seberapa pentingkah peranan ERD saat ini? Tentunya pemahaman serta penguasaan ERD sangat diperlukan karena dengan konsep ERD kita bisa merancang suatu sistem yang kokoh dan terstruktur. Karena di tahap pengerjaan ERD kita diharuskan menganalisis suatu hubungan dari data yang hendak disimpan dalam di basis data sehingga mengurangi kemungkinan terjadinya kekacauan data seperti adanya data yang redundan yang tentunya bisa menyebabkan tabrakan data. Selain itu dengan ERD kita bisa mendeteksi kelemahan suatu sistem serta data apa saja yang perlu dan tak perlu ada dalam basis data serta kita bisa menentukan data constraintnya, data cardinality, hingga atributte type. Sehingga hasil akhir dari sistem yang akan dikerja menjadi lebih minim tingkat kesalahannya, lebih efisien, dan sesuai dengan kebutuhan.


Sekian Penjelasan singkat saya tentang manfaat dan peran ERD. Semoga dari postingan kali ini anda bisa ambil pengetahuannya dan sebagaimana manusia, mungkin juga ada kesalahan penulisan yang tak saya sadari jadi silahkan dikoreksi, diberikan masukan, dan didiskusikan. Thank You!!!

Kamis, 05 Desember 2013

Membandingkan Game SimSe Prototype, Incremental, dan Waterfall


Setelah bergulat dan mencari strategi dalam menyelesaikan game SimSe maka tibalah dipostingan kali ini saya curhat sedikit tentang pengalaman saya tentang SimSe. Setelah mencoba ketiga game SimSe sebelumnya yaitu Prototype, Incremental, dan Waterfall, maka saya memilih game yang difavoritkan adalah SimSe Prototype karena kemudahan menyelesaikan proyeknya. Tidak seperti waterfall, di SimSe prototype saya tidak perlu meyusun ulang anggota tim yang akan mengerjakan proyek dikarenakan semua anggota memiliki skill unik yang dibutuhkan. Selain itu tidak perlu memperhatikan budget dan tool yang akan digunakan.

Kunci dari permainan SimSe prototype adalah prototyping language menggunakan Visual Basic dan Implementasi language menggunakan Java yang jelas berpengaruh pada kecepatan menyelesaikan proyek. Sedangkan yang kategori lumayan gampang saya memilih SimSe Incremental karena saya sudah menguasai konsep dasar incremental karena kelompok saya yang mempresentasikan di kelas tentang Incremental. Yang membuat incremental lumayan rumit karena proses pengerjaan proyek lumayan lama dan dibutuhkan kesabaran dan ketelitian karena dilakukan per modul dan jika ada revisi maka kita harus mengecek agar requirements progress, design progress, implementation progress mencapai nilai 100. Dan proses ini berulang terus dimana coding, design, integrasi dan risk analysis dilakukan terus menerus.

Dan yang terumit tentunya adalah Waterfall SimSe karena harus membeli tool, menyusun ulang anggota tim, memberi pekerjaan sesuai keahlian ke anggota agar mengurangi kemungkinan error yang dapat memperlambat proses pengerjaan dan selain itu harus memperhatikan juga budgetnya karena jika habis kita bisa bangkrut.

Yah mungkin itu pengalaman saya memainkan game simulasi SimSe. Tapi selain menyenangkan, saya jadi lebih mengerti bagaimana tiap model proses diimplementasikan di dunia kerja yang sesungguhnya melalui simulasi. Jadi kita sekalian belajar dan main game. Awas game ini dapat menyebabkan stress berkepanjangan dan rasa penasaran. Sekian dari saya.
 
 

Tips n Trick SimSe Waterfall Game


 
 
Setelah membahas SimSe Incremental dan Prototype maka saya akan berbagi tips mendapat skor tinggi di SimSe Waterfall yang terkenal sangat menguras otak dan emosi ini. Untuk mendapatkan trik ini saya perlu melakukan percobaan sampai 6 kali untuk mendapat skor tertinggi saya yaitu 84.  Game SimSe Waterfall ini kamu bisa download disini >>> http://www.ics.uci.edu/~emilyo/SimSE/downloads/WaterfallModel-v-11.zip
Apa yang membuat game ini terasa sulit? Mari saya paparkan pada anda.

Setelah bekerja keras meracik strategi yang tepat akhirnya saya dapatkan kunci awal permasalahan yang membuat game ini sulit diselesaikan dengan skor tinggi yaitu karena ada anggota tim yang tidak memiliki keahlian atau skill yang dibutuhkan dalam pengerjaan proyek. Maka dari itu kita mesti melakukan perombakan tim yaitu dengan memecat Roger yang masih belum berpengalaman untuk menyelesaikan proyek ini. Lalu kita bagi pekerjaan yaitu bagian design untuk Emily, Anita, dan Andre. Bagian koding bisa dikerjakan oleh semua pekerja. Dan bagian Test bisa diserahkan kepada Andre, Emily, Mimi, dan Pedro. Bila pembagian pekerjaan tidak sesuai maka akan terjadi banyak error yang dapat menghambat pengerjaan dan tidak efisien dalam segi waktu.

Setelah pembagian tugas kita mesti membeli tools untuk mempercepat pengerjaan proyek yang diberikan dan meperkecil kemungkinan terjadi error, tetapi saya membeli saja semua tools yang tesedia tapi ingat karena jika budget perusahaan habis maka kita akan kalah. Untuk bahasa program kita gunakan Java dan implementasi menggunakan C++. Selanjutnya kita harus mencari requirement dan selesaikan hingga 100 jika ada penambahan lakukan perbaikan pada requirementnya. Untuk design selesaikan sampai sempurna lalu berikan ke customer untuk dikoreksi lalu jika ada error, perbaiki sampai sempurna.

Selanjutnya bagian Code sama seperti diatas kita harus memperhatikan agar jika terjadi error dan revisi maka harus diperbaiki dan diintegrasikan ulang agar skor menjadi tinggi. Dan akhirnya kita sampai bagian test yang usahakan semua bagian mencapai angka 90-an dan 100. Jika ada error segera koreksi selagi waktu mencukupi. Jika error sudah tak ada dan sistem test nilainya sudah 100 maka product siap di delivery ke customer. Dan ahaaay skor akhir 84. Monggo ditest karena jika mengikuti persis langkah saya maka dipastikan skor akhir bakalan diatas 80.
 
 
 

Tips n Trick SimSe Incremental Game


 
 
Game SimSe selanjutnya yang akan saya review dan berbagi tips trick adalah Game SimSe Incremental Model. Seperti kita ketahui incremental model adalah model sistem yang pembuatan softwarenya dilakukan secara bertahap-tahap yang disisipi dengan penambahan fitur lalu diintegrasikan dengan increment selanjutnya yang hasil akhirnya akan menghasilkan program yang sempurna. Untuk gamenya bisa kamu download di sini >>> http://www.ics.uci.edu/~emilyo/SimSE/downloads/IncrementalModel-v-3.zip

Jadi setelah memainkan beberapa kali saya mendapatkan trik agar bisa meraih skor tinggi. Strategi dari game ini adalah pembagian tugas kepada anggota tim yang memang berkompeten dan ahli di bidang tersebut. Jadi awalnya kita harus tetapkan bagian design diambil alih oleh Bob dan Lola. Sedangkan bagian Risk Analysis dan Requirement kita berikan pada Lola dan Karl. Dan bagian implementasi berikan pada Amy dan Bob dan Coder berikan pada Amy dan Karl. Intinya jangan biarkan ada pekerja yang menganggur dan setiap pekerja harus bisa mengerjakan minimal 2 pekerjaan. Fokuskan modul per modul dalam pengerjaannya dan jika ada pekerjaan yang bisa dilakukan seperti design, code, implementasi dll maka langsung saja berikan ke pekerja yang terbaik di bidang tersebut. Usahakan agar requirements progress, design progress, implementation progress mendapat nilai 100 agar di skor akhir bisa didapatkan diatas 80. Namun ingat untuk lakukan integrasi setiap selesai pengerjaan modul dan jika requirement sudah 100 maka kita bisa langsung lompat ke pengerjaan modul berikutnya tanpa perlu menunggu implementasi sempurna agar lebih hemat waktu dalam pengerjaannya. Dan jika waktu berhenti saat customer hendak melakukan perubahan modul maka kita tidak perlu memperhatikannya dan jika tiap modul sudah sempurna requirement, design dan implementation –nya maka submit module dulu ke customer dan jika nilainya berkurang dan masih ada waktu maka ulangi semua pengerjaan coding dan design sampai sempurna dan dirasa cukup lalu submit final product ente dan VOILA!!!

 

Saya mendapatkan skor akhir 88. Not bad untuk percobaan ketiga kalinya. Inti dari game ini adalah menyempurnakan saja softwarenya sampai waktu sudah mendekati deadline dan submitlah ke customer. Sekian tips dari saya dan selamat mencoba