Kamis, 31 Mei 2018

My Role Model Is My Mom

My mother is the person who has the most impact in my life, and she made me a better person. My mother has many good qualities and values, and being a strong woman, supportive, and spiritual are the most important description of her personality.

My mom is the strongest women in the world I ever had. She has three children that she raised until grow up. She used to work very hard to provide feeling happy his family and she give need anything we need. She never complained about her life. When she was sometime tired from work, she still makes time for her family, and makes sure that we have done our homework. I learned from my mother that if I worked hard, I will get what I want. She always said "you will not get any where without hard work". In our work a lot of people complain about small things. They want to have everything without giving any sweat.

I learned from my mother to be honest and believe in God. If I have to make any big decision, I always ask for my mom for advice because she has the wisdom and experience. I know she will tell me the truth even if it is not good to me but, she delivered with kindness and without any unilateral assessment. 

"Insha Allah," these are two words that my mother often spoke. She has a positive spirit and she believes in God. She always said "treat everybody the way you want to be treated, and never take for granted the talent that God has given you". My mother is very proud person, and she is bearing of dignities. Anyone's who knows her respect her. At my home we have many roles to follow which everybody respect. She get any education only until senior highschool, but she always tell to his three children to study as high as possible in order to achieve the goals of each of his children.

Minggu, 22 April 2018

End World Hunger

My Opinion About End World Hunger
 
Today poverty and hunger are world issues. Handling that focuses on the root of the problem is needed in alleviation. 
But I see that there is no reliable method to continue to parse from poverty. 
Here is how steeper poverty and hunger occur structurally.

Ending hunger and world poverty requires more than compassion and more than just sustainable development. It also demands justice for the achievement of social welfare and structural poverty handling.

Poverty, food prices and hunger can not be separated. Poverty causes hunger. 
Not all poor people are hungry, but almost all hungry people are poor. 
Millions of people live with hunger and malnutrition because they can not afford to buy enough food, 
are unable to afford nutritious food or are unable to afford the farming supplies they need to grow enough good food. 
Hunger can be seen as a dimension of extreme poverty.This is often called the most severe and critical manifestation of poverty.

It is estimated that a person died of starvation or the cause of hunger every ten seconds, unfortunately, children most often die. However there is plenty of food in the world for everyone. The problem is that hungry people are caught in severe poverty. They lack the money to buy enough food to feed themselves. Because of malnutrition, they become weaker and often sick. This makes them less able to work, which then makes them poorer and more hungry.

The other major causes of hunger are natural disasters and climate change. Storms and droughts are both increasing, destroying crops and causing massive food shortages. Often, the poorest countries are the least prepared for this disaster, and the greenhouse gases that cause climate change come from the richest countries.

Out of exceptional debt with women's repression of war and conflict, social justice issues are directly linked to poverty and hunger. Even complications associated with natural disasters such as hunger often have injustices hidden beneath the surface, such as land monopoly or unjust agricultural practices.

One way to overcome this problem is to increase foreign investment in agriculture. By building adequate infrastructure, properly planting land, managing water use and ensuring storage facilities are used effectively, the impact of natural disasters can be handled more easily.
Unfortunately, most poor countries lack the resources and knowledge to sustain their own agricultural sector. However, foreign investment in the agricultural sector of developing countries will help them to be independent.

Inadequate dieting to live a normal and inadequate life from a nutritional standpoint not only affects those living in extreme poverty conditions, but also the broader sectors and groups living in certain regions or regions in each country.

There is still much that can and needs to be done to improve food security in our own country and around the world. But before we can do anything, it's not unfair to call the silence of the mainstream media on this issue as a contributing factor to the hunger of millions of people, both domestically and abroad.

Ultimately, the role of government and the support of the people to continue transforming poverty into a change that will be very beneficial if it is done in a sustainable manner. May Indonesia be free from poverty and hunger. Hopefully!

Minggu, 04 Maret 2018

Self Description

