Jumat, 19 April 2019

Tugas UTS RPL


Nama : Khanif Maulana
Nim : 1117101511
Kelas : SP 4.2

Jawaban
1.       Tahapan Pengembangan perangkat lunak beserta penjelasan
A.      WATERFALL
Model Pengembangan Air Terjun (waterfall), merupakan paradigma model pengembangan perangkat lunak paling tua, dan paling banyak dipakai. Model ini mengusulkan sebuah pendekatan perkembangan perangkat lunak yang sistematik dan sekunsial yang dimulai pada tingkat dan kemajuan sistem pada seluruh tahapan analisis, desain , kode, pengujian, dan pemeliharaan.
Berikut merupakan tahapan-tahapan dari pengembangan perangkat lunak model air terjun (waterfall):
a. Rekayasa dan Pemodelan Sistem/Informasi
Langkah pertama yaitu dimulai dengan membangun keseluruhan elemen sistem dan memilah bagian-bagian mana saja yang akan dijadikan bahan pengembangan perangkat lunak, dengan memperhatikan hubungannya dengan HardwareUser, dan Database.
b. Analisis Kebutuhan Perangkat Lunak
Pada proses analisis kebutuhan perangkat lunak ini, dilakukan penganalisaan dan pengumpulan kebutuhan sistem yang meliputi Domain informasi, fungsi yang dibutuhkan unjuk kerja/performansi dan antarmuka. Hasil penganalisaan dan pengumpulan tersebut didokumentasikan dan diperlihatkan kembali kepada pelanggan.
c. Desain
Selanjutnya pada proses Desain, dilakukan penerjemahan syarat kebutuhan sebuah perancangan perangkat lunak yang dapat diperkirakan sebelum dibuatnya proses pengkodean (coding). Proses ini berfokus pada  struktur data, arsitektur perangkat lunak, representasi interface, dan detail algoritma prosedural.
d. Pengkodean
Pengkodean merupakan proses menerjemahkan perancangan desain ke bentuk yang dapat dimengerti oleh mesin (bahasa pemrograman).
e. Pengujian
Setelah Proses Pengkodean selesai, dilanjutkan dengan proses pengujian pada program perangkat lunak, baik Pengujian logika internal, maupun Pengujian eksternal fungsional untuk memeriksa segala kemungkinan terjadinya kesalahan (bug) dan memeriksa apakah hasil dari pengembangan tersebut sesuai dengan apa yang diinginkan.
f. Pemeliharaan
Proses Pemeliharaan merupakan bagian paling akhir dilakukan dari siklus pengembangan dan dilakukan setelah perangkat lunak dipergunakan atau dipublikasikan.
Contoh penerapan dari pengembangan model air terjun (waterfall) adalah sebuah program pendaftaran online kesuatu instansi pendidikan, dengan demikian calon pendaftar akan terbantu sekaligus kegiatan pendaftaran menjadi lebih efektif.
Kelebihan model waterfall:
·         Tahapan proses pengembangannya tetap (pasti), mudah diaplikasikan, dan prosesnya teratur.
·         Cocok digunakan untuk produk software/program yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya.
·         Software yang dikembangkan dengan metode ini biasanya menghasilkan kualitas yang baik.
·         Dokumen pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap dan sebelum melangkah ke fase berikutnya.
Kekurangan model waterfall:
Proyek yang sebenarnya jarang mengikuti alur sekuensial seperti diusulkan, sehingga perubahan yang terjadi dapat menyebabkan hasil yang sudah didapatkan tim pengembang harus diubah kembali/iterasi sering menyebabkan masalah baru.
·         Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses.
·         Sulit untuk mengalami perubahan kebutuhan yang diinginkan oleh customer/pelanggan.
·         Pelanggan harus sabar untuk menanti produk selesai, karena dikerjakan tahap per tahap, dan proses pengerjaanya akan berlanjut ke setiap tahapan bila tahap sebelumnya sudah benar-benar selesai.
·         Perubahan ditengah-tengah pengerjaan produk akan membuat bingung tim pengembang yang sedang membuat produk.
·         Adanya waktu kosong (menganggur) bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya.
B.      SPIRAL
Model ini mengadaptasi dari dua model perangkat lunak yang ada yaitu model prototyping dengan pengulangannya dan model waterfall dengan pengendalian dan sistematikanya. Model ini dikenal juga dengan sebutan Spiral Boehm. Pengembang dalam model ini memadupadankan beberapa model umum tersebut untuk menghasilkan produk khusus atau untuk menjawab persoalan-persoalan tertentu selama proses pengerjaan suatu proyek.
Tahapan-tahapan dari model spiral ini dapat dijelaskan secara ringkas yaitu sebagai berikut:
a. Tahap Liason
Tahap Liason merupakan tahap membangun komunikasi yang baik dengan calon pengguna/pemakai.
b. Tahap Planning
Pada tahap Planning ini ditentukan sumber-sumber informasi, batas waktu dan informasi-informasi yang dapat menjelaskan proyek yang dikerjakan.
c. Tahap Analisis Resiko
Tahap ini mendefinisikan resiko, menentukan apa saja yang menjadi resiko baik teknis maupun manajemen.
d. Tahap Rekayasa
Tahap rekayasa (engineering) ini merupakan tahap dimana prototype dibuat.
e. Tahap Konstruksi dan Pelepasan
Pada tahap ini dilakukan pembangunan perangkat lunak yang dimaksud, diuji, diinstal dan diberikan sokongan-sokongan tambahan untuk keberhasilan proyek.
f. Tahap Evaluasi
Pelanggan/pemakai/pengguna biasanya dapat memberikan masukan berdasarkan hasil yang didapat dari tahap engineering dan instalasi.
Kelebihan model spiral:
·         mempertimbangkan resiko kemungkinan munculnya kesalahan sehingga sangat dapat diandalkan untuk pengembangan perangkat lunak skala besar.
·         Pendekatan model ini dilakukan melalui tahapan-tahapan yang sangat baik dengan menggabungkan model waterfall ditambah dengan pengulangan-pengulangan sehingga lebih realistis untuk mencerminkan keadaan sebenarnya.
·         Baik pengembang maupun pemakai dapat cepat mengetahui letak kekurangan dan kesalahan dari sistem karena proses-prosesnya dapat diamati dengan baik.

