Senin, 29 September 2014

MODEL PROSES PERANGKAT LUNAK

BAB 2
MODEL PROSES PERANGKAT LUNAK

1.      Proses Perangkat Lunak
Proses Perangkat Lunak adalah Sekumpulan aktifitas yang memiliki tujuan untuk pengembangan ataupun evolusi perangkat lunak
Aktifitas generic dalam semua proses perangkat lunak adalah:
*      Initial – Proses perangkat lunak yang ditandai sebagai ad hoc
*      Repeatable – Proses-proses manajemen proyek dasar dibangun untuk menelusuri masalah biaya, jadwal dan fungsionalitas. Disipin proses yang perlu ada untuk mengulangi sukses-sukses proyek yang terdahulu dengan penerapan yang sama
*      Defined – Proses perangkat lunak, baik untuk aktifitas manajemen atau perekayasaan didokumentasikan, distandarkan dan diintegrasikan ke dalam proses perangkat lunak organisasi besar. Semua proyek menggunakan versi proses organisasi yang didokumentasikan dan disahkan untuk pengembangan dan pemeliharaan perangkat lunak
*      Managed – Pengukuran detail terhadap proses perangkat lunak dan kualitas produksi dikumpulkan. Produk dan proses perangkat lunak dipahami secara kuantitatif dan dikontrol dengan menggunakan pengukuran secara detail
*      Optimizing – Pertambahan proses yang terus menerus dimungkinkan oleh umpan balik kuantitatif dari proses dan dari gagasan inovatif pengujian serta teknologi


2.      Model Proses Perangkat Lunak
Model Proses Perangkat Lunak merupakan  suatu representasi proses perangkat lunak yang disederhanakan, dipresentasikan dan perspektif khusus
Menurut Ian Somerville, Model proses secara umum terdiri dari:
·         Pendekatan Model Proses, seperti model sekuensial linier atau Waterfall, model prototype, model RAS, dimana memisahkan dan membedakan antara spesifikasi dan pengembangan
·         Pengembangan yang berevolusi, Pendekatan yang  melanjutkan Aktifitas satu dan yang lainnya dari Spesifikasi dan pengembangan serta validasi secara cepat

·         Pengembangan sistem Formal, Pendekatan aktifitas berdasarkan suatu model sistem matematika yang ditransformasikan ke implementasi,
Pengembangan Sstem berbasis Re-use (penggunaan ulang) komponen, sistem dibangun dari komponen yang sudah ada dengan fokus integrasi system

3.      Model Sekuensial Linier (Waterfall)
Sekuensial Linier mengusulkan sebuah pendekatan kepada perkembangan perangkat lunak yang sistematik dan sekuensial yang mulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, pengujian dan pemeliharaan, 


Gambar Fase Lingkaran pemecahan masalah


4.      MODEL RAD
Rapid Application Development (RAD) adalah sebuah model proses perkembangan perangkat lunak sekuensial linier yang menekankan siklus perkembangan yang sangat pendek

Pengujian dan Turnover. Karena proses RAD menekankan pada pemakaian kembali, banyak komponen program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tetapi komponen baru harus diuji dan semua interface harus dilatih secara penuh.

Gambar 2.3. Model RAD (Rapid Application Development)



Keuntungan:
·         Waktu pembuatan yang pendek
Pengurangan biaya supaya software digunakan kemabali dan konstruksi dasar komponen

5.      MODEL PROTOTIPE
Model prototipe ini dimulai dengan pengumpulan kebutuhan. Pengembang dan pelanggan bertemu dan mendefinisikan obyektif keseluruhan dari perangkat lunak, dan  mengidentifikasi segala kebutuhan yang diketahui.

Gambar Model Prototipe

Keuntungan:
o    Mudah dan cepat identifikasi kebutuhan customer
o    Customer mengecek protipe di awal tingkatan dan menyediakan input dan umpan baliknya.
o    Persetujuan yang baik dengan mengikuti kasus:
·           Customer tidak bisa menyediakn kebutuhan yang jelas.
·           Sangat rumit interaksi sistem dari pengguna
·           Menggunakan teknologi baru, hardware dan algoritma

