Selasa, 26 Agustus 2014

Studi Kasus: Pengembangan Software

Apa kabarnya nih?



Berhubung belum ada admin lain yang aktif dan belum ada pewaris blog ini buat angkatan 48, 49, & 50 Ekstrakurikuler TIK SMP Negeri 1 Padalarang dan berhubung ada tugas dari sekolah, ngeblog lagi deh disini (hehe~)

Sherli mana Sherli? Katanya mau jadi admin blog :(

OK langsung saja~ disini saya akan membahas studi kasus tentang pengembangan software dengan metode "Waterfall"

Apa itu Waterfall?

Buat yang belum tau, waterfall adalah suatu metodologi pengembangan perangkat lunak yang mengusulkan pendekatan kepada perangkat lunak sistematik dan sekuensial yang mulai pada tingkat kemajuan sistem pada seluruh analisis, design, kode, pengujian dan pemeliharaan.


Selanjutnya, Langkah-langkah yang harus dilakukan pada metodologi Waterfall adalah sebagai berikut:

1. Analisis kebutuhan perangkat lunak
Proses pengumpulan kebutuhan diintensifkan dan difokuskan, khususnya pada perangkat lunak. Untuk memahami sifat program yang dibangun, rekayasa perangkat lunak (analisis) harus memahami domain informasi, tingkah laku, unjuk kerja dan antar muka (interface) yang diperlukan. Kebutuhan baik untuk sistem maupun perangkat lunak di dokumentasikan dan dilihat dengan pelanggan.

2. Desain
Desain perangkat lunak sebenarnya adalah proses multi langka yang berfokus pada empat atribut sebuah program yang berbeda; struktur data, asitektur perangkat lunak, representasi interface dan detail (algoritma) prosedural. Proses desain menerjemahkan syarat/kebutuhan kedalam sebuah representasi perangkat lunak yang dapat di perkirakan demi kualitas sebelum dimulai pemunculan kode. Sebagaimana persyaratan, desain didokumentasikan dan menjadi bagian dari konfigurasi perangkat lunak.

3. Generasi Kode
Desain harus diterjemahkan dalam bentuk mesin yang bisa di baca. Langkah pembuatan kode melakukan tugas ini. Jika desain dilakukan dengan cara yang lengkap, pembuatan kode dapat diselesaikan secara mekanis.

4. Pengujian 
Proses pengujian dilakukan pada logika internal untuk memastikan semua pernyataan sudah diuji. Pengujian eksternal fungsional untuk menemukan kesalahan-kesalahan dan memastikan bahwa input akan memberikan hasil yang aktual sesuai yang dibutuhkan

5. Pemeliharaan
Perangkat lunak yang sudah disampaikan kepada pelanggan pasti akan mengalami perubahan. Perubahan tersebut bisa karena mengalami kesalahan karena perangkat lunak harus menyesuaikan dengan lingkungan (periperal atau sistem operasi baru) baru, atau karena pelanggan membutuhkan perkembangan fungsional atau unjuk kerja.


Studi Kasus


METODE PENELITIAN
Gambaran umum mengenai langkah-langkah yang dilakukan dalam penelitian berdasarkan urutan pelaksanaannya. Penentuan metodologi penelitian ini perlu dilakukan terlebih dahulu sehingga arah dan pelaksanaan kegiatan penelitian yang akan dilakukan menjadi jelas.





Analisis sistem perlu dilakukan untuk mengetahui kegiatan dan komponen apa saja yang berkaitan dengan sistem perpustakaan SMKN 1 Cimahi sebelum dilakukan pemodelan sistem. Pada proses perpustakaan SMKN 1 Cimahi terdapat 2 entitas internal, yaitu siswa/guru, kepala sekolah sedangkan entitas luar yang mempengaruhi perpustakaan adalah sistem persediaan buku. Untuk lebih jelasnya kegiatan dan komponen yang terlibat dalam proses perpustakaan dapat digambarkan diagram konteks sebagai berikut:




Kesimpulan
Berdasarkan kajian dan teori yang dimiliki, serta dari hasil analisis terhadap sistem informasi perpustakaan yang sedang berjalan di SMKN 1 Cimahi, maka kesimpulan yang dapat diambil yaitu:
- Pada proses transaksi pada sistem sebelumnya terdapat kesulitan dalam pendataan buku, belum tersedianya pemberian denda yang jelas dan lamanya waktu yang digunakan dalam proses peminjaman maupun pengembalian.
- Memudahkan dalam pembuatan laporan yang akan dibuat oleh staf yang akan
dilaporkan ke kepala sekolah.


Pengembangan Perangkat Lunak (Prototyping Model)
Pendahuluan
Pengembangan perangkat lunak (juga disebut pengembangan aplikasi, desain perangkat lunak, merancang perangkat lunak, pengembangan aplikasi perangkat lunak, pengembangan aplikasi perusahaan, atau pengembangan platform) adalah pengembangan suatu produk perangkat lunak. Istilah "pengembangan perangkat lunak" bisa dipakai untuk menyebut aktivitas pemrograman komputer, yaitu proses menulis dan mengelola kode sumber, namun dalam artian luas istilah ini mencakup semua hal yang terlibat antara penciptaan perangkat lunak yang diinginkan melalui pewujudan akhir perangkat lunak, idealnya dalam proses yang terencana dan terstruktur. Karena itu, pengembangan perangkat lunak bisa mencakup penelitian, pengembangan baru, purwarupa, modifikasi, pemakaian kembali, rekayasa ulang, pengelolaan, atau aktivitas lain yang menghasilkan produk perangkat lunak.

Perangkat lunak bisa dikembangkan untuk berbagai tujuan, tiga tujuan paling umum adalah memenuhi kebutuhan klien/bisnis tertentu (perangkat lunak kustom), memenuhi persepsi kebutuhan sejumlah penggunaa potensial (perangkat lunak komersial dan terbuka), atau memenuhi kebutuhan pribadi (misalnya seorang ilmuwan menulis perangkat lunak untuk mengotomasikan sebuah tugas yang rumit). Pengembangan perangkat lunak tertanam adalah pengembangan perangkat lunak tertanam seperti yang dipakai untuk mengontrol produk konsumen, membutuhkan proses pengembangan yang terintegrasikan dengan pengembangan produk fisik yang dikontrol.

Perlunya pengawasan kualitas yang lebih baik pada proses pengembangan perangkat lunak menciptakan disiplin teknik perangkat lunak, yang bertujuan menerapkan pendekatan sistematis yang tercantum dalam paradigma teknik hingga proses pengembangan perangkat lunak.

Model Prototyping pada Rekayasa Perangkat Lunak
Sebuah prototipe adalah bagian dari produk yang mengekspresikan logika maupun fisik antarmuka eksternal yang ditampilkan. Konsumen potensial menggunakan prototipe dan menyediakan masukan untuk tim pengembang sebelum pengembangan skal besar dimulai. Melihat dan mempercayai menjadi hal yang diharapkan untuk dicapai dalam prototipe. Dengan menggunakan pendekatan ini, konsumen dan tim pengembang dapat mengklarifikasi kebutuhan dan interpretasi mereka.
Prototyping perangkat lunak (software prototyping) atau siklus hidup menggunakan protoyping (life cycle using prototyping) adalah salah satu metode siklus hidup sistem yang didasarkan pada konsep model bekerja (working model). Tujuannya adalah mengembangkan model menjadi sistem final. Artinya sistem akan dikembangkan lebih cepat dari pada metode tradisional dan biayanya menjadi lebih rendah. Ada banyak cara untuk memprotoyping, begitu pula dengan penggunaannya. Ciri khas dari metodologi ini adalah pengembang sistem (system developer), klien, dan pengguna dapat melihat dan melakukan eksperimen dengan bagian dari sistem komputer dari sejak awal proses pengembangan.

Dengan prototype yang terbuka, model sebuah sistem (atau bagiannya) dikembangkan secara cepat dan dipoles dalam diskusi yang berkali-kali dengan klien. Model tersebut menunjukkan kepada klien apa yang akan dilakukan oleh sistem, namun tidak didukung oleh rancangan desain struktur yang mendetil. Pada saat perancang dan klien melakukan percobaan dengan berbagai ide pada suatu model dan setuju dengan desain final, rancangan yang sesungguhnya dibuat tepat seperti model dengan kualitas yang lebih bagus.

Protoyping membantu dalam menemukan kebutuhan di tahap awal pengembangan,terutama jika klien tidak yakin dimana masalah berasal. Selain itu protoyping juga berguna sebagai alat untuk mendesain dan memperbaiki user interface – bagaimana sistem akan terlihat oleh orang-orang yang menggunakannya.

Salah satu hal terpenting mengenai metodologi ini, cepat atau lambat akan disingkirkan dan hanya digunakan untuk tujuan dokumentasi. Kelemahannya adalah metode ini tidak memiliki analisa dan rancangan yang mendalam yang merupakan hal penting bagi sistem yang sudah kokoh, terpercaya dan bisa dikelola. Jika seorang pengembang memutuskan untuk membangun jenis prototipe ini, penting untuk memutuskan kapan dan bagaimana ia akan disingkirkan dan selanjutnya menjamin bahwa hal tersebut telah diselesaikan tepat pada waktunya.

Tahapan-tahapan dalam Prototyping adalah sebagai berikut:

1. Pengumpulan kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.

2. Membangun prototyping
Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan format output).