Kekurangan model spiral:
·         Waktu yang dibutuhkan untuk mengembangkan perangkat lunak cukup panjang demikian juga biaya yang besar.
·         Sangat tergantung kepada tenaga ahli yang dapat memperkirakan resiko.
·         Terdapat pula kesulitan untuk mengontrol proses. Sampai saat ini, karena masih relatif baru, belum ada bukti apakah metode ini cukup handal untuk diterapkan.
·         Meyakinkan konsumen (khusunya dalam situasi kontrak) bahwa pendekatan evolusioner bisa dikontrol.

3.       PROTOTYPE
Metode Prototype merupakan suatu paradigma baru dalam metode pengembangan perangkat lunak dimana metode ini tidak hanya sekedar evolusi dalam dunia pengembangan perangkat lunak, tetapi juga merevolusi metode pengembangan perangkat lunak yang lama yaitu sistem sekuensial yang biasa dikenal dengan nama SDLC atau waterfall development model.
Dalam Model Prototype, prototype dari perangkat lunak yang dihasilkan kemudian dipresentasikan kepada pelanggan, dan pelanggan tersebut diberikan kesempatan untuk memberikan masukan sehingga perangkat lunak yang dihasilkan nantinya betul-betul sesuai dengan keinginan dan kebutuhan pelanggan.
Tahapan-tahapan dalam model prototype dijelaskan secara ringkas sebagai berikut:
a.       Pengumpulan Kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.
b.       Membangun Prototyping
Membangun prototyping dilakukan dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan format output).
c.       Evaluasi Prototyping
Evaluasi ini dilakukan oleh pelanggan, apakah prototyping yang sudah dibangun sudah sesuai dengan keinginan pelanggan atau belum. Jika sudah sesuai, maka langkah selanjutnya akan diambil. Namun jika tidak, prototyping direvisi dengan mengulang langkah-langkah sebelumnya.
d.       Mengkodekan Sistem
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai.
e.       Menguji Sistem
Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, kemudian dilakukan proses Pengujian. Pengujian ini dilakukan dengan White BoxBlack BoxBasis Path, pengujian arsitektur, dll.
f.        Evaluasi Sistem
Pelanggan mengevaluasi apakah perangkat lunak yang sudah jadi sudah sesuai dengan yang diharapkan . Jika ya, maka proses akan dilanjutkan ke tahap selanjutnya, namun jika perangkat lunak yang sudah jadi tidak/belum sesuai dengan apa yang diharapkan, maka tahapan sebelumnya akan diulang.
g.       Menggunakan Sistem
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.
Contoh penerapan prototyping, Sebuah rumah sakit ingin membuat aplikasi sistem database untuk pendataan pasiennya. Seorang atau sekelompok programmer akan melakukan identifikasi mengenai apa saja yang dibutuhkan oleh pelanggan, dan bagaimana model kerja program tersebut. Kemudian dilakukan rancangan program yang diujikan kepada pelanggan. Hasil/penilaian dari pelanggan dievaluasi, dan analisis kebutuhan pemakai kembali di lakukan.
Kelebihan prototyping:
·         Pelanggan berpartisipasi aktif dalam pengembangan sistem, sehingga hasil produk pengembangan akan semakin mudah disesuaikan dengan keinginan dan kebutuhan pelanggan.
·         Penentuan kebutuhan lebih mudah diwujudkan.
·         Mempersingkat waktu pengembangan produk perangkat lunak.
·         Adanya komunikasi yang baik antara pengembang dan pelanggan.
·         Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan.
·         Lebih menghemat waktu dalam pengembangan sistem.
·         Penerapan menjadi lebih mudah karena pelanggan mengetahui apa yang diharapkannya.
Kekurangan prototyping:
·   Proses analisis dan perancangan terlalu singkat.
·   Biasanya kurang fleksibel dalam mengahadapi perubahan.
·   Walaupun pemakai melihat berbagai perbaikan dari setiap versi prototype, tetapi pemakai mungkin tidak menyadari bahwa versi tersebut dibuat tanpa memperhatikan kualitas dan pemeliharaan jangka panjang.
·   Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak efisien.

