FLOWCART
1. Pengertian flowchart
Flowchart atau bagan alur adalah diagram yang menampilkan langkah-langkah dan keputusan untuk melakukan
sebuah proses dari suatu program. Setiap langkah digambarkan dalam bentuk diagram dan dihubungkan dengan
garis atau arah panah.
2. Simbol flowchar
3. Implementation
System Specification yang telah dibuat kemudian diserahkan oleh System Analyst ke Programmer
untuk dilakukan Konstruksi (Coding)
Hasil konstruksi berupa kode program lalu diserahkan ke Software Tester (QA Engineer) untuk
dilakukan pengujian (Unit, Integration, System, User Acceptance Testing (UAT))
Setelah dianggap telah memenuhi requirement, software kemudian diserahkan kepada User/Product
owner untuk diinstalasi dan manajemen perubahan
Software = Kode Program + Dokumentasi (Pengembangan dan Penggunaan)
4. Maintenance
Pada tahap maintenance, siklus kembali ke tahap 1 apabila ada permintaan perubahan pada
software (Update Software)
3. Metode SDLC
1. Waterfall
Metode SDLC yang pertama adalah
waterfall. Metode waterfall adalah metode
kerja yang menekankan fase-fase yang
berurutan dan sistematis. Disebut waterfall
karena proses mengalir satu arah “ke
bawah” seperti air terjun. Metode waterfall
ini harus dilakukan secara berurutan sesuai
dengan tahap yang ada.
Berikut adalah tahap-tahap pengembangan
dalam metode waterfall.
Requirement gathering and analysis
Mengumpulkan kebutuhan secara lengkap untuk dianalisis dan mendefinisikan kebutuhan apa saja yang
harus dicapai oleh program. Informasi dapat diperoleh melalui wawancara, diskusi, atau survey.
Design
Melakukan perancangan desain perangkat lunak sebagai perkiraan sebelum dibuatnya kode. Desain
sistem dapat dibuat menggunakan Flowchart, Mind Map, atau Entity Relationship Diagram (ERD).
Implementasi
Implementasi ini adalah tahap dimana seluruh desain yang sebelumnya sudah dibuat diubah menjadi
kode-kode program. Kode yang dihasilkan masih berbentuk modul-modul yang harus digabungkan di
tahap selanjutnya.
Integration & testing
Di tahap ini dilakukan penggabungan modul-modul yang sudah dibuat sebelumnya dan melakukan
pengujian untuk mengetahui apakah perangkat lunak yang dibuat telah sesuai dengan desain dan
fungsinya atau tidak.
Verification
Di tahap ini, pengguna atau klien yang langsung melakukan pengujian pada sistem, apakah sistem telah
sesuai dengan tang disetujui atau belum sesuai.
1. Memiliki proses yang terurut, sehingga pengerjaan dapat terjadwal dengan baik dan mudah.
1. Waktu pengerjaan relatif lebih lama, karena harus menunggu tahap sebelumnya selesai.
2. Biaya yang dibutuhkan lebih mahal karena waktu pengembangan yang dibutuhkan lebih lama.
3. Model waterfall ini kurang cocok untuk pengembangan proyek yang memiliki kompleksitas tinggi.
2. Prototype
Metode SDLC selanjutnya adalah prototype. Metode prototype adalah metode yang memungkinkan pengguna
atau user memiliki gambaran awal tentang perangkat lunak yang akan dikembangkan, serta pengguna dapat
melakukan pengujian di awal sebelum perangkat lunak dirilis.
Metode ini bertujuan untuk mengembangkan model menjadi perangkat lunak yang final. Artinya sistem akan
dikembangkan lebih cepat dan biaya yang dikeluarkan lebih rendah. Metode prototype ini memiliki tahap-tahap
yang harus dilakukan dalam pengembangan perangkat lunak.
Berikut adalah tahap-tahap pengembangan perangkat lunak menggunakan metode prototype.
Analisa kebutuhan
Pada tahap ini pengembang melakukan identifikasi perangkat lunak dan semua kebutuhan sistem yang
akan dibuat.
Membuat prototype
Membuat rancangan sementara yang berfokus pada alur program kepada pengguna.
Evaluasi prototype
Evaluasi dilakukan untuk mengetahui apakah model prototype sudah sesuai dengan harapan.
Mengkodekan system
Jika prototype disetujui maka akan diterjemahkan ke dalam bahasa pemrograman yang sesuai.
Pengujian system
Setelah perangkat lunak sudah siap, perangkat lunak harus melewati pengujian. Pengujian ini biasanya
dilakukan dengan White Box Testing, Black Box Testing, dan lain-lain.
Evaluasi system
Pengguna melakukan evaluasi apakah perangkat lunak sudah sesuai dengan apa yang diharapkan atau
tidak. Jika ya, lakukan tahap selanjutnya. Jika tidak, ulangi tahap mengkodekan sistem dan pengujian
sistem.
Menggunakan system
Perangkat lunak yang telah diuji dan disetujui siap untuk digunakan.
Sebagai suatu metode yang sering digunakan, metode prototype pasti memiliki kelebihan dan
kekurangan.
Berikut adalah kelebihan dari metode prototype:
2. Penerapan fitur menjadi lebih mudah, karena pengembang mengetahui apa yang diharapkan
3. Agile
Metode SDLC ketiga adalah agile. Metode agile adalah metode yang
fleksibel di mana pengembangan dilakukan dalam jangka pendek.
Namun diperlukan adaptasi yang cepat dari developer terhadap
perubahan dalam bentuk apa pun.
Tujuan Agile
Berikut merupakan tujuan dari agile, antara lain:
High – value & working app system
Menghasilkan produk dengan kualitas yang baik, dan memiliki
nilai jual yang tinggi.
Iterative, incremental, evolutionary
Pengembangan dapat dilakukan secara iteratif, berulang-ulang, dan dapat mengalami perubahan jika
diperlukan.
Cost control & value – driven development
Pengembangan perangkat lunak dapat sesuai dengan kebutuhan pengguna dan tim dapat dengan cepat
merespon kebutuhan, sehingga waktu dan biaya pembuatan dari perangkat lunak dapat dikendalikan.
High – quality production
Kualitas dari perangkat lunak tetap terjaga, meskipun waktu dan biaya lebih sedikit.
Flexible & risk management
Meminimalisir terjadinya kesalahan pada program ataupun produk sebelum dilakukannya proses deploy
aplikasi.
Collaboration
Kolaborasi ini dilakukan oleh setiap tim pengembang untuk mendiskusikan feedback yang diberikan
oleh klien.
Pengembang diberikan akses untuk memanajemen sendiri urusan software development. Seorang
manajer hanya bertugas sebagai penghubung antara pengembang dengan klien sehingga dapat
mengurangi terjadinya miss communication.
Metode agile ini memiliki kelebihan dan kekurangan tersendiri.
Berikut adalah kelebihan dari metode agile:
2. Proses pengembangan perangkat lunak membutuhkan waktu yang relatif cepat dan tidak memerlukan
sumber daya yang besar.
1. Metode ini kurang sesuai dengan tim yang besar (lebih dari 20 orang).
2. Tim harus selalu siap, karena perubahan dapat terjadi kapan saja.
3. Metode ini kurang cocok untuk tim yang berkomitmen untuk menyelesaikan proyek bersama-sama.
4. Fountain
Metode SDLC yang terakhir adalah fountain. Metode fountain adalah perbaikan
dari metode waterfall, di mana jenis tahapan masih sama. Namun beberapa jenis
tahapan boleh didahulukan atau dilewati, tetapi ada tahapan yang tidak bisa
dilewati, contohnya seperti kamu memerlukan design sebelum melakukan
implementasi, jika hal tersebut dilewati maka akan ada tumpang tindih.
Berikut adalah tahap-tahap pengembangan perangkat lunak menggunakan
metode fountain.
User requirement specification
Mencari tahu apa saja yang dibutuhkan oleh pengguna dalam perangkat
lunak yang sedang dikembangkan.
Software requirement specification
Penyesuaian perangkat lunak dari sisi pengguna.
System design
Pembuatan desain sistem yang akan dibuat sebelum diimplementasikan.
Program design
Pembuatan desain yang lebih sempurna dan hampir mendekati hasil akhir dari perangkat lunak.
Implementation
Di tahap ini dilakukan implementasi sesuai dengan desain yang sudah dibuat di tahap sebelumnya.
Di tahap ini dilakukan uji coba terhadap sistem dari perangkat lunak seutuhnya sebelum perangkat lunak
digunakan.
Program use
Dalam tahap ini dilakukan pengajaran kepada pengguna untuk menggunakan perangkat lunak yang telah
dibuat.
Software maintenance
Biasanya dalam tahap ini dilakukan perawatan terhadap perangkat lunak yang sudah dibuat, perawatan
dapat berupa update sistem atau perbaikan kesalahan atau bugs yang ada.
Karena metode fountain ini adalah perbaikan dari metode waterfall, maka metode ini memiliki
kelebihan dan kekurangan yang mirip dengan metode waterfall.
Berikut adalah kelebihan dari metode fountain:
1. Memiliki proses yang terurut, sehingga pengerjaan dapat terjadwal dengan baik dan mudah.
1. Waktu pengerjaan relatif lebih lama, karena harus menunggu tahap sebelumnya selesai.
2. Biaya yang dibutuhkan lebih mahal karena waktu pengembangan yang dibutuhkan lebih lama.
3. Model fountain ini kurang cocok untuk pengembangan proyek yang memiliki kompleksitas tinggi.
Jadi, sekarang kamu sudah tahu kan apa saja metode SDLC yang digunakan dalam pengembangan perangkat
lunak? Dalam penggunaannya setiap tim pasti menerapkan metode yang berbeda-beda untuk mengembangkan
suatu perangkat lunak karena setiap metode memiliki kelebihan dan kekurangannya masing-masing.
Semoga dengan mengetahui kelebihan dan kekurangan dari masing-masing metode kamu dan tim kamu dapat
menggunakan metode yang sesuai untuk mengembangkan suatu program.
5. Interative Model SDLC
Dalam Iterative model SDLC, proses iterative dimulai dengan implementasi sederhana dari komponen
kecil dari software sampai dengan meningkatkan versi dari sebuah software dengan update-updateanya
sehingga software siap digunakan ke user.di setiap Iterative nya, perubahan baik design maupun fungsi
ditambahkan. Ide dasar di balik metode ini adalah untuk mengembangkan sistem melalui siklus berulang
(iterative) dan dalam porsi kecil di setiap updatetanya.
Seperti model SDLC lainya, Iterative model memiliki spesifikasi khusus di dalan industri software.
Model ini paling sering digunakan dalam kondisi seperti:
1) Requirement sistem dan design harus jelas dan mudah di pahami.
2) Persyaratan Utama harus didefinisikan, namun nantinya akan ada request baru untuk penambahan
fungsi pada saat sistem sedang berjalan.
3) Teknologi yang sedang digunakan dalam pengembangan software bisa diganti apabila ada
teknologi baru yang lebih bagus.
4) Ada beberapa fitur berisiko tinggi dan tujuan yang mungkin berubah di masa depan.
1. Identification
Pada fase ini bertujuan untuk mengumpulkan kebutuhan bisnis di dasar spiral, Dalam spiral berikutnya
disebut sebagai produk deawsa. Identifikasi persyaratan sistem, persyaratan subsistem, persyaratan unit
dilakukan pada fase ini. Fase ini juga mencakup komunikasi antar sistem analis dengan klien.
2. Design
Pada fase ini dimulai dengan desain konseptual di dasar spiral dan melibatkan desain arsitektur, desain
logis dari modul, desain produk fisik dan desain akhir dalam spiral berikutnya.
3. Construct or Build
Pada fase ini mengacu produksi produk perangkat lunak yang sebenarnya di setiap spiral.
4. Evaluation and Risk Analysis
Pada fase ini mengidentifikasi, memperkirakan dan memantau kelayakan teknis dan risiko manajemen,
seperti jadwal selip dan biaya lebih. Setelah pengujian sistem, akhir dari iterasi klien akan mengevaluasi
produk yang sudah dibangun dan akan memberikan feedback.
Berdasarkan evaluasi pelanggan, proses pengembangan perangkat lunak memasuki tahap iterative
kemudian mengikuti pendekatan linier untuk menyelesaikan hasil feedback klien Proses iterasi
sepanjang spiral berlanjut sepanjang development life cycle.
Berikut adalah spesifikasi dari Spiral Model:
a. Penting saat ada kendala anggaran dan evaluasi resiko
b. Untuk project beresiko menengah – tinggi
c. Pelanggan tidak yakin kebutuhan mereka yang biasanya terjadi.
d. Perubahan signifikan diharapkan dalam produk selama siklus pengembangan system
e. Persyaratan yang kompleks dan perlu evaluasi untuk mendapatkan kejelasan
Kelebihan Prototype :
1. Meningkatnya keterlibatan pengguna dalam produk bahkan sebelum diimplementasi Karena model
sistem yang di bangun di share ke user, maka user mendapatkan pemahaman yang lebih baik tentang
sistem yang sedang dikembangkan.
2. Mengurangi waktu dan biaya karena cacat dapat dideteksi jauh lebih awal.
3. Feedback user yang cepat di awal dapat memberikan solusi yang lebih baik
4. Fungsi yang tidak ada dapat diidentifikasi dengan mudah dan cepat
5. Fungsi yang membingungkan dapat di hilangkan
Kekurangan Prototype :
1. Risiko analisis kebutuhan yang tidak mencukupi karena terlalu banyak ketergantungan pada Prototipe
2. Pengguna mungkin bingung dalam prototipe dan sistem sebenarnya.
3. Upaya yang diinvestasikan dalam membangun prototip mungkin terlalu banyak jika tidak dipantau
tepat.
4. Pengembang dapat mencoba untuk menggunakan kembali prototipe yang ada untuk membangun sistem
yang sebenarnya, Bahkan bila hal itu tidak layak secara teknis.
Pengujian ke white box testing adalah menguji yang didasarkan kepada pengecekan ke dalam detail
rancangan, penggunaan yang dilakukan struktur kontrol dari suatu desain pemrograman untuk dapat
membagi pengujian ke beberapa kasus pengujian. Dan didapat bahwa white box testing menggunakan
petunjuk untuk menghasilkan program yang diharapkan dan efisien.
Membutuhkan pengetahuan tingkat tinggi dari perangkat lunak internal yang sedang diuji
Sangat mahal untuk dilakukan karena membutuhkan tester yang terampil untuk melakukan pengujian
Pada perangkat lunak yang jenisnya besar, metode white box testing ini dianggap boros karena
melibatkan banyak sumberdaya untuk melakukannya.
Tidak menghiraukan tampilan UI aplikasinya.
Membutuhkan akses kode
B. Black-box Testing
Pada Black Box Testing ini dilakukan pengujian yang didasarkan pada detail aplikasi seperti tampilan aplikasi,
fungsi-fungsi yang ada pada aplikasi, dan kesesuaian alur fungsi dengan bisnis proses yang diinginkan oleh
customer. Black-box testing ini lebih menguji ke tampilan luar (Interface) dari suatu aplikasi agar mudah
digunakan oleh pengguna. Pengujian ini tidak melihat dan menguji source code program. Black-box
testing bekerja dengan mengabaikan struktur kontrol sehingga perhatiannya hanya terfokus pada
informasi domain.
Teknik-teknik Black-box Testing:
Equivalence Partitioning
Cara kerja teknik ini adalah dengan melakukan partition atau pembagian menjadi beberapa partisi dari
input data.
Boundary Value Analysis
Teknik ini lebih fokus kepada boundary, adakah error dari luar atau sisi dalam software, minimum,
maupun maksimum nilai dari error yang didapat.
Fuzzing
Fuzz merupakan teknik untuk mencari bug atau gangguan dari software dengan menggunakan injeksi
data yang terbilang cacat ataupun sesi semi-otomatis.
Cause-Effect Graph
Ini adalah teknik testing dimana menggunakan graphic sebagai acuannya. Dimana dalam grafik ini
menggambarkan relasi antara efek dan penyebab dari error tersebut.
Orthogonal Array Testing
Dapat digunakan jika input domain yang relatif terbilang kecil ukurannya, tetapi cukup berat untuk
digunakan dalam skala besar.
All Pair Testing
Dalam teknik ini, semua pasangan dari test case di desain sedemikian rupa agar dapat dieksekusi semua
kemungkinan kombinasi diskrit dari seluruh pasangan berdasar input parameternya. Tujuannya testing ini
adalah memiliki pasangan test case yang mencakup semua pasangan tersebut.
State Transition Testin
ini berguna untuk melakukan pengetesan terhadap kondisi dari mesin dan navigasi dari UI dalam bentuk
grafik.
Kekurangan Black-box Testing :
Uji kasus sulit di desain tanpa spesifikasi yang jelas
Kemungkinan memiliki pengulangan tes yang sudah dilakukan oleh programmer
Beberapa bagian back end tidak diuji sama sekali.
Cakupan terbatas karena hanya sebagian kecil dari skenario pengujian yang dilakukan
Pengujian tidak efisien karena keberuntungan tester dari pengetahuan tentang perangkat lunak internal
Teknik pengujian
Empat teknik yang umum digunakan dalam uji grey box adalah:
1. Matrix testing : Teknik ini mendefinisikan seluruh variabel yang ada dalam program.
2. Regression testing : dilakukan untuk mengecek perubahan dari versi sebelumnya. Dengan teknik ini,
kita bisa mengetahui apakah terjadi masalah pada versi yang baru.
4. Pattern testing : teknik uji grey box yang dilakukan untuk melihat kecacatan sistem yang pernah terjadi.
Teknik ini penting untuk mengetahui mengapa hal itu terjadi.
Kelebihan
Grey box testing adalah kombinasi black box testing dan white box testing sehingga dapat dikatakan lebih
sempurna dibanding kedua lainnya. Dengan pengujian grey box, kita bisa mendapatkan keunggulan dari
pengujian metode black box dan white box. Selain itu, karena adanya pengetahuan tentang mekanisme internal
sistem oleh penguji, perancangan skenario desain tes bisa dilakukan lebih bagus. Dalam pengujian metode
ini, source code atau kode sumber tidak diperlukan. Dengan begitu, kode tersebut bisa terlindung dari
perubahan yang disruptif. Karena keunggulan-keunggulan ini juga, grey box testing bisa langsung menunjukkan
perbaikan dari sebuah masalah. Yang paling utama, pengujian grey box tidak membutuhkan skill
programming tingkat tinggi untuk dilakukan.
Kekurangan
Karena penguji tidak memiliki akses ke source code, identifikasi kekurangan yang sangat penting bisa menjadi
sulit dan terlewatkan. Kekurangan lainnya adalah metode grey box kurang cocok untuk sistem yang
terdistribusi.