Jumat, 30 Maret 2018

Basis Data Post 2 Jelaskan apa itu SQL dan NoSQL.


Jelaskan apa itu SQL dan NoSQL.

Pengertian SQL dan NoSQL

1.      SQL

SQL (Structure Query Language) Database merupakan database relasional atau database yang terstruktur. Jadi SQL database ini merupakan penyimpanan data yang menggunakan relation dan biasa disebut sebagai tabel. Artinya sql database ini dapat menemukan data yang di carinya menggunakan karakteristik umum yang terdapat pada penyimpanannya dan hasil pencariannya disebut dengan skema.

Seperti yang saya sebutkan diatas, swl databse merupakan penyimpanan data/database yang selasional maka artinya database ini akan menggunakan tabel (kolom dan baris) pada penyimpanannya. Sql database ini merupakan bahasa pemrograman yang digunakan untuk mengelola data dalam database relasional

2.      NoSQL

Berbeda dengan SQL Database, dari namanya saja sudah bisa ditebak bahwa nosql database adalah kebalikan dari sql database. Tidak relational/tanpa telation. Database nosql atau yang biasa disebut NoSQL database/cloud database merupakan penyimpanan data/database yang tidak terstruktur.

Nosql database tidak seperti sql databse yang menggunakan tabel dalam penyusunan datanya, nosql database menggabungkan semua database tidak membedakan jenis-jenisnya dan tanpa karakterististik umum. Tapi nosql database ini memiliki kecepatan yang supercepat dibanding dengan sql database. Pencariannya lebih terfokus. Nosql sebetulnya tidak 100% menyimpan data dengan cara tidak terstruktur, terkadang ada miripnya dengan sql database dengan sedikit susunan pada saat-saat tertentu.

Bedanya nosql database ini menyusun bagian didalam bagian lainnya (subset). Jadi setiap bagian akan memiliki beberapa bagian lagi didalamnya. Nosql ini cocok dan biasa digunakan untuk penyimpanan aplikasi atau data yang sangat besar. Karena dengan menggunakan nosql data dapat diakses dengan sangat fleksibel dan sangat sedikit kemungkinan eror ketika mengakses banyak data dengan format yang berbeda-beda.




Basis Data Post 1 Pilih satu DBMS (Bebas) buat tata cara instalasi. Sebutkan kelebihan dan kekurangan dari DBMS.

Pilih satu DBMS (Bebas) buat tata cara instalasi. Sebutkan kelebihan dan kekurangan dari DBMS.

Apa itu MySQL ?

MySQL merupakan sebuah perangkat lunak sistem manajemen basis data SQL, atau DBMS yang multialur, multipengguna, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis di bawah lisensi GNU General Public Licence (GPL), akan tetapi mereka juga menjual di bawah lisensi komersial untuk kasus-kasus di mana penggunaannya tidak cocok dengan pengguna GPL.



Tata cara install MySQL

Seperti yang kita ketahui bahwa database mysql ini sudah diakuisisi oleh oracle, sehingga perkembangannya secara penuh dipegang oleh sun microsystem. Mari kita mulai install database mysql.

1.      Persiapan instal database MySQL

Silakan download terlebih dahulu software nya di : dev.mysql.com/downloads/mysql, didalam tutorial ini menggunakan MySQL versi 5.7.16.0 community. Silakan download versi terakhir atau versi yang terbaru dan simpan di komputer anda. Pastikan arsitektur prosesor anda, kita tidak menggunakan versi enterprise karena versi tersebut berbayar, sedangkan kita tidak membutuhkannya sekarang ini kecuali memang untuk perusahaan besar.

Biasanya perbedaan versi gratis dan berbayar pada perangkat lunak yang mendasar adalah penyedia akan terus melakukan support update versi terbaru dan bug fixing. Pastikan anda telah menyimpan source MySQL pada komputer anda, lalu ikuti tutorial instal database mysql dibawah ini.

§  Pastikan anda telah menyimpan source MySQL pada komputer anda, lalu jalankan file mysql-installer-community-5.7.16.0. msi yang ada di folder tempat anda menyimpan hasil download source mysql tadi.

§  Setelah itu akan muncul dialog keterangan Windows Configures MySQL installer. Tunggu sampai proses loading ini selesai.

§  Seperti pada umumnya kita menginstal aplikasi, akan muncul tampilan License Agreement, silakan centang checkbox I Accept the license terms lalu klik Next.

§  Lalu akan muncul tampilan Choosing a Setup Type, disini ada beberapa opsi pilihan proses instalasi, yaitu : Developer Default, Server Only, Client Only, Full, Custom. Penulis tidak dapat menjelaskan masing-masing opsi, namun perbedaan yang mendasar dari masing-masing opsi adalah program apa saja yang ingin diinstal didalamnya, tapi yang pasti kita pilih Server Only, karena memang yang kita butuhkan adalah MySQL Server, tidak perlu yang lain. Silahkan klik Server Only lalu klik Next.

§  Selanjutnya akan muncul daftar program apa saja yang kita akan pasang di komputer kita, karena pada sebelumnya kita hanya akan instal database mysql server saja maka yang muncul hanya satu saja, yaitu MySQL Server. Setelah itu klik Execute. Maka proses instal database MySQL berjalan, jika ingin melihat detail proses instal database MySQL silahkan klik tombol Show Detail.

§  Setelah itu akan tampil keterangan bahwa proses instal database mysql telah complete pada bagian status dan pada bagian detail proses instal database mysql akan muncul fitur aja saja didalamnya lalu klik Next.

§  Sampai disini akan muncul daftar konfigurasi mysql, karena awal kita memilih server only, jadi yang muncul hanya pengaturan konfigurasi mysql, klik Next.

§  Lalu kita akan dibawa ke bagian konfigurasi awal, yaitu Type and Networking, untuk detail konfigurasi silahkan anda samakan dengan dibawah ini, setelah itu jika telah sesuai klik Next.

§  Setelah itu akan muncul bagian konfigurasi Accounts and Roles, pada bagian ini penulis tidak tahu apakah kolom password bisa dikosongkan atau tidak, namun penulis mengisi password “admin” tanpa tanda kutip, silahkan anda sesuaikan. Untuk dibagian bawah dilewatkan saja, jika ingin menambah pengguna di MySQL yang anda instal di komputer anda ini, jika telah selesai silakan klik Next.

§  Setelah itu akan muncul bagian konfigurasi windows service, pada konfigurasi yang akan menangani proses startup program MySQL ini, sehingga apabila komputer baru saja di aktifkan maka secara otomatis MySQL dapat langsung digunakan tanpa perlu diaktifkan terlebih dahulu silahkan ikuti pengaturan dibawah ini, jika telah selesai klik Next.

-          Centang Configure MySQL Server as a Windows Service

-          Pada kolom Windows Service Name silahkan isi sesuai keinginan, namun penulis membiarkan secara default atau bawaan, ini hanya masalah penamaan service saja.

-          Lalu centang pada Start the MySQL Server at System Startup.

-          Lalu pilih Standard System Account.

§  Setelah itu akan dibawa kebagian Plugins and Extension, pada konfigurasi ini, penulis membiarkan semuanya dikosongkan. Lalu klik Next.

Sampai disini semua konfigurasi akan dijalankan secara otomatis dan akan terlihat apa saja yang akan dikonfigurasi oleh system, dibagian ini semua akan berjalan dengan otomatis, anda hanya tinggal klik tombol Execute saja. Jika seluruh daftar konfigurasi telah selesai semua, maka daftar itu akan secara otomatis satu persatu muncul icon ceklis warna hijau, icon itu menunjukan bahwa masing-masing konfigurasi telah selesai. Lalu klik Finish.

§  Setelah itu kita akan dikembalikan lagi ke bagian Product Configuration, namun bedanya kali ini adalah daftar keterangan modul apa saja yang telah selesai di konfigurasi, karena pada awal kita hanya memilih Server Only, maka yang muncul hanya daftar source MySQL Server. Lalu klik Next.

§  Terakhir akan muncul keterangan Installation Complete, dibagian ini ada tombol Copy Log to Clipboard, tombol ini berfungsi untuk meng-copy seluruh keterangan Log Proses Installasi, biarkan saja tombol tersebut. Silahkan klik Finish.

sampai disini proses install database mysql telah selesai, namun untuk dapat memastikannya silahkan klik tombol start jika anda menggunakan windows 7 atau windowa 10, namun jika menggunakan menggunakan windows 8, silahkan anda cari melalui kolom pencarian pada bagian kanan layar.

Jika sudah klik start, klik All Programs -> MySQL -> MYSQL 5.7 lalu pilih MySQL 5.7 Command Line Client, maka akan muncul Commpand Promp, dan anda ditanya password, silahkan masukkan password yang sebelumnya telah ditentukan pada bagian konfigurasi MySQL. Jika sudah masuk, silahkan ketikan perintah berikut ini : SHOW DATABASE; lalu klik enter, maka akan muncul sejumlah database.



Berikut beberapa contoh kelebihan dan kekurangan dari DBMS

Kelebihan DBMS :

a.       Mengendalikan atau mengurangi duplikasi data.