3. Evaluasi protoptyping
Evaluasi ini dilakukan oleh pelanggan apakah prototyping yang sudah dibangun sudah sesuai dengan keinginann pelanggan. Jika sudah sesuai maka langkah 4 akan diambil. Jika tidak prototyping direvisi dengan mengulang langkah 1, 2 , dan 3.

4. Mengkodekan sistem
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai.

5. Menguji sistem
Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, harus dites dahulu sebelum digunakan. Pengujian ini dilakukan dengan White Box, Black Box, Basis Path, pengujian arsitektur dan lain-lain.

6. Evaluasi Sistem
Pelanggan mengevaluasi apakah sistem yang sudah jadi sudah sesuai dengan yang diharapkan. Jika ya, langkah 7 dilakukan; jika tidak, ulangi langkah 4 dan 5.

7. Menggunakan sistem

Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.


Model pengembangan ini (Prototyping Model) memiliki beberapa kelebihan, diantaranya :

1. Adanya komunikasi yang baik antara pengembang dan pelanggan
2. Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan
3. Pelanggan berperan aktif dalam pengembangan system
4. Lebih menghemat waktu dalam pengembangan system
5. Penerapan menjadi lebih mudah karena pemakai mengetahui apa yang diharapkannya membuat klien mendapat gambaran awal dari prototype
6. Membantu mendapatkan kebutuhan detil lebih baik


