BAB 2 LANDASAN TEORI 2.1
Teori Pemodelan Matematis
2.1.1
Konsep Aksi Massa Variabel-variabel keadaan dalam model epidemiologi mengacu pada
kepadatan populasi daripada ukuran populasi. Populasi tersebut terbatas pada daerah yang tetap. Asumsikan seorang individu yang rentan terjangkit penyakit berada di dalam populasi yang bercampur secara homogen. Individu ini berinteraksi dengan anggota-anggota lain pada populasi tersebut dengan laju C (dengan unit waktu) dan proporsi I/N dari interaksi-interaksi ini adalah dengan individu-individu yang terjangkit penyakit. Jika probabilitas penularan infeksi dari interaksi yang terjadi adalah β, maka laju dari penularan infeksinya ke populasi yang rentan terjangkit penyakit adalah βCI/N, dan laju dari populasi yang rentan terjangkit penyakit menjadi terjangkit penyakit adalah βCSI/N. Laju
interaksi
sering
kali
merupakan
fungsi
kepadatan
populasi,
mencerminkan kenyataan bahwa interaksi membutuhkan waktu dan saturasi terjadi. Dalam suatu situasi, besaran laju C dapat sebanding dengan N, sedangkan dalam situasi lain dapat terjadi bahwa besaran laju C adalah suatu konstanta. Oleh karena itu, istilah seperti βSI dan βSI/N sering terlihat dalam literatur. Seringkali ditemukan contoh yang kepadatan populasinya konstan, sehingga fungsi laju hubungan C telah terkandung di dalam β. Dengan demikian, sekarang β bukan lagi sebuah probabilitas melainkan koefisien transmisi dengan unit waktu (Roberts dan Heesterbeek, 2003.)
2.1.2
Ukuran Wabah Asumsikan bahwa suatu wabah terjadi lebih cepat daripada dinamika
populasi, dengan kata lain populasi dianggap seperti mempunyai sebuah ukuran konstan dan mengabaikan kelahiran dan kematian. Asumsikan bahwa individu yan telah pulih dari suatu penyakit, akan menjadi kebal terhadap penyakit tersebut secara alamiah. Pada setiap waktu, populasi terdiri dari S susceptible yang artinya individuindividu yang rentan terjangkit penyakit, I infected yang artinya individu-individu 9
10 yang terjangkit penyakit, dan R removed yang artinya individu-individu yang telah pulih dan kebal terhadap penyakit tersebut. Sebuah model sederhana yang mendeskripsikan perubahan jumlah individu dalam kelompok populasi terhadap waktu adalah: = − βC
(2.1)
= βC − γI
(2.2)
= γI
(2.3)
Dengan N adalah total ukuran populasi (N = S + I + R) dan bernilai konstan. Notasi γ merepresentasikan probabilitas kesembuhan dari suatu penyakit. Perhatikan bahwa salah satu dari persamaan-persamaan di atas adalah redundan, karena yang dua menentukan yang ketiga. Setiap solusi keadaan tetap atau setimbang (S(t) = S*, I(t) = I*, R(t) = R*, ∀t) dari persamaan-persamaan (2.1 – 2.3) membutuhkan I* = 0. Maka dari itu, model ini tidak mengakui kesetimbangan endemik dengan adanya penularan. Sekarang perhatikan bagian epidemi dari populasi. Membagi persamaan (2.2) dengan persamaan (2.1) menyebabkan =
–1
(2.4)
ln S = konstan
(2.5)
dapat diintegralkan untuk mendapatkan I+S–
Biarkan seluruh populasi menjadi rentan terjangkit penyakit pada waktu nol, waktu jumlah I0 yang relatif kecil menjadi terjangkit penyakit. Maka dari itu, S(0) = S0 = N – I0 dan R(0) = 0. Setelah bagian dari wabah
= 0,
=
S∞, dan jumlah yang telah terjangkit penyakit (ukuran terakhir dari wabah) adalah S0 – S∞. Jumlah ini memenuhi hubungan ln
=
(2.6)
11 Karena penularan awal kecil, I0 ↓ 0, dan S0 ↑ N. Maka dari itu, proporsi dari populasi yang tetap rentan terjangkit penyakit setelah wabah dapat dihitung dari yang disebut persamaan ukuran terakhir, ln
=
(2.7)
Persamaan (2.7) mempunyai solusi S∞ = N (tidak ada wabah) dan solusi lain dari S∞ dalam interval (0, N) jika dan hanya jika βC > γ. Oleh karena itu, dalam istilah biologi, pengenalan kecil dari penularan ke populasi akan menciptakan suatu wabah jika rasio reproduksi dasar (R0 =
) lebih besar dari satu (Roberts dan
Heesterbeek, 2003.)
2.1.3
Model Kompartemen Model kompartemen adalah model yang individu-individu dalam suatu
populasinya diklasifikasikan menjadi kompartemen-kompartemen, tergantung dari status individu tersebut sehubungan dengan penularan yang diteliti. Individu biasanya diklasifikasikan menjadi sederetan huruf-huruf yang menyediakan informasi tentang struktur model. Sebagai contoh, model ditentukan oleh persamaanpersamaan (2.1 – 2.3) yang akan disebut suatu model SIR, model kompartemen untuk penularan infeksi dengan kompartemen terkena (exposed) atau tersembunyi (latent) (secara eksplisit terjangkit penyakit tersebut tetapi belum menular) dan kekekalan abadi akan disebut suatu model SEIR, dan situasi kerentanan dapat kembali setelah infeksi (atau setelah kekebalan) akan disebut model SIS (atau SIRS). Sebuah contoh dari suatu model SEIR, sejalan dengan bagian sebelumnya, adalah = µN − βC − µS
(2.8)
= βC − (σ + µ) E
(2.9)
= σE − (γ + µ) I
(2.10)
12 Dengan notasi µ merupakan probabilitas kelahiran dan kematian, sementara notasi σ merupakan probabilitas penyakit menjadi lebih serius dan menular. Sebuah persamaan untuk R tidak berguna di sini karena N bernilai konstan (N = S + E + I + R). Model yang dideskripsikan oleh persamaan-persamaan (2.8-2.10) adalah perluasan dari yang dideskripsikan oleh persamaan-persamaan (2.1-2.3), tidak hanya karena pengenalan dari kelas terkena, tetapi juga karena kelahiran dan kematian secara eksplisit dimasukkan. Sistem (2.8-2.10) mempunyai dua kondisi tetap. Kondisi pertama adalah S(t) = N dan E(t) = I(t) = 0 untuk semua t, sesuai dengan situasi tanpa adanya penularan dan seluruh populasi rentan terjangkit penyakit. Kondisi kedua adalah S(t) = S* = E(t) = E* =
(2.11) I*
I(t) = I* =
(2.12)
(2.13)
sesuai dengan suatu kondisi setimbang endemik dengan angka-angka konstan dalam populasi yang terjangkit penyakit. Secara biologis ini hanya masuk akal ketika S* < N, yaitu ketika R0 =
>1
(2.14)
Dengan R0 adalah rasio reproduksi dasar dari penularan. Matriks Jacobian dari sistem (2.8-2.10) adalah
J=
(2.15)
dan analisa stabilitas lokal menentukan bahwa keadaan tetap stabil ketika semua nilai eigen dari J mempunyai bagian real negatif bila dihitung menggunakan nilai-nilai kondisi tetap untuk variabel-variabel dependen. Substitusi ekspresi-ekspresi untuk kondisi-kondisi tetap ke persamaan (2.15) menunjukkan bahwa “kondisi setimbang
13 tidak ada penularan” stabil ketika R0 < 1, dan “kondisi setimbang endemik” stabil setiap kali ada, yaitu ketika R0 > 1 (Roberts dan Heesterbeek, 2003.)
2.1.4
Rasio Reproduksi Dasar Rasio reproduksi dasar dari suatu penyakit penular adalah konsep penting
dalam epidemiologi. Hal ini didefinisikan sebagai jumlah yang diharapkan dari kasus sekunder yang akan timbul dari pengenalan kasus primer tunggal ke populasi yang seluruhnya rentan terjangkit penyakit. Dengan jelas, ketika rasio reproduksi dasar (R0) < 1 setiap “generasi penularan” berturut-turut lebih kecil daripada pendahulunya, dan penularan tidak dapat bertahan. Sebaliknya, ketika rasio reproduksi dasar (R0) > 1 “generasi penularan” berturut-turut lebih besar daripada pendahulunya, dan jumlah kasus pada populasi awalnya akan meningkat. Peningkatan ini tidak berlanjut tanpa batas. Proses penularan mengurangi “golongan yang rentan terjangkit penyakit”, dan karenanya mengurangi probabilitas bahwa seorang individu yang menular berhubungan dengan seorang yang rentan terjangkit penyakit dalam jangka waktu penularan. Anggap model yang disajikan pada bagian sebelumnya (persamaan 2.8-2.10), dan definisi dari R0 dalam persamaan (2.14). Definisi ini dapat dibangun tanpa bantuan persamaan. Ketika sejumlah kecil dari individu-individu yang menular diperkenalkan ke dalam populasi, satu individu tersebut langsung berkontribusi =
≈
= βC
(2.16)
terhadap laju dari peningkatan jumlah yang terkena. Berdasarkan jumlah tersebut, proporsi σ / (σ + µ) menjadi menular. Waktu yang diperkirakan seorang individu yang menular tetap menular adalah 1 / (γ + µ) unit waktu, oleh karena itu jumlah yang diharapkan dari generasi kedua yang tertular timbul dari generasi pertama yang tertular adalah βC
(2.17)
yang merupakan ekspresi untuk R0 dalam persamaan (2.14). Perhatikan bahwa membiarkan µ → 0 mendapatkan kembali definisi dari R0 untuk model SIR (2.1-2.3).
14 Karena C(N) merupakan fungsi yang tidak menurun, R0 (dalam banyak situasi) merupakan fungsi yang meningkat dari kepadatan populasi. Maka dari itu, mungkin ada kepadatan populasi yang mempunyai R0 > 1 dan yang mempunyai R0 < 1. Hal ini kadang-kadang disebut sebagai kepadatan (ukuran) masyarakat kritis. Untuk banyak penularan, telah diamati bahwa populasi harus “cukup besar” untuk mendukung penularan (misalnya campak, pertusis). Penularan kemudian dikatakan menjadi bergantung pada kepadatan, karena kepadatan populasi lokal yang menentukan jumlah interaksi yang berpotensi menular yang akan terjadi. Untuk penularan lainnya, tidak mungkin bahwa kepadatan populasi akan mempengaruhi laju penularannya. Sebagai contoh, dalam sebagian besar masyarakat jumlah pasangan seksual tidak akan ditentukan oleh kepadatan populasi, sehingga untuk penularan infeksi secara seksual, fungsi laju hubungan akan secara efektif konstan. Hal yang sama berlaku untuk agen-agen penular yang ditularkan oleh vektor serangga seperti nyamuk, yang hanya mengambil darah sebagai makanan sampai mencapai kejenuhan. Laju penularan dari infeksi ini tergantung pada proporsi yang terjangkit dalam populasi, dan karena itu bergantung pada frekuensi (Roberts dan Heesterbeek, 2003.)
2.1.5
Persamaan Diferensial Menurut Paul Dawkins (2007: 2-3), definisi pertama yang kita harus cakup
seharusnya adalah
dari persamaan diferensial. Persamaan diferensial adalah
persamaan yang mengandung turunan, baik turunan biasa maupun turunan parsial. Ada satu persamaan diferensial yang setiap orang mungkin tahu, yaitu Hukum Gerak Kedua Newton. Jika sebuah objek dengan massa m bergerak dengan percepatan a dan digerakkan dengan gaya F, maka Hukum Kedua Newton memberitahu kita. F = ma
(2.18)
15 Untuk melihat bahwa faktanya persamaan (2.18) adalah suatu persamaan diferensial, maka kita perlu untuk menulis ulang sedikit. Pertama, ingat bahwa percepatan, a, dapat dituliskan ke dalam dua bentuk berikut ini a=
atau a =
(2.19)
dengan v adalah kecepatan dari objek dan u adalah fungsi posisi dari objek di waktu t. Ingat bahwa gaya, F, di titik ini juga mungkin merupakan suatu fungsi dari waktu, kecepatan, dan/atau, posisi. Hukum Kedua Newton sekarang dapat ditulis sebagai suatu persamaan diferensial dalam kecepatan, v, maupun posisi, u, dari objek sebagai berikut. m m
= F(t,v)
(2.20)
= F(t,u, )
(2.21)
Berikut adalah beberapa contoh dari persamaan diferensial. ay’’ + by’ + cy = g(t) = (1 – y)
sin (y)
(2.22) + y2e-5y
(2.23)
y(4) + 10y’’’ – 4y’ + 2y = cos(t)
(2.24)
α2
(2.25)
=
a2 uxx = utt
(2.26)
=1+
(2.27)
Orde dari suatu persamaan diferensial adalah turunan tertinggi yang ada dalam persamaan diferensial. Dalam persamaan-persamaan diferensial di atas, (2.20) adalah persamaan diferensial orde pertama, (2.21), (2.22), (2.23), (2.25), dan (2.26) adalah persamaan-persamaan diferensial orde kedua, (2.27) adalah sebuah persamaan diferensial orde ketiga, dan (2.24) adalah sebuah persamaan diferensial orde keempat.
16 Perhatikan bahwa orde tidak tergantung pada apakah Anda mempunyai turunan biasa atau parsial dalam persamaan diferensial.
2.1.6
Metode Forward Euler Kita akan memperoleh suatu skema numerik yang disebut Metode Forward
Euler (atau secara sederhana Metode Euler), yang memberikan sebuah perkiraan solusi dari persamaan diferensial orde pertama, yaitu persamaan dalam bentuk = f(x,y)
(2.28)
menggambarkan fungsi y(x) dalam istilah turunannya. Dari perspektif grafis, suatu solusi dari persamaan diferensial orde pertama adalah suatu fungsi yang grafiknya konsisten dengan bidang arah. Dengan kata lain, grafik dari solusi bersinggungan dengan garis kemiringan di setiap titik. Metode Euler mendekati solusi dengan urutan titik-titik yang mengikuti garis kemiringan. Diberikan persamaan (2.28) dan kondisi awal y(x0) = y0, metode Euler mendekati solusi di x1, x2, ..., dengan x berturut-turut dibedakan dengan h, sehingga x1 = x0 + h, x2 = x1 + h, ... xn = xn-1 + h, ... Kenaikan h disebut langkah waktu. Itu merupakan suatu parameter dari metode, yang menentukan ketepatan dari perkiraan. Biarkan yi melambangkan perkiraan nilai dari solusi di xi. Gagasannya adalah untuk memperkirakan solusi di setiap langkah dari garis kemiringan.
17 Kita mulai di titik awal (x0,y0). Segmen garis lurus adalah garis singgung kurva solusi di (x0,y0). Kemiringannya adalah y’(x0), yang dengan persamaan (2.28) y’(x0) = f(x0,y0).
(2.29)
Maka dari itu, metode Euler memberikan kita y1 = y0 + hf(x0,y0).
(2.30)
Demikian pula, di (x1,y1) kita mempunyai y2 = y1 + hf(x1,y1).
(2.31)
yn+1 = yn + hf(xn,yn),
(2.32)
Umumnya,
jadi kita dapat meringkas metode numerik ini dengan persamaan y(x + h) = y(x) + hy(1)(x).
(2.33)
Dengan mengasumsikan bahwa nilai di titik x benar, metode Forward Euler menghitung nilai di titik x + h dengan kesalahan lokal sebanding dengan h2. Metode Forward Euler selalu memberikan lampauan-lampauan pada kurva asli (Amen, dkk, 2003:12.) Kesalahan lokal di langkah ke-n diberikan oleh Elocn = y(xn+1) – [xn + hf(xn,yn)].
(2.34)
Dengan teorema Taylor, y(x0 + h) = y(x0) + hy(1)(x0) + h2y(2)(ξ)
(2.35)
y(x0 + h) = y0 + hf(x0,y0) + h2y(2)(ξ), dengan ξ adalah suatu nilai di antara x0 dan x0 + h.
Oleh karena itu, kesalahan lokal dalam metode Forward Euler adalah Eloc = h2y(2)(ξ) ∝ h2.
(2.36)
18 Maka dari itu, kesalahan lokal dalam metode Forward Euler menurun sebagai kuadrat dari ukuran langkah. Jadi, jika ukuran langkah dipotong setengahnya, maka kesalahan lokal di setiap langkah dikurangi dengan faktor dari 4. Sebuah penurunan ketat dari kesalahan global berada di luar ruang lingkup dari laporan ini. Kita akan membatasi diri untuk argumen heuristik sederhana. Andaikan bahwa y(0) = y0 dan kita mau mencari y(X). Jumlah langkah yang diperlukan adalah sekitar X/h. Jika kesalahan lokal kira-kira konstan untuk 0 ≤ x ≤ X, dan E(X) adalah kesalahan global di x = X, E(X) ∝ jumlah iterasi x Eloc E(X) ∝
x h2
(2.37)
E(X) ∝ h. Maka dari itu, kesalahan global dalam metode Forward Euler menurun secara linear dengan ukuran langkah. Kita mengatakan bahwa metode Euler adalah metode orde pertama, karena kesalahan global sebanding dengan h (yaitu orde pertama sehubungan dengan h) (Amen, dkk, 2003:18.)
2.1.7
Penyakit Campak Berdasarkan WHO (www.who.int/mediacentre/factsheets/fs286/en/) dan
CDC (http://www.cdc.gov/measles/about/overview.html), campak merupakan suatu penyakit pernafasan yang sangat menular. Penyakit ini juga disebut dengan rubeola. Penyakit ini disebabkan oleh suatu virus dari golongan paramyxovirus. Virus ini memiliki nama yang sama dengan penyakit yang disebabkannya, yaitu campak. Virus campak umumnya berkembang di dalam sel-sel yang berada di bagian belakang tenggorokan dan paru-paru. Virus ini tersebar melalui batuk dan bersin, kontak personal yang dekat, atau kontak langsung dengan bunyi sengau atau cairan tenggorokan dari penderita
19 campak. Virusnya tetap aktif dan menjalar di udara atau di permukaan yang terjangkit selama hampir dua jam. Virus ini dapat ditularkan oleh orang yang terjangkit dari empat hari sebelum munculnya ruam sampai empat hari setelah ruamnya muncul. Wabah campak dapat menyebabkan epidemi yang menyebabkan banyak kematian, terutama di kalangan anak-anak kecil yang kekurangan gizi. Di negara-negara dengan campak yang sebagian besar telah dihilangkan, kasus-kasus yang datang dari negara lain tetap menjadi sumber infeksi yang berpengaruh. Campak merupakan penyakit dengan tingkat penularan yang sangat tinggi. Jika seseorang terkena virusnya, 90% dari orang-orang yang tidak memiliki imunitas dan berada dekat dengannya juga akan tertular dengan virus campak. Sampai saat ini campak diketahui sebagai penyakit yang hanya dialami oleh manusia dan tidak terjadi pada maupun ditularkan oleh hewan. Pada tahun 1980, sebelum adanya penyebaran vaksinasi secara luas, campak secara global menyebabkan sekitar 2,6 juta kematian per tahunnya. Gejala awal dari penyakit campak biasanya adalah demam tinggi, yang mulai sekitar tujuh sampai empat belas hari setelah terkena virus dan bertahan empat sampai tujuh hari. Pilek, batuk, mata yang merah dan berair (konjungtivitis), pegalpegal (tidak enak badan), dan bintik-bintik putih kecil dengan pusat putih-kebiruan di dalam mulut (bintik-bintik Koplik) dapat berkembang dalam tahap awal. Setelah beberapa hari, satu atau beberapa ruam merah atau ruam coklat-kemerahan muncul, umumnya dimulai pada wajah di garis rambut dan leher bagian atas. Selama sekitar tiga hari, ruamnya menyebar hingga akhirnya mencapai tangan dan kaki. Ketika ruamnya muncul, demam seseorang dapat naik menjadi lebih dari seratus empat derajat Fahrenheit. Demam dan ruamnya bertahan selama beberapa hari (sekitar lima sampai enam hari) dan kemudian mereda dan memudar. Rata-rata, ruam terjadi empat belas hari setelah terkena virus (dalam kisaran tujuh sampai delapan belas hari). Tidak ada pengobatan antivirus tertentu untuk virus campak. Komplikasi serius dari campak dapat dihindari walaupun perawatan suportif yang menjamin gizi yang baik, asupan cairan yang cukup, dan pengobatan dehidrasi dengan WHO direkomendasikan sebagai solusi rehidrasi oral. Solusi ini menggantikan cairan dan elemen-elemen penting yang hilang karena diare atau muntah. Antibiotik seharusnya
20 diresepkan untuk mengobati infeksi mata dan telinga, serta pneumonia. Semua anak di negara berkembang yang didiagnosis dengan campak seharusnya menerima dua dosis suplemen vitamin A, diberikan dua puluh empat jam terpisah. Perawatan ini mengembalikan tingkat vitamin A yang rendah selama campak yang terjadi bahkan pada anak-anak yang bergizi baik dan dapat membantu mencegah kerusakan mata dan kebutaan. Suplemen vitamin A telah terbukti untuk mengurangi jumlah kematian akibat campak sebesar 50%. Vaksinasi campak rutin untuk anak-anak, dikombinasikan dengan kampanye imunisasi massal di negara-negara dengan kasus dan tingkat kematian yang tinggi, merupakan strategi kesehatan publik yang penting untuk mengurangi kematian akibat campak secara global. Vaksin campak telah digunakan selama lima puluh tahun. Vaksin tersebut aman, efektif, dan tidak mahal. Biayanya kurang dari US $1 untuk mengimunisasi anak terhadap campak. Vaksin campak sering digabungkan dengan vaksin rubella dan/atau gondok (biasa dikenal dengan vaksin MMR – Measles, Mumps, and Rubella) di negara-negara yang memiliki masalah penyakit ini. Hal ini sama efektifnya dengan vaksinasi campak tunggal. Pada tahun 2012, sekitar 84% dari anak-anak di dunia menerima satu dosis vaksin campak sebelum ulang tahunnya yang pertama melalui pelayanan kesehatan rutin – naik dari 72% pada tahun 2000. Dua dosis vaksin dianjurkan untuk menjamin imunitas dan mencegah wabah, karena sekitar 15% dari anak-anak yang tervaksinasi gagal untuk mengembangkan imunitas dari dosis pertamanya. Peluasan penggunaan vaksin campak telah menyebabkan penurunan kasus campak lebih besar dari 99% di Amerika Serikat dibandingkan dengan era pra-vaksin. Berdasarkan Profil Kesehatan 2012 milik Kementrian Kesehatan Republik Indonesia (www.depkes.go.id/index.php?vw=2&pg=ProfilKesehatan_Nasional), jika seseorang pernah menderita campak, maka dia akan mendapatkan kekebalan terhadap penyakit tersebut seumur hidupnya.
21 2.2
Teori Perancangan Dan Pembuatan Perangkat Lunak
2.2.1
Piranti Lunak Komputer Menurut Roger S. Pressman (2010, 1), piranti lunak komputer adalah produk
yang profesional-profesional piranti lunak bangun dan kemudian dukung dalam jangka panjang. Ini meliputi program-program yang mengeksekusi dalam sebuah komputer dari ukuran dan arsitektur apapun, konten yang disajikan karena programprogram komputer mengeksekusi, dan informasi deskriptif baik dalam salinan fisik (hard copy) dan bentuk-bentuk virtual yang mencakup media elektronik apapun secara virtual. Rekayasa piranti lunak meliputi suatu proses, suatu kumpulan metodemetode (praktek), dan suatu susunan dari alat-alat yang memungkinkan profesionalprofesional untuk membangun piranti lunak komputer yang berkualitas tinggi. Insinyur-insinyur piranti lunak membangun dan mendukung piranti lunak, dan secara virtual semua orang dalam dunia yang terindustri menggunakannya baik secara langsung maupun tidak langsung. Piranti lunak penting karena ini mempengaruhi hampir setiap aspek dari kehidupan-kehidupan kita dan telah menjadi merasuk dalam perdagangan kita, budaya kita, dan kegiatan-kegiatan setiap hari kita. Rekayasa piranti lunak penting karena ini memungkinkan kita untuk membangun sistem-sistem kompleks secara tepat waktu dan dengan kualitas tinggi.
2.2.2
Rekayasa Piranti Lunak Menurut Ian Sommerville (2011:7-9), rekayasa piranti lunak adalah suatu
disiplin teknik yang berkaitan dengan semua aspek produksi piranti lunak dari tahaptahap awal spesifikasi sistem sampai ke pemeliharaan sistemnya setelah itu telah masuk ke dalam penggunaan. Dalam definisi ini, ada dua frasa kunci: 1. disiplin teknik Insinyur-insinyur membuat hal-hal bekerja. Mereka menerapkan teoriteori, metode-metode, dan alat-alat yang tepat. Namun, mereka menggunakannya secara selektif dan selalu mencoba untuk menemukan solusi-solusi untuk masalah-masalah bahkan ketika tidak ada teori-teori dan metode-metode yang dapat diterapkan. Insinyur-insinyur juga mengenali bahwa mereka harus bekerja untuk kendala-kendala organisasi
22 dan keuangan sehingga mereka mencari solusi-solusi dalam batasanbatasan ini. 2. semua aspek produksi piranti lunak Rekayasa piranti lunak tidak hanya berkaitan dengan proses-proses teknis dari pengembangan piranti lunak. Itu juga mencakup aktivitas-aktivitas seperti manajemen proyek piranti lunak dan pengembangan dari alat-alat, metode-metode, dan teori-teori untuk mendukung produksi piranti lunak. Teknik adalah tentang mendapatkan hasil-hasil dari kualitas yang dibutuhkan dalam jadwal dan anggaran. Hal ini sering melibatkan pembuatan kompromikompromi – insinyur-insinyur tidak bisa menjadi perfeksionis. Orang menulis program-program untuk diri mereka sendiri, namun dapat menghabiskan waktu sebanyak yang mereka inginkan pada pengembangan program. Secara umum, insinyur-insinyur piranti lunak mengadopsi suatu pendekatan yang sistematis dan terorganisir untuk pekerjaan mereka, karena hal ini sering kali adalah cara yang paling efektif untuk menghasilkan piranti lunak yang berkualitas tinggi. Namun, teknik adalah semua tentang pemilihan metode yang paling tepat untuk serangkaian keadaan sehingga sebuah pendekatan yang lebih kreatif, kurang formal
untuk
pengembangan
mungkin
efektif
dalam
beberapa
keadaan.
Pengembangan yang kurang formal secara khusus tepat untuk pengembangan dari sistem-sistem berbasis web, yang membutuhkan suatu perpaduan dari piranti lunak dan keterampilan-keterampilan desain grafis. Rekayasa piranti lunak penting untuk dua alasan: 1. Semakin banyak, individu-individu dan masyarakat bergantung pada sistem-sistem piranti lunak yang canggih. Kita perlu untuk dapat menghasilkan sistem-sistem yang dapat diandalkan dan terpercaya secara ekonomis dan cepat. 2. Itu biasanya lebih murah, dalam jangka panjang, untuk menggunakan metode-metode dan teknik-teknik rekayasa piranti lunak untuk sistemsistem piranti lunak daripada hanya menulis program-programnya seolaholah itu adalah proyek pemrograman pribadi. Untuk sebagian besar jenis sistem, mayoritas dari biaya adalah biaya dari perubahan piranti lunak setelah itu telah masuk ke dalam penggunaan.
23 Berbagai jenis dari sistem-sistem membutuhkan proses-proses pengembangan yang berbeda. Misalnya, piranti lunak real-time dalam suatu pesawat terbang seharusnya ditentukan secara lengkap sebelum pengembangan dimulai. Dalam sistem-sistem e-commerce, spesifikasi dan program biasanya dikembangkan bersama-sama. Akibatnya, kegiatan-kegiatan generik ini mungkin diatur dalam berbagai cara dan dijelaskan pada tingkat-tingat dari perincian yang berbeda-beda tergantung pada jenis dari piranti lunak yang sedang dikembangkan. Rekayasa piranti lunak terkait dengan, baik ilmu komputer maupun rekayasa sistem: 1. Ilmu komputer berkaitan dengan teori-teori dan metode-metode yang mendasari
komputer-komputer
dan
sistem-sistem
piranti
lunak,
sedangkan rekayasa piranti lunak berkaitan dengan masalah-masalah praktis dari memproduksi piranti lunak. Beberapa pengetahuan dari ilmu komputer penting bagi insinyur-insinyur piranti lunak dengan cara yang sama bahwa beberapa pengetahuan dari fisika penting bagi insinyurinsinyur listrik. Teori ilmu komputer, bagaimanapun, sering paling dapat diterapkan ke program-program yang secara relatif kecil. Teori-teori elegan dari ilmu komputer tidak selalu dapat diterapkan ke masalahmasalah besar, kompleks yang membutuhkan suatu solusi piranti lunak. 2. Rekayasa sistem berkaitan dengan semua aspek pengembangan dan evolusi dari sistem-sistem yang kompleks yang piranti lunak memainkan suatu peran utama. Oleh karena itu, rekayasa sistem berkaitan dengan pengembangan, kebijakan, dan desain proses perangkat keras, dan penyebaran sistem, serta rekayasa piranti lunak. Insinyur-insinyur sistem terlibat dalam menentukan sistemnya, menetapkan arsitekturnya secara keseluruhan, dan kemudian mengintegrasikan bagian-bagian yang berbeda untuk menciptakan sistem yang jadi. Mereka kurang berkaitan dengan rekayasa dari komponen-komponen sistem (perangkat keras, piranti lunak, dll.)
24 2.2.3
Proses Piranti Lunak Menurut Roger S. Pressman (2010: 14-15), suatu proses adalah suatu
kumpulan dari kegiatan-kegiatan, tindakan-tindakan, dan tugas-tugas yang dilakukan ketika beberapa produk kerja akan dibuat. Suatu kegiatan mengupayakan untuk mencapai suatu tujuan umum (misalnya, komunikasi dengan pemegang-pemegang kepetingan) dan diterapkan terlepas dari domain aplikasi, ukuran dari proyek, kompleksitas dari usaha, atau tingkat dari ketelitian yang rekayasa piranti lunak akan diterapkan. Suatu tindakan (misalnya, perancangan arsitektur) meliputi suatu himpunan dari tugas yang menghasilkan suatu produk kerja utama (misalnya, suatu model perancangan arsitektur). Suatu tugas berfokus pada suatu tujuan yang kecil, tetapi terdefinisi dengan baik (misalnya, melakukan suatu uji unit) yang menghasilkan hasil yang nyata. Dalam konteks dari rekayasa piranti lunak, suatu proses bukan merupakan suatu resep kaku untuk bagaimana membangun piranti lunak komputer. Sebaliknya, ini adalah suatu pendekatan yang dapat beradaptasi yang memungkinkan orangorang melakukan pekerjaan (tim piranti lunak) untuk memilih himpunan dari tindakan-tindakan dan tugas-tugas kerja yang tepat. Tujuannya adalah selalu untuk memberikan piranti lunak secara tepat waktu dan dengan kualitas yang cukup untuk memuaskan mereka yang mensponsori penciptaan dan mereka yang akan menggunakannya. Suatu kerangka proses menetapkan dasar suatu proses rekayasa piranti lunak yang lengkap dengan mengidentifikasi sejumlah kecil kegiatan-kegiatan kerangka yang dapat diterapkan ke semua proyek-proyek piranti lunak, terlepas dari ukuran atau kompleksitasnya. Sebagai tambahan, kerangka proses meliputi suatu himpunan dari umbrella activities yang dapat diterapkan di seluruh proses piranti lunak. Suatu kerangka proses yang umum untuk rekayasa piranti lunak mencakup lima kegiatan: 1. Komunikasi Sebelum pekerjaan teknis apapun dapa mulai, ini sangat penting untuk berkomunikasi dan berkolaborasi dengan pelanggan (dan pemegangpemegang kepentingan lainnya). Tujuannya adalah untuk memahami tujuan-tujuan pemegang-pemegang kepentingan untuk proyek dan untuk
25 mengumpulkan kebutuhan-kebutuhan yang membantu mendefinisikan fitur-fitur dan fungsi-fungsi piranti lunak. 2. Perencanaan Perjalanan yang rumit manapun dapat disederhanakan jika sebuah peta ada. Suatu proyek piranti lunak merupakan suatu perjalanan yang rumit, dan kegiatan perencanaan menciptakan suatu “peta” yang membantu memandu tim selama itu melaksanakan perjalanan. Peta – disebut suatu perencanaan proyek piranti lunak – mendefinisikan pekerjaan rekayasa piranti lunak dengan menggambarkan tugas-tugas teknis yang akan dilakukan, risiko-risiko yang mungkin, sumber daya-sumber daya yang akan dibutuhkan, produk-produk kerja yang akan dihasilkan, dan sebuah jadwal kerja. 3. Pemodelan Jika Anda merupakan seorang penata pemandangan, seorang pembangun jembatan, seorang insinyur aeronautika, seorang tukang kayu, atau seorang arsitek, Anda bekerja dengan model-model setiap hari. Anda menciptakan suatu “sketsa” dari hal sehingga Anda akan memahami gambaran besarnya – apa yang akan tampak secara arsitektur, bagaimana bagian-bagian
penyusunnya
cocok
bersama-sama,
dan
banyak
karakteristik lain. Jika diperlukan, Anda memperhalus sketsa menjadi rincian yang lebih besar dan lebih besar lagi dalam suatu usaha untuk memahami masalah dengan lebih baik dan bagaimana Anda akan mengatasinya. Seorang insinyur piranti lunak melakukan hal yang sama dengan
menciptakan
model-model
untuk
memahami
kebutuhan-
kebutuhan piranti lunak dengan lebih baik dan perancangan yang akan mencapai kebutuhan-kebutuhan tersebut. 4. Konstruksi Kegiatan ini menggabungkan generasi kode (baik manual atau otomatis) dan pengujian yang dibutuhkan untuk menemukan kesalahan-kesalahan dalam kode. 5. Penyebaran Piranti lunak (sebagai suatu entitas lengkap atau sebagai suatu tahap yang sebagian lengkap) dikirimkan ke pelanggan yang mengevaluasi produk yang dikirimkan dan menyediakan umpan balik berdasarkan evaluasi.
26 Lima kegiatan kerangka yang umum ini dapat digunakan selama pengembangan dari program-program yang kecil dan sederhana, penciptaan dari aplikasi-aplikasi web yang besar, dan untuk rekayasa dari sistem-sistem berbasis-komputer yang kompleks. Rincian-rincian dari proses piranti lunak akan agak berbeda dalam masing-masing kasus, tetapi kegiatan-kegiatan kerangka tetap sama.
2.2.4
Model Air Terjun (Waterfall Model) Menurut Roger S. Pressman (2010: 39-40), ada saat-saat ketika kebutuhan-
kebutuhan untuk suatu masalah dipahami dengan baik – ketika pekerjaan mengalir dari komunikasi melalui penyebaran dalam suatu cara yang cukup linear. Situasi ini kadang-kadang ditemukan ketika adaptasi-adaptasi atau peningkatan-peningkatan yang terdefinisi dengan baik ke suatu sistem yang sudah ada harus dibuat (misalnya, suatu adaptasi terhadap perangkat lunak akuntansi yang telah diamanatkan karena perubahan-perubahan ke peraturan-peraturan pemerintah). Hal ini dapat juga terjadi dalam suatu jumlah yang terbatas dari usaha-usaha pengembangan baru, tetapi hanya ketika kebutuhan-kebutuhan terdefinisi dengan baik dan cukup stabil. Model air terjun (waterfall model), kadang-kadang disebut siklus hidup klasik, menunjukkan suatu pendekatan yang sistematis dan sekuensial terhadap pengembangan piranti lunak yang diawali dengan spesifikasi dari kebutuhankebutuhan pelanggan dan berkembang melalui perencanaan, pemodelan, konstruksi, dan penyebaran, yang berpuncak pada dukungan yang berkelanjutan dari piranti lunak yang selesai.
Gambar 2.1: Model Air Terjun (Waterfall Model) www.amdrezpector.blogspot.com
27 Suatu variasi dalam representasi dari model air terjun (waterfall model) disebut model-V. Model-V menggambarkan hubungan dari tindakan-tindakan penjaminan kualitas terhadap tindakan-tindakan yang berkaitan dengan komunikasi, pemodelan, dan kegiatan-kegiatan konstruksi awal. Karena sebuah tim piranti lunak bergerak turun menyusuri sisi kiri dari V, kebutuhan-kebutuhan masalah dasar disempurnakan menjadi representasi-representasi yang secara progresif lebih rinci dan teknis dari masalah dan solusinya. Setelah kode dihasilkan, tim bergerak naik menyusuri sisi kanan dari V, pada dasarnya melakukan serangkaian pengujian (tindakan-tindakan penjaminan kualitas) yang memvalidasi masing-masing dari model yang diciptakan dikarenakan tim bergerak turun menyusuri sisi kiri. Pada kenyataannya, tidak ada perbedaan mendasar di antara siklus hidup klasik dan model-V. Model-V menyediakan suatu cara dari memvisualisasikan bagaimana verifikasi dan validasi tindakan-tindakan diterapkan terhadap pekerjaan rekayasa yang lebih awal.
Gambar 2.2: Model-V (V-Model) www.homepages.ius.edu
28 2.2.5
Diagram Kasus Penggunaan (Use Case Diagram) Menurut Lonnie D. Bentley dan Jeffrey L. Whitten (2007: 246-248), ada dua
artefak utama yang terlibat ketika melakukan pemodelan kasus penggunaan. Yang pertama adalah diagram kasus penggunaan, yang secara grafis menggambarkan sistem sebagai suatu kumpulan dari kasus-kasus penggunaan, aktor-aktor (penggunapengguna), dan hubungan-hubungannya. Diagram ini berkomunikasi pada tingkat tinggi ruang lingkup dari peristiwa-peristiwa bisnis yang harus diproses oleh sistem. Diagram kasus penggunaan sangat sederhana. Tetapi itu memulai suatu proses penting yang disebut dekomposisi fungsional, tindakan dari memecah suatu sistem menjadi subkomponen-subkomponen. Itu merupakan tidak mungkin untuk memahami seluruh sistem sekaligus, tetapi itu merupakan mungkin untuk memahami dan menentukan masing-masing bagian dari sistem. Artefak kedua, disebut narasi kasus penggunaan, mengisi rincian-rincian dari masing-masing peristiwa bisnis dan menentukan bagaimana pengguna-pengguna berinteraksi dengan sistem selama kejadian tersebut. Kasus-Kasus Penggunaan Pemodelan kasus penggunaan mengidentifikasi dan menggambarkan fungsi-fungsi sistem dengan menggunakan suatu alat yang disebut kasuskasus penggunaan. Kasus-kasus penggunaan menggambarkan fungsifungsi sistem dari perspektif dari pengguna-pengguna eksternal dan dalam suatu cara dan terminologi yang mereka pahami. Untuk secara akurat dan secara teliti menyelesaikan ini menuntut suatu tingkat yang tinggi dari keterlibatan pengguna dan seorang ahli subjek yang berpengetahuan luas tentang proses atau peristiwa bisnis. Kasus-kasus penggunaan diwakili secara grafis dengan sebuah elips horizontal dengan nama dari kasus penggunaan muncul di atas, di bawah, atau di dalam elips. Sebuah kasus penggunaan mewakili suatu tujuan tunggal dari sistem dan menggambarkan suatu urutan dari kegiatankegiatan dan interaksi-interaksi pengguna dalam berusaha untuk mencapai tujuan. Penciptaan dari kasus-kasus penggunaan telah membuktikan menjadi suatu teknik yang bagus untuk memahami dan mendokumentasikan kebutuhan-kebutuhan sistem dengan lebih baik. Sebuah kasus penggunaan itu sendiri tidak dianggap suatu kebutuhan
29 fungsional, tetapi cerita (skenario) yang kasus penggunaan ceritakan terdiri dari satu atau lebih kebutuhan-kebutuhan. Aktor-Aktor Kasus-kasus penggunaan dimulai atau dipicu oleh pengguna-pengguna eksternal yang disebut aktor-aktor. Suatu aktor memulai kegiatan sistem, suatu kasus penggunaan, untuk tujuan dari menyelesaikan beberapa tugas bisnis yang menghasilkan sesuatu yang nilainya dapat diukur. Suatu aktor mewakili suatu peran yang dipenuhi oleh seorang pengguna yang berinteraksi dengan sistem dan tidak dimaksudkan untuk menggambarkan seorang individu tunggal atau gelar pekerjaan. Faktanya, suatu aktor tidak harus manusia. Itu dapat menjadi suatu organisasi, sistem informasi lain, suatu alat eksternal seperti suatu sensor panas, atau bahkan konsep waktu. Suatu aktor diwakili secara grafis sebagai suatu gambar batang yang berlabel dengan nama dari peran yang aktor mainkan. Ini merupakan penting untuk mencatat bahwa ada empat jenis utama dari aktor: •
Aktor bisnis utama – pemegang kepentingan yang secara utama menikmati dari eksekusi kasus penggunaan dengan menerima sesuatu yang nilainya dapat diukur atau dapat diamati. Aktor bisnis utama boleh atau tidak memulai peristiwa bisnis.
•
Aktor sistem utama – pemegang kepentingan yang secara langsung bertatapan dengan sistem untuk memulai atau memicu peristiwa bisnis atau sistem. Aktor-aktor sistem utama boleh berinteraksi dengan aktor-aktor bisnis utama untuk tujuan dari menggunakan sistem aktual. Mereka memfasilitasi peristiwa melalui penggunaan langsung dari sistem untuk keuntungan dari aktor bisnis utama. Aktor bisnis utama dan aktor sistem utama boleh orang yang sama untuk peristiwa-peristiwa yang aktor bisnisnya bertatapan dengan sistem secara langsung.
•
Aktor pelayan eksternal – pemegang kepentingan yang menanggapi terhadap suatu permintaan dari kasus penggunaan.
30 •
Aktor penerima eksternal – pemegang kepentingan yang bukan merupakan aktor utama tetapi menerima sesuatu yang nilainya (keluarannya) dapat diukur atau dapat diamati dari kasus penggunaan.
Hubungan-Hubungan Suatu hubungan digambarkan sebagai sebuah garis di antara dua simbol pada diagram kasus penggunaan. Arti dari hubungan-hubungan mungkin berbeda bergantung pada bagaimana garis-garis digambarkan dan jenisjenis dari simbol-simbol apa mereka terhubung. •
Asosiasi-Asosiasi Suatu hubungan di antara suatu aktor dan suatu kasus penggunaan ada kapanpun kasus penggunaan menggambarkan suatu interaksi di antara mereka. Hubungan ini disebut sebagai suatu asosiasi. Suatu asosiasi yang mengandung sebuah mata panah pada ujung yang menyentuh kasus penggunaan menunjukkan kasus penggunaan ditiru oleh aktor pada ujung lain dari garis. Asosiasi-asosiasi tanpa mata panah menunjukkan suatu interaksi di antara kasus penggunaan dan suatu aktor pelayan atau penerima eksternal. Ketika aktor manapun diasosiasikan dengan suatu kasus penggunaan, kita mengatakan aktor berkomunikasi dengan kasus penggunaan. Asosiasi-asosiasi boleh dua arah atau tanpa arah.
•
Perpanjangan-Perpanjangan Suatu kasus penggunaan boleh mengandung fungsionalitas kompleks yang terdiri dari beberapa langkah yang membuat logika kasus penggunaan
sulit
untuk
dipahami.
Untuk
tujuan
dari
menyederhanakan kasus penggunaan dan membuatnya lebih secara mudah dipahami, kita dapat mengekstrak langkah-langkah yang lebih kompleks ke dalam kasus penggunaan mereka sendiri. Hasil kasus penggunaan disebut suatu kasus penggunaan perpanjangan bahwa itu memperpanjang fungsionalitas dari kasus penggunaan asli. Hubungan di antara kasus penggunaan perpanjangan dan kasus penggunaan yang memperpanjang disebut hubungan perpanjangan. Suatu kasus penggunaan
boleh
memiliki
banyak
hubungan-hubungan
perpanjangan, tetapi suatu kasus penggunaan perpanjangan dapat diminta hanya oleh kasus penggunaan yang memperpanjang. Masing-
31 masing garis hubungan perpanjangan berlabel <
>. Secara umum kasus-kasus penggunaan perpanjangan tidak dikenali dalam fase kebutuhan-kebutuhan tetapi dalam fase analisis. •
Penggunaan-Penggunaan (atau Pemasukan-Pemasukan) Sangat umum, Anda mungkin menemukan dua atau lebih kasus-kasus penggunaan yang melakukan langkah-langkah dari fungsionalitas yang identik. Itu merupakan yang terbaik untuk mengekstrak langkahlangkah ini ke dalam kasus penggunaan terpisah mereka sendiri yang disebut suatu kasus penggunaan abstrak. Suatu kasus penggunaan abstrak mewakili suatu bentuk dari “penggunaan kembali” dan merupakan suatu alat yang bagus untuk mengurangi redundansi di antara kasus-kasus penggunaan. Suatu kasus penggunaan abstrak tersedia untuk penunjukkan (atau penggunaan) oleh kasus penggunaan lain manapun yang memerlukan fungsionalitasnya. Hubungan di antara kasus penggunaan abstrak dan kasus penggunaan yang menggunakannya disebut suatu hubungan penggunaan (beberapa alatalat pemodelan kasus penggunaan menyebutnya sebagai suatu hubungan pemasukan). Masing-masing garis hubungan penggunaan berlabel <>. Secara umum kasus-kasus penggunaan abstrak tidak dikenali dalam fase kebutuhan-kebutuhan tetapi dalam fase analisis.
•
Kebergantungan Sebagai manajer proyek atau pengembang kepemimpinan, itu sangat membantu untuk mengetahui kasus-kasus penggunaan mana yang memiliki suatu ketergantungan pada kasus-kasus penggunaan lain supaya menentukan urutan yang kasus-kasus penggunaannya perlu untuk dikembangkan. Suatu diagram kasus penggunaan memodelkan ketergantungan-ketergantungan
kasus
penggunaan
sistem
menggunakan hubungan kebergantungan menyediakan suatu model yang merupakan suatu alat yang bagus untuk tujuan-tujuan perencanaan dan penjadwalan. Garis hubungan kebergantungan berlabel <>.
32 •
Pewarisan Ketika dua atau lebih aktor berbagi perilaku umum – dengan kata lain, mereka dapat memulai kasus penggunaan yang sama – itu merupakan yang terbaik untuk meramalkan kemungkinan perilaku umum ini dan menetapkannya ke suatu aktor abstrak baru agar mengurangi komunikasi yang berlebihan dengan sistem.
2.2.6
Narasi Kasus Pengguanan (Use Case Narrative) Menurut Lonnie D. Bentley dan Jeffrey L. Whitten (2007: 256-258), ketika
Anda sedang mempersiapkan narasi-narasi, itu merupakan bijaksana untuk pertama mendokumentasikannya pada suatu tingkat tinggi (high level) untuk segera mendapatkan suatu pemahaman dari peristiwa-peristiwa dan ukuran dari sistem. Kemudian kembali ke masing-masing kasus penggunaan dan memperluasnya ke suatu narasi kebutuhan bisnis yang sepenuhnya didokumentasikan. Bagian-bagian dari narasi kasus penggunaan tingkat tinggi, antara lain: 1. Penulis – Nama-nama dari individu-individu yang berkontribusi terhadap penulisan dari kasus penggunaan dan yang menyediakan sebuah titik kontak untuk siapa saja yang membutuhkan informasi tambahan tentang kasus penggunaan. 2. Tanggal – Tanggal kasus penggunaan terakhir dimodifikasi. 3. Versi – Versi sekarang dari kasus penggunaan (misalnya, 1.0) 4. Nama kasus penggunaan – Nama kasus penggunaan seharusnya mewakili tujuan yang kasus penggunaan sedang coba untuk selesaikan. Nama seharusnya diawali dengan suatu kata kerja (misalnya, Masukkan Pesanan Anggota Baru). 5. Jenis kasus penggunaan – Dalam melakukan pemodelan kasus penggunaan, kasus-kasus penggunaan kebutuhan-kebutuhan bisnis, yang berfokus pada visi yang strategis dan tujuan-tujuan dari berbagai pemegang
kepentingan,
dikonstruksi
pertama.
Jenis
dari
kasus
penggunaan ini adalah berorientasi bisnis dan mencerminkan suatu pandangan tingkat tinggi dari perilaku yang diinginkan dari sistem. Itu bebas dari rincian-rincian teknis dan dapat mencakup kegiatan-kegiatan
33 manual serta kegiatan-kegiatan yang akan diotomatisasi. Kasus-kasus penggunaan kebutuhan-kebutuhan bisnis menyediakan suatu pemahaman umum dari domain dan lingkup masalah, tetapi tidak mencakup rincian yang diperlukan untuk mengkomunikasikan ke pengembang-pengembang apa yang seharusnya sistem lakukan. 6. Identitas kasus penggunaan – Suatu pengenal yang secara unik mengenali kasus penggunaan. 7. Prioritas – Prioritas mengkomunikasikan kepentingan dari kasus penggunaan dalam hal tinggi, sedang, atau rendah. 8. Sumber – Sumber menetapkan entitas yang memicu penciptaan dari kasus penggunaan. Ini bisa menjadi suatu kebutuhan, suatu dokumen yang spesifik, atau seorang pemegang kepentingan. 9. Aktor Bisnis Utama – Aktor bisnis utama adalah pemegang kepentingan yang utamanya menikmati dari eksekusi dari kasus penggunaan dengan menerima sesuatu yang nilainya dapat diukur atau dapat diamati. 10. Aktor-Aktor Yang Berpartisipasi Lainnya – Aktor-aktor lain yang berpartisipasi dalam kasus penggunaan untuk mencapai tujuannya berisi aktor-aktor yang memulai, aktor-aktor yang memfasilitasi, aktor-aktor pelayan/penerima, dan aktor-aktor sekunder. Selalu masukkan cara aktor berpartisipasi. 11. Pemegang(-Pemegang) Kepentingan Yang Tertarik – Seorang pemegang kepentingan adalah siapa saja yang mempunyai suatu saham dalam pengembangan dan operasi dari sistem piranti lunak. Seorang pemegangn kepentingan yang tertarik adalah seseorang (lain dari seorang aktor) yang mempunyai suatu ketertarikan pribadi dalam tujuan dari kasus penggunaan. 12. Deskripsi Suatu deskripsi ringkasan pendek yang terdiri dari beberapa kalimat yang menguraikan tujuan dari kasus penggunaan dan kegiatan-kegiatannya.
34 2.2.7
Diagram Urutan (Sequence Diagram) Menurut Lonnie D. Bentley dan Jeffrey L. Whitten (2007: 659-660), alat lain
untuk menemukan dan/atau mendokumentasikan perilaku-perilaku kelas dan tanggung jawab-tanggung jawab adalah sebuah diagram urutan. Sebuah diagram penuh-urutan (full-sequence) menggambarkan interaksi antara semua kelas-kelas objek yang terlibat dalam skenario. Sebuah diagram urutan memodelkan logika dari sebuah kasus penggunaan (atau bagian dari sebuah kasus penggunaan) dengan menggambarkan interaksi dari pesan-pesan antara objek-objek dalam urutan waktu. Pesan-pesan disusun dalam urutan waktu dari atas ke bawah. Sebuah diagram urutan dapat dilihat sebagai suatu cara untuk mengintegrasi langkah-langkah dari sebuah kasus penggunaan dengan objek-objek dari sebuah diagram kelas. Itu dapat digunakan sebagai suatu alat komunikasi dengan pembuatpembuat program akan menentukan metode-metode (perilaku-perilaku) apa untuk dipanggil dalam mengimplementasikan sebuah kasus penggunaan. Berikut merupakan notasi-notasi diagram urutan: 1. Aktor – interaksi aktor dengan antarmuka pengguna ditunjukkan dengan simbol aktor kasus penggunaan. Terkadang aktor ditinggalkan demi kesederhanaan. Terkadang aktor diwakili dengan sebuah kotak seperti kelas-kelas dengan sebuah notasi <>. Garis vertikal putus-putus yang memanjang ke bawah dari aktor menunjukkan kehidupan dari urutan. 2. Kelas antarmuka – kotak menunjukkan kode kelas antarmuka pengguna. Untuk meyakinkan tidak ada kebingungan terhadap jenis dari kelas apakah ini, <> dicatat. Seperti dengan banyak hal di UML, apapun yang berkomunikasi dengan paling baik adalah benar. Titik dua (:) merupakan notasi diagram urutan standar untuk menunjukkan suatu “contoh” yang berjalan dari kelas. Garis vertikal putus-putus yang memanjang ke bawah dari kelas menunjukkan kehidupan dari urutan. 3. Kelas pengendali – setiap kasus penggunaan akan memiliki satu atau lebih kelas-kelas pengendali, digambarkan dengan notasi yang sama seperti kelas antarmuka dan dicatat sebagai <>. 4. Kelas-kelas entitas – tambahkan kotak-kotak untuk masing-masing entitas yang perlu untuk berkolaborasi dalam urutan dari langkah-langkah. Lagi,
35 titik dua (:) menandakan suatu contoh objek, dengan kata lain, suatu urutan khusus, produk khusus, dan seterusnya. 5. Pesan-pesan – panah-panah horisontal yang padat menunjukkan masukanmasukan pesan yang dikirim ke kelas-kelas. Masing-masing pesan memanggil perilaku (atau metode) dari kelas yang panah tunjukkan. Konvensi UML untuk pesan-pesan adalah untuk memulai kata pertama dengan sebuah huruf kecil dan menambahkan kata-kata tambahan dengan sebuah inisial huruf besar dan tanpa spasi. Dalam tanda kurung, masukkan parameter-parameter apapun yang perlu diberikan, mengikuti konvensi penamaan yang sama dan pemisahan parameter-parameter individu dengan koma. 6. Balok-balok aktivasi – balok-balok yang diatur di atas garis-garis kehidupan menunjukkan periode dari waktu selama masing-masing contoh objek ada. Balok-balok aktivasi menunjukkan waktu kehidupan dari suatu contoh di RAM. Secara umum, objek-objek diberi contoh dalam menanggapi pesan-pesan. 7. Pesan-pesan kembali – panah-panah horisontal putus-putus merupakan pesan-pesan kembali. Setiap perilaku seharusnya mengembalikan sesuatu, setidaknya
suatu
pesan
benar/salah
yang
menunjukkan
apakah
perilakunya berhasil. Tetapi demi kesederhanaan, pesan-pesan kembali sering dianggap dan ditinggal diagram urutan. 8. Pemanggilan-diri – suatu objek dapat memanggil metode dirinya. 9. Bingkai – menunjukkan bahwa pengendali perlu untuk mengulang melalui semua hal.
2.2.8
Diagram Kelas (Class Diagram) Menurut Lonnie D. Bentley dan Jeffrey L. Whitten (2007: 400, 405), suatu
diagram kelas digunakan untuk secara grafis menggambarkan objek-objek dan asosiasi-asosiasinya. Pada diagram ini, kita juga akan memasukkan keserbaragaman, hubungan-hubungan pengumpulan.
generalisasi/spesialisasi,
dan
hubungan-hubungan
36 Langkah 1: Mengenali Asosiasi-Asosiasi dan Keserbaragaman Dalam langkah ini, kita perlu untuk mengenali asosiasi-asosiasi yang ada antara kelas-kelas objek. Ingat kembali bahwa suatu asosiasi antara dua kelaskelas objek merupakan apa yang satu objek “perlu untuk tahu” tentang lainnya. Hal ini mengizinkan satu kelas objek untuk memberi petunjuk ke hal lain dan untuk dapat mengirimkan pesan-pesannya. Sekali asosiasi-asosiasi telah dikenali, keserbaragaman yang memerintah asosiasi harus ditetapkan. Langkah 2: Mengenali Hubungan-Hubungan Generalisasi/Spesialisasi Sekali kita telah mengenali asosiasi-asosiasi dasar dan keserbaragamannya, kita harus menentukan jika hubungan-hubungan generalisasi/spesialisasi apapun
ada.
Ingat
kembali
bahwa
hubungan-hubungan
generalisasi/spesialisasi, juga dikenal sebagai hirarki-hirarki klasifikasi atau “merupakan suatu” hubungan-hubungan, terdiri dari kelas-kelas supertype (abstrak atau induk) dan kelas-kelas subtype (konkret atau anak). Kelas supertype umum bahwa itu mengandung atribut-atribut dan perilaku-perilaku umum dari hirarki. Kelas subtype dikhususkan bahwa itu mengandung atribut-atribut dan perilaku-perilaku unik ke objek tetapi itu mewarisi atributatribut dan perilaku-perilaku kelas supertype. Langkah 3: Mengenali Hubungan-Hubungan Pengumpulan/Komposisi Dalam langkah ini, kita harus menentukan jika hubungan-hubungan pengumpulan atau komposisi dasar apapun ada. Ingat kembali bahwa pengumpulan merupakan suatu jenis unik dari hubungan yang satu objeknya “merupakan bagian dari” objek lainnya. Itu sering disebut sebagai suatu hubungan keseluruhan/sebagian dan dapat dibaca sebagai “Objek A mengandung objek B dan objek B merupakan bagian dari objek A.” Hubungan-hubungan pengumpulan asimetris, bahwa objek B merupakan bagian dari objek A tetapi objek A bukan merupakan bagian dari objek B. Hubungan-hubungan ini tidak berarti pewarisan, bahwa objek B tidak mewarisi perilaku atau atribut-atribut dari objek A. Namun, perilaku yang diterapkan ke keseluruhan secara otomatis diterapkan ke bagian-bagian.
37 Sebagai contoh, jika saya ingin mengirim objek A ke seorang pelanggan, objek B juga akan dikirim. Langkah 4: Mempersiapkan Diagram Kelas Akhirnya, jika Anda telah mempelajari pemodelan data, Anda seharusnya mencatat perbedaan-perbedaan berikut antara atribut-atribut kelas objek dan atribut-atribut entitas data: •
Tidak perlu ada dalam suatu diagram kelas untuk memasukkan suatu atribut kunci primer kecuali itu merupakan suatu atribut bisnis yang nyata.
•
2.2.9
Tidak perlu ada untuk kunci-kunci asing dalam suatu diagram kelas.
Perancangan Arsitektur Menurut Ian Sommerville (2011: 148), perancangan arsitektur berkaitan
dengan
pemahaman
bagaimana
suatu
sistem
seharusnya
terorganisir
dan
perancangan struktur secara keseluruhan dari sistem tersebut. Dalam model dari proses pengembangan piranti lunak, perancangan arsitektur merupakan tahap pertama dalam proses perancangan piranti lunak. Ini merupakan hubungan penting antara
perancangan
dan
perekayasaan
kebutuhan-kebutuhan,
karena
ini
mengidentifikasi komponen-komponen struktural utama dalam suatu sistem dan hubungan-hubungan antara mereka. Keluaran dari proses perancangan arsitektur adalah suatu model arsitektur yang menggambarkan bagaimana sistem terorganisir sebagai suatu himpunan dari komponen-komponen yang berkomunikasi. Dalam proses-proses tangkas, ini secara umum diterima bahwa suatu tahap awal dari proses pengembangan seharusnya berkaitan dengan pembangunan suatu arsitektur sistem secara keseluruhan. Pengembangan bertahap dari arsitekturarsitektur biasanya tidak berhasil. Sementara penguraian komponen-komponen dalam menanggapi perubahan-perubahan biasanya relatif mudah, penguraian suatu arsitektur sistem mungkin akan mahal. Dalam prakteknya, ada suatu tumpang tindih yang signifikan antara prosesproses dari perekayasaan
kebutuhan-kebutuhan dan perancangan arsitektur.
Idealnya, suatu spesifikasi sistem seharusnya tidak meliputi informasi perancangan
38 apapun. Hal ini tidak realistis kecuali untuk sistem-sistem yang sangat kecil. Dekomposisi arsitektur biasanya diperlukan untuk mengatur dan mengorganisir spesifikasi. Oleh karena itu, sebagai bagian dari proses perekayasaan kebutuhankebutuhan, suatu arsitektur sistem abstrak yang kelompok-kelompok dari fungsifungsi sistem atau fitur-fitur dengan komponen-komponen skala-besar atau subsistem-sub-sistemnya diasosiasikan mungkin diusulkan. Kemudian dekomposisi ini dapat digunakan untuk membahas kebutuhan-kebutuhan dan fitur-fitur dari sistem dengan para pemegang kepentingan. Arsitektur-arsitektur piranti lunak dapat dirancang pada dua tingkat dari abstraksi, yang disebut arsitektur kecil dan arsitektur besar: 1. Arsitektur kecil berkaitan dengan arsitektur dari program-program individual. Pada tingkat ini, cara suatu program individual didekomposisi menjadi komponen-komponen diperhatikan. 2. Arsitektur
besar
berkaitan
dengan
arsitektur
dari
sistem-sistem
perusahaan yang kompleks yang meliputi sistem-sistem, programprogram, dan komponen-komponen program lainnya. Sistem-sistem perusahaan ini didistribusikan melewati berbagai komputer, yang mungkin dimiliki dan dikelola oleh berbagai perusahaan.
2.2.10 Delapan Aturan Emas Perancangan Antarmuka Menurut Ben Shneiderman dan Catherine Plaisant (2010: 88-89), prinsipprinsip ini, diperoleh dari pengalaman dan disempurnakan selama lebih dari tiga dekade, memerlukan validasi dan penyesuaian untuk domain-domain perancangan spesifik. Tidak ada daftar seperti ini dapat lengkap, tetapi ini telah diterima dengan baik sebagai suatu panduan yang berguna untuk murid-murid dan perancangperancang. Delapan Aturan Emas antara lain: 1. Berusaha untuk konsistensi. Urutan dari tindakan yang konsisten seharusnya dibutuhkan dalam situasi-situasi yang mirip; terminologi identik seharusnya digunakan dalam prompts, menu-menu, layar-layar bantuan; dan warna, tata letak, kapitalisasi, font-font, dan sebagainya yang konsisten seharusnya
39 digunakan di seluruhnya. Pengecualian-pengecualian, seperti konfirmasi dari perintah hapus yang dibutuhkan atau tidak ada echo dari kata-kata sandi, seharusnya dapat dipahami dan dibatasi jumlahnya. 2. Memenuhi kegunaan yang universal. Mengenali kebutuhan-kebutuhan dari pengguna yang beragam dan desain untuk plastisitas, memfasilitasi transformasi dari konten. Perbedaanperbedaan pemula ke ahli, rentang-rentang usia, kecacatan-kecacatan, dan keragaman
teknologi
masing-masing
memperkaya
spektrum
dari
persyaratan-persyaratan yang memandu desain. Menambahkan fitur-fitur untuk pemula-pemula, seperti penjelasan-penjelasan, dan fitur-fitur untuk ahli-ahli, seperti cara-cara singkat dan langkah yang lebih cepat, dapat memperkaya desain antarmuka dan meningkatkan kualitas sistem yang dirasakan. 3. Menawarkan umpan balik yang informatif. Untuk setiap tindakan pengguna, seharusnya ada umpan balik sistem. Untuk tindakan-tindakan yang sering dan minor, responnya dapat menjadi sederhana, sedangkan untuk tindakan-tindakan yang jarang dan mayor, responnya seharusnya lebih substansial. Presentasi visual dari objek-objek ketertarikan menyediakan suatu lingkungan yang nyaman untuk menunjukkan perubahan-perubahan secara eksplisit. 4. Merancang dialog-dialog untuk menghasilkan penutupan. Urutan dari tindakan-tindakan seharusnya diatur ke dalam kelompokkelompok dengan suatu awal, tengah, dan akhir. Umpan balik yang informatif pada penyelesaian dari suatu kelompok tindakan-tindakan memberikan operator-operator kepuasan dari pencapaian, suatu rasa lega, suatu sinyal untuk menghentikan rencana-rencana kontingensi dari pikiran-pikiran mereka, dan suatu indikator untuk mempersiapkan bagi kelompok dari tindakan-tindakan berikutnya. Misalnya, situs-situs web ecommerce memindahkan pengguna-pengguna dari pemilihan produkproduk ke kasir, berakhir dengan suatu halaman konfirmasi yang jelas yang melengkapi transaksi. 5. Mencegah kesalahan-kesalahan. Sebanyak mungkin, merancang sistem sedemikian rupa sehingga pengguna-pengguna tidak dapat membuat kesalahan-kesalahan serius;
40 misalnya, mengeluarkan barang-barang menu yang tidak sesuai dan tidak mengizinkan karakter-karakter alfabet dalam bidang-bidang entri numerik. Jika seorang pengguna membuat suatu kesalahan, antarmuka seharusnya mendeteksi kesalahannya dan menawarkan instruksi-instruksi yang sederhana, konstruktif, dan spesifik untuk pengembalian. Misalnya, pengguna-pengguna seharusnya tidak perlu mengetik ulang suatu keseluruhan formulir nama-alamat jika mereka memasukkan sebuah kode pos yang tidak sah, melainkan seharusnya dipandu untuk memperbaiki hanya bagian yang salah. Tindakan-tindakan yang keliru seharusnya meninggalkan kondisi sistem tidak berubah, atau antarmuka seharusnya memberikan instruksi-instruksi tentang pengembalian kondisinya. 6. Mengizinkan tindakan-tindakan pembalikan yang mudah. Sebanyak mungkin, tindakan-tindakan seharusnya bisa dikembalikan. Fitur ini meringankan kecemasan, karena penggunanya mengetahui bahwa kesalahan-kesalahan dapat dibatalkan, dan mendorong eksplorasi dari opsi-opsi asing. Satuan-satuan dari reversibilitas mungkin suatu tindakan tunggal, suatu tugas entri-data, atau suatu kelompok dari tindakan-tindakan yang lengkap, seperti pemasukan suatu blok namaalamat. 7. Mendukung tempat internal dari pengendalian. Pengguna-pengguna yang berpengalaman sangat menginginkan arti bahwa mereka berkuasa atas antarmuka dan bahwa antarmukanya merespon
terhadap
tindakan-tindakan
mereka.
Mereka
tidak
menginginkan kejutan-kejutan atau perubahan-perubahan dalam perilaku yang dikenal, dan mereka terganggu oleh urutan-urutan entri-data yang membosankan, kesulitan dalam memperoleh informasi yang diperlukan, dan ketidakmampuan untuk menghasilkan hasil yang mereka inginkan. 8. Mengurangi beban memori jangka pendek. Kapasitas terbatas manusia untuk pemrosesan informasi dalam memori jangka pendek mensyaratkan bahwa desainer-desainer menghindari antarmuka-antarmuka
yang
pengguna-pengguna
harus
mengingat
informasi dari satu layar dan kemudian menggunakan informasi itu pada layar
lain.
Itu
berarti
bahwa
ponsel-ponsel
seharusnya
tidak
membutuhkan entri ulang dari nomor-nomor telepon, lokasi-lokasi situs-
41 web seharusnya tetap dapat dilihat, tampilan-tampilan multi-halaman seharusnya digabungkan, dan waktu pelatihan yang memadai seharusnya dialokasikan untuk urutan tindakan-tindakan yang kompleks.
2.2.11 Java Berdasarkan www.java.com/en/download/faq/whatis_java.xml, java adalah suatu bahasa pemrograman dan peron komputasi yang pertama kali dirilis oleh Sun Microsystems pada tahun 1995. Ada banyak aplikasi-aplikasi dan situs-situs yang tidak akan berfungsi kecuali Java telah terinstal, dan lebih banyak lagi dibuat setiap hari. Java cepat, aman, dan handal. Dari laptop-laptop ke pusat data-pusat data, konsol-konsol permainan ke superkomputer-superkomputer ilmiah, telepon-telepon selular ke internet, Java di mana-mana. Menurut Y. Daniel Liang (2011: 32), Java dikembangkan oleh suatu tim yang dipimpin oleh James Gosling di Sun Microsystems. Awalnya disebut Oak, itu dirancang pada tahun 1991 untuk penggunaan dalam kepingan-kepingan yang tertanam (embedded chips) dalam peralatan-peralatan konsumen. Pada 1995, berganti nama Java, itu dirancang ulang untuk mengembangkan aplikasi-aplikasi internet. Java telah menjadi sangat populer. Kenaikannya yang cepat dan penerimaannya
yang
luas
dapat
ditelusuri
ke
karakteristik-karakteristik
rancangannya, khususnya janjinya bahwa Anda dapat menulis sekali suatu program dan menjalankannya di mana saja. Sebagaimana dinyatakan oleh Sun, Java sederhana, berorientasi objek, terdistribusi, tertafsirkan, kuat, aman, netral arsitektur, portabel, kinerja tinggi, multithreaded, dan dinamis. Java adalah suatu bahasa pemrograman yang berfitur lengkap, bertujuan umum yang dapat digunakan untuk mengembangkan aplikasi-aplikasi yang kuat dan bermisi kritis (mission-critical). Saat ini, itu digunakan tidak hanya untuk pemrograman web, tetapi juga untuk mengembangkan aplikasi-aplikasi mandiri di peron-peron pada server-server, desktop-desktop, dan perangkat-perangkat mobile. Itu digunakan untuk mengembangkan suatu kode untuk berkomunikasi dengan dan mengendalikan robot penjelajah di Mars. Banyak perusahaan yang pernah
42 menganggap Java menjadi lebih hype daripada substansi sekarang menggunakannya untuk menciptakan aplikasi-aplikasi terdistribusi yang diakses oleh pelangganpelanggan dan mitra-mitra di internet. Untuk setiap proyek baru yang sedang dikembangkan saat ini, perusahaan-perusahaan menanyakan bagaimana mereka dapat menggunakan Java untuk membuat pekerjaan mereka lebih mudah.
2.3
Studi Pendahuluan Guna tercapainya tujuan dari penelitian ini, maka telah dilakukan studi
pendahuluan yaitu mempelajari model SIR dasar dan faktor-faktor yang mempengaruhi penyebaran penyakit secara umum dari beberapa referensi agar dapat menguraikan model SIR untuk penyebaran penyakit secara umum, terutama campak. Kemudian dilanjutkan dengan mempelajari bahasa pemrograman sebagai dasar dari pembuatan perangkat lunak (software) yang dapat melakukan simulasi untuk semua kasus yang memungkinkan, membantu perhitungan, dan menampilkan hasil yang akurat dalam bentuk tabel dan grafik.