b.      Menjaga konsistensi dan integritas data

c.       Memudahkan pemerolehan informasi yang lebih banyak dari data yang sama disebabkan data dari berbagai bagian dalam organisasi dikumpulkan menjadi satu.

d.      Meningkatkan keamanan data dari orang yang tak berwewenang.

e.       Memaksakan penerapan standar.

f.       Dapat menghemat biaya karena data dapat dipakai oleh banyak departemen.

g.      Menanggulangi konflik kebutuhan antarpemakai karena basis data di bawah kontrol administrator basis data.

h.      Meningkatkan tingkat respon dan kemudahan akses bagi pemakai akhir.

i.        Meningkatkan produktivitas pemrograman.

j.        Meningkatkan pemeliharaan melalui indenpedensi data.

k.      Meningkatkan konkurensi (pemakai data oleh sejumlah data) tanpa menimbulkan masalah kehilangan informasi atau integritas.

l.        Meningkatkan layanan backup dan recovery.



Kekurangan DBMS:

a.       Kompleksitas yang tinggi membuat admistrator dan pemakai akhir harus benar-benar memahami fungsi-fungsi dalam DBMS agar dapat memperoleh manfaat yang optimal. Kegagalan memahami DBMS dapat mengakibatkan keputusan rancangan salah yang akan memberikan dampak serius bagi organisasi.

b.      Ukuran penyimpan yang dibutuhkan oelh DBMS sangat besar dan memerlukan memori yang besar agar bisa bekerja secara efisien.

c.       Terkadang DBMS kebutuhan perangkat keras dengan spesifikasi tertentu sehingga diperlukan biaya tambahan.

d.      Rata-rata harga DBMS yang handal sangat mahal.

e.       Biaya konversi sistem lama (yang mencakup biaya pelatihan staf dan biaya untuk jasa konversi) ke sistem baru yang memakai DBMS terkadang sangat mahal melebihi biaya untuk memebeli DBMS.

f.       Kinerjanya terkadang kalah dengan sistem yang berbasis berkas.

g.      Dampak kegagalan menjadi lebih tinggi karena semua pemakai sangat bergantung pada ketersediaan DBMS. Akibatnya, kalau terjadi kegagalan dalam komponen lingkungan DBMS akan membuat operaasi dalam organisasi tersendat atau bahkan terhenti.

Rekayasa Perangkat Lunak Pertemuan ke7

SOFTWARE TESTING

Software testing adalah aktivitas-aktivitas yang bertujuan untuk mengevaluasi atribut-atribut atau kemampuan sebuah program atau sistem dan penentuan apakah sesuai dengan hasil yang diharapkan. Testing adalah proses pemeriksaan program dengan tujuan tertentu dalam menemukan kesalahan sebelum diserahkan ke pengguna.
Verification: Apakah kita membangun produk dengan benar, Software seharusnya sesuai dengan spesifikasinya. Gunakan proses software yang bagus. Validation: “Apakah kita membangun produk yang benar, Software seharusnya melakukan apa yang pengguna benar-benar butuhkan.
Tahapan Testing
Terdapat cukup banyak pendekatan yang dilakukan untuk melakukan testing. Salah satu definisi testing adalah “sebuah proses yang melakukan pertanyaan terhadap sebuah produk untuk dinilai”, di mana “pertanyaan” merupakan segala sesuatu yang diberikan kepada produk sebagai pengujian.
Beberapa tahapan testing yang umum dilalui oleh aplikasi adalah sebagai berikut:
1.Unit/ComponentTesting.

Terbagi atas testing terhadap unit dan component. Unit testing merupakan proses testing, di mana Anda melakukan testing pada bagian basic dari kode program. Contohnya adalah memeriksa kode program pada event, procedure, dan function. Unit Testing meyakinkan bahwa masing-masing unit tersebut berjalan sebagaimana mestinya.Pada Unit Testing, Anda memeriksa bagian kode program secara terpisah dari bagian yang lain. Anda dapat langsung melakukan Unit Testing setiap kali sebuah kode unit (event, procedure, function) selesai dibuat. Anda dapat memeriksa kode unit dengan menjalankannya baris per baris untuk memastikan bahwa proses yang dilakukan berjalan sebagaimana yangAndainginkan.

2.IntegrationTesting.
Setelah Anda melakukan Unit/Component Testing, langkah berikutnya adalah memeriksa bagaimana unit-unit tersebut bekerja sebagai suatu kombinasi, bukan lagi sebagai suatu unit yang individual. Sebagai contoh, Anda memiliki sebuah proses yang dikerjakan oleh dua function, di mana satu function menggunakan hasil output dari function yang lainnya. Kedua function ini telah berjalan dengan baik secara individu pada Unit Testing. Pada tahap Integration Testing, Anda memeriksa hasil dari interaksi kedua function tersebut, apakah bekerja sesuai dengan hasil yang diharapkan. Anda juga harus memastikan bahwa seluruh kondisi yang mungkin terjadi dari hasil interaksi antarunit tersebut menghasilkanoutputyangdiharapkan.

3.SystemTesting.

Mencakup testing aplikasi yang telah selesai didevelop. Karena itu, aplikasi harus terlihat dan berfungsi sebagaimana mestinya terhadap end-user atau pengguna akhir. Untuk itu, testing dilakukan dengan menggunakan data yang menggambarkan data yang digunakan oleh pengguna sesungguhnya terhadap aplikasi. Jika aplikasi Anda di-develop untuk lingkungan yang besar,
Anda dapat melakukan testing pada dua komputer yang berbeda. Komputer yang Anda gunakan sebagai komputer testing harus terlebih dahulu dikonfigurasi hanya dengan:

a. Operating system yang dibutuhkan.
b. Driver yang diperlukan oleh aplikasi.
c. Aplikasi yang dites.

Dengan menggunakan konfi gurasi yang paling minimal dan sederhana, maka dapat membantu Anda untuk memastikan bahwa permasalahan yang timbul selama testing berlangsung adalah merupakan kesalahan aplikasi, dan bukan kesalahan yang berasal dari aplikasi atau software lain.

4.AcceptanceTesting.

Seperti Integration Testing, Acceptance Testing juga meliputi testing keseluruhan aplikasi. Perbedaannya terletak pada siapa yang melakukan testing. Pada tahap ini, end-user yang terpilih melakukan testing terhadap fungsi-fungsi aplikasi dan melaporkan permasalahan yang ditemukan. Testing yang dilakukan merupakan simulasi penggunaan nyata dari aplikasi pada lingkungan yang sebenarnya. Proses ini merupakan salah satu tahap final sebelum pengguna menyetujui dan menerima penerapan sistem aplikasi yang baru. Karena itu pada tahap ini sudah tidak difokuskan untuk mengangkat permasalahan kecil seperti kesalahan pengetikan, ataupun kosmetik aplikasi. Hal-hal minor seperti di atas sudah seharusnya ditangani selama Unit/Component Testing dan Integration Testing.

5.RegressionTesting.
Merupakan bagian penting dari masing-masing tahap proses testing. Regression Testing mencakup pengujian ulang terhadap unit, component, proses, atau keseluruhan aplikasi setelah perbaikan suatu kesalahan dilakukan.Regression Testing memastikan permasalahan yang terjadi telah ditanggulangi, dan tidak terdapat permasalahan baru yang timbul sebagai efek perbaikan tersebut. Selain itu, tahap ini tidak hanya berguna untuk melakukan pengujian aplikasi, tetapi dapat juga digunakan untuk melakukan pemantauan kualitas dari output yang dihasilkan. Sebagai contoh, Regression Testing memantau ukuran file, waktu yang dibutuhkan untuk melakukan suatu tes, waktu yangdibutuhkanuntukmelakukankompilasi,danlainsebagainya.


White-Box Testing



Black_Box Testing


Strategi OO Testing



Unit Testing





Software Quality Assurance (Jaminan Kualitas Perangkat Lunak)
Software Quality Assurance (SQA) diaplikasikan secara menyeluruh pada proses pengembangan
software. SQA meliputi : (1) analisis, perancangan, pengkodean, dan metode serta peralatan ujicoba, (2)
Tinjauan ulang teknikal secara formal yang diaplikasikan pada setiap tahapan pengembangan software, (3)
strategi ujucoba dengan banyak tahapan (multitiered), (4) pengawasan terhadap dokumentasi software dan
perubahan yang dialaminya, (5) suatu prosedur untuk menjamin pemenuhan standar pengembangan software
(jika ada), (6) mekanisme pengukuran dan laporan .
Setiap pengembang software pasti setuju jika dikatakan bahwa kualitas software merupakan salah satu
tujuan yang penting. Banyak definisi mengenai kualitas software, tetapi disini kualitas software didefinisikan
sebagai : penyesuaian fungsional yang ditetapkan secara eksplisit dan kebutuhan performa, standar
pengembangan yang terdokumentasi secara eksplisit, dan karakteristik implisit yang diharapkan dari seluruh software yang dikembangkan secara professional.

Pengujian Life Cycle
– Merupakan pengujian performansi yang dilakukan secara paralel dengan pengembangan sistem.
– Pengujian life cycle termasuk kategori full testing
– Bertujuan untuk menghilangkan defect sedini mungkin