Hallo, my name is nurul hadi and my nickname is hadi, i am 21 years old but on the 24th of march i am 22 years old, i am studying at gunadarma university majoring in information system, my hobi is badminton, basketball, jogging, swimming, all about sport i like that. I live in Senen Central Jakarta, I am 3rd child of 3 siblings, the first, my brother graduated from andalas university and now he is working in artha graha bank as credit analyst. And the second, my sister graduated from YAI university and she is work in bca bank as customer service.
I have advantages in the memorizing but weak in terms of arithmethic, but that does not mean I accept my weakness instead I became increasingly motivated to cover up my weaknesses by studying diligently and tirelessly to make proud my parents, my brother and my sister. I want to be a badminton athlete but because my eyes are nearsighted so it prevents me from reaching my goals. Finally I gave up to reach my goal of becoming a badminton athlete and looking for other things to be made as my future goal, that is as a successful person and able to happy people I love, and my parents.

I am personally disciplined and as well good in terms of managing finances, so I do not feel difficulties in terms of finances, with a good personality in managing finances, finally i made her do the same thing as me in terms of good managing finances, she is my girlfriend and she named fitria. She is the kind of person who is royal and extravagant in financial terms, She is a good person to anyone and I love her.

Kamis, 02 November 2017

Faktor Pengujian Perangkat Lunak



Faktor Pengujian Perangkat Lunak


Faktor perangkat lunak adalah seberapa mudah sebuah program komputer dapat diuji.Karena pengujian sangat sulit, perlu diketahui apa yang dapat dilakukan untuk membuatnya menjadi mudah.Kadang-kadang pemrogram beresedia melakukan hal-hal yang akan membantu proses pengujian dan checklist mengenai masalah-masalah desai yang mudah, fitur dan lain sebagainya yang berguna dalam bernegosiasi dengan mereka.


Checklist berikut memberikan serangkaian karakteristik yang membawa kepada perangkat lunak yang dapat diuji :


Operabilitas.


1) Sistem memiliki beberapa bug (bug menambah analisis dan biaya pelaporan keproses pengujian).


2) Tidak ada bug yang memblok eksekusi pengujian


3) Produk berkembang di dalam tahapan fungsional (memungkinkan pengemabngandan pengujian secara simultan)


Observabilitas.


1) Output yang berbeda dikeluarkan oleh masing-masing input.


2) Tahap dan variabel sistem dapat dilihat atau diantrikan selama eksekusi.


3) Sistem dan variabel yang lalu dapat dilihat atau diantrikan (misal : log transaksi)


4) Semua faktor yang mempengaruhi output dapat dilihat.


5) Kesalahan itnernal dideteksi secara otomatis melalui mekanisme selftesting.


6) Kesalahan internal dilaporkan secara otomatis.


7) Kode sumber dapat diakses


Kontrolabilitas


1) Semua output yang mungkin dapat dimnculkan melalui beberapa kombinasi input.


2) Semua kode dapat dieksekusi melalui berbagai kombinasi input.


3) Keadaan dan varibale perangkat lunak dan perangkat keras dapat dikontrol secara langsung oleh perekayasa pengujian.


4) Format input dan output konsistem dan terstruktur.


5) Pengujian dapat dispesifikasi, dioptimasi dan direproduksi dengan baik.


Dekomposabilitas.


1) Sistem perangkat luank dibangun dari modul-modul independen.


2) Modul-modul perangkat lunak dapat diuji secara independen.


Kesederhanaan.


1) Kesederhanaan fungsional (seperti, kumpulan fitur adalah kebutuhan minimum untuk memenuhi persyaratan).


2) Kesederhanaan struktural (seperti arsitektur dimodularisasi untuk membatasi penyebaran kesalahan)


3) Kesederhanaan kode (seperti, standar pengkodean diadopsi demi kemudahan inspeksi dan pemeliharaan).


Stabilitas.


1) Pengujian ke perangkat lunak tidak sering.


2) Perubahan ke perangkat lunak terkontrol.


3) Perubahan ke perangkat lunak memvalidasi pengujian yang sudah ada.


4) Kegagalan perangkat lunak dapat diperbaiki dengan baik


Kemampuan untuk dapat dipahami.


1) Desain dipahami dengan baik.


2) Ketergantungan di antara komponen internal, eksternal dan yang dipakai bersama,dipahami dengan baik.


