Post on 10-Nov-2021
6
BAB II
TINJAUAN PUSTAKA
2.1 Kriptografi
Kriptografi adalah ilmu untuk mempelajari penulisan secara rahasia dengan
tujuan bahwa komunikasi dan data dapat dikodekan (encode/encrypt) dan
dikodekan (decode/decrypt) kembali untuk mencegah pihak-pihak lain yang ingin
mengetahui isinya. Kriptografi (Cryptography) berasal dari bahasa Yunani yaitu
dari kata kryptos yang artinya tersembunyi. Kriptografi dapat diartikan sebagai
tulisan yang dirahasiakan atau dapat diartikan juga sebagai suatu ilmu ataupun seni
yang mempelajari bagaimana sebuah data, informasi dan dokumen dikonversi
kebentuk tertentu yang sulit untuk dimengerti (Sadikin, 2012).
Proses yang dilakukan untuk mengubah plaintext menjadi ciphertext disebut
enkripsi (encryption) atau encipherment sedangkan proses untuk mengubah
ciphertext kembali ke plaintext disebut dekripsi (decryption) atau decipherment.
Kriptografi memerlukan parameter untuk proses konversi yang dikendalikan oleh
sebuah kunci atau beberapa kunci. Kriptografi saat ini telah menjadi salah satu
syarat penting dalam keamanan teknologi informasi terutama dalam pengiriman
pesan rahasia.
Beberapa istilah yang harus diketahui yaitu:
1. Pesan, Plainteks, dan Cipherteks
Pesan adalah data atau informasi yang dapat dibaca dan dimengerti
maknanya. Pesan dapat berupa data atau informasi yang dikirim (melalui
saluran telekomunikasi atau sejenisnya) atau yang disimpan dalam media
perekaman. Pesan yang tersimpan tidak hanya berupa teks, tetapi juga
berbentu citra (mage), suara/bunyi (audio), atau berkas biner lainnya. Agar
pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan perlu
disandikan ke bentuk lain yang tidak dapat dipahami.
2. Enkripsi dan Dekripsi
Proses menyandikan plainteks menjadi cipherteks disebut enkripsi
(encryption). Sedangkan proses mengembalikan cipherteks menjadi plainteks
semula dinamakan dekripsi (decryption).
7
3. Cipher dan Kunci
Algoritma kriptografi disebut juga cipher yaitu aturan untuk enciphering dan
deciphering, atau fungsi matematika yang digunakan untuk enkripsi dan
dekripsi. Konsep matematis yang mendasari algoritma kriptografi adalah
relasi antara dua buah himpunan yaitu himpunan yang berisi elemn-elemn
plainteks dan himpunan yang berisi cipherteks. Dalam kriptografi modern,
enkripsi dan dekripsi merupakan fungsi yang memetakan elemen-elemen
antara kedua himpunan tersebut. Yang dalam hal ini algoritma tidak lagi
dirahasiakan, tetapi kunci harus dijaga kerahasiannya. Kunci adalah
parameter yang digunakan untuk transformasi enciphering dan deciphering.
Keamanan algoritma kriptografi diukur dari banyaknya kerja yang
dibutuhkan untuk memecahkan cipherteks menjadi plainteksnya tanpa
mengetahui kunci yang digunakan (Munir, 2006).
Gambar 2.1 Skema Enkripsi dan Dekripsi
4. Sistem Kriptografi
Kriptografi membentuk sebuah sistem yang dinakaman sistem kriptografi.
Sistem kriptografi (Cryptosystem) adalah kumpulan yang terdiri dari
algoritma kriptografi, semua plainteks dan cipherteks yang mungkin, dan
kunci. Di dalam sistem kriptografi, cipher hanyalah salah satu komponen
saja.
5. Penyadap
Penyadap (eavesdropper) adalah orang yang mencoba menangkap pesan
selama ditansmisikan. Tujuan penyadap adalah untuk mendapatkan informasi
sebanyak-bnayknya mengenai sistem kriptografi yang digunakan untuk
8
berkomunikasi dengan maksud untuk memecahkan cipherteks. Nama lain
peyadap: enemi, adversary, intruder, interceptor, bad guy.
6. Kriptanalisis dan Kriptologi
Kriptografi berkembang sedemikian rupa sehingga melahirkan bidang yang
berlawanan yaitu kriptanalisis. Kriptanalisis (cryptanalysis) adalah ilmu dan
seni untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci
yang digunakan. Pelakunya disebut kriptanalisis. Jika seorang kriptografer
(cryptographer) mentransformasikan plainteks menjadi cipherteks dengan
suaatu algoritma dan kunci maka sebaliknya seorang kripatanalisis berusaha
untuk memecahkan cipherteks tersebut untuk menemukan plainteks atau
kunci. Kriptologi (cryptologi) adalah studi mengenai kriptografi dan
kriptanalisis. Baik kriptografi dan kriptanalisis keduanya saling berkaitan
(Munir, 2006).
2.1.1 Jenis β Jenis Kriptografi
Algoritma kriptografi dibagi menjadi tiga bagian berdasarkan kunci yang
dipakainya:
1. Algoritma Simetri (menggunakan satu kunci untuk enkripsi dan dekripsinya).
Ini adalah jenis kriptografi yang paling umum dipergunakan. Kunci untuk
membuatpesan yang disandikan sama dengan kunci untuk membuka pesan
yang disandikan itu. Jadi pembuat pesan dan penerimanya harus memiliki
kunci yang sama persis. Siapapun yang memiliki kunci tersebut, termasuk
pihak-pihak yang tidak diinginkan, dapat membuat dan membongkar rahasia
ciphertext. Problem yang paling jelas disini terkadang bukanlah masalah
pengiriman ciphertext-nya, melainkan masalah bagaimana menyampaikan
kunci simetris tersebut kepada pihak yang diinginkan.
2. Algoritma Asimetri (menggunakan kunci yang berbeda untuk enkripsi dan
dekripsi).
Algoritma asimetri sering juga disebut dengan algoritma kunci publik, dengan
arti kata kunci yang digunakan untuk melakukan enkripsi dan dekripsi
berbeda. Pada algoritma asimetri kunci terbagi menjadi dua bagian, yaitu:
9
1. Kunci umum (public key): kunci yang boleh diketahui semua
orang(dipublikasikan).
2. Kunci rahasia (private key): kunci yang dirahasiakan (hanya boleh
diketahui olehsatu orang saja). Kunci βkunci tersebut berhubungan satu
sama lain. Dengan kunci public orang dapat mengenkripsi pesan tetapi
tidak bisa mendekripsinya. Hanya orang yang memiliki kunci rahasia
yang dapat mendekripsi pesan tersebut.
3. Hash Function
Fungsi HASH adalah fungsi yang menerima masukan string yang
panjangnya sembarang dan mengonversinya menjadi string keluaran
yang panjangnya tetap (fixed), yang umumnya berukuran jauh lebih
kecil dari pada ukuran semula.
Pada tugas akhir ini penulis menerapkan algoritma simetri pada aplikasi yang
dibuat ini, untuk enkripsi plaintext dan dekripsi ciphertext menggunakan algoritma
Vernam cipher dan RC4 sehingga kunci yang digunakan harus sama untuk enkripsi
dan dekripsi.
2.1.2 Tujuan Kriptografi
Dari paparan awal dapat dirangkumkan bahwa kriptografi bertujuan untuk
memberi layanan keamanan merahasiakan data untuk menjaga agar pesan tidak
dapat dibaca oleh pihak β pihak yang tidak berhak. Penulis menggunakan algoritma
simetri yang artinya menggunakan kunci yang sama sedangkan algoritmanya
menggunakan algoritma Vernam cipher yang dikombinasikan dengan algoritma
RC4 oleh penulis.
2.2 Algoritma Vernam Cipher
Vernam cipher ditemukan oleh Gilbert Sandford Vernam (1890-1960) yang
juga seorang penemu stream cipher pada tahun 1917. Vernam berkerja di suatu
perusahaan bernama Bell Labs, dia memiliki hak paten yang menjelaskan tentang
sebuah cipher dengan kunci yang telah disiapkan pada sebuah pita kertas, kemudian
dikombinasikan dengan sebuah plaintext untuk menghasilkan sebuah pesan
10
ciphertext yang dapat ditransmisikan. Pita yang sama kemudian digunakan pula
untuk mendekripsikan ciphertext.
Vernam cipher merupakan stream cipher yang didefenisikan pada sebuah
alfabet. Sebuah pesan binary M1, M2, M3, ..., Mt dioperasikan dengan kunci string
binary K1, K2, K3, ..., Kt yang memiliki panjang yang sama untuk menghasilkan
sebuah string ciphertext C1, C2, C3, ..., Ct.
Rumus dasar untuk menghitung vernam cipher dalam mode binary dapat di
tuliskan sebagai berkut (Pratika Sari Eka, 2018):
πΆπ = ππ + πΎπ (πππ π) β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ . . . . (2.1)
Keterangan :
Ci = Cipherrtext
Pi = Plaintext
Ki = Kunci
n = Banyaknya jumlah karakter yang digunakan
Dimana Ci adalah digit binary dari ciphertext, Pi adalah digit binary dari
plaintext, sedangkan Ki adalah bit binary dari kunci, dan + adalah operasi
penjumlahan.
Secara matematis proses enkripsi plaintext (M) menjadi ciphertext (C)
menggunakan kunci rahasia (k) dapat dinyatakan sebagai berikut:
πΆ = π + π (πππ π) β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ . . β¦ β¦ β¦ . (2.2)
Keterangan :
C = Ciphertext
M = Plaintext
k = Kunci
n = Banyaknya jumlah karakter yang digunakan
Proses dekripsi ciphertext (C) menjadi plaintext (P) menggunakan kunci
rahasia (k) dapat dinyatakan sebagai berikut:
11
π = πΆ + π (πππ π) β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ . . . (2.3)
Keterangan :
M = Plaintext
C = Ciphertext
k = Kunci
n = Banyaknya jumlah karakter yang digunakan
Oleh karena operasi penjumlahan modulo berdasarkan nanjang βnβ maka
persamaan rumus enkripsi diatas menggunakan operator XOR dapat ditulis sebagai
berikut:
πΆπ = ππ β πΎπ β¦ β¦ β¦ β¦ . . β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ (2.4)
Dimana:
πΆπ : ciphertext
ππ : plaintext
πΎπ : key
Dan proses untuk melakukan dekripsi menggunakan persamaan sebagai berikut:
ππ = πΆπ β πΎπ β¦ β¦ β¦ β¦ . . β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ (2.5)
Dimana:
ππ : plaintext
πΆπ : ciphertext
πΎπ : key
2.3 Algoritma Rivest Cipher 4 (RC4)
Rivest Cipher 4 (RC4) merupakan algoritma enkripsi stream cipher yang
dirancang oleh Ron Rivest pada tahun 1983. Proses pembuatan keystream dari RC4
12
terbagi atas dua proses yaitu key-scheduling dan pseudo-random generation
(Alvarez dan Zamora, 2015).
RC4 Stream Cipher terdiri atas tahapan, antara lain:
1. Random Number Generator akan diambil sebuah nilai yang akan
dijadikan βseedβ. Kemudiandibangkitkan nilai random berdasarkan
nilai βseedβni.
2. Inisialisasi S-Box Pada tahapan ini, S-Box akan diisi dengan nilai sesuai
indeksnya untuk mendapatkan S-Box awal.
Proses inisialisasi S-Box (Array S):
For i = 0 to 255
S[i]= i
Keterangan:
i: Indeks
S[i]: nilai indeks
3. Menyimpan key dalam key byte array. Pada tahapan ini, key (key) yang
akan kita gunakan untuk mengenkripsi atau dekripsi akan dimasukkan
ke dalam array berukuran 256 byte hanya sekali saja, kemudian sisa
array lainnya akan diisikan dengan nilai random yang dibangkitkan oleh
mesin seluruh array terisi.
Proses inisialisasi S-Box (Array K):
Array Key // Array dengan panjang key βlengthβ.
For i= 0 to 255
K[i]= Key [i mod length]
Keterangan:
Key: array kunci
K[i]: nilai kunci
4. Permutasi pada S-Box. Pada tahapan ini, akan dibangkitkan nilai
pseudorandom yang akan dijadikan aturan untuk permutasi pada S-
Box.
Langkah pengacakan S-Box:
i= 0 ; j= 0
for i= 0 to 255
13
{
j = ( j + S[i] + K[i] ) mod n.... ..........................................................(2.6)
swap S[i] dan S[j]............................................................................ (2.7)
Keterangan :
i dan j: memberi nilai inisial
n: array panjang teks
5. Pada tahapan ini akan dihasilkan nilai pseudorandom yang akan
dikenakan operasi XOR untuk menghasilkan ciphertext ataupun
sebaliknya yaitu untuk menghasilkan plaintext.
Membuat pseudorandom byte:
i = (i+1) mod n..................................................................................(2.8)
j = (j+S[i]) mod n..............................................................................(2.9)
swap S[i]dan S[j] ...........................................................................(2.10)
t = (S[i]+S[j]) mod n.......................................................................(2.11)
K = S[t]
Keterangan :
t: kunci yang dihasilkan
n: array panjang teks
6. Byte K di-XOR-kan dengan plaintext untuk menghasilkan ciphertext
atau di-XOR-kan dengan ciphertext untuk menghasilkan plaintext.
2.4 Android
Android merupakan sebuah sistem operasi pada handphone yang bersifat
terbuka dan berbasis pada sistem operasi Linux. Android bisa digunakan oleh setiap
orang yang ingin menggunakannya pada perangkat mereka. Android menyediakan
platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri
yang akan digunakan untuk bermacam peranti bergerak. Awalnya, Google Inc.
membeli Android Inc., pendatang baru yang membuat peranti lunak untuk ponsel.
Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance,
konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi,
termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia
(Nasruddin Safaat h, 2012).
14
Dengan demikian penulis dapat mengartikan android adalah sistem operasi
untuk telepon seluler berbasis Linux. Android juga menyediakan platform terbuka
bagi para pengembang untuk membangun aplikasi yang dapat dijalankan di
berbagai macam telepon seluler.
2.4.1 Arsitektur Sistem Operasi Android
Arsitektur sistem terdiri atas 5 layer, tetapi penulis menggunakan 3 layer.
Layer β layer tersebut adalah Layer Kernel, Layer Runtime, dan Layer Aplikasi atau
Widget.
Gambar 2.2 Arsitektur Sistem Operasi Android (Burnette, 2010)
1. Layer Kernel
Sistem operasi Android dikembangkan dari GNU / kernel Linux, diciptakan
oleh Linus Torvald ketika ia masih menjadi mahasiswa di Universitas
Helsinki pada tahun 1991. Android dapat dimasukkan ke berbagai perangkat,
hal ini karena GNU / Linux mendukung kernel yang memiliki lapisan
abstraksi perangkat keras. Selain itu, dengan GNU / kernel Linux juga
mendukung manajemen memori, manajemen proses, jaringan dan jenis servis
lainnya.
2. Layer Runtime
Lapisan di atas kernel adalah Android runtime, termasuk mesin virtual Dalvik
(Dalvik VM) dan library inti Java. Dalvik VM adalah implementasi Java dari
Google, dioptimalkan untuk perangkat mobile. Semua kode yang ditulis
15
untuk Android akan ditulis di Java dan dijalankan dalam Virtual Machine.
Dalvik berbeda dari Java tradisional dalam dua hal penting:
1. Dalvik VM menjalankan .dex file, yang dijabarkan pada waktu
kompilasi dari standar file .class dan .jar. File .dex adalah lebih kompak
dan efisien daripada file .class, suatu pertimbangan penting untuk
memori terbatas dan perangkat bertenaga baterai yang berbasis
Android.
2. Library Java core yang datang dengan Android berbeda dari pustaka
Java Standard Edition (Java SE) dan Java Mobile Edition (Java ME).
3. Layer Aplikasi dan Widgets
Lapisan teratas dalam diagram arsitektur Android adalah Applications and
Widgets. Applications adalah program yang dapat mengambil alih seluruh
layar dan berinteraksi dengan pengguna. Di sisi lain, Widget (kadang-kadang
disebut gadget), hanya beroperasi di sebuah persegi panjang kecil dari
aplikasi layar Home. (Burnette, 2010).
2.4.2 Application Programming Interface (API) Android
Berikut adalah beberapa API utama yang disediakan oleh Android, yaitu
API untuk manipulasi Graphical User Interface (GUI) dan manipulasi grafik
(Fifin, 2012).
1. Graphical User Interface (GUI)
Package android.view menyediakan berbagai kelas-kelas yang akan
digunakan untuk menangani screen, layout, dan interaksinya dengan
pengguna.
2. Manipulasi Grafik
Package android.graphics menyediakan manipulasi grafik low-level seperti
kanvas, point, pewarnaan, dan manipulasi bentuk pada screen.
Penulis dapat mengambil kesimpulan bahwa didalam android membutuhkan
Application Programming Interface (API) untuk menangani screen, layout,
interaksi dengan pengguna dan dapat mendesain aplikasi dengan mudah.
16
2.5 Pengujian Enkripsi dan Dekripsi
Pada penelitian yang dilakukan harni kusniyanti pada tahun 2018 bahwa
terdapat dua pengujian yaitu pengujian Black Box testing dan tabel.
2.5.1 Pengujian Black Box
Pengujian Black Box merupakan metode pengujian perangkat lunak yang tes
fungsionalitas dari aplikasi yang bertentangan dengan struktur internal atau kerja.
Uji kasus dibangun di sekitar spesifikasi dan persyaratan, yakni aplikasi apa yang
seharusnya dilakukan. Didalam pengujian ini terdapat beberapa skenario yaitu
skenario pengujian, test case, hasil pengujian, dan kesimpulan.
Pengujian ini dimaksudkan untuk mengetahui apakah fungsi-fungsi,
masukan, dan keluaran dari perangkat lunak sesuai dengan spesifikasi yang
dibutuhkan. Pengujian kotak hitam dilakukan dengan membuat kasus uji yang
bersifat mencoba semua fungsi dengan memakai perangkat lunak apakah sesuai
dengan spesifikasi yang dibutuhkan. Kasus uji yang dibuat untuk melakukan
pengujian Black Box testing harus dibuat dengan kasus benar dankasus salah.
Beberapa kata kunci dalam pengujian perangkat lunak yang dapat
diperhatikan, yaitu (Simarmata, 2009):
1. Dinamis
Pengujian perangkat lunak dilakukan pada masukan yang bervariasi.
Masukan ini ditentukan sebelum pengujian dilakukan dengan batasan yang
disesuaikan dengan kemampuan perangkat lunak. Masukan tidak harus
sesuatu yang dimungkinkan terjadi pada penggunaan program lebih lanjut,
melainkan meliputi keseluruhan batasan yang dapat dijangkau perangkat
lunak dan dilakukan pemercontohan (sampling) secara acak untuk proses
pengujian.
2. Terbatas
Meskipun pengujian dilakukan pada perangkat lunak sederhana sehingga
rumit sekalipun, pengujian dilakukan dengan memenuhi batasan-batasan
tertentu sesuai dengan kemampuan program. Batasan ini juga diberlakukan
pada masukan-masukan yang dipilih untuk pengujian. Tidak semua
kemungkinan masukan diujika pada perangkat lunak karena akan memakan
waktu yang cukup panjang mengingat begitu banyaknya kemungkinan yang
17
bisa terjadi. Untuk mengatasi hal ini, pemilihan masukan-masukan pada
proses pengujian secara acak yang diperkirakan mampu memenuhi
kebutuhan pengujian perangkat lunak akan dilakukan.
3. Tertentu
Pengujian dilakukan dengan batasan tertentu disesuaikan dengan harapan
pada fungsi, respon, dan karakteristik perangkat lunak tersebut. Batasan
tersebut akan disesuaikan dengan teknik-teknik pengujian yang ada.
Pemilihan kriteria pengujian yang paling tepat merupakan hal yang kompleks.
Dalam praktiknya, analisis risiko pengujian dan pengalaman terhadaop
pengujian-pengujian sejenis akan diperlukan.
4. Harapan
Kata kunci ini memiliki keadaan-keadaan yang diharapkan, baik berupa
respon sistem terhadap masukan maupun karakteristik responnya. Dalam hal
ini, batasan-batasan hasil pengujian yang diharapkan harus ditentukan.
Dengan demikian, dapat diketahui apakah perangkat lunak tersebut telah
memenuhi hasil pengujian yang diharapkan atau memerlukan pembenahan
kembali, baik berupa perbaikan maupun pengembangan perangkat lunak.
Dapat dilihat pada gambar 2.2 dibawah ini merupakan contoh sederhana
gambar tabel Black Box testing:
Gambar 2.3 Contoh Gambar Tabel Black Box Testing
2.5.2 Pengujian Enkripsi dan Dekripsi
Di dalam pengujian ini terdapat beberapa poin yang diuji yaitu lama proses
enkripsi dan dekripsi, kerusakan data, dan ukuran file enkripsi maupun dekripsi.
18
Pengujian ini dilakukan untuk mengetahui Kinerja sistem secara keseluruhan yang
berfungsi untuk mengetahui proses enkripsi dan deskripsi pada aplikasi dengan
hasil yang diharapkan. Tes kinerja sistem yang dilakukan yaitu dengan cara
pengujian secara langsung pada aplikasi.
Berikut ini merupakan contoh tabel uji enkripsi, dapat dilihat pada gambar
2.3 dibawah ini:
Gambar 2.4 Contoh Tabel Pengujian Enkripsi (Muhammad Eka Putra, 2017)
Berikut ini merupakan contoh tabel uji dekripsi, dapat dilihat pada gambar
2.4 dibawah ini:
Gambar 2.5 Contoh Gambar Uji Dekripsi (Muhammad Eka Putra, 2017)
2.6 Metode Waterfall
Waterfall adalah model klasik yang bersifat sistematis, berurutan dalam
membangun software. Nama model ini sebenarnya adalah βLinear Sequential
Modelβ. Model ini sering disebut juga dengan βclassic life cycleβ atau metode
waterfall. Model ini termasuk ke dalam model generic pada rekayasa perangkat
lunak dan pertama kali diperkenalkan oleh Winston Royce sekitar tahun 1970
sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak
19
dipakai dalam Software Engineering (SE). Model ini melakukan pendekatan secara
sistematis dan berurutan. Disebut dengan waterfall karena tahap demi tahap yang
dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan.
Gambar 2.6 Waterfall (Pressman, 2015)
Waterfall dianggap pendekatan yang lebih cocok digunakan untuk proyek
pembuatan sistem baru dan juga pengembangan software dengan tingkat resiko
yang kecil serta waktu pengembangan yang cukup lama. Tetapi salah satu
kelemahan paling mendasar adalah menyamakan pengembangan hardware dan
software dengan meniadakan perubahan saat pengembangan. Padahal, error
diketahui saat software dijalankan, dan perubahan-perubahan akan sering terjadi.
Keuntungan menggunakan metode waterfall adalah prosesnya lebih
terstruktur, hal ini membuat kualitas software baik dan tetap terjaga. Dari sisi user
juga lebih menguntungkan, karena dapat merencanakan dan menyiapkan kebutuhan
data dan proses yang diperlukan sejak awal. Penjadwalan juga menjadi lebih
menentu, karena jadwal setiap proses dapat ditentukan secara pasti. Sehingga dapat
dilihat jelas target penyelesaian pengembangan program. Dengan adanya urutan
yang pasti, dapat dilihat pula perkembangan untuk setiap tahap secara pasti. Dari
sisi lain, model ini merupakan jenis model yang bersifat dokumen lengkap sehingga
proses pemeliharaan dapat dilakukan dengan mudah.