Pages

Kamis, 25 Oktober 2012

Penjelasan Mengenai Model-Model Software

1. Waterfall Model
Langkah - Langkah:


  • System / Information Engineering and Modeling. Permodelan ini diawali dengan mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk software. Hal ini sangat penting, mengingat software harus dapat berinteraksi dengan elemen-elemen yang lain seperti hardware, database, dsb. Tahap ini sering disebut dengan Project Definition.
  • Software Requirements Analysis. Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat, maka para software engineer harus mengerti tentang domain informasi dari software, misalnya fungsi yang dibutuhkan, user interface, dsb. Dari 2 aktivitas tersebut (pencarian kebutuhan sistem dan software) harus didokumentasikan dan ditunjukkan kepada pelanggan.
  • Design. Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas menjadi representasi ke dalam bentuk “blueprint” software sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. Seperti 2 aktivitas sebelumnya, maka proses ini juga harus didokumentasikan sebagai konfigurasi dari software.
  • Coding. Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap design yang secara teknis nantinya dikerjakan oleh programmer.
  • Testing / Verification. Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya.
  • Maintenance. Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada errors kecil yang tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software tersebut. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya.

    kekurangan pengaplikasian model ini, antara lain adalah sebagai berikut:
    • Ketika problem muncul, maka proses berhenti, karena tidak dapat menuju ke tahapan selanjutnya. Bahkan jika kemungkinan problem tersebut muncul akibat kesalahan dari tahapan sebelumnya, maka proses harus membenahi tahapan sebelumnya agar problem ini tidak muncul. Hal-hal seperti ini yang dapat membuang waktu pengerjaan SE.
    • Karena pendekatannya secara sequential, maka setiap tahap harus menunggu hasil dari tahap sebelumnya. Hal itu tentu membuang waktu yang cukup lama, artinya bagian lain tidak dapat mengerjakan hal lain selain hanya menunggu hasil dari tahap sebelumnya. Oleh karena itu, seringkali model ini berlangsung lama pengerjaannya.
    • Pada setiap tahap proses tentunya dipekerjakan sesuai spesialisasinya masing-masing. Oleh karena itu, ketika tahap tersebut sudah tidak dikerjakan, maka sumber dayanya juga tidak terpakai lagi. Oleh karena itu, seringkali pada model proses ini dibutuhkan seseorang yang “multi-skilled”, sehingga minimal dapat membantu pengerjaan untuk tahapan berikutnya.

      Beberapa Kelebihannya adalah;
      -          Model pengembangan yang paling lama dan handal digunakan.
      -          Cocok untuk sistem software berskala besar
      -          Cocok untuk sistem software yang sifatnya generik
      Pengerjaan proyeknya cenderung terjadwal dengan baik dan mudah terkontrol


      2.Prototyping Model

      Prototyping adalah proses yg bisa dilaksanakan secara berulang dengan tujuan untuk menghindarkan proses persetujuan formal secara periodik yg diperlukan dalam pendekatan pengembangan sistem secara tradisional.
      Prototyping adalah proses yang digunakan untuk membantu pengembang perangkat lunak dalam membentuk model dari perangkat lunak yang harus dibuat.
      Prototipe memberikan ide bagi pembuat maupun pemakai tentang cara sistem dalam bentuk lengkapnya. Proses menghasilkan sebuah prototipe disebut Prototyping.
      Jenis dari Prototyping ada dua :
      1. Prototipe jenis I: sesungguhnya akan menjadi sistem operasional
      2. Prototipe jenis II: merupakan suatuy model yyang dapat dibuang yang berfungsi bagi sistem operasional.
      Karakteristik metode prototyping meliputi langkah-langkah :
      1. Pemilahan fungsi
      2. Penyusunan Sistem Informasi
      3. Evaluasi
      4. Penggunaan Selanjutnya
      Jenis-jenis prototyping meliputi
      1. Feasibility prototyping
      2. Requirement prototyping
      3. Desain Prototyping
      4. Implementation prototyping
      Teknik-teknik prototyping meliputi
      1. Perancangan Model
      2. Perancangan Dialog
      3. Simulasi
      Keuntungan dari prototipe 

      Menghasilkan syarat yang lebih baik dari produksi yang dihasilkan oleh metode ‘spesifikasi tulisan’.

      - User dapat mempertimbangkan sedikit perubahan selama masih bentuk prototipe.

      - Memberikan hasil yang lebih akurat dari pada perkiraan sebelumnya, karena fungsi yang diinginkan dan kerumitannya sudah dapat diketahui dengan baik.

      -User merasa puas. Pertama, user dapat mengenal melalui komputer. Dengan melakukan prototipe (dengan analisis yang sudah ada), user belajar mengenai komputer dan aplikasi yang akan dibuatkan untuknya. Kedua, user terlibat langsung dari awal dan memotivasi semangat untuk mendukung analisis selama proyek berlangsung.

      Referensi : 
      http://ikavita.blogspot.com/2008/07/sistem-informasi-manajemen.html

      3. RAPID APPLICATION DEVELOPMENT



      RAD (Rapid Application Development) adalah sistem pemrograman yang memungkinkan programmer membuat program dengan cepat. Secara umum, Sistem RAD menyediakan sejumlah alat-bantu untuk membuat antarmuka pengguna grafis (graphical user interfaces) yang biasanya membutuhkan usaha dan waktu yang lama untuk membuatnya. Dua sistem RAD yang paling populer untuk Windows adalah Visual Basic dan Delphi.

      RAD Mempunyai 4 Unsur Penting : Manajemen, Manusia, Metodologi, dan Peralatan.
      RAD adalah penggabungan beberapa metode atau teknik terstruktur. RAD menggunakan metode prototyping dan teknik terstruktur lainnya untuk menentukan kebutuhan user dan perancangan sistem informasi.
      Proses pengembangan, meliputi
      1. Mempelajari apakah proyek pengembangan sistem memenuhi kriteria
      2. Mempelajari aktivitas bisnis perusahaan, menentukan area bisnis serta fungsi yang menjadi prioritas
      3. Membuat model dari fungsi-fungsi yang menjadi prioritas
      4. Memilih protype mana yang direview
      5. Implementasi Sistem Informasi


      4. INCREMENTAL MODEL

      Model proses incremental tersebut, seperti model prototype dan pendekatan-pendekatan evolusioner yang lain, bersifat iterative. Tetapi tidak seperti model prototype, model pertambahan berfokus pada penyampaian produk operasional dalam setiap pertambahannya. Pertambahan awal ada di versi stripped down dari produk akhir, tetapi memberikan kemampuan untuk melayani pemakai dan juga menyediakan platform untuk evaluasi oleh pemakai.

      Perkembangan pertambahan, khususnya berguna pada saat staffing, tidak bisa dilakukan dengan menggunakan implementasi lengkap oleh batasan waktu bisnis yang sudah disepakati untuk proyek tersebut. Jika produk inti diterima dengan baik, maka staf tambahan (bila dibutuhkan) bisa ditambahkan untuk mengimplementasi pertambahan selanjutnya. Sebagai tambahan, system mayor yang sedang pada masa perkembangan serta waktu penyampaiannya belum pasti, mungkin membutuhkan keberadaan perangkat keras yang baru. Bisa juga rencana tertentu dibuat untuk menghindari pemakaian perangkat lunak ini, sehingga memungkinkan fungsionalitas partial disampaikan kepada pemakai tanpa harus banyak tertunda. 



      Contoh Penggunaan Incremental Model

      Misalnya, perangkat lunak pengolah kata yang dikembangkan dengan menggunakan paradigma penambahan akan menyampaikan manajemen file dasar, editing serta fungsi penghasilan dokumen pada penambahan pertama; kemudian editing dan kemampuan penghasilan dokumen yang lebih canggih pada pertambahan kedua; pengecekan spelling dan tata bahasa pada pertambahan ketiga; serta kemampuan pengaturan halaman tingkat lanjut pada tahap pertambahan keempat. Harus dicatat bahwa aliran proses untuk berbagai pertambahan tersebut dapat menggabungkan paradigma prototype.



      Kelebihan Penggunaan Incremental Model

      ·   Merupakan model dengan manajemen yang sederhana
      ·   Pelanggan tidak perlu menunggu sampai seluruh system dikirim untuk mengambil keuntungan dari system tersebut. Inkremen yang pertama sudah memenuhi persyaratan mereka yang paling kritis, sehingga perangkat lunak dapat segera digunakan.
      ·   Pelanggan dapat memakai inkremen yang pertama sebagai bentuk prototype dan mendapatkan pengalaman yang dapat menginformasikan persyaratan untuk inkremen system berikutnya
      ·   Resiko untuk kegagalan proyek secara keseluruhan lebih rendah. Walaupun masalah dapat ditemukan pada beberapa inkremen, bias saja beberapa inkremen diserahkan dengan sukses kepada pelanggan.
      ·   Karena layanan dengan prioritas tertinggi diserahkan pertama dan inkremen berikutnya diintegrasikan dengannya, sangatlah penting bahwa layanan system yang paling penting mengalami pengujian yang paling ketat. Ini berarti bahwa pelanggan akan memiliki kemungkinan kecil untuk memenuhi kegagalan perangkat lunak pada inkremen system yang paling kecil.



      Kekurangan Penggunaan Incremental Model

      ·   Inkremen harus relative lebih kecil (tidak lebih dari 20.000 baris kode) dan setiap inkremen harus menyediakan sebagian dari fungsional system
      ·   Adanya kesulitan untuk memetakan persyaratan pelanggan pada inkremen dengan ukuran yang benar

      5. Interactive - Incremental / Spiral
      Spiral model dibagi menjadi beberapa framework aktivitas, yang disebut dengan task regions. Kebanyakan aktivitas2 tersebut dibagi antara 3 sampai 6 aktivitas. Berikut adalah aktivitas-aktivitas yang dilakukan dalam spiral model:
      • Customer communication. Aktivitas yang dibutuhkan untuk membangun komunikasi yang efektif antara developer dengan user / customer terutama mengenai kebutuhan dari customer.
      • Planning. Aktivitas perencanaan ini dibutuhkan untuk menentukan sumberdaya, perkiraan waktu pengerjaan, dan informasi lainnya yang dibutuhkan untuk pengembangan software.
      • Analysis risk. Aktivitas analisis resiko ini dijalankan untuk menganalisis baik resiko secara teknikal maupun secara manajerial. Tahap inilah yang mungkin tidak ada pada model proses yang juga menggunakan metode iterasi, tetapi hanya dilakukan pada spiral model.
      • Engineering. Aktivitas yang dibutuhkan untuk membangun 1 atau lebih representasi dari aplikasi secara teknikal.
      • Construction & Release. Aktivitas yang dibutuhkan untuk develop software, testing, instalasi dan penyediaan user / costumer support seperti training penggunaan software serta dokumentasi seperti buku manual penggunaan software.
      • Customer evaluation. Aktivitas yang dibutuhkan untuk mendapatkan feedback dari user / customer berdasarkan evaluasi mereka selama representasi software pada tahap engineering maupun pada implementasi selama instalasi software pada tahap construction and release
        Pendekatan dengan model ini sangat baik digunakan untuk pengembangan sistem software dengan skala besar. Karena progres perkembangan dari SE dapat dipantau oleh kedua belah pihak baik developer maupun user / customer, sehingga mereka dapat mengerti dengan baik mengenai software ini begitu juga dengan resiko yang mungkin didapat pada setiap aktivitas yang dilakukan. Selain dari kombinasi 2 buah model yaitu waterfall dan prototyping, kelebihan dari software ini ada pada analisis resiko yang dilakukan, sehingga resiko tersebut dapat direduksi sebelum menjadi suatu masalah besar yang dapat menghambat SE. Model ini membutuhkan konsiderasi langsung terhadap resiko teknis, sehingga diharapkan dapat mengurangi terjadinya resiko yang lebih besar. Sebenarnya dengan menggunakan prototype juga bisa menghindari terjadinya resiko yang muncul, tetapi kelebihan dari model ini yaitu dilakukannya proses prototyping untuk setiap tahap dari evolusi produk secara kontinu. Model ini melakukan tahap2 yang sudah sangat baik didefinisikan pada model waterfall dan ditambah dengan iterasi yang menyebabkan model ini lebih realistis untuk merefleksikan dunia nyata. Hal-hal itulah yang menjadi kelebihan menggunakan spiral model.



      Referensi : 

      Demikianlah penjelasan saya mengenai software. Saya sengaja mencari info - info melalui google search agar saya dapat mengetahui lebih banyak penjelasan mengenai model tersebut selain dari pendapat - pendapat teman sekelas saya( para kelompok ahli ). Dan secara garis besar, saya dapat memahami  pengertiannya dari beberapa penjelasan diatas.