6.      Model Rakitan Komponen
Menggabungkan berbagai karakteristik dari spiral model. Pembuatan aplikasi dengan pendekatan model ini dibangun dari komponen-komponen perangkat lunak yang sudah dipaketkan sebelumnya dengan cakupan aktivitas sebagai berikut:
·         Mengidentifikasi calon-calon komponen (kelas objek)
·         Melihat komponen-komponen dalam pustaka
·         Mengekstrak komponen jika ada
·         Membangun komponen jika tidak ada
·         Menyimpan komponen baru pada pustaka
·         Mengkontruksi iterasi ke-n dari sistem

Gambar Model Rakitan Komponen

7.      Spiral Model
Model Spiral Merupakan model proses perangkat lunak yang memadukan wujud pengulangan dari model prototyping dengan aspek pengendalian dan sistematika dari linear sequential model.
Spiral model dibagi menjadi 6 aktivitas kerangka kerja sebagai berikut:
1. Komunikasi dengan pemakai
2. Perencanaan
3. Analsis resiko
4. Rekayasa
5. Konstruksi dan pelepasan
6. Evaluasi

Kelemahan spiral model:
1.Memerlukan tenaga ahli untuk memperkirakan resiko, dan harus mengandalkannya supaya sukses.
2. Sulit untuk meyakinkan pemakai (saat situasi kontrak) bahwa penggunaan pendekatan ini akan dapat dikendalikan.
3. Belum terbukti apakah metode ini cukup efisien karena usianya yang relatif baru.

Gambar Model Spiral

8.      Model Perkembangan Konkuren
rekayasa konkuren juga disebut Model perkembangan konkuren. Model proses yang konkuren dapat disajikan secara skematis sebagai sederetan aktivitas teknik mayor, Contohnya aktivitas rekayasa yang dibatasi untuk model spiral dipenuhi dwengan melakukan prototyping, dan atau pemodelan analisis, spesifikasikebutuhan,dan rancangan

Gambar Model Perkembangan Konkuren

Referensi :
http://rekayasaperangkatlunak12.wordpress.com/2013/03/16/bab-ii/


Tugas
1.      Ada beberapa model proses yang dapat digunakan untuk mengembangkan perangkat lunak.  Jelaskan apa yang dimaksud dengan model-model proses berikut:
a. Waterfall
b. Prototyping
c. RAD
d. Incremental
e. Spiral
2.      Pada saat atau kondisi yang bagaimana masing-masing pendekatan tersebut digunakan untuk menyelesaikan pengembangan perangkat lunak? Berilah contoh untuk melengkapi jawaban anda!

Jawab :
1.      A. Waterfall : Model Waterfall adalah model yang paling lama dan banyak secara luas digunakan sebagai paradigma untuk rekayasa software
B.  Prototyping : Model ini perangkat lunak dikembangkan dalam suatu seri  incremental release
C. RAD : sebuah model proses perkembangan perangkat lunak sekuensial linier yang menekankan siklus perkembangan yang sangat pendek
D. Incremental : Merupakan kombinasi linear sequential model (diaplikasikan secara berulang) dan filosofi pengulangan dari prototyping model
E. Spiral : Model Spiral Merupakan model proses perangkat lunak yang memadukan wujud pengulangan dari model prototyping dengan aspek pengendalian dan sistematika dari linear sequential model

2.      A. Wterfall : Model pengembangan waterfall ini sangat cocok digunakan pada sudah jelas kebutuhannya pada saat awal pengembangan perangkat lunak. Sehingga akan lebih mudah untuk melanjutkan proses pengembangan ke tahap berikutnya. Dan akan meminimalisir tingkat kesalahan
B. Prototyping : Model ini tepat digunakan jika pihak client menginginkan prototype dari software dalam waktu yang singkat. Dan prototype inilah yang akan menjadi acuan dari client untuk memberikan data kebutuhan yang lebih lengkap pada pembuat software (developer).
C. RAD : RAD mengikuti tahapan pengembangan sistem sepeti umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada (reusable object) sehingga pengembang - pengembang tidak perlu membuat dari awal lagi dan waktu lebih singkat
D. incremental : metode incremental banyak digunakan untuk proyek dengan teknologi yang membutuhkan jadwal pengembangan yang panjang, manajemen sederhana serta resiko yang rendah, tahapan tahapan tersebut dilakukan secara berurutan.