Implementasi Prototyping Model
Metode prototyping sebagai suatu paradigma baru dalam pengembangan sistem informasi manajemen, tidak hanya sekedar suatu efolusi dari metode pengembangan sistem informasi yang sudah ada, tetapi sekaligus merupakan refolusi dalam pengembangan sistem informasi manajemen. Metode ini dikjatakan refolusi karena merubah proses pengembangan sistem informasi yang lama (SDLC).

Menurut literatur, yang dimaksud dengan prototipe (prototype) adalah ”model pertama”, yang sering digunakan oleh perusahaan industri yang memproduksi barang secara masa. Tetapi dalam kaitannya dengan sistem informasi definisi kedua dari Webster yang menyebutkan bahwa ”prototype is an individual that exhibits the essential peatures of later type”, yang bila diaplikasikan dalam pengembangan sistem informasi manajemen dapat berarti bahwa Prototipe tersebut adalah sistem informasi yang menggambarkan hal-hal penting dari sistem informasi yang akan datang. Prototipe sistem informasi bukanlah merupakan sesuatu yang lengkap, tetapi sesuatu yang harus dimodifikasi kembali, dikembangkan, ditambahkan atau digabungkan dengan sistem informasi yang lain bila perlu.

Dalam beberapa hal pengembangan software berbeda dengan produk-produk manufaktur, setiap tahap atau fase pengembangan sistem informasi merupakan bagian yang tidak terpisahkan dari seluruh proses yang harus dilakukan. Proses ini umumnya hanya untuk satu produk dan karakteristik dari produk tersebut tidak dapat ditentukan secara pasti seperti produk manufaktur, sehingga penggunaan ”model pertama” bagi pengembangan software tidaklah tepat. Istilah prototyping dalam hubungannya dengan pengembangan software sistem informasi manajemen lebih merupakan suatu proses bukan prototipe sebagai suatu produk.