4.       EXTREME PROGRAMMING
Extreme Programming (XP) merupakan suatu pendekatan yang paling banyak digunakan untuk pengembangan perangkat lunak cepat. Tahapan-tahapan pada extreme programming yaitu:
a.       Perencanaan
Pada tahap perencanaan ini dimulai dari pengumpulan kebutuhan yang membantu tim teknikal untuk memahami konteks bisnis dari sebuah aplikasi. Selain itu pada tahap ini juga mendefinisikan outputyang akan dihasilkan, fitur yang dimiliki oleh aplikasi dan fungsi dari aplikasi yang dikembangkan.
b.       Desain
Metode ini menekankan desain aplikasi yang sederhana, untuk mendesain aplikasi dapat menggunakan Class-Responsibility-Collaborator (CRC) cards yang mengidentifikasi dan mengatur classpada objectoriented.
-Pengkodean
Konsep utama dari tahapan pengkodean  pada extreme programming adalah pair programming,melibatkan lebih dari satu orang untuk menyusun kode.
-Pengujian
Pada tahapan ini lebih fokus pada pengujian fitur dan fungsionalitas dari aplikasi.

5.       EVOLUSIONER
Model pengembangan evolusioner ini berdasarkan pada implementasi awal yang akan menghasilkan komentar pemakai, sehingga dapat dilakukan perbaikan melalui banyak versi sampai sistem yang mencukupi dapat dikembangkan.  Selain memiliki aktivitas-aktivitas yang terpisah, model ini memberikan umpan balik dengan cepatdan serentak.
Ada 2 tipe dalam model pengembangan evolusioner :
1.       Pemrograman Evolusioner.
Dalam tipe ini, tujuan proses adalah bekerja sama dengan konsumen untuk menghasilkan kebutuhan-kebutuhan dan menyampaikan sistem akhir kepada pemakai/konsumen.  Pengembangan dimulai dengan bagian-bagian sistem yang dimengerti. Sistem dikembangkan melalui penambahan features sesuai yang diusulkan oleh konsumen.
2.         Permodelan
Dalam tipe yang kedua ini, tujuan proses adalah mengetahui kebutuhan-kebutuhan konsumen dan mengembangkan definisi kebutuhan yang lebih baik untuk sistem.  Model atau contoh difokuskan pada penelitian bagian-bagian kebutuhan konsumen yang kurang dimengerti.
Pengembangan evolusioner lebih cocok untuk:
·         Pengembangan sistem yang relatif kecil.   Masalah-masalah mengenai perubahan sistem yang ada dihindari dengan mengimplementasi ulang sistem keseluruhan kapanpun perubahan yang signifikan diperlukan.  Jika permodelan digunakan, tidak terlalu mahal.
·         Pengembangan sistem yang memiliki masahidup yang relatif singkat. Di sini, sistem dikembangkan untuk mendukung beberapa aktivitas yang dibatasi oleh waktu.  Contohnya sebuah sistem yang mungkin dikembangkan secara khusus untuk peluncuran produk baru. Pengembangan sistem atau bagian-bagian dari sistem yang besar dimana tidak memungkinkan untuk menyatakan spesifikasi secara rinci.  Contohnya sistem AI dan interface pemakai.