Jenis Pengujian
• Pengujian Pra-Implementasi
– pengujian sebelum aplikasi dioperasikan
– sistem berfungsi sesuai spesifikasi yang ditetapkan
– Menghilangkan defect
– Menghilangkan defect
• Pengujian Pasca-Implementasi
– pengujian setelah aplikasi dioperasikan (bagian
dari tahap Maintenance)

Defect pada Aplikasi
– Salah menginterpretasikan user requirement
– User salah menspesifikasikan requirement
– Kesalahan pencatatan requirement
– Rancangan tidak sesuai requirement
– Program tidak sesuai rancangan
– Program tidak sesuai rancangan
– Program tidak sesuai spesifikasi
– Error saat pemasukan data
– Error saat pengujian
– Salah memperbaiki error
– Perbaikan menyebabkan defect yang lain
Definisi diatas menjelaskan 3 hal penting, yaitu :
1. Kebutuhan software merupakan pondasi/dasar dari kualitas yang akan diukur. Sedikitnya penyesuaian
terhadap kebutuhan, maka semakin tidak berkualitas.
2. Standar yang dispesifikasikan mendefinisikan sekumpulan kriteria pengembangan yang memandu
pengembangan software. Jika kriteria tidak disertakan, maka dapat dipastikan hasil akhir akan
berkualitas rendah.
3. Terdapat kebutuhan implisit (implicit requirements) yang terkadang tidak disebutkan (misalkan,
keinginan untuk kemampuan pemeliharaan yang mudah). Jika software menyesuaikan kepada
kebutuhan eksplisit, tetapi tidak kepada kebutuhan implisit, maka kualitas software akan dipertanyakan.

Faktor-faktor kualitas software(Software quality factors)
Faktor-faktor yang dapat mempengaruhi kualitas software dibagi menjadi 2 kategori :
1. Faktor-faktor yang dapat diukur secara langsung (misalkan : error )
2. Faktor-faktor yang dapat diukur secara tidak langsung (misalkan : usability dan maintainability).
Tipe-tipe system testing
• Security
• resource usage : mengukur penggunaan RAM, ruang disk, dll
• installability : di install pada bermacam-macam keadaan (mengukur waktu install)
• recoverability : mengukur waktu untuk me-recover
• serviceability : mengukur waktu service
• load/stress: untuk data extreme dan traffic
• Regression Testing
• Acceptance Testing by user or a testing team
• Beta Testing
• Release testing
Standar ANSI/IEEE untuk test dokumentasi
• Introduction
• test plan : item dalam test,ruang lingkup, pendekatan, resource, jadwal, personel
• test design: item yang ditest, pendekatan, rencana detail
• test case : kumpulan input dan event
• test procedures : langkah-langkah untuk menyeting dan mengeksekusi test case
Sebuah proses pengujian standar biasanya meliputi dasar pengujian berikut :

(1) mempersiapkan rencana rencana uji.Dalam tes, kita sepenuhnya harus mempertimbangkan waktu pengembangan proyek secara keseluruhan dan pengembangan untuk anak serta beberapa faktor manusia dan kondisi obyektif, menciptakan tes berencana layak.Utama menelusuri isi rencana uji, penjadwalan lingkungan pengujian, uji dan persyaratan yang dibutuhkan untuk menguji pengaturan pelatihan.
(2) penyusunan kerangka kerja berdasarkan garis ujian.Ini uji.Uji jelas mendefinisikan secara rinci sistem dalam tes untuk fitur atau fitur dari masing-masing harus menyelesaikan item tes dasar dan kriteria uji penyelesaian.
(3) Menurut garis besar desain dan pengujian untuk menghasilkan kasus.Bila tes dalam desain kasus uji, uji kasus dapat dipresentasikan di depan pemanfaatan teknik dan desain, sehingga desain dan isi dokumentasi uji diukur barang , data input, proses pengujian, output yang diharapkan dan sebagainya.
(4) untuk melaksanakan implementasi ujian.Tahap dari tes ini terdiri dari serangkaian siklus uji.Dalam setiap siklus tes, penguji dan pengembang akan didasarkan pada pre-test dan mempersiapkan program persiapan tes yang bagus, perangkat lunak tes, atau peralatan untuk menyelesaikan tes.http://www.blogger.com/img/blank.gifhttp://www.blogger.com/img/blank.gif
(5) membuat uji.Test laporan selesai, untuk membentuk laporan uji yang tepat, garis utama tes menetapkan bahwa kesimpulan tes cacat dan kesalahan, juga memberikan beberapa saran, seperti metode modifikasi dapat digunakan, perubahan beban kerjahttp://www.blogger.com/img/blank.gif diproyeksikandan memodifikasi jawab petugas.

Referensi :
http://www.cetus-links.org/oo_testing.html

http://syah69.blogspot.com/2008/10/seluk-beluk-testing-aplikasi.html
http://didiktristianto.dosen.narotama.ac.id/files/2011/09/Pertemuan-12-SoftwareTesting.ppt
http://pasca.uns.ac.id/~saptono/testing/SoftwareTesting3.pdf

Minggu, 25 Maret 2018

Data Base (tatacara instalasi)

Cara Instalasi Apache PHP MySQL di Linux