Sabtu, 13 Oktober 2012

MEMBACA

Kebetulan, judul di atas bukanlah materi dari pertemuan RPL kemarin. Melainkan, karena Pak Sofyan selaku dosen RPL rupanya memberikan tugas membaca materi berikut ini

  • Waterfall Model
  • Prototype Model
  • Rapid Application Development
  • Incremental Model
  • Ireactive-Incremental

Dan ternyata seluruh kelas tidak membacanya karena tidak dapat memberikan penjelasan tentang kelima materi tersebut. Oleh karena itu pak Sofyan menyuruh kami untuk membacanya sekaligus menuliskan pernyataan di blog, bahwa membaca itu sangat penting. Saya pribadi, termasuk orang yang suka membaca, terlebih lagi jika informasi yang diberikan menarik. Saya akan membaca materi yang diberikan oleh dosen dan saya juga berjanji akan membaca, membaca dan lebih sering lagi membaca. Terima kasih.

Sabtu, 06 Oktober 2012

Materi 1 Rekayasa Perangkat Lunak


SOFTWARE

Pertama-tama saya berterima kasih kepada dosen saya Bapak Sofyan Thayf yang memberikan materi pertama Rekayasa Perangkat Lunak yaitu SOFTWARE. Materi ini sangat menambah wawasan saya seputar software.