3) Perubahan ke desai dikomunikasikan.


4) Dokumentasi teknik dapat diakses dengan cepat.


5) Dokumentasi teknis diorganisasikan dengan baik.


6) Dokumentasi teknis spesifik dan detail.

7) Dokumentasi teknis akurat

Rabu, 01 November 2017

Strategi Pengujian Perangkat Lunak

STRATEGI PENGUJIAN PERANGKAT LUNAK

Pengujian : serangkaian aktivitas yang dapat direncanakan sebelumnya
dan dilakukan secara sistematis.

Langkah-langkah strategis terjadi pada waktu tekanan deadline
pembuatan program mulai naik (dekat), maka kemajuan perangkat
lunak harus dapat diukur dan masalah harus muncul sedini mungkin.
Strategi pengujian menentukan :
1. Kualitas perangkat lunak.
2. Manajemen sistem yang baru.
3. Implementasi yang sesuai dengan masalah.

Dari titik pandang psikologi, analisis dan desain perangkat lunak
merupakan tugas yang konstruktif. Programmer menciptakan sebuah
program, dokumentasi dan struktur berkasnya. Namun dari sudut
pandang psikologi programmer, pengujian dapat dianggap sebagai
destruktif.
Maka :
Programmer selalu bertanggungjawab terhadap pengujian modul
program.
Melakukan pengujian terintegrasi, yaitu setelah semua modul saling
terkait. Sebuah pernyataan klasik :
“ anda tidak akan pernah menyelesaikan pengujian. Beban yang ada
akan sedikit bergeser dari anda ke pengguna. “
atau
“ anda telah menyelesaikan pengujian bila anda telah kehabisan
deadline atau uang. “
Kesalahan umum dalam komputasi :
1. Kesalahpahaman yang tidak benar.
2. Operasi mode yang tercampur.
3. Inisialisasi yang tidak benar.
4. Inakurasi ketelitian.
5. Representasi sebuah persamaan relasi yang tidak benar.
6. Perbandingan tipe data yang berbeda.
7. Operator logika yang tidak benar.
8. Perbandingan atau variabel yang tidak benar.
9. Penggunaan loop yang tidak tepat.
Pengujian integrasi : teknik sistematis untuk mengkonstruksi sistem
program sambil melakukan pengujian untuk mengungkap kesalahan
sehubungan dengan interfacing.



Integrasi non-incremental :

Membangun program dengan mendekatan “big-bang”. Yaitu semua
modul program digabung menjadi program utama kemudian diuji. Integrasi incremental :Membangun program dengan cara menguji per modul kecil / per segmen, kemudian digabung menjadi menu utama.


Teknik Pengujian Perangkat Lunak

Teknik Pengujian Perangkat Lunak 

1. White Box
2. Black Box 



1. Pengujian White-Box Pengujian white box, kadang-kadang disebut pengujian glass box, adalah metode desaintest case yang menggunakan struktur kontrol desain prosedural untuk memperoleh test case. Dengan menggunakan metode pengujian white box, perekayasa sistem dapat melakukan test case yang : 
1. memberikan jaminan bahwa semua jalur independen pada suatu modal telah digunakan, paling tidak satu kali. 
2. Menggunakan semua keputusan logis pada sisi true dan false 
3. Mengeksekusi semua loop pada batasan mereka dan baas operasional mereka 
4. Menggunakan struktur data internal untuk menjamin validitasnya 

Pada titik ini, dapat diajukan pertanyaan yang beralasan, yaitu “Mengapa menghabiskan waktu dan energi untuk menguji logika jika kita dapat dengan lebih baik memperluas kerja yang dapat memastikan bahwa persyaratan program telah dipenuhi ?” Bila dinyatakan dengan cara lain, mengapa kita tidak menggunakan semua energi kita untuk melakukan pengujian black box ? Jawabannya ada pada sifat cacat perangkat lunak : 