Anda pasti sudah sering mendengar ketiga "nama besar" tersebut dalam jajaran produk-produk open source yang beredar di pasaran. KehAndalan Web Server Apache yang dipadukan dengan "kesederhanaan" PHP dan DBMS (database management system) MySQL merupakan pilihan yang tepat bagi Anda yang menginginkan kestabilan dan efisiensi (: baca pengiritan) dalam suatu server. Sudah banyak pihak yang menggunakan tiga sekawan ini dalam melakukan berbagai kegiatannya di dunia maya.
Masalahnya adalah bagaimana caranya supaya Anda yang sudah memiliki webhosting sendiri (baik yang berbayar maupun yang gratisan) bisa menghadirkan tiga sekawan ini tanpa perlu terkoneksi ke internet. Bukankah akan membuang-buang (dan waktu) kalau tiap kali Anda ingin memprogram skrip PHP untuk membenahi web Anda, harus selalu terkoneksi ke internet telebih dahulu. Apalagi kalau koneksi internetnnya pas-pasan. Bisa-bisa malah stres jadinya.
Bukankah lebih enak kalau Anda bisa menghadirkan Apache, PHP, dan MySQL di lingkungan lokal. Selain lebih irit, kecepatannya pun akan meningkat sangat drastis karena tidak perlu terkoneksi ke internet. Anda bisa merancang sendiri website/blog dan melihat hasilnya secara instan. Tampilan yang Anda lihat di browser secara lokal akan sama persis dengan tampilan ketika website/blog tersebut sudah Anda upload ke webhosting milik Anda di internet.
Ya, semua itu bisa terwujud berkat adanya semacam virtualisasi PHP, Apache, dan MySQL di lingkungan lokal. Semuanya sama, hanya saja Anda tak perlu koneksi internet untuk menikmatinya. Idenya adalah men-install PHP, Apache, dan MySQL di komputer milik Anda kemudian diakses melalui localhost (biasanya memiliki nomor Internet Protocol 127.0.0.1).
Untuk meng-install PHP, Apache, dan MySQL ada dua cara. Cara pertema adalah Anda mendownload PHP, Apache, dan MySQL secara terpisah dari situsnya masing-masing kemudian dilakukan pengaturan (setting) supaya ketiganya bisa terkoneksi sebagai satu kesatuan. Atau Anda juga bisa memilih cara kedua yang lebih simpel dan mudah yakni dengan mendownload paket software yang berisi PHP, Apache, dan MySQL dan kita tinggal meng-install-nya saja. Paket software yang terdiri atas PHP, Apache, dan MySQL biasanya disingkat dengan AMP (terkadang AMPP dengan P yang terakhir merupakan kependekan dari Perl). Paket AMP ini ada beberapa jenis seperti WAMP (Windows-Apache-MySQL-PHP) untuk sistem operasi Microsoft Windows, LAMP (Linux-Apache-MySQL-PHP) untuk sistem operasi GNU/Linux dan XAMPP (X-Apache-MySQL-PHP-Perl) tersedia versi Windows maupun Linux.
Pada kesempatan kali ini, kita akan membahas tata cara meng-install LAMP dan yang akan digunakan sebagai contoh adalah distro GNU/Linux turunan Ubuntu yakni Linux Mint (versi 5). Secara umum, cara instalasi pada distro-distro GNU/Linux lainnya lebih kurang sama. Jadi tak perlu khawatir dengan masalah kompabilitas. Oke segera saja kita mulai proses instalasinya.
  1. Pertama, download lebih dulu paket software LAMP. Pada contoh kali ini yang diapakai adalah paket software LAMP yang dibuat oleh BitNami bernama BitNami LAMP Stack. Anda bisa mendownloadnya dari situs http://www.bitnami.org/stacks/
  2. Kebetulan penulis mendownload BitNami LAMP Stack vesi 0.94 dan nama filenya adalah bitnami-lampstack-0.9.4-linux-installer.bin (berbentuk binary file jadi bisa di-install di semua distro GNU/Linux).
  3. Langkah pertama adalah membuka Terminal/Konsole. Ketikkan su (super user, untuk masuk sebagai root) lalu tekan enter dan masukkan password root.
  4. Masuk ke direktori tempat Anda menyimpan installer yang sudah Anda download tadi. Kalau Anda meng-install di folder /home/nama-user/Download ketikkan aja "cd home/nama-user/Download" (tanpa tAnda petik).
  5. Ketikkan ls (huruf L dan S) atau dir untuk melihat isi folder. Lalu untuk merubah hak akses dari file installer tadi, ketikkan "chmod 777 bitnami-lampstack-0.9.4-linux-installer.bin" (tanpa tAnda petik) diakhiri Enter.
  6. Setelah itu ketikkan "./bitnami-lampstack-0.9.4-linux-installer.bin" (tanpa tAnda petik) diakhiri Enter.
  7. Tunggu beberapa saat, akan muncul window instalasi. Cukup klik Forward untuk melanjutkan proses instalasi.
  8. Tentukan dimana Anda ingin meletakkan file-file LAMP kalau ingin meng-install-nya di /opt cukup klik Forward untuk melanjutkan.
  9. Ketikkan password untuk database MySQL (ser default adalah root) dan Anda bisa menambahkan user lainnya nanti setelah proses instalasi selesai.
  10. Langkah berikutnya adalah membuat password untuk menggunakan PMA (PHPMyAdmin) sebuah software yang powerfull untuk mengelola database MySQL berbasis web. User name-nya adalah administrator.
  11. Semuanya sudah siap dan tinggal menunggu perintah Anda untuk memulai instalasi.
  12. Klik Forward dan proses instalasi pun akan segera berjalan.
  13. Pada akhir proses instalasi akan berjalan agak lama karena installer akan melakukan inisialisasi Database MySQL.
  14. Kalau instalasi berjalan dengan sukses maka Anda akan dihadapkan pada window terakhir. Klik Forward untuk mulai menggunakan LAMP.
  15. Buka browser kesukaan Anda (Mozilla Firefox, Opera, Konqueror, Epiphany, Sea Monkey atau yang lain) dan ketikkan 127.0.0.1 atau localhost lalu tekan Enter. Anda akan dibawa ke halaman awal LAMP (kalau browser tak mau menampilkan halaman awal maka tambahkan port default 8080 setelah localhost sehingga menjadi localhost:8080 baru tekan Enter).
  16. Saatnya mencoba aplikasi yang lain ketikkan localhost/phpmyadmin (atau localhost:8080/phpmyadmin) untuk mengakses database MySQL melalui web browser. Masukkan user name administrator dan password yang sudah Anda masukkan ketika proses instalasi tadi.
  17. Tampilan awal PHPMyAdmin akan segera nampak di browser Anda.
  18. Untuk menghentikan (stop) web server Apache dan DBMS MySQL maka Anda bisa melakukannya dari Terminal/Konsole. Ketikkan cd lokasi dimana Anda meng-install LAMP misalnya "cd /opt/lampstack-0.9.4" (tanpa tAnda petik). Kemudian ketikkan "./ctlscript.sh stop mysql" untuk menghentikan MySQL dan ketikkan "./ctlscript.sh stop apache" untuk menghentikan Apache.
  19. Untuk memulai Apache dan MySQL cukup ganti "stop" pada langkah 18 menjadi start. Jadi untuk memulai Apache ketikkan "./ctlscript.sh start apache" dan untuk memulai MySQL cukup ketikkan "./ctlscript.sh start apache".
  20. Kalau Anda hanya ingin coding dengan PHP maka cukup aktifkan Apache saja. Tapi kalau Anda ingin menggunakan MySQL maka Anda harus mengaktifkan kedua-duanya (Apache dan MySQL).
  21. Anda bisa menempatkan website Anda di /folder-instalasi-LAMP/apache2/htdocs
  22. Secara default di folder htdocs telah ada index.html dan ketika Anda menambahkan folder website Anda di sana maka kalau diakses lewat browser yang nampak hanyalah index.html milik LAMP. Supaya website Anda bisa langsung diakses maka rename aja index.html menjadi nama lain misalnya 0_index.html atau sekalian dihapus juga tidak masalah. Kalau Anda me-rename index.html maka ketika Anda mengetikkan localhost yang tampil hanyalah folder dan beberapa file yang ada di htdocs.
  23. Sekarang Anda bisa mulai membuat website. Buat folder baru di htdocs (misalnya folder bernama "coba") lalu akses localhost.

Jumat, 16 Maret 2018

Rekayasa Perangkat Lunak Software engineering

Software Engineering: The Process, Process Model, and Agile View


Kembali lagi dengan tulisan Software Engineering Series saya. Jika pada tulisan sebelumnya saya membahas tentang hasil dari proses rekayasa perangkat lunak, sekarang saya akan membahas tentang konsep “proses” dari rekayasa perangkat lunak itu sendiri. Kali ini, akan dibahas tentang definisi dan mekanisme proses dalam RPL, berbagai macam model yang merepresentasikan proses tersebut, dan pendekatan baru dalam pendefinisian proses tersebut yang biasa disebut Agile View of Process.
Sebelum berbicara tentang proses, mari kita tinjau definisi dari Software Engineering atau Rekayasa Perangkat Lunak. Saya akan mengambil definisinya sebagai berikut:
“Software Engineering: (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1).” — IEEE
Definisi tersebut menyatakan bahwa RPL merupakan pendekatan yang sistematis, terstruktur dan terukur dalam pengembangan, pengoperasian, dan pemeliharaan P/L. Selain itu, RPL juga membahas pendekatan-pendekatan apa saja yang dapat digunakan dalam pembangunan P/L ini. Dalam hal ini, RPL memiliki arti sebagai proses dan studi tentang proses dalam pembangunan P/L. Sebagai studi tentang proses, RPL ditinjau ke dalam 4 lapis teknologi seperti yang terlihat pada gambar berikut:
Software Engineering - 4 Layered Technology
Software Engineering – 4 Layered Technology
Keempat lapis ini merupakan concern yang dibahas dalam konteks keilmuan RPL. Lapisan-lapisan ini melambangkan urutan yang perlu menjadi fokus pembahasan dalam RPL. Dalam hal ini, urutannya dimulai dari bawah ke atas.
Prinsip dasar RPL adalah membangun P/L yang memiliki kualitas baik, sehingga diperlukan quality focus. Untuk merealisasikan quality focus ini, fondasi yang perlu dibangun adalah pendefinisian process yang baik. Pendefinisian proses berarti akan menjadi basis manajemen pada pembangunan P/L termasuk metode teknis, produk kerja (model, dokumen, data, laporan, form, dll.), milestone, kualitas, dan manajemen perubahan.
Setelah proses telah terdefinisi, methods yang menentukan cara teknis membangun P/L juga perlu didefinisikan. Terakhir, tools ditentukan untuk mempermudah proses pembangunan P/L. Pembangunan P/L menggunakan tools otomatis ini biasa disebut CASE (Computer-Aided Software Engineering).
Generic View of Process
Secara umum, proses dalam RPL wajib memiliki tiga fase, yaitu:
  1. Definition Phase, yakni berfokus pada “what” (informasi yang perlu diproses, fungsi yang diperlukan, system behavior yang diharapkan, dll.). Hal ini berkaitan dengan penentuan kebutuhan dari P/L.
  2. Development Phase, yakni berfokus pada “how” (struktur data yang merepresentasikan informasi, implementasi fungsi, dll.). Hal ini akan berkaitan dengan pembangunan solusi dari problem yang didefinisikan pada fase sebelumnya.
  3. Support Phase, yakni berfokus pada “change” yang berkorelasi dengan perbaikan kesalahan, adaptasi, dan perbaikan sesuai perubahan kebutuhan customer.
Process Model
Model proses merupakan gambaran (kerangka kerja) yang merepresentasikan proses dalam RPL agar mudah dipahami dan proses dapat dilakukan sesuai dengan aturannya. Berbagai macam model telah diajukan menyesuaikan dengan berbagai macam kondisi yang mungkin dalam pembangunan perangkat lunak. Beberapa model proses dalam RPL adalah sebagai berikut:
1. Prescriptive Models
  • Waterfall Model; basis dari model lain dalam bentuk linier.
The Waterfall Model
The Waterfall Model
  • Incremental Process Models (Incremental Models, Rapid Application Development (RAD)); adanya tahapan-tahapan dalam pengembangan P/L.
Incremental Model
Incremental Model
Rapid Application Development
Rapid Application Development
  • Evolutionary Process Models (Prototyping, Spiral Model, Concurrent Development Model); adanya perputaran yang berulang dalam pengembangan P/L.
Prototyping
Prototyping
The Spiral Model
The Spiral Model
The Concurrent Development Model
The Concurrent Development Model
2. Specialized Process Models
  • Component Based Development; mengedepankan konsep reusability (dalam bentuk komponen)
  • Formal Method; menggunakan model matematis untuk menghilangkan ambiguitas dan inkonsistensi
  • Aspect Oriented Development; mengedepankan separation of concern untuk fungsi yang tersebar.