6.       AGILE
Agile Process merupakan sekelompok aktifitas pembangunan perangkat lunak secara iteratif yang menekankan pada aktifitas konstruksi (desain dan koding). Agile Process mengeliminasi sebagian besar waktu untuk melakukan perencanaan sistem dan berusaha sebisa mungkin mematuhi jadwal deliver sistem yang telah dijanjikan. Requirements yang dibutuhkan secara langsung di-drive oleh pelanggan itu sendiri, dan apabila terjadi perubahan terhadap requirements tersebut, pengembang dituntut mampu beradaptasi dengan perubahan yang terjadi.
Adapun tahapan-tahapan dari metode agile:
1.       Inception
Merupakan tahap untuk mengidentifikasi sistem yang akan dikembangkan. Aktivitas yang dilakukan pada tahap ini antara lain mencakup analisis sistem, perumusan target dari sistem yang dibuat, identifikasi kebutuhan, perumusan kebutuhan pengujian, pemodelan diagram UML, dan pembuatan dokumentasi.
2.       Elaboration
                                                                                                                               i.      Merupakan tahap untuk melakukan disain secara lengkap berdasarkan hasil analisis di tahap inception. Aktivitas yang dilakukan pada tahap ini antara lain mencakup pembuatan disain arsitektur subsistem, disain komponen sistem, disain format data disain database, disain antarmuka/tampilan, disain peta tampilan, penentuan design pattern yang digunakan, pemodelan diagram UML, dan pembuatan dokumentasi.
3.       Construction
                                                                                                                               i.      Merupakan tahap untuk mengimplementasikan hasil disain dan melakukan pengujian hasil implementasi. Pada tahap awal construction, ada baiknya dilakukan pemeriksaan ulang hasil analisis dan disain, terutama disain pada diagram sequence,class, component, dan deployment. Apabila disain yang dibuat telah sesuai dengan analisis sistem, maka implementasi dengan bahasa pemrograman tertentu dapat dilakukan. Aktivitas yang dilakukan pada tahap ini antara lain mencakup pengujian hasil analisis dan disain (misal menggunakan class responsibility collaborator untuk kasus pemrograman berorientasi obyek), pendataan kebutuhan implementasi lengkap (berpedoman pada identifikasi kebutuhan di tahap analisis), penentuan coding pattern yang digunakan, pembuatan program, pengujian, optimasi program, pendataan berbagai kemungkinan pengembangan / perbaikan lebih lanjut, dan pembuatan dokumentasi.
4.       Transition
a.       Merupakan tahap untuk menyerahkan sistem aplikasi ke konsumen (rollout), yang umumnya mencakup pelaksanaan pelatihan kepada pengguna dan testing beta aplikasi terhadap ekspetasi penggunan.

2. Karakteristik Perangkat Lunak
Setiap individu menilai perangkat lunak secara berbeda. Ini karena mereka terlibat dengan perangkat lunak dengan cara yang berbeda. Misalnya, pengguna ingin perangkat lunak tampil sesuai dengan kebutuhan mereka. Demikian pula, pengembang (developer) yang terlibat dalam perancangan, pengkodean, dan pemeliharaan perangkat lunak mengevaluasi perangkat lunak dengan melihat karakteristik internalnya, sebelum mengirimkannya ke pengguna. Karakteristik perangkat lunak dikelompokkan menjadi enam komponen utama.
·         Functionality: Mengacu pada tingkat kinerja perangkat lunak terhadap tujuan yang telah ditentukan.
·         Reliability: Mengacu pada kemampuan perangkat lunak untuk menyediakan fungsionalitas yang diinginkan dalam kondisi tertentu.
·         Usability: Mengacu pada sejauh mana perangkat lunak dapat digunakan dengan mudah.
·         Efficiency: Mengacu pada kemampuan perangkat lunak untuk menggunakan sumber daya sistem dengan cara yang paling efektif dan efisien.
·         Maintainability: Mengacu pada kemudahan modifikasi yang dapat dilakukan dalam sistem perangkat lunak untuk memperluas fungsinya, memperbaiki kinerjanya, atau memperbaiki kesalahannya.
·         Portability: Mengacu pada kemudahan pengembang perangkat lunak (software developer) mana yang dapat mentransfer perangkat lunak dari satu platform ke platform lainnya, tanpa (atau dengan minimum) perubahan. Secara sederhana, ini mengacu pada kemampuan perangkat lunak untuk berfungsi dengan baik pada berbagai platform perangkat keras (hardware) dan perangkat lunak (software) tanpa membuat perubahan apa pun di dalamnya.
Selain karakteristik yang disebutkan di atas, robustness dan integrity juga penting. Robustness mengacu pada sejauh mana perangkat lunak dapat tetap berfungsi meskipun dilengkapi data yang tidak valid sementara integrity mengacu pada sejauh mana akses yang tidak sah terhadap perangkat lunak atau data dapat dicegah.
B. Software Engginering Layer
Software layer merupakan salah konsep utama yang harus diketahui, dikenali, dimengerti dan diimplementasikan pada saat akan membangun sebuah perangkat lunak (software). Software Layer terbagi menjadi empat lapisan, yaitu :
1. A Quality Focus
2. Process
3. Methods
4. Tools

