Kamis, 13 Oktober 2016

Pemodelan Sistem

A.      WATERFALL
1.      Penjelasan
Waterfall atau sering juga disebut air terjun adalah sebuah metode dalam pengembangan sistem yang dilakukan untuk membuat pembaruan sistem yang berjalan. Metode pengembangan sistem merupakan proses mengembangkan atau mengubah suatu sistem perangkat lunak dengan menggunakan metode-metode atau model-model yang digunakan orang untuk mengembangkan sitem-sistem perangkat lunak sebelumnya dengan memiliki alur hidup perangkat lunak secara sekuensial atau terurut dimulai dari analisis, desain, pengodean, pengujian, dan tahap pendukung (suport).

2.       Diagram




3.    Proses/Cara Kerja
Ø Requirment
Dalam tahapan ini jasa, kendala dan  tujuan dari konsultasi dengan pengguna sistem.  Kemudian semuanya dibuat dalam bentuk yang dapat dimengerti oleh user dan staf pengembang.  Dengan kata lain, dalam tahapn ini dilakukan analisa kebutuhan, kemdian diverifikasi klien dan tim SQA (software  Quantity asuransi).
Ø Specification
Dokumentasi spesifikasi, kemudian diperiksa oleh tim SQA.  Selanjutnya jika disetujui oleh klien, maka dokumen tersebut merupakan kontrak kerjaantaraklien dan pengembang s0ftware.  Selanjutnya merencanakan jadwal pengembangan software. Jika disetujui oleh SQA, tahap desain baru dilakukan.
Ø Design
Proses design sistem membagi kebutuhan-kebutuhan menjadi sistem perangkat lunak atau perangkat keras.  Proses tersebut menghasilkan sebuah arsitektur keseluruhan. Desain perangkat lunak termasuk menghasilkan fungsi sistem perangkat lunak dalam bentuk yang mungkin ditransformasi kedalam satu atau lebih program yang dapat dijalankan.  Tahapan ini telah menentukan alur software hingga pada tahap algoritma detail.  Di akhir tahap ini, kembali diperksa tim SQA.
Ø Implementation
Selama tahap ini, desain perangkat lunak disadari sebagai sebuah program lengkap atau unit program.  Desain yang telah disetujui, diubah dalam bentuk kode-kode program.  Tahap ini, kode-kode program yang dihasilkan masih pada tahap modul-modul. Diakhir tahap ini, tiap modul di testing tanpa diintegrasikan.
Ø Integration
Unit program diintegrasikan dandiuji menjadi sistem yang lengkap untuk meyakinkan bahwa persyaratan perangkat lunak telah dipenuhi.  Setelah uji coba, sistem disampaikan ke konsumen.
Ø Operaton mode & retirement
Normalnya, ini adalah tahap yang terpanjang.  Sistem dipasang dan digunakan. Pemeliharaan termasuk pembetulan kesalahan yang tidak ditemukan pada langkah sebelumnya.  Perbaikan inmplementasi unit sistem dan peningkatan jasa sistem sebagai kebutuhan baru ditemukan.

4.      Kelebihan
Metode pengembanganwaterfall mempunyai keunggulan dalam membangun dan mengembangkan suatu sistem, antara lain:
1.    Kualitas dari sistem yang dihasilkan akan baik. Ini dikarenakan oleh pelaksanaannya secara bertahap. Sehingga tidak terfokus pada tahapan tertentu.
2.    Dokumen pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya. Jadi setiap fase atau tahapan akan mempunyai dokumen tertentu.

5.      Kekurangan
Dalam proses membangun dan mengembangkan suatu sistem, metode waterfall mempunyai beberapa kelemahan, antara lain:
1.    Diperlukan majemen yang baik, karena proses pengembangan tidak dapat dilakukan secara berulang sebelum terjadinya suatu produk..
2.    Kesalahan kecil akan menjadi masalah besar jika tidak diketahui sejak awal pengembangan.




