BAB 2 TINJAUAN PUSTAKA -...
Transcript of BAB 2 TINJAUAN PUSTAKA -...
7
BAB 2
TINJAUAN PUSTAKA
2.1 Software Development Life Cycle
Dijelaskan bahwa, “Software Development Life Cycle (SDLC) adalah
pendekatan bertahap untuk melakukan analisa dan membangun rancangan
sistem dengan menggunakan siklus yang spesifik terhadap kegiatan
pengguna.” (Kendall & Kendall, 2006).
2.1.1 Waterfall Model
Menurut Sommervile (2011, p.30) menerangkan bahwa, Model
Waterfall merupakan sebuah proses dalam pengembangan software dimana
diperlukan perencanaan dan penjadwalan dari semua proses aktivitas
sebelum memulai pengerjaan. Disebut waterfall (air terjun) karena fase demi
fase yang dilalui harus menunggu selesainya fase sebelumnya dan harus
berjalan secara urut. Model ini merupakan model yang paling tua dan paling
banyak dipakai di dalam Software Engineering (SE).
Model waterfall digunakan saat kebutuhan-kebutuhan yang
diinginkan pada suatu produk sudah jelas. Dengan mengetahui dengan pasti
teknologi dan sumber daya yang akan digunakan, maka proses perencanaan
dapat dengan mudah diatur. Terdapat lima fase dalam model waterfall,
gambar 2.1 menjelaskan urutan fase-fase model waterfall dari awal hingga
akhir.
8
Gambar 2.1 Ilustrasi Proses Waterfall
(Sumber : Sommerville, 2011: 30)
1. Requirement Analysis and Definition
Pada fase ini pelayanan sistem, kendala, dan tujuan
dibentuk berdasarkan konsultasi dengan system user. Kemudian
didefinisikan secara mendetail dan diolah menjadi spesifikasi
sistem.
2. System and Software Design
Pada fase ini proses perancangan sistem mengalokasikan
kebutuhan-kebutuhan yang diperlukan baik dari segi hardware
atau software dari sistem dengan menetapkan arsitektur sistem
secara keseluruhan. Perancangan software termasuk dengan
melakukan identifikasi dan mendeskripsikan hubungan dasar dan
abtraksi sistem software tersebut.
3. Implementation and Unit Testing
Pada tahapan ini, perancangan software diwujudkan
sebagai kumpulan dari program atau program unit. Dimana
testing unit termasuk tahapan menverifikasi tiap-tiap unit apakah
cocok dengan spesifikasi atau tidak.
4. Integration and System Testing
Program unit secara individual atau program yang
terintegrasi dan di uji sebagai sistem yang sudah komplit untuk
memastikan bahwa software requirements sudah terpenuhi.
Setelah testing, software system akan dikirimkan ke customer.
9
5. Operation and Maintenance
Pada fase terakhir ini, biasanya merupakan fase yang
terpanjang. Dimana sistem di install dan dicoba untuk digunakan.
Di dalam perawatan termasuk tahapan pengkoreksian error yang
pada fase sebelumnya tidak ditemukan, peningkatan dari
implementasi unit sistem dan menambah service system
sebagaimana requirement baru didapat.
2.2 Unified Modeling Language (UML)
Pada akhir tahun 80-an dan awal 90-an terdapat banyak metode
berbasis objek yang digunakan dalam industri. Keberadaan metode dan
teknik pemodelan terkait merupakan sebuah masalah bagi industri
pengembangan sistem berbasis objek. Banyaknya metode yang digunakan
membatasi kemampuan untuk berbagi model antar projek dan tim
pengembang. Berdasarkan masalah tersebut, Unified Modeling Language
(UML) pertama kali dikenalkan pada tahun 1997 (Whitten dan Bentley,
2007, p. 370-371).
2.2.1 Class Diagram
Whitten dan Bentley (2007, p. 400) mengemukakan bahwa, “Class
diagram adalah sebuah penggambaran grafis struktur objek statis sistem yang
menunjukkan kelas dari objek yang menyusun sistem beserta hubungan antar
objek kelas tersebut.”
+ Operasi()
<<Nama Kelas>>
- Atribut
Gambar 2.2 Class dan Strukturnya
Class dalam class diagram disusun oleh tiga bagian, yaitu sebagai
berikut :
10
1. Nama Kelas
Nama kelas digunakan sebagai pembeda antara kelas yang satu
dengan kelas lainnya.
2. Atribut Kelas
Atribut kelas merupakan data yang menunjukkan karakteristik
penting tentang sebuah objek dari kelas tersebut.
3. Operasi Kelas
Operasi kelas adalah logika perangkat lunak yang dijalankan
dalam menanggapi pesan.
2.2.1.1 Visibility
Whitten dan Bentley (2007, p. 650) menyebutkan bahwa, “Visibility
adalah level dari akses yang dimiliki sebuah objek eksternal terhadap suatu
atribut atau method.” UML menyediakan tiga level untuk visibility:
1. Public
Atribut public dapat diakses dan public method dapat dipanggil
oleh method pada kelas lain manapun selain kelas itu sendiri. Public
dinotasikan dengan simbol “+”.
2. Protected
Atribut protected dapat diakses dan protected method dapat
dipanggil oleh method pada kelas yang atribut atau method-nya telah
didefinisikan atau di dalam subkelas dari kelas itu. Protected dinotasikan
dengan simbol “#”.
3. Private
Atribut private dapat diakses dan private method hanya dapat
dipanggil oleh method pada kelas yang atribut atau method-nya telah
didefinisikan. Private dinotasikan dengan simbol “-”.
11
2.2.1.2 Association
Association digambarkan dengan sebuah garis koneksi yang
menunjukkan adanya hubungan antara satu kelas dengan kelas yang lain.
Jenis association ada dua, yaitu unidirectional dan bidirectional.
1. Unidirectional
Unidirectional menunjukkan hubungan antar kelas yang terjadi
hanya satu arah. Unidirectional digambarkan dengan garis yang
mempunyai anak panah.
Gambar 2.3 Contoh Unidirectional Association
(Sumber : Whitten dan Bentley, 2007:650)
2. Bidirectional
Bidirectional menunjukkan hubungan antar kelas terjadi secara
dua arah, yang berarti semua kelas berperan dan dapat saling mengirim
pesan ke kelas lain yang terhubung. Bidirectional digambarkan dengan
garis yang tidak memiliki anak panah.
Gambar 2.4 Contoh Bidirectional Association
(Sumber : Whitten dan Bentley, 2007:377)
12
2.2.1.3 Multiplicity
Whitten dan Bentley (2007, p.378) mengatakan bahwa,
“Multiplicity merupakan jumlah dari kejadian minimum dan maksimum dari
suatu objek kelas untuk satu kejadian dari objek yang berhubungan.” Berikut
merupakan tabel penjelasan untuk multiplicity.
Tabel 2.1 Tabel Simbol Multiplicity
Multiplicity Deskripsi
1 (atau tidak ditulis) Tepat satu
0..1 Nol atau satu
0..* Nol atau lebih dari satu
1..* Satu atau lebih dari satu
4..7 Jumlah spesifik
2.2.1.4 Aggregation
Whitten dan Bentley (2007, p.378) menjelaskan bahwa,
“Aggregation adalah suatu hubungan dimana kelas yang lebih besar
mengandung satu atau lebih kelas bagian yang lebih kecil, di mana yang
kecil merupakan bagian dari kelas yang lebih besar. Sebaliknya, kelas yang
lebih kecil adalah bagian dari kelas yang lebih besar.” Aggregation
digambarkan berupa belah ketupat berongga pada salah satu ujungnya.
Berikut merupakan contoh gambar aggregation:
Gambar 2.5 Contoh Aggregation
(Sumber: Whitten dan Bentley, 2007, p. 379)
13
2.2.1.5 Composition
Whitten dan Bentley (2007, p. 378) menerangkan bahwa,
“Composition adalah hubungan aggregation di mana suatu keseluruhan
bertanggung jawab terhadap kemunculan dan peniadaan bagiannya. Jika
suatu keseluruhan menghilang maka bagiannya juga menghilang
dengannya.” Composition digambarkan berupa belah ketupat hitam pada
salah satu ujungnya. Berikut merupakan contoh gambar composition.
Gambar 2.6 Contoh Composition
(Sumber: Whitten dan Bentley, 2007, p. 379)
2.2.1.6 Generalization
Whitten dan Bentley (2007, p. 373) mengemukakan bahwa,
“Generalization adalah sebuah teknik dimana atribut dan behavior yang
sama pada tipe objek kelas, dikelompokkan (atau diabstraksi) menjadi kelas
tersendiri, yang disebut supertype. Atribut dan behaviour dari objek kelas
supertype kemudian diwariskan kepada objek class lain (subtype).”
14
Gambar 2.7 Contoh Generalization
(Sumber: Whitten dan Bentley, 2007, p. 376)
2.2.2 Use Case Diagram
Whitten dan Bentley (2007, p. 246) menjelaskan bahwa, “Use case
diagram adalah sebuah diagram yang menggambarkan interaksi antara
sistem, sistem eksternal, dan pengguna. Dengan kata lain, use case diagram
secara grafis mendeskripsikan siapa yang akan menggunakan sistem dan
dengan cara apa pengguna akan berinteraksi dengan sistem.” Gambar 2.8
merupakan contoh sebuah use case diagram.
Gambar 2.8 Contoh Use Case Diagram
(Sumber : Whitten dan Bentley, 2007, p. 246)
15
Berikut merupakan notasi-notasi yang digunakan dalam use case
diagram.
1. Use Case
Menurut Whitten dan Bentley (2007, p. 246), use case
mendeskripsikan fungsi sistem dari perspektif pengguna eksternal dengan
cara dan terminologi yang dapat dimengerti. Use case melambangkan
sebuah tujuan dari sistem dan mendeskripsikan urutan dari aktivitas-
aktivitas dan interaksi pengguna dalam mencoba untuk mencapai
tujuannya. Use case terdiri dari satu atau lebih requirement pengguna.
Sebuah use case diinisialisasikan saat tahap pengumpulan kebutuhan di
life cycle.
Gambar 2.9 Use Case
(Sumber: Whitten dan Bentley, 2007, p. 246)
2. Actor
Whitten dan Bentley (2007, p. 247) menjelaskan bahwa, “Actor
adalah semua yang membutuhkan interaksi dengan sistem untuk dapat
bertukar informasi.” Actor tidak harus seorang manusia, namun juga
dapat berupa sebuah organisasi, sistem informasi lain, perangkat
eksternal, dan lain-lain.
Gambar 2.10 Actor
(Sumber: Whitten dan Bentley, 2007, p. 247)
16
Ada empat tipe actor menurut Whitten dan Bentley (2007, p. 247), yaitu:
a. Primary Business Actor
Primary Business Actor adalah actor yang mendapatkan
keuntungan dari use case dengan menerima suatu nilai terukur dan
terobservasi. Contohnya, dalam sistem pemberian gaji, seorang
karyawan tidak menginisiasi sebuah kejadian pada sistem namun
menerima suatu nilai.
b. Primary System Actor
Primary System Actor adalah actor yang secara langsung
berinteraksi dengan sistem untuk memicu suatu kejadian pada sistem.
Contohnya adalah seorang kasir memindai barang yang dibeli oleh
pelanggan atau teller bank yang memroses transaksi perbankan.
c. External Server Actor
External Server Actor merupakan actor yang menerima respon
permintaan dari use case. Sebuah biro kredit yang menotorisasi
pembayaran oleh kartu kredit adalah contohnya.
d. External Receiver Actor
External Receiver Actor bukan sebuah primary actor namun
mampu mendapatkan keuntungan dari use case dengan menerima
suatu nilai terukur dan terobservasi. Contohnya, sebuah gudang
menerima pesanan pengepakan.
3. Boundary
Boundary adalah penunjuk ruang lingkup sistem yang
digambarkan sebagai sebuah persegi panjang. Gambar 2.11 merupakan
gambar boundary dalam use case diagram.
17
Gambar 2.11 Boundary
4. Relationships
Whitten dan Bentley (2007, p. 248) menerangkan bahwa,
“Relationship digambarkan sebagai sebuah garis antara dua symbol
dalam use case diagram. Arti dari hubungan tersebut tergantung
bagaimana garis digambar dan tipe simbol apa yang dihubungkan.”
Berikut merupakan jenis-jenis hubungan yang terdapat pada use case
diagram.
a. Association
Dijelaskan bahwa, “Association merupakan sebuah hubungan
antara sebuah actor dan sebuah use case yang terjadi karena adanya
interkasi terhadap keduanya.” (Whitten dan Bentley, 2007, p. 248).
Association dengan tanda panah (1) menyentuh usecase menandakan
actor melakukan use case. Sedangkan association tanpa tanda panah
(2) menandakan actor sebagai penerima dari interaksi dengan use
case.
18
Gambar 2.12 Contoh Association
(Sumber : Whitten dan Bentley, 2007, p. 248)
b. Extends
Whitten dan Bentley (2007, p. 248) menerangkan bahwa,
“Extends adalah sebuah use case yang mengandung langkah yang
dipisahkan dari sebuah use case yang lebih kompleks dengan maksud
untuk menyederhanakan use case aslinya dan kemudian melakukan
extend pada fungsionalitasnya.” Berikut merupakan gambar dari
hubungan extends.
Gambar 2.13 Contoh Extends
(Sumber : Whitten dan Bentley, 2007, p. 249)
c. Uses atau Includes
Menurut Whitten dan Bentley (2007, p. 249), uses atau includes
digunakan saat sebuah use case berhubungan dengan sebuah abstract
use case yang dibentuk saat dua atau lebih use case yang
menjalankan tahap dari fungsi yang mirip dipisahkan.
19
Gambar 2.14 Contoh Uses atau Includes
(Sumber : Whitten dan Bentley, 2007, p. 249)
d. Depends On
Whitten dan Bentley (2007, p. 249) menjelaskan bahwa,
“Depends on adalah hubungan antara use case yang mengindikasikan
sebuah use case tidak dapat dijalankan hingga use case lainnya telah
dijalankan.”
Gambar 2.15 Contoh Depends On
(Sumber : Whitten dan Bentley, 2007, p. 250)
20
e. Inheritance
Whitten dan Bentley (2007, p. 250) mengemukakan bahwa,
“ Inheritance adalah sebuah hubungan antara actor yang diciptakan
untuk menyederhanakan penggambaran saat sebuah abstract actor
mewariskan peran dari beberapa actor yang sebenarnya.”
Gambar 2.16 Contoh Inheritance
(Sumber : Whitten dan Bentley, 2007, p. 250)
2.2.3 Activity Diagram
Whitten dan Bentley (2007, p. 390) menerangkan bahwa, “Activity
diagram adalah sebuah diagram yang dapat digunakan untuk
menggambarkan secara grafis alur dari sebuah bisnis proses, langkah-langkah
use case, atau logika dari sebuah perilaku objek (method).”
21
Gambar 2.17 Contoh Activity Diagram
Berikut ini merupakan beberapa notasi dalam activity diagram
(Whitten dan Bentley, 2007, p. 391) :
1. Initial Node
Lingkaran penuh yang melambangkan awal dari proses.
Gambar 2.18 Initial Node
2. Action
Persegi panjang bulat yang menggambarkan langkah-langkah
individu.
Gambar 2.19 Action
22
3. Flow
Panah dalam diagram yang mengindikasikan pergerakan arah
action.
Gambar 2.20 Flow
4. Decision
Belah ketupat dengan satu panah yang masuk dan dua atau
lebih panah yang keluar. Panah yang keluar menandakan kondisi
yang tersedia.
Gambar 2.21 Decision
5. Merge
Belah ketupat dengan dua atau lebih panah yang masuk dan
satu panah yang keluar. Panah yang keluar menunjukkan
penggabungan alur aktivitas yang terpisah sebelumnya.
Gambar 2.22 Merge
23
6. Fork
Garis hitam dengan sebuah panah masuk dan dua atau lebih
panah keluarm yang menandakan adanya action-action yang
berlangsung secara paralel.
Gambar 2.23 Fork
7. Join
Garis hitam dengan dua atau lebih panah masuk dan sebuah
panah keluar yang menandakan action – action yang datang dari
join harus diselesaikan sebelum proses dilanjutkan.
Gambar 2.24 Join
8. Activity Final
Lingkaran hitam yang berada di dalam sebuah lingkaran
yang merepresentasikan akhir dari proses.
Gambar 2.25 Activity Final
24
2.3 Pemrograman Java
Menurut Herbert Schildt (2007: p.9) Java didirikan oleh James
Gosling, Patrick Naughton, Chris Warth, Ed Frank dan Mike Sheridan di Sun
Microsystems,Inc. Pada tahun 1991. Memakan waktu 18 Bulan dalam tahap
pengembangan versi pertamanya. Muncul pertama kali dengan nama “Oak” lalu
diganti menjadi “Java” pada tahun 1995.
Tujuan terbentuknya Java dilandasi kebutuhan akan platform bahasa
pemrograman yang independen dan dapat digunakan untuk membuat software
yang terhubung dengan beragam peralatan elektronik konsumen. Masalah yang
terdapat pada bahasa pemrograman C dan C++ pada saat itu adalah mereka
diciptakan untuk dijalankan pada perangkat tertentu, walaupun memungkinkan.
2.3.1 Keunggulan Java
Menurut Herbert Schildt (2007: p.11) Bahasa pemrograman Java
memiliki beberapa keunggulan diantaranya :
a) Simple
Java dirancang untuk menjadi mudah bagi programer
profesional untuk dipelajari dan digunakan, pun bila programer sudah
pernah menggunakan bahasa pemrograman C, pada Java menurunkan
fungsi yang terdapat pada bahasa pemrograman C.
b) Object-Oriented
Java tidak dirancang untuk menjadi source code yang kompatibel
terhadap bahasa pemrograman yang lain meskipun dipengaruhi oleh
pendahulunya. Objek model pada Java simple dan mudah untuk diperluas,
sementara tipe primitif seperti integer tetap dijaga sebagai non-objek
berperforma tinggi.
c) Multithreaded
Java mendukung pemrograman multithreading yang memungkinkan
programer untuk menulis kode program secara simultan. Sistem Run-time
25
pada Java menggunakan sinkronisasi secara multiproses.
d) Architecture-Neutral
Kesulitan yang dihadapi programer antara lain adalah
kekhawatiran apabila menulis kode pada saat ini apakah dapat dijalankan
kembali di suatu saat nanti.
e) Performa yang tinggi
Java memungkinkan program untuk silang antar platform dengan
menjalankan java bytecode. Kode ini dapat dieksekusi pada system
apapun yang mengimplementasikan Java Virtual Machine, dimana Java
Bytecode ini dirancang untuk memudahkan mentranslasi secara langsung
terhadap native machine code untuk performa yang maksimal.
f) Distribusi
Java dirancang untuk lingkungan yang terdistribusi internet
karena menangani protokol TCP/IP. Java juga mendukung Remote
Method Interaction (RMI) yang memungkinkan sebuah program untuk
method berhubungan dengan jaringan.
g) Dynamic
Program Java membawa nilai-nilai substansial dari informasi
run-time yang digunakan untuk menverifikasi dan memyelesaikan akses
ke objek saat sedang berjalan. Hal ini memungkinkan untuk secara
dinamis menghubungkan kode dengan cara yang aman. Dimana penting
untuk ketahanan.
2.3.2 Object-Oriented pada Java
Object-Oriented merupakan inti dari Java dan memiliki 3 Prinsip antara lain :
26
1. Encapsulation
Menurut Herbert Schildt (2007: p.11) Enkapsulasi adalah
mekanisme yang mengikat antara kode dengan data yang dimanipulasi,
dan menjaga keduanya tetap aman dari gangguan dan penyalahgunaan.
Seperti sebuah pembungkus yang mencegah kode dan data untuk di
diakses secara sembarang oleh kode lainnya yang didefinisikan diluar
pembungkus itu
2. Inheritance
Menurut Herbert Schildt (2007: p.17) Inheritance adalah proses
dimana sebuah objek didapat dari properti objek lain. Contohnya seperti
Golden Retriever adalah klasifikasi dari Anjing, yang berarti turunan dari
kelas mamalia dan yang berasal dari kelas yang lebih besar yaitu binatang
Gambar 2.26 Class Hierarchy
(Sumber : Herbert Schildt, 2007, p.18)
3. Polymorphism
Polymorphism berasal dari bahasa Yunani yang berarti banyak
bentuk memiliki fitur yang memungkinkan satu interface dapat digunakan
untuk aksi kelas secara umum. Secara umum konsep polymorphism dapat
dikatakan sebagai “Satu Interface, Banyak Metode” yang berarti
27
memungkinkan untuk merancang interface secara generik bagi grup yang
melakukan aktivitas terkait. Ini membantu mengurangi kompleksitas
dengan memungkinkan interface yang sama untuk digunakan
menspesifikasi aksi dari kelas yang umum.
2.4 Socket
Menurut Michael J.Donahoo dan Kenneth L. Calvert (2001: p.7),
socket adalah sebuah abstraksi yang melalui sebuah aplikasi yang dapat
mengirim dan menerima data, seperti file terbuka yang mengizinkan
sebuah aplikasi untuk membaca dan menulis data kedalam penyimpanan.
Sedangkan menurut Limi Kalita (2014: p.2) yang tertulis dalam jurnalnya
mengenai socket programming, socket dapat didefinisikan sebagai titik
akhir dari hubungan antara dua komputer yang teridentifikasi oleh alamat
IP dan alamat port. Dapat disimpulkan bahwa socket berfungsi sebagai
sebuah penghubung antar aplikasi dengan melalui jaringan yang sama.
Informasi yang ditulis pada socket dapat dibaca oleh aplikasi yang
terdapat di perangkat lainnya.
Masih menurut Limi Kalita, socket memiliki empat operasi utama,
yaitu :
1. Menghubungkan sebuah perangkat ke sebuah remote machine,
2. Mengirim data,
3. Menerima data dan
4. Menutup koneksi.
2.4.1 Pemrograman Socket dan Java.Net.Class
Bahasa pemrograman Java menyediakan sekumpulan kelas yang
didefinisikan pada sebuah paket disebut java.net. Untuk memungkinkan
pengembangan aplikasi jaringan secara cepat java.net menyederhanakan
kompleksitas yang terdapat dalam pembuatan program client dan server. Ada
dua key classes pada java.net yang digunakan untuk membuat porgram client
dan server yaitu :
28
1. ServerSocket
2. Socket
Sebuah program server membuat tipe socket yang spesifik digunakan
untuk listen kepada permintaan client. Program akan membuat sebuah socket
baru untuk pertukaran data dalam request koneksi dengan client
menggunakan input dan output dari streams.
Gambar 2.27 Socket berdasarkan pemrograman
socket dan client
(Sumber : Rajkumar Buyya, 2009, p.350)
2.4.2 Pemrograman Server pada Java
Menurut Elliotte Rusty Harold (2013: p.284), alur siklus hidup dasar
program server pada Java tedapat beberapa tahapan, yaitu:
1. Sebuah ServerSocket baru dibuat, pada port tertentu menggunakan
constructor ServerSocket().
2. ServerSocket melakukan Listen terhadap koneksi yang datang pada port
itu dengan menggunakan metode accept(). Fungsi accept() akan terblok
hingga client berupaya untuk membuat koneksi, dimana fungsi accept()
mengembalikan objek Socket yang menghubungkan client dengan server.
3. Berdasarkan tipe dari server, baik apakah socket itu menerima fungsi
InputStream(), getOuputStream() atau keduanya dipanggil untuk
mendapatkan input dan stream output yang mengkomunikasikan client.
29
4. Server dan client berinteraksi berdasarkan dari protokol yang disepakati
sampai waktunya untuk menutup koneksi.
5. Server dan client atau keduanya menutup koneksi.
6. Server kembali pada langkah ke dua dan menunggu untuk koneksi
selanjutnya.
Sawant dan Meshram (2013: p.4) dalam jurnalnya juga menyebutkan
penjelasan yang sama dengan Eliotte Rusty Harold mengenai alur siklus
hidup sebuah socket pada aplikasi server, yaitu :
1. Membuat ServerSocket pada port menggunakan konstruktor
ServerSocket tertentu ().
2. Mendengarkan untuk koneksi yang akan dibuat untuk ServerSocket ini
dengan menggunakan metode accept(). Metode ini menunggu sampai
client terhubung ke server dan kemudian mengembalikan objek Socket.
3. Kemudian, aliran input dan output stream yang digunakan oleh client dan
server untuk mengirim data ke satu sama lain. Server mendengar client
menggunakan input stream. Server berbicara dengan client menggunakan
output stream.
4. Baik client maupun server melakukan handshaking sebelum mengirim
data.
5. Ketika komunikasi di atas atau transfer data selesai, satu atau kedua sisi
menutup koneksi.
6. Server kemudian kembali kembali ke langkah kedua dan menunggu
sambungan berikutnya.
30
2.4.3 Pemrograman Client pada Java
Menurut Rajkumar Buyya (2009: p.351), langkah-langkah membuat
program client dasar pada java, antara lain:
1. Membuat sebuah objek Socket
2. Membuat I/O Streams untuk berkomunikasi dengan server
3. Melakukan I/O atau komunikasi dengan server
4. Menutup socket setelah selesai
Sawant dan Meshram (2013: p.4) dalam jurnalnya juga menyebutkan
penjelasan yang sama dengan Rajkumar Buyya mengenai alur siklus hidup
sebuah socket pada aplikasi client, yaitu :
1. Menciptakan socket streaming menggunakan konstruktor Socket (String
host, int port).
2. Sockets mencoba untuk terhubung ke host remote.
3. Kemudian, aliran Input dan output stream yang digunakan oleh client dan
server untuk mengirim data ke satu sama lain. Baik client dan server
akan melakukan handshaking sebelum mengirim data.
4. Ketika komunikasi di atas atau transfer data selesai, satu atau kedua sisi
menutup koneksi.
2.5 Protocol TCP/IP
Menurut Behrouz A. Forouzan (2007, p. 43) TCP/IP adalah protokol
hierarki yaitu dimana setiap level yang lebih tinggi didukung oleh satu atau
lebih protokol dengan level yang lebih rendah, juga terbuat dari modul-
modul interaktif, setiap modul menyediakan fungsi yang spesifik, tetapi
modul ini tidak sepenuhnya independent.
TCP/IP juga mendefinisikan 3 protokol yaitu: Transmission Control
Protocol(TCP), User Datagram Protocol (UDP) dan Stream Control
Transmission Protocol (SCTP).
31
2.5.1 TCP
Menurut Behrouz A. Forouzan (2007, p. 45) Transmission Control
Protocol (TCP) adalah sebuah protokol stream yang dapat diandalakan dan
menyediakan layanan layer full transport untuk aplikasi. TCP membagi
sebuah arus data menjadi bagian-bagian unit kecil yang disebut segments.
Setiap segments mengandung rangkaian angka untuk melakukan pengurutan
setelah menerima receipt bersama dengan acknowledgement dari setiap
segments yang diterima.
Gambar 2.28 Segment pada TCP.
(Sumber : Behrouz A. Forouzan, 2010, p.436)
TCP memiliki beberapa ciri, antara lain:
a) Full-Duplex Communication
Dimana data mampu mengalir dalam kedua direksi secara
bersamaan.Setiap TCP lalu akan mengirim dan menerima buffer, dan
segments bergerak dikedua arah.
b) Connection-Oriented Service
Ketika sebuah proses dalam situs A ingin untuk mengirim dan
menerima data dari proses yang lainnya dari situs B, beberapa hal ini
terjadi yaitu:
1. TCP Membangun koneksi diantara mereka.
2. Pertukaran data terjadi pada kedua arah.
32
3. Koneksi di terminasi atau dihapus.
c) Reliable Service.
Menggunakan sebuah mekanisme acknowledgement untuk
memeriksa keamanan dan keutuhan data yang datang.
2.5.2 UDP
Menurut Behrouz A. Forouzan (2007, p.709) User Datagram Protocol
(UDP) memiliki ciri connectionless, protocol unreliable. Merupakan
penyederhanaan dari dua protocol standard TCP/IP. Dimana process-to-
process protocol hanya menambahkan bagian port addresses, perhitungan
kontrol error, dan panjang informasi untuk data dari layer diatasnya.
Berikut merupakan beberapa kegunaan dari protocol UDP yaitu:
a) UDP cocok untuk proses yang membutuhkan request dan response
komunikasi yang simple dengan sedikit fokus pada flow dan error
control.
b) UDP cocok untuk proses dengan internal flow dan mekanisme error
control, sebagai contoh yaitu Trivial File Transfer Protocol (TFTP)
membutuhkan flow dan error control.
c) Digunakan untuk proses manajemen seperti SNMP.
d) Digunakan untuk beberapa pembaharuan protokol seperti Routing
Information Protocol (RIP).
2.5.3 SCTP
Menurut Behrouz A. Fouzan (2007, p. 736) SCTP adalah protokol yang
didesain untuk kebanyakan aplikasi berbasis internet, dan mengkombinasikan
fitur-fitur terbaik dari UDP dan TCP. Menjaga keanekaragaman pesan dan
pada saat yang sama mendeteksi data yang hilang, duplikasi, dan data yang
tidak terpakai. Memiliki ciri full-duplex communication, reliable dan
connection-oriented.
33
2.6 Lima Faktor Manusia Terukur
Menurut Schneiderman & Plaisant (2010, p. 32) faktor manusia terukur ada
lima, yaitu:
1. Waktu belajar
Waktu belajar ialah waktu bagi seseorang mempelajari fungsi-fungsi tertentu.
2. Kecepatan kinerja
Kecepatan kerja menunjukkan berapa lama pengguna melakukan suatu tugas.
3. Tingkat kesalahan
Tingkat kesalahan menunjukkan seberapa banyak kesalahan dan kesalahan apa
saja yang dibuat pengguna.
4. Daya ingat
Daya ingat merupakan kemampuan pengguna untuk mengingat pengetahuannya
setelah jangka waktu tertentu.
5. Kepuasan subjektif
Kepuasan pengguna terhadap berbagai aspek sistem.
2.7 Fact-Finding
2.7.1 Definisi Fact Finding
Menurut Jeffrey L. Whitten dan Lonnie D. Bentley (2007, p.166) Fact
Finding adalah suatu langkah atau proses mengumpulkan informasi atau data
yang berhubungan dengan permasalahan suatu sistem, peluang, requirements
dari solusi, bisa disebut juga dengan fase pengumpulan informasi.
2.7.2 Jenis Fact-Finding
Menurut Jeffrey L. Whitten dan Lonnie D. Bentley (2007, p.166)
terdapat tiga jenis, yaitu :
1. Observasi
Melakukan pengamatan terhadap system dan lingkungan kerja
yang sedang berjalan.
2. Kuesioner
Melakukan kuesioner atau survey terhadap manajemen dan
komunitas user.