1. Kesalahan logis dan asumsi yang tidak benar berbanding terbalik dengan probabilitas jalur program yang akan dieksekusi. Kesalahan cenderung muncul dalam kerja kita pada saat kita mendesain dan mengimplementasi fungsi, kondisi atau kontrol yang berada di luar mainstraim. Pemrosesan setiap hari cenderung dipahami dengan baik sementara pemrosesan “kasus khusus” cenderung berantakan · 

2. Kita sering percaya bahwa jalur logis mungkin tidak akan diseksekusi bila pada kenyataannya akan diseksekusi pada basis reguler. Aliran logika dari suatu program kadangkadang bersifat konterintuitif yang berarti asumsi kita yang tidak kita sasari mengenai aliran dan data kontrol dapat menyebabkan kita membuat kesalahan desai yang akan terungkap hanya setelah pengujian jalur mulai. ·

3.  Kesalahan tipografis adalah random. Bila sebuah program diterjemahkan ke dalam kode sumber bahasa pemrograman maka dimungkinkan akan terjadi banyak kesalahan pengetikan. Beberapa akan ditemukan dengan mekanisme pengecekan sintaks, tetapi yang lainnya akan tetap tidak terdeteksi sampai pengujian mulai. 

Masing-masing alasan tersebut memberikan suatu argurmen untuk melakukan pengujian white box. Pengujian black box, tidak peduli seberapa cermat dilakukan, dapat menangkap bentuk kesalahan tersebut. 

2. Pengujian Black-Box 

Pengujian black-box berfokus pada persyaratan fungsional perangkat lunak. Dengan demikian, pengjian black-box memungkinkan perekayasa perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua peryaratan fungsional untuk suatu program. 

Pengujian black-box bukan merupakan alternatif dari teknik white-box tetapi merupakan pendekatan komplementer yang kemungkinan besar mampu mengungkap kelas kesalahan daripada metode white-box. Pengujian black-box berusaha menemukan kesalahan dalam kategori sebagai berikut : 
1. Fungsi-fungsi yang tidak benar atau hilang 
2. Kesalahan interface 
3. Kesalahan dalam struktur data atau akses database eksternal 
4. Kesalhan kinerja 
5. Inisialisasi dan kesalahan terminasi 
Tidak seperti pengujian white box yang dilakukan pada awal proses pengujian, pengujian black box cenderung diaplikasikan selama tahap akhir pengujian. Karena pengujianblack box memperhatikan struktur kontrol, maka perhatian berfokus pada domain informasi. Pengujian didesain untuk menjawab pertanyaan-pertanyaan berikut :
 - Bagiamana vaiditas fungsional diuji ? 
 - Kelas input apa yang akan membuat test cse menjadi baik ? 
- Apakah sistem sangat sensitif terhadap harga input tertentu ? 
- Bagaimana batasan dari suatu data diisolasi ?
 - Kecepatan data apa dan volume data apa yang dapat ditolerir oleh sistem ? 
- Apa pengaruh kombinasi tertentu dari data terdahap operasi sistem ?

 Dengan mengaplikasikan teknik black box, maka kita menarik serangkaian test case yang memenuhi kriteria berikut ini : 
1. Test case yang mengurangi, dengan harga lebih dari saatu, jumlah test case tambahan yang harus didesain untuk mencapai pengujian yang dapat dipertanggungjawabkan. 
2. Test case yang memberi tahu kita sesuatu mengenaikehadiran atau ketidakhadiran kelas kesalahan daripada memberi tahu kesalahan yang berhubugnan hanya dengan pengujian spesifik yang ada.

SDLC

SDLC (System Development Life Cycle)

System Development Life Cycle (SDLC)