Sebagai contoh, pembuat mobil dapat mengembangkan sebuah purwarupa yang dapat digunakan dalam lintasan pengujuan khusus dan kemudian ditampilkan dalam showroom. Informasi yang diperoleh dari perlakuan seperti itu dapat digunakan untuk meningkatkan desain sebelum implementasi/produksi dilakukan secara massal.


Karakteristik Metode Prototyping
Ada empat langkah yang menjadi karakteristik metode prototyping yaitu :
1. Pemilahan Fungsi
2. Penyusunan Sistem Informasi
3. Evaluasi
4. Penggunaan Selanjutnya


Incremental Model
Model incremental menggabungkan elemen-elemen model sekuensial linier (diimplementasikan secara berulang) dengan filosofi prototype interatif. Model ini memakai urutan-urutan linier di dalam model yang membingungkan, seiring dengan laju waktu kalender. Setiap urutan linier menghasilkan pertambahan perangkat lunak yang kemudian dapat disampaikan kepada pengguna. Model ini juga merupakan perbaikan dari model waterfall dan sebagai standar pendekatan top-down. Ide dasar dari model ini adalah membangun software secara meningkat (increment) berdasarkan kemampuan fungsional.

Pada saat model incremental (pertambahan) ini digunakan, pertambahan pertama sering merupakan produk inti (core product), yaitu sebuah model pertambahan yang dipergunakan, tetapi beberapa muka tambahan (beberapa diketahui dan beberapa tidak) tetap tidak disampaikan. Produk inti tersebut dipergunakan oleh pelanggan (atau mengalami pengkajian detail). Sebagai hasil dari pemakaian dan / atau evaluasi maka dikembangkan rencana bagi pertambahan selanjutnya. Rencana tersebut menekankan modifikasi produk inti untuk secara lebih baik memenuhi kebutuhan para pelanggan dan penyampaian fitur serta fungsional tambahan. Proses ini mengikuti penyampaian setiap pertambahan sampai bisa menghasilkan produk yang lengkap.

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 dan Kekurangan Incremental Model
Kelebihan:
1. Merupakan model dengan manajemen yang sederhana.
2. 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.
3. Pelanggan dapat memakai inkremen yang pertama sebagai bentuk prototype dan mendapatkan pengalaman yang dapat menginformasikan persyaratan untuk inkremen system berikutnya. 
4. Resiko untuk kegagalan proyek secara keseluruhan lebih rendah. Walaupun masalah dapat ditemukan pada beberapa inkremen, bisa saja beberapa inkremen diserahkan dengan sukses kepada pelanggan. 
5. 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 :
1. Inkremen harus relative lebih kecil (tidak lebih dari 20.000 baris kode) dan setiap inkremen harus menyediakan sebagian dari fungsional system.
2. Adanya kesulitan untuk memetakan persyaratan pelanggan pada inkremen dengan ukuran yang benar. Tiap bagian tidak dapat diintegrasikan.


