bab 2 tinjauan pustaka -...

28
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.

Upload: lenga

Post on 24-Mar-2019

217 views

Category:

Documents


0 download

TRANSCRIPT

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.

34

3. Interview/Wawancara

Mewawancarai terhadap manajer, user dan staff teknikal yang

bersangkutan dengan system yang sedang berjalan.