System Development Life Cycle (SDLC) adalah suatu pendekatan yang memiliki tahap atau bertahap untuk melakukan analisa dan membangun suatu rancangan sistem dengan menggunakan siklus yang lebih spesifik terhadap kegiatan pengguna (Kendall & Kendall, 2006). System Development Life Cycle (SDLC) juga merupakan pusat pengembangan sistem informasi yang efisien. SDLC terdiri dari 4 (empat) langkah kunci yaitu, perencanaan dan seleksi, analisis, desain, implementasi dan operasional (Valacich, George, & Hoffer, 2012). Selain itu, System Development Life Cycle (SDLC) adalah sebuah proses memahami bagaimana Sistem Informasi dapat mendukung kebutuhan bisnis, merancang system, membangun sistem, dan memberikannya kepada pengguna (Dennis, Wixom, & Tegarden, 2005).
Berdasarkan pada penjelasan diatas maka SDLC dapat disimpulkan sebagai sebuah siklus yang membangun suatu sistem itu sendiri dan memberikannya kepada pengguna melalui tahapan perencanaan, analisa, perancangan dan implementasi dengan cara memahami dan menyeleksi keadaan dan proses yang dilakukan pengguna untuk dapat mendukung seluruh kebutuhan para  pengguna. Untuk menggunakan SDLC maka dibutuhkan sumber dari data awal tersebut dari pengguna yang dijadikan acuan yang nantinya dimasukkan kedalam perencanaan, analisa, perancangan dan implementasi. Penggunaan acuan ini dimaksudkan agar sistem yang dibangun bisa menjembatani kebutuhan pengguna dari permasalahan yang dihadapinya.


Contoh 4 langkah kunci dari SDLC:



  1. Perencanaan
Fase perencanaan adalah sebuah proses dasar untuk memahami mengapa sebuah sistem itu harus dibangun, dan pada fase ini memang diperlukan analisa kelayakan dengan mencari data atau melakukan proses information gathering kepada para pengguna.
Sebagai contoh: proses dalam feasibility dan wawancara , observasi dan Quesener. Misal Jika pada tahap Feasibility hasilnya baik maka langsung ketahap investigasi dan diberi form kepada client untuk mencatat kebutuhan client. Dalam sistem investigasi, dapat berupa wawancara, kuosiener atau observation. Dalam tahap ini hal yang pertama dilakukan adalah memberikan form ke user yang digunakan untuk mengetahui permintaan user.
  1. Analisa
Fase analisa adalah sebuah proses investigasi terhadap sistem yang sedang berjalan itu sendiri dengan tujuan untuk mendapatkan jawaban mengenai pengguna sistem, cara kerjanya yaitu sistem dan waktu penggunaan sistem. Dari proses analisa ini akan didapatkan cara untuk membangun sistem baru.
  1. Rancangan
Fase perancangan merupakan proses penentuan cara kerja sistem dalam hal architechture design, interface design, database dan spesifikasi file, dan program design. Hasil dari proses perancangan ini akan didapatkan spesifikasi sistem.
  1. Implementasi
Fase implementasi adalah proses pembangunan dan pengujian sistem, instalasi sistem, dan rencana dukungan sistem.
Contohnya: konstruksi, instalasi, pengujian dan pengiriman sistem ke dalam produksi (artinya operasi sehari-hari). Implementasi sistem ini mengontruksi sistem informasi yang baru dan menempatkannya ke dalam operasi, dan selanjutnya dilaksanakan tahap pengujian.


5.Maintance
. 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.
  
Contoh Metodologi atau model pengembangan sistem, baik yang terstruktur maupun yang berbasis obyek

·         Agile Model