3. The Unified Process; tiga karakteristik: use-case driven, architecture-centric, iterative dan incremental
Agile View of Process
Jika pada model proses yang diajukan sebelumnya berfokus pada pengembangan yang mengikuti kerangka kerja (framework) yang terdefinisi pada model prosesnya, beberapa ilmuwan berpendapat bahwa perlunya Agile View dalam pendefinisian proses dalam RPL. Ide dasar dari Agile View adalah fleksibilitas proses terhadap perubahan. Dalam hal ini, model proses yang ditawarkan dari Agile View berasumsi bahwa selama proses pengembangan P/L akan terjadi banyak perubahan yang terjadi karena perubahan kebutuhan customer.
Beberapa model proses yang memenuhi karakteristik Agile adalah sebagai berikut:
  1. Extreme Programming (XP)
  2. Adaptive Software Development (ASD)
  3. Dynamic Systems Development Method (DSDM)
  4. Scrum
  5. Crystal
  6. Feature Driven Development (FDD)
  7. Agile Modeling (AM)
Summary
Secara umum, dapat disimpulkan bahwa setiap model proses dalam RPL akan memiliki kelebihan dan kekurangannya masing-masing. Pemilihan model proses dalam pengembangan P/L akan mempertimbangkan berbagai hal terkait kondisi lingkungan pengembangan P/L tersebut. Saya yakin, ini berkaitan dengan banyaknya pengalaman dalam pembangunan P/L.

Rekayasa Perangkat Lunak Generic Proses Framework

1. Model Waterfall
waterfall
  • ini adalah paradigma yang tertua. model ini bagus dipilih apabila semua kebutuhan sudah siap jauh sebelum sistemini dimulai.
  • Kelebihan:
    • mudah diaplikasikan
    • cocok untuk produk yang sudah jelas kebutuhannya diawal sehingga minim kesalahannya.
  • Kekurangan:
    • sulit untuk melakukan perubahan
    • tidak fleksibel
2. Model V
V-Model
  • Variasi dari waterfall model yang berhubungan dengan aksi aksi yang terasosiasi dengan communication, modelling, construction, activities.
  • awalnya team bergerak ke bawah, setelah itu kekanan.
  • Kelebihan:
    • sangat fleksibel
    • dikembangkan dan di-maintain oleh publik
  • Kekurangan:
    • hanya bisa digunakan sekali dalam suatu proyek
    • terlalu fleksibel dalam arti ada beberapa activity terlalu abstrak
3. Incremental Model
increment
  • melakukan 1 model apabila ditengah jalan mendapat ide baru maka ide tersebut menjadi versi lain, versi selanjutnya framework proses dimulai dari awal.
  • bila kebutuhan awal telah didefinisikan dengan baik tetapi secara keseluruhan perkembangan masih menghalangi proses linier.
  • biasanya increment pertama adalah inti produk dengan banyak tambahan (modifikasi user).
  • Kelebihan:
    • resiko lebih minim
    • hasil dapat lebih baik secara bertahap
  • Kekurangan:
    • ada penambahan staff apabila terjadi increment terus menerus.
    • bila ada perubahan harus dikerjakan sebagai produk baru.
4. Evolutionary Model
evol
  • software/sistem berubah dari waktuke waktu. biasanya produk inti sudah dipahami denganbaik tapi detil dan perluasannya belum didefinisikan.
  • Ada dua yaitu:
1. Prototyping
      • digunakan ketika user sudah bisa mendefinisikan kebutuhan umum tetapii, tidak bisa secara detil menyatakan kebutuhan fungsi, fitur. pengembang tidak yakin dengan efisiensi algoritmanya.
      • proyek 60-90 hari menggunakan prototype.
2. Spiral
      • prototype yang sudah dikontrol dan waterfall dengan aspek sistematisnya
      • semakin berputa semakin berkembang sistemnya,ada tahapan untuk menjamin kenyamanan dan kepuasan, ada analisa terhadap resiko.
      • untuk skala yang besar dimana tiap proses ada kemajuannya.
  • Kelebihan:
    • Kualitas software yang dihasilkan cenderung lebih baik dengan kompleksitas yang sangat tinggi
    • sesuai dengan proyek yang bersifat ‘dapat dikembangkan secara terus menerus’
  • Kekurangan:
    • tidak cocok untuk proyek skala besar
    • sistem yang tidak bisa di modularisasi tidak cocok untuk model ini

A.      Software Process
  • Kerangka aktivitas, aksi dan tugas yang diperlukan untuk membangun software berkualitas tinggi
  • Menentukan pendekatan yang diambil untuk software yang direkayasa
  • Diadaptasi secara kreatif, berpengetahuan sehingga rekayasa perangkat lunak layak dibuat dan sesuai permintaan pasar

B.      Process Flow
  • Mendeskripsikan bagaimana kelima aktivitas framework, aksi dan tugas terorganisir sepanjang waktu
  • Linear process flow melakukan setiap aktivitas framework secara urut diawali dengan komunikasi diakhiri dengan penyebaran
  • Parallel process flow meakukan satu dari aktivitas secara parallel dengan aktivitas lain

C.      Task Set
  • Setiap aksi rekayasa software terkait aktivitas framework dapat direpresentasi oleh task set yang berbeda
  • Projek kecil tidak memerlukan task sets yang sebesar dan sedetil sepeerti tim projek yang komplek
  • task sets diadaptasi untuk menentukan kebutuha spesifik dari software project karakteristik tim projek

D.      Process Patterns
  • Metode untuk menentukan solusi projek dalam konteks proses software
  • Tim software dapat menggabungkan pattern untuk merancang proses yang sesuai kebutuhan dari spesifik projek

E.       Process Pattern Template
  • nama pola yang berarti
  • kekuatan (forces)
  • tipe:
    • pola tingkatan
    • pola tugas
    • pola fase
  • konteks awal
  • solusi
  • konteks yang dihasilkan
  • polayang berkaitan
  • kegunaan/contoh

F.       Prescriptive Process Models
  • awalnya bertujuan menertibkan kekacauan perkembangan software
  • mereka membawa ke pekerjaan software engineering dan menyediakan panduan yang beralasan kepada tim software
  • mereka belum menyediakan jawaban pasti untuk masalah perkembangan software dalam lingkungan perubahan komputasi

G.     Software Process Models
  • Waterfall model (siklus)
  • Incremental model
  • Evolutionary model
-prototyping model
-spiral model
  • Concurrent development model

H.      Specialized Process Models
  • Component-based development
  • Formal method model
  • Aspect-oriented software development

I.        Unified Process
  • use-case driven, arsitektur sentris, perulangan dan incremental proses software
  • usaha menggambarkan fitur terbaik dari software proses tradisional model dan mengimplementasi fitur-fitur perkembangan software cerdas
  • fase:
-fase awal
-fase penjelasan
-fase konstruksi
-fase transisi
-fase produksi

J.        Personal Software Process (PSP)
  • Menekankan pengukuran personal dari produk kerja dan kualitas produk kerja
  • Menekankan kepentingan identifikasi eror lebih dini dan memahami tipe eror
  • Aktiviti framework :
-perencanaan
-desain high-level
-review desain high-level
pengembangan
postmortem

K.     Team Software Process
  • Objektif
-membuat tim self-directed yang merencanakan dan melacak kerja, menetapkan tujuan, dan memiliki proses dan perencanaan sendiri
-mempercepat peningkatan proses software dengan membuat CCM level 5
-menyediakan panduan peningkatan ke organisasi high-maturity
-memfasilitasi pengajaran universitas mengenai skill tim industry

  • skrip aktivitas projek
-mengadakan projek
-desain high-level
-implementasi
-integrasi dan system testing
-postmortem

 L.       Process Technology Tools
  • Digunakan untuk mengadaptasi model proses untuk digunakan oleh tim projek software
  • Memperbolehkan organisasi untuk membangun model otomatis dari proses framework yang lazim, task sets, dan umbrella activities.
  • Otomat model tersebut dapat digunakan untuk menentukan aliran kerja dan memeriksa struktur proses alternative
  • Tools dapat digunakan untuk mengalokasi, monitor dan mengontrol semua software engineering task sebagai bagian dari model proses

A.  Software
  • Software adalah sebuah produk dan sebuah kendaraan untuk pengiriman sebuah produk
  • Software adalah rekayasa, tidak diproduksi
B. Software Application Domain
  • Software system
  • Software aplikasi
  • Engineering atau scientific software
  • Product-line software
  • Web-applications
  • Software kecerdasan buatan
C. Tantangan Software Baru
  • Open-world computing
  • Netsourcing
  • Open source
D. Reasons for Legacy System Evolution
  • Software harus diadaptasi untuk memenuhi kebutuhan lingkungan new computing atau teknologi
  • Software harus ditingkatkan untuk mengimplementasi keperluan new business
  • Software harus diperluas supaya dapat diperbarui dengan komponen sistem modern
  • Software harus dirombak supaya viable dalam lingkungan network
E. Software Engineering Realities
  • Masalah harus dipahami sebelum softare solusi dikembangkan
  • Desain sangat penting
  • Software harus dapat dipelihara