B.       PROTOTYPING
1.      Penjelasan
Prototyping adalah proses membangun model dari suatu sistem. Dalam hal sistem informasi, prototipe dipekerjakan untuk membantu desainer sistem membangun suatu sistem informasi yang intuitif dan mudah untuk memanipulasi bagi pengguna akhir. Prototyping merupakan proses iteratif yang merupakan bagian dari tahap analisis dari siklus hidup pengembangan sistem . Pada bagian penentuan persyaratan tahap analisis sistem, analis sistem mengumpulkan informasi tentang prosedur saat ini organisasi dan bisnis proses yang terkait dengan sistem informasi yang diusulkan.Selain itu, mereka mempelajari sistem informasi saat ini, jika ada satu, dan melakukan wawancara dan mengumpulkan dokumentasi pengguna. Ini membantu analis mengembangkan set awal persyaratan sistem.
Prototyping dapat meningkatkan proses ini karena mengubah spesifikasi dasar, namun kadang-kadang berwujud, menjadi model kerja nyata namun terbatas dari sistem informasi yang diinginkan.Umpan balik pengguna yang diperoleh dari mengembangkan sistem fisik yang pengguna dapat menyentuh dan melihat memfasilitasi respons evaluatif bahwa analis dapat mempekerjakan untuk memodifikasi persyaratan yang ada serta mengembangkan yang baru.


2.       Diagram



3.      Proses/Cara Kera Kerja
Proses pembuatan prototipe merupakan proses yang interaktif dan berulang-ulang yang menggabungkan langkah-langkah siklus pengembangan tradisional. Prototipe dievaluasi beberapa kali sebelum pemakai akhir menyatakan protipe tersebut diterima. Gambar di bawah ini mengilustrasikan proses pembuatan prototipe :



Langkah-Langkah Prototyping

a.  Analisis Kebutuhan Sistem
Pembangunan sistem informasi memerlukan penyelidikan dan analisis mengenai alasan timbulnya ide atau gagasan untuk membangun dan mengembangkan sistem informasi. Analisis dilakukan untuk melihat berbagai komponen yang dipakai sistem yang sedang berjalan meliputi hardware, software, jaringan dan sumber daya manusia. Analisis juga mendokumentasikan aktivitas sistem informasi meliputi input, pemrosesan, output, penyimpanan dan pengendalian (O'Brien, 2005).
Selanjutnya melakukan studi kelayakan (feasibility study) untuk merumuskan informasi yang dibutuhkan pemakai akhir, kebutuhan sumber daya, biaya, manfaat dan kelayakan proyek yang diusulkan (Mulyanto, 2009).
Analisis kebutuhan sistem sebagai bagian dari studi awal bertujuan mengidentifikasi masalah dan kebutuhan spesifik sistem. Kebutuhan spesifik sistem adalah spesifikasi mengenai hal-hal yang akan dilakukan sistem ketika diimplementasikan (Mulyanto, 2009).
Analisis kebutuhan sistem harus mendefinisikan kebutuhan sistem yang spesifik antara lain :
1)     Masukan yang diperlukan sistem (input)
2)     Keluaran yang dihasilkan (output)
3)     Operasi-operasi yang dilakukan (proses)
4)     Sumber data yang ditangani
5)     Pengendalian (kontrol)



Spesifikasi Kebutuhan Sistem

Tahap analisis kebutuhan sistem memerlukan evaluasi untuk mengetahui kemampuan sistem dengan mendefinisikan apa yang seharusnya dapat dilakukan oleh sistem tersebut kemudian menentukan kriteria yang harus dipenuhi sistem. Beberapa kriteria yang harus dipenuhi adalah pencapaian tujuan, kecepatan, biaya, kualitas informasi yang dihasilkan, efisiensi dan produktivitas, ketelitian dan validitas dan kehandalan atau reliabilitas (Mulyanto, 2009).

b.  Desain Sistem
Analisis sistem (system analysis) mendeskripsikan apa yang harus dilakukan sistem untuk memenuhi kebutuhan informasi pemakai. Desain sistem  (system design) menentukan bagaimana sistem akan memenuhi tujuan tersebut. Desain sistem terdiri dari aktivitas desain yang menghasilkan spesifikasi fungsional. Desain sistem dapat dipandang sebagai desain interface, data dan proses dengan tujuan menghasilkan spesifikasi yang sesuai dengan produk dan metodeinterface pemakai, struktur database serta pemrosesan dan prosedur pengendalian (Ioanna et al., 2007).
Desain sistem akan menghasilkan paket software prototipe, produk yang baik sebaiknya mencakup tujuh bagian :
1)     Fitur menu yang cepat dan mudah.
2)     Tampilan input dan output.
3)     Laporan yang mudah dicetak.
4)     Data dictionary yang menyimpan  informasi pada setiap field termasuk panjang field, pengeditan dalam setiap laporan dan format field yang digunakan.
5)     Database dengan format dan kunci record yang optimal.
6)     Menampilkan query online secara tepat ke data yang tersimpan padadatabase.
7)     Struktur yang sederhana dengan bahasa pemrograman yang mengizinkan pemakai melakukan pemrosesan khusus, waktu kejadian, prosedur otomatis dan lain-lain.