Ireactive-Incremental (Spiral) Model
Proses digambarkan sebagai spiral. Setiap loop mewakili satu fase dari software process. Loop paling dalam berfokus pada kelayakan dari sistem, loop selanjutnya tentang definisi dari kebutuhan, loop berikutnya berkaitan dengan desain sistem dan seterusnya. Setiap Loop dibagi menjadi beberapa sektor, yaitu :

1. Objective settings (menentukan tujuan)
Menentukan tujuan dari fase yang ditentukan. Batasan-batasan pada proses dan produk sudah diketahui. Perencanaan sudah disiapkan. Resiko dari proyek sudah diketahui. Alternatif strategi sudah disiapkan berdasarkan resiko-resiko yang diketahui, dan sudah direncanakan.

2. Risk assessment and reduction (Penanganan dan pengurangan resiko)
Setiap resiko dianalisis secara detil pada sektor ini. Langkahlangkah penanganan dilakukan, misalnya membuat prototype untuk mengetahui ketidakcocokan kebutuhan.

3. Development and Validation (Pembangunan dan pengujian)
Setelah evaluasi resiko, maka model pengembangan sistem dipilih. Misalnya jika resiko user interface dominan, maka membuat prototype User Interface. Jika bagian keamanan yang bermasalah, maka

4. Planning
Proyek dievaluasi atau ditinjau-ulang dan diputuskan untuk terus ke fase loop selanjutnya atau tidak. Jika melanjutkan ke fase berikutnya rencana untuk loop selanjutnya.

5. Menggunakan model formal dengan perhitungan matematis, dan jika masalahnya adalah integrasi sistem model waterfall lebih cocok.


Kelebihan dan Kekurangan Spiral Model
Kelebihan :
1. Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak komputer.
2. Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar.
3. Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses.
4. Menggunakan prototipe sebagai mekanisme pengurangan resiko dan pada setiap keadaan di dalam evolusi produk.
5. Tetap mengikuti langkah-langkah dalam siklus kehidupan klasik dan memasukkannya ke dalam kerangka kerja iteratif.
6. Membutuhkan pertimbangan langsung terhadp resiko teknis sehingga mengurangi resiko sebelum menjadi permasalahan yang serius.


Kekurangan :
1. Sulit untuk menyakinkan pelanggan bahwa pendekatan evolusioner ini bisa dikontrol.
2. Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang serius jika resiko mayor tidak ditemukan dan diatur.
3. Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang absolut.


Pengembangan sistem informasi dapat dikategorikan dalam tiga kelompok besar. Kelompok pertama adalah proyek yang bersifat pembangunan jaringan infrastruktur teknologi informasi (mulai dari pengadaan dan instalasi komputer sampai dengan perencanaan dan pengembangan infrastruktur jaringan LAN dan WAN).

Kelompok kedua adalah implementasi dari paket program aplikasi yang dibeli di pasaran dan diterapkan di perusahaan, mulai dari perangkat lunak kecil seperti produk-produk ritel Microsoft sampai dengan aplikasi terintegrasi yang berbasis teknologi tinggi.

Kelompok ketiga adalah perencanaan dan pengembangan aplikasi yang dibuat sendiri secara khusus (customized software), baik oleh internal organisasi maupun kerja sama dengan pihak luar, seperti konsultan dan software house.


Pengembangan Software dengan model Evolutionary


Pengembangan Eksplorasi: 
1. Sistem berubah dengan adanya fitur-fitur tambahan dari user.
2. Prototype yang dapat dibuang (Throw-Away) 
3. Memahami persyaratan user untuk mendapatkan definisi persyaratan yang lebih baik.


Mungkin hanya sekian yang bisa saya sampaikan, semoga bermanfaat bagi semua pembaca~


Regards, @BoysWhoScream

√ Description : Studi Kasus: Pengembangan Software
√ Rating : 4.5
√ Reviewer : Rachmansyah Adhi Widhianto
√ Item Reviewed : Studi Kasus: Pengembangan Software

Written By : Rachmansyah Adhi Widhianto // 18.15
Tag :

0 komentar:

Posting Komentar

 

Follow Us