1. QUALITY FOCUS (FOKUS KUALITAS)
Pada saat kita membangun sebuah aplikasi, Fokus pertama kali yang dibuat
 adalah Kita akan  membangun kualitas yang seperti apa,siapa sasaran 
kita, aplikasi yang dibangun siapa pengguna dan lai-lain, Oleh 
karena itu FOKUS KUALITAS ini programmer akan mengetahui  levelsebuah
 aplikasiyang dibangun.Misalnya akan dibangun APLIKAS PEMUTAR MUSIC
. Dengan berpatokan pada FOKUS KUALITAS maka Programmer akan mengetahui 
sampai dimana aplikasi yang akan dibangun. File Music bisa beraneka ragam 
mulai dari MP3, MP2, AUDIO TRACK, WAV, MDI dan lain-lain. Dengan 
mengetahui, Aplikasi ini dibuat untuk File music apa, maka programmer 
akan mengetahui segala hal yang berhubungan dengan program yang 
dibuat. Apakah aplikasi yang dibuat akan mendukung untuk MP3, MP2, 
WAV, OGG, TRACK atau yang lainnya. Jika dilihat dari segi Interaksi
Manusia dan Komputer, maka dengan FOKUS KUALITAS programmer akan 
mengetahui bentuk dari aplikasi yang akan bangun.
 
2. PROCESS
 Process atau Proses adalah merupakan lapisan kedua dalam SOFTWARE LAYER, Lapisan ini
 terletak setelah QUALITY FOCUS,hal ini disebabkan setelah diketahui Fokus Kualitas dari
 Perangkat Lunak yang akan dibangun, maka pemrogram harus mengetahui bagaimana 
proses yang harus dijalani oleh pemrograman sehubungan dengan Fokus Kualitas dari 
Perangkat Lunak yang diharapkan, Proses-proses ini dilakukan terurut dan tepat, agar 
tidak terjadi kesalahan pada saat sebuah aplikasi di Launching.Proses-proses yang ada 
akan dikerjakan sesuai dengan Kunci Proses Area yang ada (KPA/Key Process Area).
 
3. METHODS
Methods atau Metode merupakan salah satu hal yang penting dalam Pembuatan 
Perangkat Lunak. Dengan metode, pembuat program akan melakukan 
langkah-langkah dan tindakan-tindakan yang sesuai dengan metode yang ada. 
Metode yang digunakan harus disesuaikan dengan perangkat lunak yang 
dibangun, dan tujuan dari pembuatan perangkat lunak.
 
4. TOOLS
Tools merupakan alat bantu yang dapat digunakan oleh programmer dalam
 menyelesaikan proyek yang ada. Mulai dari tools animasi tools multimedia,
 tools normalisasi dan lain-lain. Misalnya : X3D, power designer, paintshop pro, etc.

3.    Game pengenalan panca indra dan kegunaannya,banyak anak-anak di usia dini yang belum mengenal nama panca indra karena kurangnya perhatian dan didikan orang tua game ini membantu untuk anak usia 2 sampai 5 tahun fungsi dari game ini adalah mengenalkan pannca indra dan kegunaan dari panca indra tersebut, game ini membantu anak-anak dalam mengenal dan mengetahui fungsi panca indra.

Model Proses yg akan digunakan adalah waterfal, (waterfall), merupakan paradigma model pengembangan perangkat lunak paling tua, dan paling banyak dipakai. Model ini mengusulkan sebuah pendekatan perkembangan perangkat lunak yang sistematik dan sekunsial yang dimulai pada tingkat dan kemajuan sistem pada seluruh tahapan analisis, desain , kode, pengujian, dan pemeliharaan. Alasan  menggunakan model proses ini adalah mudah untuk dipahami dan mempunyai alur yang sistematik.
1.       Context Diagram

2.       Dekomposisi Diagram

3.       DFD level 0 dan 1
a.       Level 0



b.        level 1






Tidak ada komentar:

Posting Komentar