Dalam materi pertama ini saya baru mempelajari dasar-dasar software seperti sifat-sifatnya, pembagiannya serta cara kerjanya. Hal ini mendasari pemikiran tentang software sendiri sehingga saya bias jadikan landasan untuk membuat software program ke depannya.

Software itu merupakan kumpulan item atau objek yang membentuk konfigurasi seperti:
-Program
-Data
-Dokumen


Sifat-sifat Software:
1.     Software is engineered yaitu software tidak diproduksi secara massal.
2.   Software doesn't work out yaitu tidak lapuk dan dibuat untuk jangka waktu yang  panjang. Nah software itu tidak hancur seperti hardware yang apabila disimpan dalam jangka waktu lama, bisa saja menjadi tua dan hancur sehingga tidak dapat dipakai lagi.
3.  Software is like an 'aging factory' yaitu seperti pabrik yang menua, mempunyai masa dimana software nanti tidak akan cocok lagi dengan perkembangan teknologi yang semakin hari semakin maju.
4.     Software is complex yaitu software bersifat kompleks.
5.     Software is differentiator yaitu software sebagai pembeda. Seperti pada bank BCA. Bank ini memiliki software khas yaitu KLIKBCA yang membuat nasabahnya merasa nyaman dengan dapat bertransaksi tanpa perlu berpindah dari tempat, cukup hanya dengan koneksi ke internet saja sudah bias melakukan pembayaran telpon, PDAM, PLN, belanja online dan lainnya. Software ini menjadi pembeda Bank BCA dengan bank lainnya.


