BAB II LANDASAN TEORI

advertisement
BAB II
LANDASAN TEORI
2.1
Interaksi Obat
Interaksi obat terjadi jika efek suatu obat (index drug) berubah akibat
adanya obat lain (precipitant drug), makanan, atau minuman.Interaksi obat dapat
menghasilkan efek yang memang dikehendaki (Desirable Drug Interaction), atau
efek yang tidak dikehendaki (Undesirable/Adverse Drug Interactions = ADIs)
yang lazimnya menyebabkan efek samping obat dan/atau toksisitas karena
meningkatnya kadarobat di dalam plasma, atau sebaliknya menurunnya kadar obat
dalam plasma yang menyebabkan hasil terapi menjadi tidak optimal. Sejumlah
besar obat baru yang dilepas di pasaran setiap tahunnya menyebabkan munculnya
interaksi baru antar obat akan semakin sering terjadi (Ament PW, et al, 2000).
Interaksi obat didefinisikan sebagai modifikasi efek suatu obat akibat obat
lain yang diberikan pada awalnya atau diberikan bersamaan, sehingga keefektifan
atau toksisitas satu obat atau lebih berubah. Obat dapat berinteraksi dengan obat
lainmaupun dengan makanan atau minuman yang dikonsumsi oleh pasien. Hal ini
dapat terjadi karena dalam kehidupan sehari-hari, tidak jarang seorang penderita
mendapat obat lebih dari satu macam obat, menggunakan obat ethical, obat bebas
tertentu selain yang diresepkan oleh dokter maupun mengkonsumsi makanan dan
minuman tertentu seperti alkohol, kafein. Perubahan efek obat akibat interaksi
obat dapat bersifat membahayakan dengan meningkatnya toksisitas obat atau
berkurangnya khasiat obat.Namun, interaksi dari beberapa obat juga dapat bersifat
menguntungkan seperti efek hipotensif diuretik bila dikombinasikan dengan betabloker dalam pengobatanhipertensi (Fradgley, 2003).
7
http://digilib.mercubuana.ac.id/
8
Beberapa laporan studi menyebutkan proporsi interaksi obat dengan obat
lain (antar obat) berkisar antara 2,2% sampai 30% terjadi pada pasien rawat-inap
dan 9,2% sampai 70,3% terjadi pada pasien-pasien rawat jalan, walaupun kadangkadang evaluasi interaksi obat tersebut memasukkan pula interaksi secara teoretik
selain interaksi obat sesungguhnya yang ditemukan dan terdokumentasi (Peng
CC, et al, 2003).
Menurut Gitawati (2008), Mekanisme interaksi obat dapat melalui beberapa
cara, yakni 1) interaksi secara farmasetik (inkompatibilitas); 2) interaksi secara
farmakokinetik dan 3) interaksi secara farmakodinamik.
Interaksi farmasetik atau disebut juga inkompatibilitas farmasetik bersifat
langsung dandapat secara fisik atau kimiawi, misalnyaterjadinya presipitasi,
perubahan warna, tidakterdeteksi (invisible), yang selanjutnyamenyebabkan obat
menjadi tidak aktif. Contoh: interaksi karbcnisilin dengan gentamisin terjadi
inaktivasi; fenitoin dengan larutan dextrosa 5% terjadi presipitasi; amfoterisin B
dengan larutan NaCl fisiologik, terjadi presipitasi.
Menurut Joy, Jyothi M, et al(2011), Interaksi farmakokinetik meliputi
absorpsi, distribusi, metabolisme dan eliminasi.Absorpsi,ketika herbal dan obat
diambil melalui mulut, biasanya diserap ke dalam aliran darah melalui perut dan
usus. Herbal dapat mempengaruhi cara di mana obat yang diserap, menyebabkan
perubahan jumlah obat yang memasuki aliran darah. Sebagai contoh, beberapa
herbal dapat mengubah lingkungan fisik perut, seperti tingkat pH, sementara yang
lain mungkin mengikat kimia untuk obat, menyebabkan mereka untuk tetap di
perut bukannya memasuki aliran darah. Beberapa tumbuhan, seperti obat pencuci
perut, bisa mempercepat proses pencernaan, mengurangi jumlah waktu obat yang
hadir untuk diserap oleh lambung.Distribusi, herbal seperti Meadowsweet dan
Hitam willow, yang mengandung rasa sakit mengurangi salisilat, dapat
menggantikan protein yang sangat terikat obat-obatan seperti warfarin dan
carbamazepine sehingga meningkatkan efek samping dari obat ini. Produk ini
tidak harus diambil bersamaan.Metabolisme, setelah dalam aliran darah, banyak
http://digilib.mercubuana.ac.id/
9
obat perlu dimetabolisme (diubah kimiawi) baik oleh hati agar menjadi terapi aktif
atau dihapus dari aliran darah.Oleh karena itu hati anda, memainkan peran penting
dalam mengendalikan tingkat dan efektivitas obat dalam tubuh anda.Terapi herbal
(dan juga terapi obat) dapat mengubah metabolisme hati.Dengan menginduksi
atau menghambat enzim hati, herbal dapat mengubah jumlah obat terapi aktif
dalam darah.Ini adalah mekanisme yang paling penting untuk interaksi antara
terapi herbal dan obat-obatan anti retroviral. Akar manis (sebagai herbal, bukan
pemanis) menurunkan metabolisme kortikosteroid, yang menyebabkan efek
samping dan beracun dari penumpukan kortikosteroid.Eliminasi, beberapa obat
dikeluarkan dari aliran darah melalui ginjal.Herbal yang mempengaruhi fungsi
ginjal dapat mengubah tingkat obat dalam darah.Jika ramuan mengurangi fungsi
ginjal, tingkat obat dapat meningkatkan.Jika ramuan meningkatkan fungsi ginjal,
tingkat obat dapat menurun.Interaksi obat secara farmakokinetik yang terjadi pada
suatu obat tidak dapat diekstrapolasikan (tidak berlaku) untuk obat lainnya
meskipun masih dalam satu kelas terapi, disebabkan karena adanya perbedaan
sifat
fisikokimia,
yang
menghasilkan
sifat
farmakokinetik
yang
berbeda.Contohnya, interaksi farmakokinetik oleh simetidin tidak dimiliki oleh
H2-blocker lainnya; interaksi oleh terfenadin, aztemizole tidak dimiliki oleh
antihistamin non-sedatif lainnya.
Interaksi farmakodinamik adalah interaksi antara obat yang bekerja pada
sistem reseptor, tempat kerja atau sistem fisiologik yang samasehingga terjadi
efek yang aditif, sinergistik, atau antagonistik, tanpa ada perubahan kadar plasma
ataupun profil farmakokinetik lainnya. Interaksi farmakodinamik umumnya dapat
diekstrapolasikan ke obat lain yang segolongan dengan obat yang berinteraksi,
karena klasifikasi obat adalah berdasarkan efek farmakodinamiknya. Selain itu,
umumnya kejadian interaksi farmakodinamik dapat diramalkan sehingga dapat
dihindari sebelumnya jika diketahui mekanisme kerja obat (Kastrup EK, 2000).
Interaksi farmakodinamik dapat terjadi ketika dua atau lebih obat memiliki
mekanisme aksi yang menghasilkan hasil fisiologis yang sama. Interaksi
farmakodinamik dapat dikategorikan secara luas sebagai: sinergis (ketika efek dari
http://digilib.mercubuana.ac.id/
10
dua obat lebih besar daripada jumlah efek masing-masing); antagonistik (ketika
efek dari dua obat kurang dari jumlah efek masing-masing); aditif (ketika efek
dari dua obat hanyalah jumlah dari efek masing-masing); dan tergantung urutan
(ketika urutan dua obat yang diberikan mengatur efek mereka). Meskipun
interaksi farmakodinamik relatif umum dalam praktek klinis, efek samping
biasanya dapat diminimalkan jika interaksi diantisipasi dan diambil tindakan
pencegahan yang tepat (Krishna, Bala, et al, 2011).
Perubahan efek obat akibat interaksi obat sangat bervariasi diantara individu
karena dipengaruhi oleh berbagai faktor seperti dosis, kadar obat dalam darah,
rute pemberian obat, metabolisme obat, durasi terapi dan karakteristik pasien
seperti umur, jenis kelamin, unsur genetik dan kondisi kesehatan pasien
(Fradgley, 2003). Tidak semua interaksi obat akan bermakna secara signifikan,
walaupun secara teoritis mungkin terjadi. Banyak interaksi obat yang
kemungkinan besar berbahaya terjadi hanya pada sejumlah kecil pasien.Namun
demikian seorang farmasis perlu selalu waspada terhadap kemungkinan timbulnya
efek merugikan akibat interaksi obat ini untuk mencegah timbulnya resiko
morbiditas atau bahkan mortalitas dalam pengobatan pasien (Rahmawati, et al,
2006).
2.2
Definisi Java
Java merupakan salah satu bahasa pemrograman yang diciptakan
olehperusahaan Sun Microsystem melalui Green Project, yaitu proyek penelitian
untuk membuat bahasa yang akan digunakan pada chip-chip embedded pada
device intelligent consumer electronic (Hermawan, 2004). Bahasa Java diciptakan
oleh
James
Gosling.Pada
awalnya,
bahasa
pemrograman
ini
bernama
Oak.Penamaan Oak diambil ketika James melihat pohon di seberang kaca ruang
kantornya. Kemudian lambat laun nama ini berubah menjadi Java. Bahasa Java
hampir sama dengan bahasa pemrograman lain, seperti C, C++, Pascal, dan
Modula-3 (Wijela, 1996).
http://digilib.mercubuana.ac.id/
11
Dua faktor penting yang mempengaruhi bahasa komputer adalah: perbaikan
dalam seni pemrograman dan lingkungan komputasi. Java tidak terkecuali, harus
memenuhi dua faktor sebelum menjadi paling popular, bahasa pemrograman yang
luas. Ini dikembangkan di Sun Microsystems pada tahun 1991, oleh tim yang
dipimpin oleh James Gosling. Bahasa baru awalnya bernama “Oak” kemudian
berganti namamenjadi “Java” pada tahun 1995. Berbeda dengan bahasa yang lebih
tua lainnya, yang dirancang untuk berjalan pada mesin tertentu (CPU), Java
adalah bahasa portabel yang dapat berjalan di multi-platform (cross-platform),
Internet dan World Wide Web (WWW) (Vu, Hieu, 2015).
Terdapat beberapa konfigurasi software atau perangkat lunak yang
dibutuhkan oleh Java (Wijela, 1996), yaitu :
1.
java
Interpreter Java yang digunakan untuk menjalankan program Java dalam
bentuk bytecode
2.
javac
Compiler java yang mengkompilasi kode sumber Java ke dalam bytecode
3.
javadoc
Program dokumentasi java yang secara otomatis membuat dokumendokumen HTML dari kode sumber Java
4.
javah
File ini berfungsi untuk membuat file header dan file stub yang
dapatdiimplementasikan pada class yang lain
5.
javap
File ini berfungsi untuk mengubah bentuk bytecode ke dalam kode
sumberJava
6.
javaprof
File ini berfungsi untuk mencetak informasi untuk aplikasi single thread
http://digilib.mercubuana.ac.id/
12
2.3
Keunggulan Java
Java
memiliki
beberapa
keunggulan
bila
dibandingkan
dengan
bahasapemrograman lainnya. Menurut Hermawan (2004), terdapat 5 aspek yang
menjadi keunggulan Java, yaitu:
1.
Java bersifat sederhana dan relatif lebih mudah
Bentuk model Java sebagian besar berasal dari bahasa C++. Namun
adabeberapa
karakteristik
yang
diperbaiki
pada
C++,
seperti
mengurangikompleksitas beberapa fitur, penambahan fungsionalitas, dan
penghilanganbeberapa aspek pemicu ketidakstabilan sistem pada C++.
2.
Java berorientasi pada objek (Object Oriented)
Java merupakan bahasa pemrograman yang berorientasi objek (OOP) dan
bukan seperti Pascal, Basic maupun C yang berbasis prosedural.Dalam
memecahkan masalah, Java membagi program menjadi objek-objek yang
kemudian memodelkan sifat dan tingkah laku masing-masing.Java juga
menentukan dan mengatur interaksi antara objek yang satu dengan lainnya.
3.
Java bersifat terdistribusi
Pada dekade awal perkembangan PC (Personal Computer), komputer
hanyabersifat sebagai workstation tunggal dan tidak terhubung satu sama
lain.Sedangkan saat ini, sistem komputerisasi cenderung terdistribusi, mulai
dariworkstation client, e-mail server, database server, web server, proxy
server,dan sebagainya.
4.
Java bersifat multiplatform
Dewasa ini kita mengenal banyak platform sistem operasi, mulai
dariWindows, Apple, dan berbagai varian UNIX dan Linux.Pada
umunya,program yang dibuat dan di-compile di suatu platform hanya bisa
dijalankandi platform tersebut.Java bersifat multiplatform, yakni dapat
aplikasi yangdibuat dengan bahasa Java dapat diterjemahkan oleh Java
Interpreter padaberbagai sistem operasi.
5.
Java bersifat multithread
http://digilib.mercubuana.ac.id/
13
Thread adalah proses yang dapat dikerjakan oleh program dalam
suatuwaktu. Java bersifat multithreaded, artinya dapat mengerjakan
beberapaproses dalam waktu yang hampir bersamaan.
2.4
Operasi String
Java adalah bahasa berorientasi objek yang memungkinkan programmer
untuk membuat class generik.Ketika membuat class generik pengembang
menempatkan setidaknya satu jenis parameter dalam kurung sudut setelah setiap
class atau antarmuka deklarasi.Parameter jenis ini mungkin terikat atau terikat di
Java (Mathur, 2011).
String merupakan sebuah bentuk data yang sering dipakai dalam bahasa
pemrograman untuk keperluan menampung dan memanipulasi data teks. Sebagai
contoh fungsi string misalnya digunakan untuk menampung atau menyimpan
sebuah kalimat dan lainsebagainya(Suprapto, dkk, 2008).
Menurut Prasetyo DD (2007), String merupakan rangkaian karakter yang
sifatnya immutable (read-only). Ini berarti bahwa isi suatu string tidak dapat
diubah lagi begitu ia sudah terbentuk. Tidak seperti objek lainnya.Java
memperlakukan string sebagai bagian dari bahasa Java.Dalam implementasinya,
string hampir dipastikan selalu diperlukan di setiap kode program.
String literal merupakan pendekatan yang lazim dilakukan untuk
menciptakan string.Di sini cukup menuliskan rangkaian karakter di antara tanda
kutip ganda.
String s = “Indonesia”;
Oleh karena string literal merupakan suatu objek, diperkenankan memanggil
method-method String secara langsung.
// Mencetak panjang string
http://digilib.mercubuana.ac.id/
14
System.out.println(“Indonesia”.length());
Konkatenasi atau penggabungan string merupakan salah satu operasi yang
kerap kali dilakukan. Dalam kasus ini, bias menggunakan operator + atau method
concat, namun operator + lebih praktis dan sederhana.
String str1 = “Indonesia”;
String str2 = “Raya”;
System.out.println(str1 + str2);
System.out.println(str1.concat(str2));
String mendefinisikan method baru isEmpty yang sangat membantu ketika
ingin memeriksa apakah string kosong atau tidak. Dalam pemeriksaan ini, jika
ingin mengabaikan spasi di awal dan di belakang string (jika ada), gunakan
method trim.
String s = “ “;
If (s.trim().isEmpty()){
return s.trim().length() == 0;
}
Dan juga bisa memanfaatkan method length.
public static boolean isEmpty(String s){
return s.trim().length() == 0;
}
Pada saat ingin membandingkan kesamaan isi objek, gunakan method
equals, bukannya dengan operator ==. Perlu sekali diperhatikan, penggunaan
operator == untuk komparasi tipe reference akan berakibat membandingkan
reference.
http://digilib.mercubuana.ac.id/
15
String s3 = new String(“Indonesia”);
String s4 = new String(“Indonesia”);
System.out.println((s3 == s4) ? “sama” : “tidak sama”);
// Output: tidak sama
System.out.println((s3.equals(s4)) ? “sama” : “tidak sama”);
// Output: sama
Lain halnya jika menggunakan string literal, kedua komparasi di atas akan
mengembalikan nilai sama.
String s1 = “Indonesia”;
String s2 = “Indonesia”;
System.out.println(s1 == s2) ? “sama” : “tidak sama”);
// Output: sama
System.out.println(s1.equals(s2)) ? “sama” : “tidak sama”);
// Output: sama
Oleh karena penggunaan string dalam suatu program sangat sering dan
penting, maka secara khusus Java mendukung beberapa operasi string dalam
sintaks bahasa Java itu sendiri.Sehingga penggunaan string lebih leluasa dan
mudah.Harus diingat bahwa kemudahan ini hanya berlaku untuk penggunaan
String yang ada pada package java.lang dan tidak berlaku untuk class-class
lainnya.
Tentu berpikir bagaimana jika salah satu variable yang memegang referensi
objek String tersebut melakukan manipulasi terhadap isinya, apa yang akan
terjadi? Jawabannya tidak mungkin terjadi karena objek String bersifat immutable.
Oleh karena itu, optimasi yang dilakukan Java ini tidak akan mengakibatkan efek
http://digilib.mercubuana.ac.id/
16
samping ke program yang sudah dibuat. Hal ini juga yang menyebabkan kenapa
mendapatkan hasil :
Kedua referensi sama : true
Saat mengeksekusi potongan code tersebut karena memang pada dasarnya
membandingkan dua buah referensi objek yang sama(Indrajani dan Martin, 2007).
2.5
Operasi File Input Output
Pada saat berbicara mengenai program, tidak akan lepas dari komponen
fundamental yang saling terkait, yakni masukan (input), proses, dan keluaran
(output). Hal ini mengindikasikan bahwa suatu proses akan melibatkan adanya
masukan dan keluaran. Adapun di Java, khususnya dalam konteks paket java.io,
input, dan output (I/O) didefinisikan dengan istilah stream. Mengingat perannya
sebagai salah satu komponen inti, kiranya penting sekali untuk memahami
bagaimana bekerja dengan i/o, termasuk juga mengenai sistem berkas (file) dan
direktori (Prasetyo DD, 2007).
File atau Berkas komputer atauberkas adalah entitas dari data yang disimpan
di dalam sistem berkas yang dapat diakses dan diatur oleh pengguna. File juga
dapat didefinisikan sebagai kumpulan informasi yang biasanya disimpan dalam
sebuah disk komputer, dimana informasi disimpan dalam bentuk file-file yang
dikemudian hari dapat diambil kembali. Sebuah berkas memiliki namayang unik
dalam direktori dimana ia berada. Alamat direktori dimana suatu berkas
ditempatkan diistilahkan dengan path. File atau berkas diorganisasikan dari
sejumlah record. Masing-masing record bisa terdiri dari satu atau beberapa
field.Setiap field terdiri dari satu atau beberapa byte(Suprapto, dkk, 2008).
Stream adalah representasi abstrak suatu masukan atau keluaran yang
merupakan sumber atau tujuan data.Stream dapat divisualisasikan sebagai
rangkaian byte yang mengalir ke dalam atau ke luar program.Pada saat melakukan
penulisan ke stream, stream tersebut dinamakan stream keluaran (output
http://digilib.mercubuana.ac.id/
17
stream).Sementara itu, ketika melakukan operasi pembacaan, stream disebut
sebagai stream masukan (input stream) (Prasetyo DD, 2007).
Menurut Muhammad danHayuhardhika (2014), Yang dimaksud dengan
stream adalah aliran data. Jika dianalogikan, stream digambarkan sebagai sungai
yang mengalirkan air.Seperti sungai yang mengalirkan air, stream mengalirkan
byte-byte data.
Pemrosesan input dan output di Java pada prinsipnya
menggunakan konsep stream ini.
Pemrosesan file dalam jumlah besar, yang membutuhkan kinerja yang tinggi
masih dibutuhkan berbagai bidang. Misalnya aplikasi backend yang mengelola
dokumen di perusahaan, aplikasi pengolahan teks, aplikasi pemroses XML,
HTML, aplikasi simulasi-simulasi dan sebagainya. Penguasaan stream dan file
akan membantu untuk memecahkan berbagai masalah.
Terdapat 2 jenis sub class stream yang dapat digunakan untuk melakukan
pemrosesan file, yaitu InputStream dan OutputStream.
InputStream merupakan subclass dari stream yang memiliki fungsi-fungsi
untuk membaca byte-byte dari sebuah file untuk kemudian disimpan dalam
aplikasi untuk diolah. Aliran data pada class InputStream ini adalah dari data
source (File) menuju Aplikasi, seperti yang ditunjukkan pada gambar berikut.
Class ini biasanya digunakan untuk pembacaan isi sebuah file target dalam bentuk
byte-byte.
Gambar 2.6.1Input Stream
http://digilib.mercubuana.ac.id/
18
Sebaliknya, OutputStream merupakan subclass yang menyimpan fungsifungsi untuk mengalirkan aliran data dari aplikasi menuju data source yang berupa
file dalam bentuk byte-byte seperti yang digambarkan pada gambar dibawah.
Class ini biasanya digunakan untuk menuliskan data pada source file dari aplikasi.
Gambar 2.6.2Output Stream
2.6
Model Waterfall
Model waterfall adalah model klasik yang bersifat sistematis, berurutan
dalam membangun software.Menurut Maheshwari dan Jain (2012), Model
Waterfall adalah konvensional, linier, softwarewaterfall model siklus hidup
berurutan atau tradisional.Ini adalah pendekatan pembangunan berurutan, dimana
pembangunan dilihat sepertiterus mengalir ke bawah melalui tahapan analisis
kebutuhan,
desain,
implementasi,
pengujian
(validasi),
pemeliharaan.Berikut ini gambaran dari waterfall model.
http://digilib.mercubuana.ac.id/
integrasi,
dan
19
Fase-fase model waterfall menurut referensi Sommerville (2011) :
Gambar 2.7Waterfall Sommerville
1.
Requirements Analysis and Definition
Mengumpulkan kebutuhan secara lengkap kemudian dianalisis dan
didefinisikan kebutuhan yang harus dipenuhi oleh software yang akan
dibangun. Hal ini sangat penting, mengingat software harus dapat
berinteraksi dengan elemen-elemen yang lain seperti hardware, database,
dan sebagainya. Tahap ini sering disebut dengan Project Definition.
2.
System and Software Design
Proses pencarian kebutuhan diintensifkan dan difokuskan pada software.
Untukmengetahui sifat dari program yang akan dibuat, maka para software
engineerharus mengerti tentang domain informasi dari software, misalnya
fungsi yangdibutuhkan, user interface, dan sebagainya. Dari dua aktivitas
tersebut (pencarian kebutuhansistem dan software) harus didokumentasikan
dan ditunjukkan kepada user.Proses software design untuk mengubah
kebutuhan-kebutuhan di atas menjadi representasi ke dalam bentuk
“blueprint”software
sebelum
coding
dimulai.
http://digilib.mercubuana.ac.id/
Desain
harus dapat
20
mengimplementasikan
kebutuhan
yang
telah
disebutkan
padatahap
sebelumnya. Seperti dua aktivitas sebelumnya, maka proses ini juga
harusdidokumentasikan sebagai konfigurasi dari software.
3.
Implementation and Unit Testing
Desain
program
diterjemahkan
ke
dalam
kode-kode
dengan
menggunakanbahasa pemrograman yang sudah ditentukan.Program yang
dibangun langsungdiuji baik secara unit.
4.
Integration and System Testing
Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka
desaintadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti
oleh mesin,yaitu ke dalam bahasa pemrograman melalui proses coding.
Tahap inimerupakan implementasi dari tahap design yang secara teknis
nantinyadikerjakan
oleh
programmer.
Penyatuan unit-unit
program
kemudian diujisecara keseluruhan (system testing).
5.
Operation and Maintenance
Sesuatu yang dibuat haruslah diujicobakan.Demikian juga dengan
software.Semua fungsi-fungsi software harus diujicobakan, agar software
bebas darierror, dan hasilnya harus benar-benar sesuai dengan kebutuhan
yang
sudah
didefinisikan
sebelumnya.Pemeliharaan
suatu
software
diperlukan, termasuk di dalamnya adalahpengembangan, karena software
yang dibuat tidak selamanya hanya seperti itu.Ketika dijalankan mungkin
saja masih ada error kecil yang tidak ditemukansebelumnya, atau ada
penambahan
fitur-fitur
yang
belum
ada
pada
softwaretersebut.Pengembangan diperlukan ketika adanya perubahan dari
eksternalperusahaan seperti ketika ada pergantian sistem operasi, atau
perangkat lainnya.
Kelebihan
dari
model
ini
adalah
selain
karena
pengaplikasian
menggunakanmodel ini mudah, kelebihan dari model ini adalah ketika semua
kebutuhan sistem dapat didefinisikan secara utuh, eksplisit, dan benar di awal
proyek, maka Software Engineering (SE) dapat berjalan dengan baik dan tanpa
http://digilib.mercubuana.ac.id/
21
masalah. Meskipun seringkali kebutuhan sistem tidak dapat didefinisikan seeksplisit yang diinginkan, tetapi paling tidak, problem pada kebutuhan sistem di
awal proyek lebih ekonomis dalam hal uang (lebih murah), usaha, dan waktu yang
terbuang lebih sedikit jika dibandingkan problem yang muncul pada tahap-tahap
selanjutnya.
Kekurangan yang utama dari model ini adalah kesulitan dalam
mengakomodasi perubahan setelah proses dijalani. Fase sebelumnya harus
lengkap dan selesai sebelum mengerjakan fase berikutnya.
Masalah dengan waterfall :
1.
Perubahan sulit dilakukan karena sifatnya yang kaku.
2.
Karena sifat kakunya, model ini cocok ketika kebutuhan dikumpulkan
secara lengkap sehingga perubahan bisa ditekan sekecil mungkin. Tapi
padakenyataannya
jarang
sekali
konsumen/pengguna
yang
bisa
memberikankebutuhan secara lengkap, perubahan kebutuhan adalah sesuatu
yang wajarterjadi.
3.
Waterfall pada umumnya digunakan untuk rekayasa sistem yang besar
yaitudengan proyek yang dikerjakan di beberapa tempat berbeda, dan dibagi
menjadibeberapa bagian sub-proyek.
Menurut Maheshwari dan Jain (2012), IterativeWaterfall Model, Prinsip
dasar, Masalah dengan Waterfall Model menciptakan permintaan untuk metode
baru sistem pengembangan yang dapat memberikan hasil yang lebih cepat,
membutuhkan lebih sedikit muka informasi dan menawarkan fleksibilitas yang
lebih besar.Model iterative, proyek ini dibagi menjadi bagian-bagian kecil. Hal ini
memungkinkan tim pengembangan untuk menunjukkan hasil sebelumnya di
proses dan mendapatkan umpan balik yang berharga dari para pengguna
sistem.Setiap iterasi sebenarnya adalah sebuah proses Waterfall mini dengan
umpan balik dari satu fase menyediakan informasi penting untuk desain tahap
berikutnya.
http://digilib.mercubuana.ac.id/
22
Keuntungan:

Ini adalah model yang jauh lebih baik dari proses perangkat lunak.

Hal ini memungkinkan umpan balik untuk tahap tindakan.

Hal ini dapat digunakan untuk proyek dimana persyaratan tidak dipahami
dengan baik.
Kekurangan:

Hal ini tidak mudah untuk mengelola model ini.

Tidak ada tonggak yang jelas dalam proses pembangunan.

Tidak ada tahap benar-benar selesai.
http://digilib.mercubuana.ac.id/
Download