c.  Pengujian Sistem
Paket software prototipe diuji, diimplementasikan, dievaluasi dan dimodifikasi berulang-ulang hingga dapat diterima pemakainya (O'Brien, 2005). Pengujian sistem bertujuan menemukan kesalahan-kesalahan yang terjadi pada sistem dan melakukan revisi sistem. Tahap ini penting untuk memastikan bahwa sistem bebas dari kesalahan (Mulyanto, 2009).
Menurut Sommerville (2001) pengujian sistem terdiri dari :
1)     Pengujian unit untuk menguji komponen individual secara independen tanpa komponen sistem yang lain untuk menjamin sistem operasi yang benar.
2)     Pengujian modul yang terdiri dari komponen yang saling berhubungan.
3)     Pengujian sub sistem yang terdiri dari beberapa modul yang telah diintegrasikan.
4)     Pengujian sistem untuk menemukan kesalahan yang diakibatkan dari interaksi antara subsistem dengan interfacenya serta memvalidasi persyaratan fungsional dan non fungsional.
5)     Pengujian penerimaan dengan data yang dientry oleh pemakai dan bukan uji data simulasi.
6)     Dokumentasi berupa pencatatan terhadap setiap langkah pekerjaan dari awal sampai akhir pembuatan program.
Pengujian sistem informasi berbasis web dapat menggunakan teknik dan metode pengujian perangkat lunak tradisional. Pengujian aplikasi web meliputi pengujian tautan, pengujian browser, pengujian usabilitas, pengujian muatan, tegangan dan pengujian malar  (Simarmata, 2009).
Penerimaan pengguna (user) terhadap sistem dapat dievaluasi dengan mengukur kepuasan user terhadap sistem yang diujikan. Pengukuran kepuasan meliputi tampilan sistem, kesesuaian dengan kebutuhan user, kecepatan dan ketepatan sistem untuk menghasilkan informasi yang diinginkan user. Ada beberapa model pengukuran kepuasan user terhadap sistem, diantaranya adalahTechnology Acceptance Model (TAM), End User Computing (EUC) Satisfaction, Task Technology Fit (TTF) Analysis dan  Human Organizational Technology (HOT) Fit Model.
Salah satu model pengukuran yang telah diterjemahkan ke dalam beberapa bahasa berbeda dan tidak menunjukkan perbedaan hasil pengukuran yang signifikan adalah End User Computing (EUC) Satisfaction. Model ini menekankan kepuasan user terhadap aspek teknologi meliputi aspek isi, keakuratan, format, waktu dan kemudahan penggunaan sistem (Chin & Mathew, 2000).

d.  Implementasi
Setelah prototipe diterima maka pada tahap ini merupakan implementasi sistem yang siap dioperasikan dan selanjutnya terjadi proses pembelajaran terhadap sistem baru dan membandingkannya dengan sistem lama, evaluasi secara teknis dan operasional serta  interaksi pengguna, sistem dan teknologi informasi.

4.      Kelebihan
Beberapa Keuntungan dari Prototyping: 
a.       Mengurangi waktu pengembangan.
b.      Mengurangi biaya pengembangan.
c.       Membutuhkan keterlibatan pengguna.
d.      Pengembang menerima umpan balik pengguna terukur.
e.       Memfasilitasi implementasi sistem karena pengguna tahu apa yang diharapkan.
f.        Hasil di kepuasan pengguna yang lebih tinggi.
g.      Menghadapkan para pengembang untuk potensi perangkat tambahan sistem yang akan datang.

5.      Kekurangan
Beberapa Kerugian dari Prototyping: 
a.       Dapat menyebabkan analisis cukup.
b.      Pengguna mengharapkan kinerja sistem utama untuk menjadi sama dengan prototipe.
c.       Pengembang dapat menjadi terlalu melekat pada prototipe mereka
d.      Dapat menyebabkan sistem menjadi kiri belum selesai dan / atau diterapkan sebelum mereka siap.
e.       Kadang-kadang mengarah ke dokumentasi lengkap.
f.        Jika prototipe perangkat lunak yang canggih dipekerjakan, manfaat penghematan waktu prototipe bisa hilang.