E. Spiral : Model spiral menjadi pendekatan yang realistis bagi perkembangan system dan perangkat lunak skala besar. Karena perangkat lunak terus bekerja  selama proses bergerak, pengembang dan pemakai memahami, dan bereaksi lebih baik terhadap resiko dari Setiap tingkat evolusi

Rabu, 17 September 2014

PERANGKAT LUNAK SEBAGAI PRODUK

REKAYASA PERANGKAT LUNAK

Rekayasa Perangkat Lunak adalah suatu disiplin rekayasa yang berkonsentrasi terhadap seluruh aspek.
Rekayasa perangkat lunak berasal dari 2 kata yaitu Software( Perangkat Lunak) dan Engineering (Rekayasa).
Perangkat Lunak (Software) adalah source code pada suatu program atau sistem. Perangkat lunak tidak hanya dokumentasi terhadap source code tapi juga dokumentasi terhadap sesuatu yang dibutuhkan selama pengembangan, instalasi, penggunaan dan pemeliharaan sebuah sistem.
Engineering atau Rekayasa adalah aplikasi terhadap pendekatan sistematis yang berdasar atas ilmu pengetahuan dan matematis serta aplikasi tentang produksi terhadap struktur,mesin, produk, proses atau sistem.

Mutu Perangkat Lunak
Terdapat 3 pihak (minimal) yang mempengaruhi mutu perangkat lunak yaitu
- Sponsor
Seseorang atau organisasi yang membiayai/membayar selama pengembangan atau perantaraan sistem software dan biasanya mempunyai respon terhadap pengembangan sistem software itu sendiri dengan melibatkan perhitungan biaya yang optimal.
- User
Setiap orang yang secara langsung berinteraksi terhadap eksekusi software, yang secara langsung memberi input ke komputer dan menggunakan/menikmati output dari komputer.
- Developer
Seseorang atau organisasi yang memberikan modifikasi dan memelihara terhadap error serta mengembangkan sistem software tersebut.

Gambar 1.1. Gambar Sisi Pandang dari komponen kategori terhadap Mutu Perangkat Lunak

SOFTWERE
Softwere adalah sekumpulan data elektronik yang disimpan dan diatur oleh komputer, data elektronik yang disimpan oleh komputer itu dapat berupa program atau instruksi yang akan menjalankan suatu perintah
Jenis perangkat lunak dibedakan menjadi 2 yaitu :
1.      Perangkat Lunak Generik (Generic Software)
Merupakan perangkat lunak yang berdiri sendiri (stand alone) dengan menggunakan standar tertentu yang diproduksi oleh organisasi pengembang perangkat lunak (vendor) dan  biasa dijual secara bebas dan siapapun dapat membeli. Contoh perangkat lunak generik antara Office Aplication (aplikasi perkantoran), Database Engine (mesin data), Graphic Package (paket pengolah grafik) , Programming Application (Paket Pemrograman)dan lain sebagainya.
2.      Perangkat Lunak Pesanan (Order Software)
Merupakan perangkat lunak yang dipesan oleh pelanggan tertentu kepada pengembang perangkat lunak (vendor)  untuk memenuhi kebutuhan fungsi tertentu yang dikehendaki pemesan. Penagkat lunak yang dipesan secara khusus ini biasanya ditujukan untuk mendukung proses bisnis, mengatur perangkat ektromekanik pada manufacture, system control suatu aktifitas khusus (misal pelabuhan udara, pengaturan lalullintas jalan raya),