Ditulis oleh (Widodo Journal : 2006:1) Pada dekade ke 90-an diperkenalkan metodologi baru yang dikenal dengan nama agile methods. Metodologi ini sangat revolusioner perubahannya jika dibandingkan dengan metode sebelumnya. Agile Methodsdikembangkan karena pada metodologi tradisional terdapat banyak hal yang membuat proses pengembangan tidak dapat berhasil dengan baik sesuai tuntutan user. Saat ini metodologi ini sudah cukup banyak berkembang, diantaranya adalah:
1) eXtreme Programming (XP)
2) Scrum Methodology
3) Crystal Family
4) Dynamic Systems Development Method (DSDM)
5) Adaptive Software Development (ASD)
6) Feature Driven Development (FDD)
Jika kita lihat, agile bisa berarti tangkas, cepat, atau ringan. Agility merupakan metode yang ringan dan cepat dalam pengembangan perangkat lunak. Agile Alliancemendefinisikan 12 prinsip untuk mencapai proses yang termasuk dalam agility:
  1. Prioritas tertinggi adalah memuaskan pelanggan melalui penyerahan awal dan perangat lunak yang bernilai.
  2. Menerima perubahan requirements meskipun perubahan tersebut diminta pada akhir pengembangan.
  3. Memberikan perankat lunak yang sedangdikerjakan dengan sering,beberapa min ggu atau bulan, dengan pilihan waktu yang paling singkat.
  4. Pihak bisnis dan penggembangan harus berkerja sama setiap hari selam penggembangan berjalan.
  5. Bangun proyek dengan individu-individu yang bermotivasi tinggi dengan memberikan lingkungan dan dukungan yang diperlukan, dan mempercyai mereka sepenuhnya untuk menyelesaikan pekerjaannya.
  6. Metode yang paling efektif dan efisien dala m menyampaikan informasi kepada tim pengembangan adalah dengan komunikasi langsung  face to face.
  7. Perangkat lunak yang dikerjakan merupakan pengukur utama kemajuan.
  8. Proses agile memberikan proses pengembangan  yang bias ditopang.Sponsor,pengembangan, dan user garus bias menjaga ke-konstanan langkah yang tidak pasti.
  9.  Perhatian yang harus terus mennerus terhadap rangcangan dan teknik yang baik meningkatkan agility.
  10. Keserdahanaan seni untuk meminimalkan jumlah pekerjaan adalah penting
  11. Arsitektur,requirements, dan rancangan terbaik muncul dari tim yang mengatur sendiri. 
  12.  Pada interval reguler tertentu,tim merefleksikan bagaimana menjadi lebih efektif,kemudian menyesuaikannya.
Kelebihan  Metode Agile
1.        Meningakatkan rasio kepuasan pelanggan.
2.        Bisa melakukan reviw pelanggan mengenai software yang dibuat lebih awal.
3.        Mengurangi resiko kegagalan implementasi software dari non-teknis.
4.        Besar kerugian baik secara material atau imaterial tidak terlalu besar jiak terjadi kegagalan           

Kelemahan  Metode Agile
1.       Agile jarang dipraktekkan secara langsung,
2.       Interksi dengan customers yang berlebihan,
3.       Agile  sulid  diimplementasikan  dalam  proyek  yang berskala besar,
4.       Membutuhkan manajemen tim yang terlatih,
5.       Lemah dalam perencanaan arsitektur,2 Scrum dan Extreme Programming
6.       Keterbatasan waktu dalam perencanaan Proyek
7.       Serta beberapa kelemahan lainnya

Metodologi Waterfall

Metodologi Waterfall merupakan model klasik yang sederhana dengan aliran sistem yang linier. Output dari setiap tahap merupakan input bagi tahap berikutnya. Model ini pertama kali diperkenalkan oleh Winston Royce tahun 1970, sekarang model ini lebih dikenal dengan Liner Sequential Model.

Karakteristik dari metodologi waterfall ini meliputi beberapa bagian, yaitu :
• Aktivitas mengalir dari satu fase ke fase lainnya secara berurutan.
• Setiap fase dikerjakan terlebih dahulu sampai selesai, jika sudah selesai baru mulai menuju fase berikutnya.



Tahapan penelitian pada model waterfall meliputi metodologi berupa :

1. System Engineering
Menetapkan segala hal yang diperlukan dalam pelaksanaan proyek

2. Analisis 
Menganalisis hal-hal yang diperlukan untuk pembuatan atau pengembangan perangkat lunak

3. Design 
Tahap penerjemahan dari keperluan atau data yang telah dianalisis ke dalam bentuk yang mudah dimengerti oleh programmer . Tiga atribut yang penting dalam proses perancangan yaitu : struktur data, arsitektur perangkat lunak dan prosedur rinci / algoritma.

4. Coding 
Menerjemahkan data yang telah dirancang / algoritma ke dalam bahasa pemrograman yang telah ditentukan

5. Testing 
Uji coba terhadap program telah dibuat .

6. Maintenance 
Perubahan atau penambahan program sesuai dengan permintaan user.