C.      ITERATVE DEVELOPMENT
1.      Penjelasan
Metode yang merupakan pengembangan dari prototyping model dan digunakan ketika requirement dari software akan terus berkembang dalam tahapan-tahapan pengembangan aplikasi tersebut. Sedikit pengertian tentang requirement software dari developer yang diterapkan pada tahap pertama iterasi, akan mendapatkan tanggapan dari user. Ketika requirement menjadi jelas, tahapan iterasi selanjutnya akan dilaksanakan.

2.       Diagram



3.      Proses/Cara Kera Kerja
1)      Mendefinisikan tujuan dan kebutuhan bisnis, mengembangkan desain konseptual, rancangan konsep, rencana pengujian, dan analis terhadap resiko dengan melibatkan pemakai.
2)      Mendefinisikan kebutuhan sistem, mengembangkan desail logikal, mengkompilasi (software-build) rancangan awal, mengevaluasi hasil dengan melibatkan pemakai.
3)      Mendefinisikan kebutuhan subsistem, menghasilkan desain fisikal, mengkompilasi rancangan berikutnya, mengevaluasi hasil dengan melibatkan pemakai.
4)      Mendefinisikan kebutuhan setiap unit, menghasilkan desain akhir, mengkompilasi rancangan akhir.


4.      Kelebihan
Kelebihan dari Iterative model:
a.       User dapat mencoba sistem yg sudah dikembangkan dan kemudian dapat memberikan masukkan > keterlibatan user semakin intens dampak positif dalam pengembangan
b.      Prototype relatif lebih mudah dibangun dan tidak memerlukan waktu yang lama
c.       Dengan prototype, kesalahan & kelalaian dalam pengembangan dapat segera diketahui



5.      Kekurangan
Kelemahan dari Iterative model
a.       Setiap iterasi bergantung prototype sebelumnya solusi final umumnya terjadi apabila ada perbedaan yg nyata pada prototype sebelumnya
b.      Formal end-of-phasemungkin tidak terjadi, karena sangat sulit menentukan scope dari suatu prototype > proyek tidak pernah selesai
c.       Dokumentasi seringkali tdk lengkap > fokus pada pembuatan prototype
d.      Isu2 mengenai system backup & recovery, system performance dan system security, kurang/tidak diperhatikan dan sering terlupakan


D.      RATIONAL UNFIED PROSES
1.      Penjelasan
Rational Unified Process (RUP) adalah salah satu proses yang ada di Software Enginering atau Rekayasa Perangkat Lunak, yang didalamnya terdapat sebuah proses dimana Software itu dibuat dengan mengunakan metode atau cara yang terstruktur didalam sebuah tim atau organisasi, dengan tujuan menghasilkan produk software yang bermutu tinggi, tetntunya dalam schedule dan badget yang telah disepakati.


2.       Diagram

3.      Proses/Cara Kera Kerja
Proses Kerja Rational Unified Process
Tahap (phases) pelaksanaan pengembangan pada RUP meliputi:
1.    Permulaan (inception)
   Tahap inception fokus pada penentuan manfaat perangkat lunak yang harus dihasilkan, penetapan proses-proses bisnis (business case), dan perencanaan proyek.
2.    Pemerincian (elaboration)
Tahap untuk menentukan use case (set of activities) dari perangkat lunak berikut rancangan arsitekturnya.
3.    Konstruksi (construction)
Membangun produk perangkat lunak secara lengkap yang siap diserahkan kepada pemakai.
4.    Transisi (transition)
Menyerahkan perangkat lunak kepada pemakai, mengujinya di tempat pemakai, dan memperbaiki

4.      Kelebihan
a.   Menyediakan akses yang mudah terhadap pengetahuan dasar bagi anggota tim.
b.   Menyediakan petunjuk bagaimana menggunakan UML secara efektif.
c.   Mendukung proses pengulangan dalam pengembangan software.
d.   Memungkinkan adanya penambahan-penambahan pada proses.
e.   Memungkinkan untuk secara sistematis mengontrol perubahan- perubahan yangterjadi pada software selama proses pengembangannya.
f.    Memungkinkan untuk menjalankan test case dengan menggunakan Rational TestManager Tool