Sedangkan bila dikelomppokkan berdasar penggunaannya dikelompokkan dalam 8 katagori, yaitu
1.      System Software
Perangkat lunak yang bertanggungjawab untuk mengendalikan, mengintegrasikan, dan mengelola komponen perangkat keras atau perangkat lunak  lainnya tanpa melihat jenjang dari perangkat lunak tersebut.Perangkat lunak ini pada umumnya  memiliki fungsi dasar sistem operasi  seperti menyalin (copy), memindahkan (transfer), menyimpan (save), menghapus (delete), mem-format, pengelolaan berkas (file manager), tek editor, pengendalian otentifikasi, pengendalian jaringan, pencetakkan (print), dan penggunaan sumberdaya yang terdapat pada perangkat keras lainnya.
2.      Real-time software
Perangkat lunak yang dgunakan un memonitor, meng-analisa, dan mengendalikan  tiap peristiwa yang terjadi secara langsung.Perangkat lunak ini menggumpulkan data tiap kejadian kemudian menganalisa dan menanggapi hasil analisa dengan mengirimnya pada perangkat yang lain, contoh perangkat lunak pendeteksi gempa, pendeteksi tsunami , pendeteksi gunung berapi dan yang lainnya.
3.      Business Software
Perangkat keras yang dipergunakan untuk mengelola kerumitan proses bisnis dalam organisasi, perangkat ini biasanya ter-integrasi satu dengan yang lainnya membentuk sebuah jejaring system dalam organisasi yang kemudian di dalam organisasi disebut Management Information System . Misal penggunaan sistem penjualan, pergudangan, penggajian, kepegawaian dan lain sebaginya.
4.      Engineering and Scientific software.
Perangkat keras yang disusun secara khusus mengikut sertakan berbagai rumus-rumas pada ilmu pengetahuan tertentu, perangkat lunak  ini bisanya dilakukan untuk proses simulasi suatu kejadian.
5.      Embedded software
Perangkat lunak yang dirancang khusus untuk piranti modern cerdas, dimana fungsi dari perangkat lunak ini sebagai pengendali terhadap peralatan tersebut , misal keypad pada perangkat rumah tangga, panel control mobil,  perangkat, instrument pemutus arus’ pada pembangkit listrik dan lain-lain
6.      Personal Software
Peran gkat lunak yang dibuat untuk membantu menyelesaikan/memenuhi pekerjaan manusia secara individual sebagai contoh memainkan music dan video, pekerjaan perkantoran, mengkoleksi database, berkomunikasi dengan komunitas tertentu dan berbagai keperluan lainnya.
7.      Web base software
Perangkat lunak yang dipergunakan untuk menjalankan bernagai perintah pada jejaring internet , berbagai format data dapat dikelola dengan menggunakan format HTML, PHP, ASP, ASPX.
8.      Artificial intelligence software
Perangkat lunak ini dibuat untuk menyelesaikan pekerjaan rumit dan non numerical algorithm, menggunakan metoda neumal network.



Mitos Perangkat Lunak
·      Mitos Manajemen Manajer yang bertanggung jawab terhadap masalah perangkat lunak, seperti juga manajer pada kebanyakan disiplin, sering mengalami tekanan karena masalah pengaturan keuangan, menjaga jadwal agar tidak kacau,dan peningkatan kualitas.
·      Mitos Pelanggan Pelanggan mempercayai mitos tentang perangkat lunak karena manajer dan para pelaksana yang bertanggung jawab atas masalah perangkat lunak hanya bekerja sedikit saja untuk memperbaiki kesalahan informasi. Mitos ini membawa kea rah pengharapan yang salah oleh pelanggan dan ketidak puasan pengembang.
·      Mitos para Praktisi Pemrograman dilihat sebagai sebuah karya seni

Krisis Perangkat Lunak
·         Masalah nyata yang sudah mengganggu perkembangan perangkat lunak
·         Serangkaian masalah yang terjadi dalam perkembangan perangkat lunak komputer.
·         Masalah yang ada tidak hanya terbatas pada perangkat lunak yang tidak berfungsi dengan baik tapi juga pada penderitaan yang melingkupi masalah-masalah yang berhubungan dengan bagaimana mengembangkan  perangkat lunak, bagaimana memelihara volume perangkat lunak yang sedang tumbuh dan bagaimana mengejar kebutuhan perangkat lunak lebih banyak lagi
·         Penyebab krisis atau penderitaan Perangkat lunak dapat ditelusuri dengan sebuah mitologi yang muncul selama masa sejarah awal perkembangan perangkat lunak.
·         Mitos perangkat lunak ini berbicara atas salah informasi dan keraguan. Masa sekarang kebanyakan kaum profesional memiliki banyak pengetahuan mengetahui berbagai mitos di bidang ilmu yang digelutinya (sikap yang salah yang menyebabkan masalah yang serius bagi manajer serta masyarakat teknis). Hal ini terlihat berbagai sisi pandang dari pihak Manajer/Sponsor, pelanggan atau Pengembang/Praktisi