F.  Software Engineering
  • Rekayasa Software meliputi proses, teknik manajemen, metode teknik, dan penggunaan tools.
G. Generic Software Process Framework
  • Komunikasi
  • Perencanaan
  • Pemodelan
  • Konstruksi
  • Penyebaran
H. Software Engineering Umbrella Activities
  • Software project tracking and control
  • Pengelolaan resiko
  • Jaminan kualitas software
  • Technical reviews
  • Pengukuran
  • Manajemen konfigurasi software
  • Manajemen reusability
  • Persiapan produk kerja dan produksi
I. Attributes for Comparing Process Models
  • Aliran keseluruhan dan tingkat saling ketergantungan antara tugas-tugas
  • Tingkat sampai mana tugas yang ditentukan dalam tiap framework activity
  • Tingkat sampai mana produk diidentifikasi dan diperlukan
  • Cara aktivitas jaminan kualitas yang mana yang diaplikasikan
  • Cara aktivitas projek tracking dan control yang mana yang diaplikasikan
  • Tingkat detil keseluruhan dan ketegasan deskripsi proses
  • Tingkat stakeholder yang terlibat dalam projek
  • Level otonomi yang diberikan ke tim projek
  • Tingkatan organisani tim dan peran yang diresepkan
J. Essence of Practice
  • Memahami masalah (komunikasi dan analisis)
  • Merencanakan solusi (software design)
  • Menjalankan rencana (coding)
  • Memeriksa keakuratan hasil (testing dan jaminan kualitas)
K. Understand the Problem
  • Siapakah stakeholder-nya?
  • Apa saja fungdi san fitur yang diperlukan untuk menyelesaikan masalah?
  • Apakah mungkin untuk membuat masalah yang lebih kecil menjadi lebih mudah dimengerti?
  • Dapatkah model grafik analisis dibuat?
L. Plan the Solution
  • Pernahkan melihat masalah yang sama sebelumnya?
  • Apakan masalah yang sama tersebut telah diselesaikan?
  • Dapatkah subproblem yang bisa diselesaikan dengan segera didefinisikan?
  • Dapatkah sebuah model desain diciptakan?
M. Carry Out the Plan
  • Apakah solusi sesuai dengan rencana?
  • Apakah setiap komponen solusi terbukti benar?
N. Examine the Result
  • Apakah mungkin untuk mengetes setiap bagian komponen dari solusi?
  • Apakah solusi memberikan hasil yang sesuai data, fungsi-fungsi, dan fitur yang dibutuhkan?
O. Software Practice Core Principles
  • Software ada untuk memberikan nilai untuk usernya
  • Keep it simple, Stupid (KISS)
  • Visi yang jelas sangat penting untuk keberhasilan setiap projek software
  • Selalu tentukan, desain, dan implementasikan, mengetahui orang lain akan mengerti apa yang telah anda lakukan untuk melaksanakan tugasnya.
  • Terbuka untuk untuk perubahan, jangan mengisolasi diri sendiri
  • Merencanakan penggunaan kembali, meminimalisir harga dan menaikkan nilai dari komponen yang dapat digunakan kembali dan system yang memerlukan itu.
  • Menempatkan pemikiran yang jelas dan menyeluruh sebelum melakukan action akan membuahkan hasil yang lebih baik.
P. Software Creation
  • Hampir setiap projek software diendapkan untuk kebutuhan bisnis, misalkan memperbaiki cacat system, adaptasi system untuk perubahan lingkungan, memperluas system yang telah ada, membuat sistem baru.
  • Seringkali upaya engineering hanya akan sukses, ‘bila’ software yang dibuat untuk projek yang bersangkutan sukses.
  • Pasar hanya akan menerima produk yang telah tertanam software di dalamnya sesuai dengan permintaan cutomers.

Rekayasa Perangkat Lunak Model-model SDLC

Metode – metode SDLC

Model – Model Pengembangan Perangkat Lunak Beserta Contoh Penerapannya
Proses Pengembangan Perangkat Lunak (Software Development Process) adalah suatu penerapan struktur pada pengembangan suatu Perangkat Lunak (Software), yang bertujuan untuk mengembangkan sistem dan memberikan panduan untuk menyukseskan proyek pengembangan sistem melalui tahapan-tahapan tertentu. Dalam prosesnya, terdapat beberapa paradigma model pengembangan sistem perangkat lunak, diantaranya :
  1. Model Sekuensial Linier atau Waterfall Development Model
Model Sekuensial Linier atau sering disebut Model Pengembangan Air Terjun, 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 Pengembangan  Model Sekuensial Linear / Waterfall Development Model :
  • Rekayasa dan pemodelan sistem/informasi
Langkah pertama dimulai dengan membangun keseluruhan elemen sistem dan memilah bagian-bagian mana yang akan dijadikan bahan pengembangan perangkat lunak, dengan memperhatikan hubungannya dengan Hardware, User, dan Database.
  • Analisis kebutuhan perangkat lunak
Pada proses 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.
  • Desain
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.
  • Pengkodean
Pengkodean merupakan proses menterjemahkan perancangan desain ke bentuk yang dapat dimengerti oleh mesin, dengan menggunakan bahasa pemrograman.
  • 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 dan memeriksa apakah hasil dari pengembangan tersebut sesuai dengan hasil yang diinginkan.
  • Pemeliharaan
Proses Pemeliharaan erupakan bagian paling akhir dari siklus pengembangan dan dilakukan setelah perangkat lunak dipergunakan. Kegiatan yang dilakukan pada proses pemeliharaan antara lain :
  • Corrective Maintenance : yaitu mengoreksi apabila terdapat kesalahan pada perangkat lunak, yang baru terdeteksi pada saat perangkat lunak dipergunakan.
  • Adaptive Maintenance : yaitu dilakukannya penyesuaian/perubahan sesuai dengan lingkungan yang baru, misalnya hardware, periperal, sistem operasi baru, atau sebagai tuntutan atas perkembangan sistem komputer, misalnya penambahan driver, dll.
  • Perfektive Maintenance : Bila perangkat lunak sukses dipergunakan oleh pemakai. Pemeliharaan ditujukan untuk menambah kemampuannya seperti memberikan fungsi-fungsi tambahan, peningkatan kinerja dan sebagainya.

  • Contoh Penerapan dari Pengembangan Model Sekuensial Linear / Waterfall Development Model
Contoh dari penerapan model pengembangan ini adalah pembuatan program pendaftaran online ke suatu Instansi Pendidikan. Program ini akan sangat membantu dalam proses pendaftaran, karena dapat meng-efektifkan waktu serta pendaftar tidak perlu repot-repot langsung mendatangi Instansi Pendidikan. Teknisnya adalah sebagai berikut :
  • Sistem program untuk pendaftaran dibuat menggunakan bahasa pemrograman PHP, dengan Sistem Database yang dibuat menggunakan MySQL, dan diterapkan (diaplikasikan) pada PC (personal computer) dengan sistem operasi berbasis Microsoft Windows, Linux, dan sebagainya.
  • Setelah program selesai dibuat dan kemudian dipergunakan oleh user, programmer akan memelihara serta menambah atau menyesuaikan program dengan kebutuhan serta kondisi user.
  • Kelebihan Model Sekuensial Linear / Waterfall Development Model :
    • 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.
    • Documen pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya.
  • Kekurangan Model Sekuensial Linear / Waterfall Development Model :
    • 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.

  1. Model 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.
Perubahan dan presentasi prototype dapat dilakukan berkali-kali sampai dicapai kesepakatan bentuk dari perangkat lunak yang akan dikembangkan.
Teknik – teknik Prototyping Meliputi :
  • Perancangan Model
  • Perancangan Dialog
  • Simulasi
Berikut adalah 4 langkah yang menjadi karakteristik dalam proses pengembangan pada metode prototype, yaitu :
  • Pemilihan fungsi
  • Penyusunan Sistem Informasi
  • Evaluasi
  • Penggunaan Selanjutnya
Metode ini menyajikan gambaran yang lengkap dari suatu sistem perangkat lunak, terdiri atas model kertas, model kerja dan program. Pihak pengembang akan melakukan identifikasi kebutuhan pemakai, menganalisa sistem dan melakukan studi kelayakan serta studi terhadap kebutuhan pemakai, meliputi model interface, teknik prosedural dan teknologi yang akan dimanfaatkan.
Berikut adalah Tahapan – tahapan Proses Pengembangan dalam Model Prototype, yaitu :
  • Pengumpulan kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.
  • Membangun prototyping
Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan format output).
  • Evaluasi protoptyping
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.
  • Mengkodekan sistem
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai.
  • Menguji sistem
Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, kemudian dilakukan proses Pengujian. Pengujian ini dilakukan dengan White Box, Black Box, Basis Path, pengujian arsitektur, dll.
  • 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.
  • Menggunakan sistem
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.
Model Prototyping ini sangat sesuai diterapkan untuk kondisi yang beresiko tinggi di mana masalah-masalah tidak terstruktur dengan baik, terdapat fluktuasi kebutuhan pemakai yang berubah dari waktu ke waktu atau yang tidak terduga, bila interaksi dengan pemakai menjadi syarat mutlak dan waktu yang tersedia sangat terbatas sehingga butuh penyelesaian yang segera. Model ini juga dapat berjalan dengan maksimal pada situasi di mana sistem yang diharapkan adalah yang inovatif dan mutakhir sementara tahap penggunaan sistemnya relatif singkat.
Berikut merupakan Jenis – jenis dari Prototyping :
  • Feasibility prototyping