Kelebihan dari metode WaterFall :
Metode ini masih lebih baik digunakan walaupun sudah tergolong kuno, daripada menggunakan pendekatan asal-asalan. Selain itu, metode ini juga masih masuk akal jika kebutuhan sudah diketahui dengan baik.

Kekurangan dari metode Waterfall :
·         Pada kenyataannya, jarang mengikuti urutan sekuensial seperti pada teori. Iterasi sering terjadi menyebabkan masalah baru.
·         Sulit bagi pelanggan untuk menentukan semua kebutuhan secara eksplisit.
·         Pelanggan harus sabar, karena pembuatan perangkat lunak akan dimulai ketika tahap desain sudah selesai. Sedangkan pada tahap sebelum desain bisa memakan waktu yang lama.
·         Kesalahan di awal tahap berakibat sangat fatal pada tahap berikutnya.

Metodologi Prototipe
Model ini dikembangkan karena adanya kegagalan yang terjadi akibat pengembangan project / aplikasi menggunkan sistem waterfall. Kegagalan yang terjadi biasanya dikarenakan adanya kekurang pahaman atau bahkan sampai kesalah pahaman pengertian developer aplikasi mengenai user requirement yang ada.

Yang berbeda dari metodologi prototipe ini, apabila dibandingkan dengan waterfall, yaitu adanya pembuatan prototype dari sebuah aplikasi, sebelum aplikasi tersebut memasuki tahap design. Dalam fase ini, prototype yang telah dirancang oleh developer akan diberikan kepada user untuk mendapatkan dievaluasi. Tahap ini akan terus menerus diulang sampai kedua belah pihak benar-benar mengerti tentang requirement dari aplikasi yang akan dikembangkan. Apabila prototype telah selesai, maka tahapan aplikasi akan kembali berlanjut ke tahap design dan kembali mengikuti langkah-langkah pada waterfall model. Kekurangan dari tipe ini adalah tim developer pengembang aplikasi harus memiliki kemampuan yang baik karna dalam mengembangkan prototype ini hanya terdapat waktu yang singkat. Sebuah prototiping adalah sebuah sistem dalam  fungsi yang sangat minimal.

Tahapan Metodologi Prototipe:

1.      Pengumpulan Kebutuhan dan perbaikan
Menetapkan segala kebutuhan untuk pembangunan perangkat lunak
2.      Disain cepat
Tahap penerjemahan dari keperluan atau data yang telah dianalisis ke dalam bentuk yang mudah dimengerti oleh user.
3.      Bentuk Prototipe
Menerjemahkan data yang telah dirancang ke dalam bahasa pemrograman (Program contoh atau setengah jadi )
4.       Evaluasi Pelanggan Terhadap Prototipe
Program yang sudah jadi diuji oleh pelanggan, dan bila ada kekurangan pada program bisa ditambahkan
5.      Perbaikan Prototype
Perbaikan program yang sudah jadi, sesuai dengan kebutuhan konsumen. Kemudian dibuat program kembali dan di evaluasi oleh konsumen sampai semua kebutuhan user terpenuhi.
6.      Produk Rekayasa
Program yang sudah jadi dan seluruh kebutuhan user sudah terpenuhi

Kelebihan Metode Prototipe

·         Developer belajar langsung mengenai kebutuhan sistem dari customer/user,
·         Hasil produk yang lebih akurat (lebih sesuai dengan permintaan user),
·         Desain sistem lebih fleksibel,
·         Iteraktif dengan adanya simulasi prototype,
·         Untuk pengembangan lebih lanjut (jika terjadi perubahan), developer hanya perlu mengubah prototype,
·         Jika customer sudah ”puas”, prototype dibuat menjadi system secara sempurna untuk dijadikan ’Final Product’.

Sedangkan kekurangan-kekurangannya yakni:

·         Proses bisa jadi berlanjut terus menerus tanpa henti (mengikuti keinginan customer),
·         Bisa jadi customer malah menginginkan prototype system dikirim,
·         Reputasi  yang  buruk  sebagai  sebuah  metode  yang bersifat ”Quick-and-Dirty”.
·         Kemungkinan perawatan secara keseluruhan bisa saja terabaikan.
·         Pengembangan yang berlebihan untuk prototype.