Software Applications (Macam-macam software) :
1.  System Software yaitu sistem yang melayani software yang lain. Salah satunya seperti antivirus, kerja antivirus ini melayani software lainnya, nah banyak yang bertanya “mengapa dikatakan demikian?” Jawabannya adalah antivirus itu bekerja mencegah virus atau memberantas virus yang ada dalam software utama komputer. Sehingga antivirus itu merupakan software sekunder yang bertugas melayani software utama.
2. Real-time software merupakan software yang melakukan pengolahan data berdasarkan waktu yang nyata/real.
3.    Business software merupakan software yang dipakai untuk keperluan bisnis. Seperti salah satunya eSPTPPN, yang melayani penginputan data pembayaran pajak para pebisnis atau pengusaha kena pajak.
4.  Engineering / scientific software merupakan software yang dipakai untuk mengukur.
5. Embedded Software yaitu software yang dimasukkan dalam perangkat keras. Contohnya seperti AC, kulkas dan masih banyak lagi yang dimasukkan software di dalamnya. Misalnya dalam AC orang pasti bertanya-tanya, “Yang mana software yang dimasukkan dalam AC?” Nah jawabannya singkat saja software itu seperti salah satunya program/perangkat yang menerima sinyal masukan dari remot AC, sehingga kita dapat menyalakan AC pakai remot. Itu salah satu contoh software yang dimiliki oleh AC.
6.     PC software.
7.     AI software yaitu software yang banyak ditemukan di game.
8.     Web applications yaitu aplikasi yang berbasis web.


Gambar 1. Waterfall Process






Gambarnya seperti air terjun. Sering juga disebut sebagai WATERFALL PROCESS karena bentuknya yang seperti air terjun.

Nah, sekian yang saya pelajari pada pembahasan materi pertama seputar SOFTWARE ini, mohon maaf apabila ada kesalahan kata atau penulisan. Terima kasih telah membaca postingan ini. Semoga bermanfaat !!!

----------------------------------------------------------------