digunakan untuk menguji kelayakan dari teknologi yang akan digunakan untuk system informasi yang akan disusun.
  • Requirement prototyping
digunakan untuk mengetahui kebutuhan aktivitas bisnis user.
  • Desain Prototyping
digunakan untuk mendorong perancangan sistem informasi yang akan digunakan.
  • Implementation prototyping
merupakan lanjutan dari rancangan prototype, prototype ini langsung disusun sebagai suatu sistem informasi yang akan digunakan.
  • Contoh Penerapan Metode Prototype.
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 Model Prototype :
  • 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 Model Prototype :
  • 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.

  • Model Rapid Application Development (RAD)
Rapid Aplication Development (RAD) adalah sebuah model proses perkembanganperangkat lunak sekuensial linier yang menekankan siklus perkembangan yang sangat pendek (kira-kira 60 sampai 90 hari). Model RAD ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier dimana perkembangan cepat dicapai dengan menggunakan pendekatan konstruksi berbasis komponen.
Berikut adalah Tahapan – tahapan Proses Pengembangan dalam Model Rapid Application Development (RAD), yaitu :
  • Bussiness Modeling
Fase ini untuk mencari aliran informasi yang dapat menjawab pertanyaan berikut:
  • Informasi apa yang menegndalikan proses bisnis?
  • Informasi apa yang dimunculkan?
  • Di mana informasi digunakan ?
  • Siapa yang memprosenya ?
  • Data Modeling
Aliran informasi yang didefinisikan sebagai bagian dari fase bussiness modeling disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut. Karakteristik (atribut) masing-masing objek diidentifikasi dan hubungan antar objek-objek tersebut didefinisikan.
  • Proses Modeling
Aliran informasi yang didefinisikan di dalam fase data modeling ditransformasikan untuk mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi bisnis. Gambaran pemrosesan diciptakan untuk menambah, memodifikasi, menghapus, atau mendapatkan kembali sebuah objek data.
  • Aplication Generation
Selain menggunakan bahasa pemrograman generasi ketiga, RAD juga memakai komponen program yang telah ada atau menciptakan komponen yang bisa dipakai lagi. Ala-alat bantu bisa dipakai untuk memfasilitasi konstruksi perangkat lunak.
  • Testing 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.
  • Kelebihan Model RAD :
  • Lebih efektif dari Pengembangan Model waterfall/sequential linear dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan.
  • Cocok untuk proyek yang memerlukan waktu yang singkat.
  • Model RAD mengikuti tahap pengembangan sistem seperti pada umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada sehingga pengembang tidak perlu membuatnya dari awal lagi sehingga waktu pengembangan menjadi lebih singkat dan efisien.
  • Kekurangan Model RAD :
  • Model RAD menuntut pengembangan dan pelanggan memiliki komitmen di dalam aktivitas rapid-fire yang diperlukan untuk melengkapi sebuah sistem, di dalam kerangka waktu yang sangat diperpendek. Jika komitmen tersebut tidak ada, proyek RAD akan gagal.
  • Tidak semua aplikasi sesuai untuk RAD, bila system tidak dapat dimodulkan dengan teratur, pembangunan komponen penting pada RAD akan menjadi sangat bermasalah.
  • RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang tinggi.
  • Membutuhkan Tenaga kerja yang banyak untuk menyelesaikan sebuah proyek dalam skala besar.
  • Jika ada perubahan di tengah-tengah pengerjaan maka harus membuat kontrak baru antara pengembang dan pelanggan.

  • Model Evolutionary Development / Evolutionary Software Process Models
Model Evolutionary Development bersifat iteratif (mengandung perulangan). Hasil prosesnya berupa produk yang makin lama makin lengkap sampai versi terlengkap dihasilkan sebagai produk akhir dari proses. Model Evolutionary Development / Evolutionary Software Process terbagi menjadi 2, yaitu :
  1. Model Incremental
Model Incremental merupakan hasil kombinasi elemen-elemen dari model waterfall yang diaplikasikan secara berulang, atau bisa disebut gabungan dari Model linear sekuensial (waterfall) dengan Model Prototype. Elemen-elemen tersebut dikerjakan hingga menghasilkan produk dengan spesifikasi tertentu kemudian proses dimulai dari awal kembali hingga muncul hasil yang spesifikasinya lebih lengkap dari sebelumnya dan tentunya memenuhi kebutuhan pemakai.

Model ini berfokus pada penyampaian produk operasional dalam Setiap pertambahanya. Pertambahan awal ada di versi stripped down dari produk akhir, tetapi memberikan kemampuan untuk melayani pemakai dan juga menyediakan platform untuk evaluasi oleh pemakai. Model ini cocok dipakai untuk proyek kecil dengan anggota tim yang sedikit dan ketersediaan waktu yang terbatas.
Pada proses Pengembangan dengan Model Incremental, perangkat lunak dibagi menjadi serangkaian increment yang dikembangkan secara bergantian.
  • Contoh Penerapan Model Incremental
Perangkat lunak pengolah kata yang dikembangkan dengan menggunakan paradigma pertambahan akan menyampaikan manajemen file, editing, serta fungsi penghasilan dokumen pada pertambahan pertama, dan selanjutnya. Pertambahan pertama dapat disebut sebagai produk inti (core product).  Dan pada pertambahan selanjutnya, produk inti akan dikembangkan terus hingga menghasilkan produk jadi yang siap untuk digunakan/dipasarkan.
  • Kelebihan Model Incremental :
  • Personil bekerja optimal.
  • mampu mengakomodasi perubahan secara fleksibel, dengan waktu yang relatif singkat dan tidak dibutuhkan anggota/tim kerja yang banyak untuk menjalankannya.
  • Pihak konsumen dapat langsung menggunakan dahulu bagian-bagian yang telah selesai dibangun. Contohnya pemasukan data karyawan.
  • Mengurangi trauma karena perubahan sistem. Klien dibiasakan perlahan-lahan menggunakan produknya setiap bagian demi bagian.
  • Memaksimalkan pengembalian modal investasi konsumen.
  • Kekurangan Model Incremental :
  • Tidak cocok untuk proyek berukuran besar (lebih dari 200.000 baris coding).
  • Sulit untuk memetakan kebutuhan pemakai ke dalam rencana spesifikasi tiap-tiap hasil dari increament.

  1. Model Spiral / Model Boehm
Model ini mengadaptasi dua model perangkat lunak yang ada yaitu model prototyping dengan pengulangannya dan model waterfall dengan pengendalian dan sistematikanya.  Model ini dikenal 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 proyek.

Tahap-tahap model ini dapat dijelaskan secara ringkas sebagai berikut :
  • Tahap Liason:pada tahap ini dibangun komunikasi yang baik dengan calon pengguna/pemakai.
  • Tahap Planning (perencanaan):pada tahap ini ditentukan sumber-sumber informasi, batas waktu dan informasi-informasi yang dapat menjelaskan proyek.
  • Tahap Analisis Resiko:mendefinisikan resiko, menentukan apa saja yang menjadi resiko baik teknis maupun manajemen.
  • Tahap Rekayasa (engineering):pembuatan prototipe.
  • Tahap Konstruksi dan Pelepasan (release):pada tahap ini dilakukan pembangunan perangkat lunak yang dimaksud, diuji, diinstal dan diberikan sokongan-sokongan tambahan untuk keberhasilan proyek.
  • Tahap Evaluasi:Pelanggan/pemakai/pengguna biasanya memberikan masukan berdasarkan hasil yang didapat dari tahap engineering dan instalasi.
  • Kelebihan model iniadalah sangat 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 iniadalah waktu yang dibutuhkan untuk mengembangkan perangkat lunak cukup panjang demikian juga biaya yang besar. Selain itu, 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.

Model Spiral/Boehm sangat cocok diterapkan untuk pengembangan sistem dan perangkat lunak skala besar di mana pengembang dan pemakai dapat lebih mudah memahami kondisi pada setiap tahapan dan bereaksi terhadap kemungkinan terjadinya kesalahan. Selain itu, diharapkan juga waktu dan dana yang tersedia cukup memadai.
  1. Metode Iterative


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.

  1. Keuntungan dari Iterative model
  • User dapat mencoba sistem yg sudah dikembangkan dan kemudian dapat memberikan masukkan > keterlibatan user semakin intens dampak positif dalam pengembangan
  • Prototype relatif lebih mudah dibangun dan tidak memerlukan waktu yang lama
  • Dengan prototype, kesalahan & kelalaian dalam pengembangan dapat segera diketahui
  1. Kelemahan dari Iterative model
  • Setiap iterasi bergantung prototype sebelumnya solusi final umumnya terjadi apabila ada perbedaan yg nyata pada prototype sebelumnya
  • Formal end-of-phasemungkin tidak terjadi, karena sangat sulit menentukan scope dari suatu prototype > proyek tidak pernah selesai
  • Dokumentasi seringkali tdk lengkap > fokus pada pembuatan prototype
  • Isu2 mengenai system backup & recovery, system performance dan system security, kurang/tidak diperhatikan dan sering terlupakan