5.      Kekurangan
Kekurangan rational unfied proses ini hanya dapat digunakan pada pengembangan perangkat lunak yangberorientasi objek dengan berfokus pada UML (Unified Modeling Language).


E.       TIME BOXING MODEL

1.      Penjelasan
Time boxing adalah proses menunda fitur untuk versi aplikasi di masa mendatang untuk melengkapi versi saat ini sebagai ketepatan waktu.Ketepatan waktu merupakan aspek penting dari RAD, karena tanpa itu ruang lingkup dapat mengancam untuk memperpanjang iterasi pembangunan, sehingga membatasi umpan balik dari klien, meminimalkan manfaat dari pembangunan berulang, dan berpotensi mengembalikan proses kembali ke pendekatan metodologi air terjun.

2.      Diagram






3.      Proses/Cara Kera Kerja
Timeboxing model menentukan jangka waktu tertentu yang dialokasikan untuk menyelesaikan berbagai macam tugas. Apabila waktu yang ditentukan tersebut selesai, maka pembangunan sistem akan pindah ke tugas berikutnya, dengan harapan bahwa sebagian besar dari critical work telah berhasil diselesaikan sebelum waktu keseluruhan berakhir.
4.      Kelebihan
1.    Mempercepat proses pembangunan dan memperpendek waktu pengiriman
2.    Nah cocok untuk mengembangkan proyek-proyek dengan sejumlah fitur dalam periode waktu yang singkat.

5.      Kekurangan
1.    Manajemen proyek menjadi lebih kompleks.
2.    Tidak cocok untuk proyek-proyek di mana seluruh pekerjaan pembangunan tidak dapat dibagi menjadi beberapa iterasi hampir, durasi yang sama.


F.       EXTREME PROGRAMING AND AGLIE PROSES

Agile Process merupakan sekelompok aktivitas pembangunan perangkat lunak secara iteratif yang menekankan pada aktivitas konstruksi (Desai & Koding). Agile Process mengeliminasi sebagian besar waktu untuk melakukan perencanaan sitem dan berusaha sebisa mungkin mematuhi jadwal deliver system yang telah dijanjikan. Requirements yang dibutuhkan secara langsung di – drive oleh pelanggan itu sendiri, dan apabila terjadi perubahan terhadap requirments tersebut, pengembang dituntut mampu beradaptasi dengan perubahan yang terjadi. Extreme Programming termasuk pendekatan Agile process.

1.      Penjelasan
Extreme Programming (XP) merupakan salah satu metodologi dalam rekayasa perangkat lunak dan juga merupakan satu dari beberapa agile software development methodologies yang berfokus pada coding sebagai aktivitas utama di semua tahap pada siklus pengembangan perangkat lunak (software development lifecycle). Metodologi ini mengedepankan proses pengembangan yang lebih responsive terhadap kebutuhan customer (”agile”) dibandingkan dengan metode-metode tradisional sambil membangun suatu software dengan kualitas yang lebih baik.
Extreme Programming muncul menawarkan sebuah disiplin baru dalam pengembangan software secara agile. Nilai dasar yang terkandung di dalam Extreme Programming adalah: Komunikasi (Communication), Kesederhanaan (Simplicity), Umpan balik (Feedback) Keberanian (Courage) dan menghormati (Respect).



2.      Diagram

3.      Proses/Cara Kera Kerja
Ø Perencanaan XP: 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. Periksa dan pertimbangkan resiko
Ø  Desain XP berprinsip: sederhana memanfaatkan kartu CRC (Class-Responsibility-Collaborator) untuk identifikasi dan mengatur class-class di konsep OO. Jika temui kesulitan, prototype dibangun (ini namanya spike solution). Lakukan refactoring, yaitu mengembangkan desain dari program setelah ditulis.
Ø  Pengkodean XP: siapkan unit test sebelum pengkodean dipakai sebagai fokus pemrogram untuk membuat program. Pair programming dilakukan untuk real time program solving dan real time quality assurance
Ø  Pengujian XP: menggunakan unit test yang dipersiapkan sebelum pengkodean.

4.      Kelebihan
Keuntungan XP:
a.       Menjalin komunikasi yang baik dengan client.
b.      Meningkatkan komunikasi dan sifat saling menghargai antar developer.

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


Tidak ada komentar:

Poskan Komentar