Latihan Soal
1.      Sebutkan jenis perangkat lunak
2.      Bagaimana cara kamu mengatasi Mitos Perangkat Lunak untuk menghasilkan perangkat lunak yang bermutu
3.      Tulislah sebuah rangkuman karya tulis yang merangkum kemajuan terkini pada salah satu aplikasi perangkat lunak yang “memimpin”. Pilihan-pilihan potensial meliputi kecerdasan buatan, realitas virtual, jaringan syaraf tiruan.

Jawab :
1.      Perangkat Lunak Generik (Generic Software)
Perangkat Lunak Pesanan (Order Software)
2.      Bersikap selayaknya karena sikap yang salah yang menyebabkan masalah yang serius bagi manajer serta masyarakat teknisi, penyebabnya adalah sikap lama memang sangat sulit diubah, dan sisa-sisa mitos perangkat lunak masih tetap dipercaya.
3.      Jaringan syaraf tiruan
Jaringan syaraf tiruan adalah algoritma penyelesaian masalah komputasi yang prinsip kerjanya menirukan jaringan syaraf manusia. Meniru analogi jaringan syaraf manusia, jaringan syaraf tiruan terdiri dari interkoneksi beberapa lapisan neuron mulai dari neuron input sampai neuron output. Neuron input berfungsi untuk menerima masukan yang selanjutnya akan diproses dalam layer berikutnya. Masukan sering kali harus dibuat ternormalisasi dengan tujuan supaya error pada pemrosesan tidak menuju tidak berhingga. Pada proses pengolahan masukan di JST akan terjadi proses perkalian, penjumlahan dan penerapan fungsi aktifasi terhadap masukan sebuah node

Algoritma Jaringan Syaraf Backpropagation
Backpropagation merupakan algoritma pembelajaran yang terwarisi dan biasanya digunakan olehperceptron dengan banyak lapisan untuk mengubah bobot-bobot yang terhubung dengan neuron-neuron yang ada pada lapisan tersembunyinya. Algoritma backpropagation menggunakan erroroutput untuk mengubah nilai-nilai bobotnya dalam arah mundur (backward). Tahap perambatan maju (forward propagation) harus dikerjakan terlebih dahulu untuk mendapatkan nilai error tersebut. Saat perambatan maju neuron-neuron diaktifkan dengan menggunakan fungsi aktivasi sigmoid biner


Model Jaringan Syaraf Backpropagation

Pelatihan pada jaringan syaraf backpropagation, feedfoward (umpan maju) dilakukan dalam rangka perhitungan bobot sehingga pada akhir pelatihan akan diperoleh bobot-bobot yang baik. Selama proses pelatihan, bobot-bobot diatur secara iteratif untuk meminimumkan error(kesalahan) yang terjadi. Error (kesalahan) dihitung berdasarkan rata-rata kuadrat kesalahan (MSE). Rata-rata kuadrat kesalahan juga dijadikan dasar perhitungan unjuk kerja fungsi aktivasi. Sebagian besar pelatihan untuk jaringan feedfoward (umpan maju) menggunakan gradien dari fungsi aktivasi untuk menentukan bagaimana mengatur bobot-bobot dalam rangka meminimumkan kinerja. Gradien ini ditentukan dengan menggunakan suatu teknik yang disebutbackpropagation.
Algoritma pelatihan standar backpropagation akan menggerakkan bobot dengan arah gradien negatif. Prinsip dasar dari algoritma backpropagation adalah memperbaiki bobot-bobot jaringan dengan arah yang membuat fungsi aktivasi menjadi turun dengan cepat.
Pelatihan backpropagation meliputi 3 tahapan sebagai berikut.
1. Propagasi maju.
Pola masukan dihitung maju mulai dari input layer hingga output layer menggunakan fungsi aktivasi yang ditentukan.
2. Propagasi mundur.
Selisih antara keluaran jaringan dengan target yang diinginkan merupakan kesalahan yang terjadi. Kesalahan yang terjadi itu dipropagasi mundur. Dimulai dari garis yang berhubungan langsung dengan unit-unit di output layer.
3. Perubahan bobot.
Modifikasi bobot untuk menurunkan kesalahan yang terjadi. Ketiga fase tersebut diulang-ulang terus hingga kondisi penghentian dipenuhi. (Puspaningrum, 2006)


Referensi :
http://dhidik.wordpress.com/2010/03/10/jaringan-syaraf-tiruan/
http://jalanwaktu.wordpress.com/jaringan-syaraf-tiruan/