Kapan Model ini digunakan ?
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

Mengapa Model ini dipakai ?
Karena Iterative mempunyai model yang user friendly dan mudah untuk digunakan dan dimengerti. Dan mempunyai banyak tipe pendukung, diantaranya adalah :

  1. SpiralModel
Dikembangkan dari sifat iterative prototyping model dan sifat linier waterfall model. Merupakan model yang ideal bagi software yang memiliki bermacam jenis.
Dalam tiap iterasinya, proses software development mengikuti tahap-tahap fase linier, dan dalam akhir tiap fasenya, user mengevaluasi software tesrebut dan memberikan feed back. Proses iterasi berlangsung terus dalam pengembangan software tersebut.


  1. Win Win Spiral Model
    Dalam win win spiral model yang merupakan ekstensi dari spiral model, tim pengembang dan pelanggan akan melakukan diskusi dan negosiasi terhadap requirement-nya. Disebut win win karena merupakan situasi kemenangan antara tim pengembang dan pelanggan. Yang membedakan antara win win spiral model dan spiral model adalah setelah selesai mendapatkan feed back dari pelanggan, tim pengembang aplikasi dan pelanggan akan kembali melakukan negosiasi untuk perkembangan aplikasi tersebut.

  1. Component Based Development Model
Dalam metode component based development ini, menitik beratkan pada penggunaan kembali dari komponen-komponen yang dibangun dalam sebuah aplikasi. Komponen di sini, dapat berupa fungsi tertentu atau sebuah kelompok yang berhubungan
dengan fungsi tertentu.

Pencipta Model Iterative
Berikut daftar pencipta model iterative dengan konsep yang berbeda. Disertai buku karangannya .







  1. Model Fountain


Model Fontain merupakan perbaikan logis dari model waterfall, langkah langkah dan urutan prosedurnya pun masih sama. Namun pada model Fountain ini kita dapat mendahulukan sebuah step ataupun melewati step tersebut, akan tetapi ada yang tidak bisa anda lewati stepnya seperti kita memerlukan design sebelum melakukan coding jika itu di lewati maka akan ada tumpang tindih dalam siklus SDLC.
Langkah – Langkah dalam Model Fountain:
  • User requirements analysis ( Analisis Kebutuhan Pengguna), disini kita sebagai programmer dalam mengembangkan sistem harus menganalisa kebutuhan terhadap pengguna baik itu dalam cara penggunaan yang mudah maupun efisiensi terhadap sistem yang pengguna butuhkan.
  • User requirements specifications (Spesifikasi kebutuhan pengguna), dalam tahap ini kita harus tahu apa saja yang dibutuhkan pengguna dalam sistem yang sedang kita kembangkan.
  • Software requirements specifications (Spesifikasi persyaratan perangkat lunak), dalam tahap ini kita harus menyesuaikan software yang kita buat jika di lihat dari sisi pengguna. Jika pengguna awam tentunya kita harus menciptakan Software yang mudah digunakan.
  • Systems/broad design (logical design), sebelum pengimplementasi dalam coding kita harus mendesain sistem yang akan kita buat / kembangkan.
  • Program/detailed design (physical design), dalam tahap ini kita membuat desain yang mendekati fisik atau secara deail.
  • Implementation/coding, setelah tahap desain barulah kita mengimplementasikan dalam coding
  • Program testing: units, dalam tahap ini kita testing / cek kembali unit nit yang dibutuhkan dalam sistem yang sedang kita kembangkan .
  • Program testing: system, dalam tahap ini kita test kembali sistem yang telah kita buat.
  • Program use, dalam tahap ini kita ajarkan ke pengguna program yang telah kita buat.
  • Software maintenance, setelah sistem di pasang maka tentunya kita harus rutin mengupdate software / sistem yang telah kita buat agar terhindar dari kesalahan / bugs.



  1. Build & Fix Method






Build & Fix Method merupakan metode yang paling lemah diantara metode SDLC yang lain tetapi menjadi acuan pengembangan untuk metode SDLC yang lain. Build & fix bertujuan untuk memberikan kepercayaan terhadap pelanggan dengan cara memberikan pelayanan perbaikan dan perawatan secara terus menerus terhadap produk yang digunakan oleh user.

Langkah – Langkah dalam Build & Fix Method:
  •  Functional Desain, dalam tahap ini seorang developer membuat perancangan fungsi terhadap sistem yang akan dibuatnya.
  • Technical Desain, dalam tahap ini seorang developer membuat perancangan teknis terhadap sistem yang akan dibu   Implementation, dalam tahap ini developer melaksanakan dan membuat produk berdasarkan rencana rancangan design yang telah ditetapkan sebelumnya.
  • Deployment, dalam fase ini developer meluncurkan / memasarkan.
  •  Usage, Dalam fase ini user / konsumen diibaratkan sebagai user sekaligus tester yang jika ada kekurangan dalam sistem dapat di report ke developer.
  •  Problem, Adalah masalah atau kekurangan dalam sistem
  • Bug Report, adalah tindakan melaporkan bug / kekurangan dalam sistem.
  • Vendor Evaluation, dalam tahap ini Developer melakukan pengecekan atau evaluasi terhadap sistem yang telah dibuat.
  • Fix, adalah tindakan memperbaiki sistem yang memiliki kerusakan (bug)
  •  Upgrade, adalah proses memperbaharui atau memperbaiki sistem yang rusak.

KelebihanKekurangan
build and fix dibuat tanpa melalui tahapan analisis dulutidak cocok ketika di pakai untuk membuat produk dengan kompleksitas tinggi dan dengan ukuran yang besar
iaya yang di butuhkan akan menjadi sangat membengkak dan membesar ketika build and fix di gunakan untuk membuat projek berskala besar
  1. Agile Development: Extreme Programming
Agile Development: Extreme Programming merupakan suatu pengerjaan perangkat lunak secara cepat. Metode ini sangat cocok untuk proyek perangkat lunak yang membutuhkan waktu lebih instan dalam pengembangannya.
Kelebihan dari Agile Development: Extreme Programming adalah :
  1. Hasil bisa didapat dalam waktu yang sangat cepat
  2. Bekerja lebih baik dalam projek dengan tidak ada perubahan yang tak tentu
Kekurangan dari Agile Development: Extreme Programming adalah :
  1. Membutuhkan kedisiplinan tinggi
  2. Tepat hanya jika dilakukan di projek kecil
  3. Membutuhkan lebih banyak inputan dari pengguna
Untuk menentukan metode mana yang lebih cocok diterapkan dalam pengembangan proyek perangkat lunak, maka harus memperhatikan hal berikut :
  • Clear user requirements
  • Familiarity with technology
  • Complexity of system
  • Reliability of system
  • Time schedule
  • Schedule visibility

9.     Model Synchronize and Stabilize dalam Rekayasa perangkat Lunak

Model ini adalah model yang digunakan oleh Microsoft.  Secara garis besar, Model Synchronize and Stabilize ini sama dengan model incremental, tetapi oleh CUsamano dan Selby tahun 1997 menyebutnya sebagai model Syncronize and Stabilized Model karena ada beberapa proses manajemen yang ditekannya oleh microsoft.
Analisis kebutuhan dilakukan dengan wawancara dengan sejumlah konsumen yang potensial.  Kemudian kebutuhan-kebutuhan tersebut dibuat paket dan disusun daftar secara prioritas.  Kemudian spesifikasi ditulis.  Selanjutnya pekerjaan dibagi dalam tiga atau empat bagian pembangunan software.  Bagian pertama menangani hal-hal yang paling kritis, bagian selanjutnya menangani hal-hal yang krisis selanjutnya, dan seterusnya.
Pada akhirnya, setiap hari dilakukan proses sinkronisasi, yaitu menggabungkan bagian-bagian yang terpisah tersebut kemudian ditesting.  Proses stabilisasi dilakukan pada akhir pembangunan setiap bagian.  Kesalahan yang terjadi akan diperbaiki, dan tidak akan ada perubahan spesifikasi.

sumber :
http://catatanngampusku.blogspot.co.id/2014/10/metodologi-sdlc.html
http://roysarimilda.wordpress.com/2012/05/08/macam-macam-model-proses-rpl-dan-penyelesaian-kasus/
http://komandankempong.blogspot.com/2011/09/model-proses-rekayasa-perangkat-lunak.html
http://id.wikipedia.org/wiki/Proses_pengembangan_perangkat_lunak
http://rizqicreepy.blogspot.co.id/2012/10/v-behaviorurldefaultvmlo.html
https://dewa18.wordpress.com/2010/02/15/systems-development-life-cycle
https://trisnowlaharwetan.wordpress.com/2010/03/04/model-synchronize-and-stabilize-dalam-rekayasa-perangkat-lunak/