BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00994-IF...

54
8 BAB 2 LANDASAN TEORI 2.1 Teori Umum Teori umum adalah teori-teori pokok yang digunakan sebagai landasan bagi teori- teori lainnya. 2.1.1 Software Engineering Menurut Sommerville (2011: 6) “Software engineering merupakan sebuah ajaran rekayasa yang memperhatikan dengan semua aspek pada produksi software.” Ada empat fundamental dalam software engineering yaitu software specification, software development, software validation, dan software evolution.Dalam software engineering terdapat banyak teknik dan metodologi namun tidak ada satupun yang terbaik karena semua tergantung dari kondisi yang sedang dihadapi. Dalam software engineering terdapat beberapa prinsip antara lain sebagai berikut: a. Maintainability : software ditulis sedemikian rupa sehingga dapat berkembang berdasarkan harapan dari pengguna. b. Dependability and security : Keandalan software harus tidak dapat menyebabkan kerusakan fisik atau ekonomi dalam kejadian gagal sistem. c. Efficiency : software tidak boleh membuang-buang sumber daya sistem seperti memory dan processor cycle.

Transcript of BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00994-IF...

8

BAB 2

LANDASAN TEORI

2.1 Teori Umum

Teori umum adalah teori-teori pokok yang digunakan sebagai landasan bagi teori-

teori lainnya.

2.1.1 Software Engineering

Menurut Sommerville (2011: 6) “Software engineering merupakan sebuah ajaran

rekayasa yang memperhatikan dengan semua aspek pada produksi software.” Ada empat

fundamental dalam software engineering yaitu software specification, software

development, software validation, dan software evolution.Dalam software engineering

terdapat banyak teknik dan metodologi namun tidak ada satupun yang terbaik karena

semua tergantung dari kondisi yang sedang dihadapi.

Dalam software engineering terdapat beberapa prinsip antara lain sebagai berikut:

a. Maintainability : software ditulis sedemikian rupa sehingga dapat berkembang

berdasarkan harapan dari pengguna.

b. Dependability and security : Keandalan software harus tidak dapat menyebabkan

kerusakan fisik atau ekonomi dalam kejadian gagal sistem.

c. Efficiency : software tidak boleh membuang-buang sumber daya sistem seperti

memory dan processor cycle.

9

d. Acceptability : software harus dapat diterima harus dapat diterima oleh pengguna

yang ditargetkan.

Software engineering tidak hanya memperhatikan pada sisi proses teknikal dari

pengembangan software namun juga harus menyertakan aktifitas dari perangkat lunak

manajemen software, pengembangan perangkat, metodologi, serta teori yang digunakan

untuk mengembangkan web.

Sistematika yang digunakan pada software engineering disebut juga sebagai proses

software (software process). Sebuah proses software merupakan urutan dari aktifitas

yang mengacu pada produksi dari produk software. Terdapat empat fundamental dalam

hal ini:

a. Software specification, dimana pengguna dan perekayasa mententukan software

yang akan diproduksi dan batasan pada tiap operasi.

b. Software development, dimana software didesain dan diprogram.

c. Software validation, dimana software diperiksa untuk memastikan bahwa apa

yang pengguna/pembeli butuhkan.

d. Software evolution, software dimodifikasi berdasarkan perubahan pada

kebutuhan pengguna dan pasar.

10

2.1.2 Software Re-Engineering

Reengineering merupakan analisa, pemeriksaan dan pengubahan dari sistem

software yang sudah ada ke penyusunan kembali ke bentuk yang baru, dan implementasi

terhadap bentuk baru. Prosesnya biasanya terdiri dari kombinasi dari beberapa proses

seperti revere engineering, mendokumentasi kembali, perbaikan struktur, dan forward

engineering. Tujuannya untuk dapat memahami sistem yang ada dan kemudian

mengimplementasi kembali untuk meningkatkan fungsionalitas, performa, ataupun

implementasi sistem. Juga menjaga fungsionalitas yang telah ada dan dapat bersiap

untuk fungsionalitas yang akan ditambah pada selanjutnya. Tujuan reengineering adalah

persiapan terhadap peningkatan fungsional, meningkatkan kemudahan dalam perawatan,

diperlukan migrasi ke hardware, OS (Operating System), ataupun bahasa yang terbaru

dan untuk mendapatkan keandalan yang lebih baik (Abbas, Jeberson, dan Klinsega,

2012: 292).

Keunggulan dalam melakukan Software Re-Engineering adalah dengan

dilakukannya reengineering dapat mengurangi cost jika dilakukan pengembangan ulang

terhadap sistem baru. Juga dengan menggunakan cara ini waktu dan dana yang

dibutuhkan akan lebih sedikit karena cukup mencari alternatif yang dibutuhkan pada hal

yang akan diubah atau ditambahkan (Abbas, Jeberson, dan Klinsega, 2012: 293-295).

Kelemahan dalam melakukan Software Re-Engineering adalah ada kesulitan dimana

sistem yang sudah ada perlu dipahami. Sementara requirement, design, dan dokumentasi

kode mungkin tidak lagi tersedia (Abbas, Jeberson, dan Klinsega, 2012: 292).

11

2.1.3 Database

Menurut Schwartz, Zaitsev, dan Tkachenko (2012:1) inti dari database hanyalah

koleksi dari informasi yang ada untuk waktu yang lama biasanya sampai bertahun -

tahun.Database adalah hal yang penting untuk setiap bisnis, dengan database data bisa

disajikan sesuai dengan permintaan. Database juga digunakan untuk menyimpan data -

data penting. Dengan data - data tersebut pemilik database dapat memeriksa data secara

ilmiah, mempertimbangkan kesesuaian data serta mengambil kesimpulan.

Software untuk database yang disebut DataBase Management System(DBMS)

merupakan perangkat yang sangat baik untuk membuat dan mengatur data dalam jumlah

besar secara efisien juga dapat membuat data terus ada dalam waktu yang lama dengan

aman (Schwartz, Zaitsev, dan Tkachenko, 2012:1).

Dengan DBMS pengguna dapat melakukan:

a. Membuat database baru dan menentukan struktur data dengan menggunakan

bahasa khusus data (Schwartz, Zaitsev, dan Tkachenko, 2012:1).

b. Melakukan query terhadap data dan memodifikasi data dengan menggunakan

bahasa yang tepat yang biasa disebut query language atau data-manipulation

language (Schwartz, Zaitsev, dan Tkachenko, 2012:2).

c. Mendukung penggunaan penyimpanan yang sangat besar (terabytes dan lebih

dari itu) (Schwartz, Zaitsev, dan Tkachenko, 2012:2).

12

d. Melakukan recovery terhadap database bila terjadi kegagalan, berbagai

macam kerusakan, atau penggunaan yang salah (Schwartz, Zaitsev, dan

Tkachenko, 2012:2).

e. Mengontrol akses data dari banyak pengguna sekaligus, tanpa terjadinya

interaksi antar pengguna (isolation) dan tanpa tindakan pada data yang akan

dilakukan secara parsial tetapi tidak sepenuhnya (atomicy) (Schwartz, Zaitsev,

dan Tkachenko, 2012:2).

2.1.4 Interaksi Manusia dan Komputer

Interaksi manusia dan komputer merupakan area peneliatian dan ajaran yang

dilakukan sejak awal 1980-an, melingkupi sains kongnitif dan faktor manusia. Interaksi

manusia dan komputer dibutuhkan karena semakin berkembangnya jama maka

kebutuhan akan komputer semakin meningkat, semakin bertingkatnya penggunaan

komputer maka makin beragam pengguna dari pengguna komputer maka itu agar

memudahkan pengguna dalam menggunakan dan memaksimalkan potensial dari

komputer dibutuhkan (Carrol, 2012).

Menurut Shneiderman (2012) dalam perancangan interaksi manusia dan komputer

terdapat pedoman umum yaitu 8 golden rules, sebagai berikut :

1. Strive for consistency

2. Cater to universal usability

3. Offer informative feedback

4. Design dialogs to yield closure

13

5. Prevent errors

6. Permit easy reversal of actions

7. Support internal locus of control

8. Reduce short term memory load

Menurut Shneiderman (2010 : 14), ada lima faktor manusia terukur yang dapat

dijadikan pusat evaluasi kebutuhan pengguna dalam perancangan suatu antarmuka,

yaitu:

1. Waktu belajar

Merupakan suatu tolak ukur seberapa lama seorang pengguna mampu

mempelajari tindakan apa saja yang diperlukan untuk suatu tugas yang

disediakan.

2. Kecepatan kinerja

Merupakan suatu tolak ukur seberapa lama suatu tugas dapat dilaksanakan

oleh pengguna.

3. Tingkat kesalahan pengguna

Merupakan suatu tolak ukur seberapa banyak dan apa saja kesalahan yang

dilakukan pengguna dalam mengerjakan suatu tugas.

14

4. Daya ingat

Merupakan suatu tolak ukur seberapa baik seorang pengguna dapat

mengingat pengetahuan yang didapatkan dalam waktu tertentu.

5. Kepuasan subjektif

Merupakan suatu tolak ukur seberapa tingginya tingkat kesukaan pengguna

terhadap bermacam-macam aspek pada tampilan antarmuka yang ada pada

aplikasi.

2.1.5 E-Commerce

Sistem E-Commerce adalah sistem manajemen sumber daya berbasis internet yang

menerima pesanan untuk benda ataupun jasa dan setelah itu mengatur bagaimana

barang/jasa bisa diterima oleh pengguna(Sommerville,2011:169).

Pada sebuah sistem E-Commerce dilakukan interaksi dengan remote system untuk

membeli barang maupun jasa.E-commerce juga merupakan Interactive transaction-

based applications.Interactive transaction-based applications adalah aplikasi yang

dijalankan pada sebuah remote computer yang dapat diakses oleh pengguna lewat

komputer pribadinya atau terminal(Sommerville,2011:11).

Dalam e-commerce memiliki beberapa kategori antara lain sebagai berikut:

a. B2B (Business to Business), merupakan kategori dimana badan usaha

menjual jasa atau produknya kepada perusahaan lain. Cara ini memiliki

peranan utama dalam manajemen logistik. Sebagai contoh perusahaan

15

pensuplai bahan mentah kayu kepada perusahaan pembuat barang furnitur

(Zheng Qin, 2009:25).

b. B2C (Business to Consumer), merupakan kategori dimana badan usaha

melakukan usaha dengan menjual jasa atau produk lewat internet. Dalam

kategori ini terdapat dua peran yang dapat terlihat yaitu penjual(badan usaha)

dan pembeli (orang membutuhkan). Barang yang diperdagangkan beragam

mulai dari buku hingga mobil. Contoh perusahaan B2C adalah Amazon.com

(Zheng Qin, 2009:27).

c. B2G (Business to Government), merupakan kategori dimana sebuah

pemerintahan berperan penting dalam mengatur ekonomi. Maka itu

pemerintah perlu memimpin dalam mengadopsi e-commerce dan

menawarkan jalur efisien lewat undangan tender secara elektronik untuk

pembelanjaan pemerintahan (Zheng Qin, 2009:30-32).

d. G2G (Government to Government), merupakan kategori dimana semakin

besarnya pasar elektonik yang ada dalam negara memerlukan adanya

keterhubungan dan keterbukaan dengan negara lain. Maka itu peranan

pemerintah-pemerintah yang ada diperlukan adanya kontrol terhadap pasar

yang berjalan agar menciptakan pasar e-commerce yang terkendali (Zheng

Qin, 2009:32-34).

e. C2C (Consumer to Consumer), merupakan kategori dimana mirip dengan

skema perdagangan antar pembeli, seperti pasar barang bekas. Penyedia

tempat perdagangan elektronik berperan besar dalam kategori ini. Hal

16

tersebut karena dengan luasnya jaringan internet maka semakin kurangnya

kepercayaan antara penjual dan pembeli, dengan adanya penyedia jasa pasar

tersebut akan memastikan kejujuran dan keaslian dari penjual tersebut

(Zheng Qin, 2009:36).

Keuntungan:

Selama sistem aktif, penjualan akan berjalan terus menerus tanpa membutuhkan

karyawan untuk mengurus transaksi yang terjadi, sehingga tidak membutuhkan biaya

karyawan(Sommerville,2011:361).

Kekurangan:

a. Ketika sistem sedang down, ataupun tidak dapat memberikan layanan yang

sesuai dengan yang diiklankan ataupun terjadi data corruption, maka perusahaan

akan mengalami kerugian (untuk memperbaiki sistem, ataupun bila terjadi

kerugian pada konsumen yang dimana konsumen akan menuntut ganti rugi). Bila

site down, biasanya pengguna akan mencari pengganti e-commerce lain yang

berjalan dan biasanya pengguna tidak akan datang lagi bila service yang biasanya

diberikan biasa - biasa saja ataupun tidak sesuai yang

diiklankan(Sommerville,2011:325).

b. Biaya untuk sistem akan semakin besar tergantung systemnya

(Sommerville,2011:325).

17

2.1.6 Agile Development

Agile merupakan sebuah metodologi pengembangan yang dibuat oleh sekumpulan

pengembang pada tahun 2001 lalu yang berkumpul dengan tujuan untuk mencari metode

baru karena metode lama terlalu sering gagal dalam pengembangan suatu proyek

(Waters, 2007).

Berikut adalah deklarasi dari Agile Software Development:

"Kami menemukan cara yang lebih baik untuk mengembangkan

perangkat lunak dengan melakukan dan membantu sesama untuk

menggunakannya.Melalui usaha ini kami telah dapat menghargai:

a. Individu dan interaksi lebih dari proses dan sarana perangkat lunak

b. Perangkat lunak yang bekerja lebih dari dokumentasi yang menyeluruh

c. Kolaborasi dengan klien lebih dari negosiasi kontrak

d. Tanggap terhadap perubahan lebih dari mengikuti rencana

Demikian, walaupun kami menghargai hal di sisi kanan, kami lebih menghargai hal di

sisi kiri.“.

Cara pengembangan secara agile menerima perubahan yang dibutuhkan daripada

mengejar keselesaian.Dengan metode pengembangan agile perangkat lunak dapat

ditunjukan ke konsumen sedikit demi sedikit, sehingga dapat belajar lebih banyak

tentang kebutuhan yang ada dalam proyek ataupun dapat mengetahui jikalau ada

perubahan yang dibutuhkan. Gaya yang diterapkan pada cara pengembangan dengan

18

agile adalah membuat perangkat lunak yang bekerja dalam waktu sedikit. Bekerja

dengan gaya agile tidak mengatur aktivitas terlebih dahulu dari awal hingga akhir, tapi

mengatur kebutuhan apa yang diperlukan dan mendemonstrasikan setiap versi kepada

customer.

Kelebihan dari Agile Development:

a. Tim yang menggunakan Agile lebih cepat dalam mengembangkan software

b. Kualitas software yang dihasilkan lebih tinggi.

c. Pekerja dapat lebih banyak memberikan ide dan lebih nyaman dalam bekerja.

Kekurangan dari Agile Development:

a. Dibutuhkan pengguna yang aktif ikut serta dan kolaborasi yang kuat selama

pengembangan proyek. Karena tim yang agile harus memastikan bahwa

produk yang dibuat sesuai dengan keinginan.

b. Requirement dapat bertambah dan berubah pada saat pengembangan agile.

Hal ini dilakukan karena tim pengembangan yang agile harus fleksibel

dengan kebutuhan bisnis (pelanggan). Hal yang terburuk adalah bisa terjadi

ever-lasting projects.

c. Testing dilakukan disaat pengembangan proyek. Memang dengan melakukan

ini kualitas software dapat lebih terjamin, namun dibutuhkan biaya yang

lebih untuk membayar tester pada saat pengembangan.

19

d. Seringnya pengiriman produk kepada pengguna. Sama seperti sebelumnya

setiap pengiriman produk kepada pengguna dilakukan User Acceptance

Testing untuk menjamin kualitas produk, namun dapat meningkatkan waktu

yang dibutuhkan.

e. Iterasi yang berlangsung secara terus menerus dapat membuat pelanggan

capek untuk terus mengikuti alur pengembangan.

2.1.7 Scrum Methodology

Scrum terdiri dari 3 peran utama :

1 Product Owner – Individu yang mewakili perusahaan.

2 Scrum Master – Project Manager yang mengontrol dan mengukur proses

pengerjaan proyek.

3 Team – Orang yang akan mengerjakan modul-modul dalam proyek tersebut.

Pengerjaan proyek ini mengacu pada teori Cohn (2009)

Gambar 2.1 Scrum Model

20

Berdasarkan Scrummethodology (2009) tahap software development life cycle dari

scrum terbagi menjadi tiga tahap yaitu pre-game, game, dan post-game.

2.1.5.1 Pre-Game

Secara umum, tahap ini juga disebut tahap pre-game, merupakan tahap dimana

dilakukan perencanaan dan desain tingkat tinggi dari perangkat lunak yang akan dibuat.

2.1.5.1.1 Perencanaan

Perencanaan merupakan tahap pertama dalam membuat backlog, daftar-daftar

yang perlu diimplementasikan sewaktu proses pengembangan. Product owner

merupakan orang yang bertanggung jawab dalam pembuatan daftar ini

Scrummethodology (2009).

2.1.5.1.2 Desain Arsitektur / Desain Tingkat Tinggi

Desain tingkat tinggi adalah tahap setelah dilakukan perencanaan. Pada tahap ini

akan dilakukan review backlog, kemudian menentukan struktrur terbaik yang dapat

diimplementasikan dan hal yang perlu diprioritaskan terlebih dahulu untuk

dikerjakan (Cohn, 2009).

2.1.5.2 Tahap Game

Menurut Scrummethodology (2009) tahap ini merupakan tahap yang biasa disebut

dengan sprint atau fase pengembangan dan merupakan putaran iteratif. Biasanya tahap

ini berlangsung dari satu hingga empat minggu. Pada tahap ini dimulai pengerjaan

21

project dimana mengerjakan bagian yang dianggap lebih penting dalam waktu 2-4

minggu. Tahap ini terdiri dari empat langkah :

a. Pengembangan (analisis, desain, dan pengembangan), team melakukan analisis

dari situasi terkini dari produk, dan menentukan perubahan apa saja yang dapat

dilakukan untuk implementasi.

b. Penutupan hasil

c. Pertemuan review untuk mempresentasikan pekerjaan saat ini dan hasilnya,

menyelesaikan masalah, penambahan daftar backlog, risk review.

d. Penyesuaian informasi yang dikumpulkan saat review dikonsolidasikan kepada

paket yang terpengaruh. Pada tahap ini juga dibuat model diagram UML 2.0

(Ambler, 2005) sebagai berikut:

○ Behavior diagrams :

● Use Case Diagram

● Activity Diagram

○ Structure Diagram :

● Class Diagram

○ Interaction Diagram:

● Sequence Diagram

o Entity Relationship Diagram

22

2.1.5.3 Tahap Postgame

Menurut Scrummethodology (2009) tahap ini merupakan tahap penutupan. Tahap ini

mengakhiri proses pengembangan dan produk sudah siap untuk dirilis. Tahap ini

menyertakan integrasi, pengujian, dokumentasi pengguna, pelatihan dan persiapan

material pemasaran.Testing yang dilakukan ada dua Alpha testing, dan open beta testing.

a. Alpha testing : Pada alpha testing yang melakukan pengujian adalah pihak

internal yang merupakan tim pengembang aplikasi. Tujuan dilakukannya

testing adalah untuk mengukur tingkat penerimaan oleh pihak internal dan

juga pengujian sebelum sistem diuji coba oleh pengguna.

b. Open Beta testing : Pada open beta testing merupakan pengujian yang

dilakukan oleh para pengguna sistem dan terbuka oleh umum dimana

pengguna tidak dibatasi oleh jumlah. Sehingga dalam hal ini sistem sudah

terbuka dan dapat dinikmati oleh pengguna. Tujuannya adalah untuk

mendapatkan bug yang dilaporkan oleh pengguna dimana terlewatkan saat

dilakukan alpha testing.

Keunggulaan dalam menggunakan metodologi Scrum :

Sprintprocess memungkinkan pengembangan proyek dengan baik yang

menghasilkan produk yang dapat dijual bahkan saat proyeknya belum sempurna.Sistem

pengiriman yang bertahap memperpendek waktu terjun kepasaran dan mungkin

menghasilkan laba yang lebih tinggi, setiap sprintbacklog yang telah selesai dapat

menjadi versi baru dari produknya. Sebagai tambahan, mengaji setiap sprint sebelum

melanjutkan ke sprint selanjutnya berarti tes dilakukan selama proses dilakukan, yang

23

memungkinkan tim mengganti ruang lingkup atau arah dari proyek dari poin mana saja.

Meskipun deadline dan anggaran tetap, namun tidak dengan kebutuhan untuk proyek itu

(Uhlig & Media, 2007).

Kekurangan dalam menggunakan metodologi Scrum :

Scrum master mungkin saja sulit untuk merencanakan, menstrukturkan dan

mengorganisasikan proyek yang tidak mempunyai definisi yang jelas. Sebagai tambahan,

perubahan yang sering, pengiriman produk yang sering dan ketidak pastian yang

tergantung pada kebutuhan dari produk akhir membuat alur hidup proyek yang ketat ke

semua tim. Lebih jauh lagi, Scrum meeting rutin dan kajian ulang yang sering

membutuhkan sumber daya yang cukup besar. Proyek yang berhasil bergantung pada

kematangan dan dedikasi dari anggota tim, dan kemampuan mereka untuk

mempertahankan konsistensi tingkat tinggi dari komunikasi lewat tiap sprint backlog

dan review backlog (Uhlig & Media, 2007).

2.1.8 MVC

Pola pemrograman Model View Controller (MVC) merupakan pola pemrograman

yang memisahkan aplikasi kedalam 3 bagian yang membuat program logic dan

presentation logic tidak tercampur aduk menjadi satu. MVC dikembangkan pada tahun

1970-an oleh Prof. Trygve Reenskaug dari Smalltalk. Alasan sebuah pola MVC ini

dikembangkan karena pola arsitektur yang pada saat itu digunakan adalah Rapid

Application Prototyping yang tidak memisahkan aplikasi dengan presentasi, sehingga

design untuk GUI disamakan dengan desain aplikasi (Deacon, 2009 : 1).

24

Model merupakan hal yang bersifat singular di dalam aplikasi. Dalam istilah object

oriented model terdiri dari class - class. Model merupakan hal yang berguna untuk

menjadi objek untuk memecahkan masalah. Model tidak boleh memiliki programming

logic yang bersangkutan dengan hal diluar model itu sendiri (Deacon, 2009 : 2).

View adalah hal yang bersifat plural dalam aplikasi. View bisa berupa GUI, CLI,

maupun API. View tidak boleh memanggil model, hal - hal yang diterima dari view

bergantung pada controller (Deacon, 2009 : 2).

Controller merupakan objek yang berguna untuk memanipulasi view, singkatnya

controller untuk menerima dan memproses input dan view untuk menampilkan hasil dari

controller. Didalam controller terdapat programming logic yang menggunakan model -

model untuk menyelesaikan masalah dan setelah semuanya selesai diproses maka akan

dikirim ke view untuk dipresentasikan (Deacon, 2009 : 2).

Keuntungan:

Data dapat dirubah tanpa merubah data lain. Dapat menampilkan banyak macam

tampilan dari data yang sama tergantung bagaimana view itu dibuat.

Kekurangan:

Diperlukan kode tambahan dan kompleksitas tambahan pada model dan interaksi

yang simple.

25

Gambar 2.2 Struktur MVC

2.1.9 UML 2.0

2.1.9.1 Use Case

Menurut Ambler (2005 : 33-46) Use Case Diagram merupakan diagram yang

menunjukan hubungan antara aktor dan kasus yang dapat digunakan dalam sebuah

sistem. Aktor pada use case merupakan peran pengguna maupun sistem dalam diagram

tersebut.

26

Diagram ini sering digunakan untuk :

a. Memberikan gambaran keseluruhan atau bagian dari syarat atau keperluan yang

didukung oleh sistem atau organisasi dalam bentuk model yang penting ataupun

model bisnis.

b. Mengkomunikasikan lingkup dari proyek yang dikerjakan.

c. Memodelkan analisis dari kebutuhan penggunaan dalam bentuk model kasus

yang dibutuhkan.

Model use case harus dibuat berdasarkan pandangan dari project stakeholder dan bukan

dari pandangan pengembang (yang biasanya ke arah teknikal).

Terdapat beberapa panduan dalam membuat use case:

a. Gunakan kata kerja kuat untuk penamaan use case

b. Gunakan terminologi umum untuk nama use case

c. Penentuan waktu dilakukan dengan menumpukan use case

Terdapat beberapa panduan dalam membuat aktor:

a. Tempatkan aktor utama pada pojok kiri dari diagram

b. Gambarkan aktor diluar batasan dari diagram use case

c. Nama aktor tunggal, nama benda relevan yang terluas

d. Nama aktor merupakan perannya bukan gelarnya

27

e. Gunakan <<system>> untuk menandakan aktor adalah sistem

f. Jangan membuat aktor melakukan interaksi dengan aktor lainnya

g. Gunakan aktor “waktu” untuk menandakan kejadian waktu

Dalam asosiasi terdapat beberapa hubungan sebagai berikut :

a. Asosiasi antara aktor dan use case

b. Asosiasi antara dua use case

c. Generalisasi antara dua actor

d. Generalisasi antara dua use case

Terdapat beberapa panduan dalam membuat asosiasi:

a. Menentukan asosiasi antara aktor dan use case jika aktor muncul dalam logika

use case

b. Hindari penggunaan panah pada hubungan aktor use case

c. Gunakan <<include>> ketika diketahui kapan use case dikerjakan

d. Gunakan <<extend>> ketika use case dapat dilakukan setelah beberapa langkah

use case

e. Gunakan asosiasi extend sedikit mungkin

f. Generalisasikan use case ketika satu kondisi dapat menghasilkan beberapa logika

bisnis

28

g. Jangan menggunakan <<uses>>,<<includes>>, <<extends>>

h. Hindari penggunaan lebih dari tiga level asosiasi use case

i. Tempatkan use case yang melakukan inheritas

Tabel 2.1 Element of Use Case Diagram

Use Case

Use Case mendeskripsikan urutan

dari aksi yang memberikan nilai yang

terukur dari aktor dan digambarkan

sebagai lingkaran lonjong.

Actor Actor merupakan orang, organisasi,

ataupun sistem eksternal yang

melakukan role pada satu atau lebih

interaksi dalam sistem. Aktor digambar

dalam bentuk orang-orangan.

Association Asosiasi merupakan

penghubung antara aktor dan use

case yang terlihat pada diagram use

case dengan bentuk sebagai garis

solid. Asosiasi terbentuk jika aktor

ikut serta dengan interaksi yang

29

digambarkan lewat use case.

Asosiasi dimodelkan sebagai garis

yang menghubungkan use case dan

aktor antar satu dengan lainnya,

dengan kepala panah pada ujung

sisinya yang opsional untuk

diberikan. Kepala panah tersebut

sering digunakan untuk menentukan

arah dari pelaku yang memicu pada

hubungan atau menentukan aktor

utama dalam use case.

System Boundary

Boundary sistem merupakan

batasan dari sistem untuk

menentukan scope dari system.

Boundary sistem digambarkan

dengan kotak sekitar use case.

Apapun yang berada didalam kotak

menandakan fungsionalitas dalam

scope dana diluar dari kotak berada

diluar dari scope.

Packages

30

Packages merupakan bagian dari

uml yang membantu pengembang untuk

mengorganisir element model(seperti

use case) menjadi kelompok. Package

digambarkan sebagai folder file dan

dapat digunakan didalam diagram uml

manapun, termasuk diagram use case

dan class.

2.1.9.2 Sequence Diagram

Menurut Ambler (2005 : 80-93) Sequence diagram merupakan sebuah diagram uml

yang menggambarkan komunikasi yang terjadi di dalam sistem dalam sebuah skenario.

Sequence diagram digunakan untuk :

a. Memvalidasikan dan menyempurnakan logika pada skenario kasus yang

terjadi.

b. Memvisualisasikan langkah operasi yang dikerjakan pada method yang

telah ditentukan pada kelas.

c. Memberikan gambaran umum apakah kelas akan menjadi kompleks atau

tidak, yang menjadikan penentu apakah perlu digambar state diagram

pada kelas tersebut.

d. Mendeteksi bottleneck dalam desain object oriented.

31

Tabel 2.1 Element of Sequence Diagram

Actor

Aktor merupakan pelaku yang

memicu terjadinya skenario pada

sequence diagram. Biasanya

dimasukkan pada bagian paling kiri

jika menjadi pemicu. Aktor digambar

dalam bentuk orang-orangan.

Life Line

Lifeline merupakan notasi dari

peran atau instance dari object yang

sedang dimodelkan dari sequence

diagram. Lifeline diletakan pada

bagian atas dari diagram. Lifeline

digambarkan dengan bentuk kotak

dan diberi garis putus-putus dari

kotak kebawah sampai masa

penggunaan dari lifeline selesai.

Nama dari lifeline digambarkan

dalam kotak.

Message

Message : merupakan operasi

yang dilakukan dalam sequence

diagram. Penamaan dari message

32

adalah dengan nama fungsi dengan

kurung buka dan tutup yang diisi

dengan nama-nama parameter yang

diperlukan untuk dapat melakukan

operasi tersebut dan diakhiri dengan

return type yang diberikan oleh

message berikut dengan panah yang

menunjukan dimana message

dipanggil.

Ref

Digunakan untuk mereferensikan

sequence diagram lain.

2.1.9.3 Activity Diagram

Menurut Ambler (2005 : 113-131) Activity diagram merupakan diagram yang

mengambarkan aliran dari aktifitas dan aksi dengan dukungan pilihan, iterasi dan

perlawanan. Sebuah activity diagram mengambarkan aliran aktifitas yang terjadi dalam

satu kasus. Activity diagram digunakan untuk menjelajahi logika dari:

33

a. Operasi yang kompleks

b. Aturan bisnis yang kompleks

c. Satu use case

d. Beberapa use case

e. Proses bisnis

f. Proses yang konkuren

Tabel 2.2 Element of Activity Diagram

Start Node

Start Node merupakan titik awal

atau pemulai dari satu activity diagram

Start activity digambarkan dengan

lingkaran hitam penuh.

Final Node

Final Node merupakan titik akhir

atau penyelesai dari satu activity

diagram. End activity digambarkan

dengan lingkaran putih dan diisi dengan

lingkaran hitam kecil ditengah dari

lingkaran tersebut.

Decision

Decision merupakan elemen dari

aktvity diagram yang digunakan untuk

mengambarkan percabangan untuk

34

sebuah pilihan yang akan terjadi pada

activity. Decision digambarkan dengan

bentuk wajik.

Activity

Activity merupakan elemen yang

menandakan satu langkah aktifitas.

Activity digambarkan dengan bentuk

kotak dengan pojok yang membulat.

Control Flow

Control Flow merupakan elemen

yang menjelaskan aliran pada activity

diagram yang akan mengerjakan

aktifitas tertentu. Control flow

digambarkan dengan panah.

Join

Join merupakan elemen yang

menandakan tentang menggabungkan

beberapa control flow menjadi satu ke

satu actiivity. Join digambarkan dengan

kotak persegi panjang berwarna hitam

secara horizontal atau vertical.

Fork

Fork merupakan elemen yang

menandakan tentang memecah satu

control flow menjadi beberapa ke

35

banyak actiivity. Fork digambarkan

dengan kotak persegi panjang berwarna

hitam secara horizontal atau vertical

Fork berbentuk sama dengan Join.

Merge

Merge merupakan elemen yang

menandakan node yang menjadi

penyatu dari sebuah cotrol flow setelah

terjadinya decision. Merge digambarkan

dengan bentuk sama dengan decision.

Swimlanes

Swimlanes digunakan untuk

mengrupkan activity yang dilakukan

oleh aktor yang sama dalam activity

diagram (SwimArea). Swimlanes hanya

berupa garis yang menjadi pembatas

untuk Swimarea,

2.1.9.4 Class Diagram

Menurut Ambler (2005 : 47-72) Class diagram merupakan diagram yang

menampilkan kelas dalam diagram, hubungannya, dan operasi dan attribut dari kelas.

Class diagram digunakan untuk :

a. Menjelajahi konsep domain dalam bentuk model domain.

36

b. Menganalisa kebutuhan dalam bentuk model konseptual atau analisis.

c. Menggambarkan desain detail dari perangkat lunak orientasi obyek atau

berbasiskan obyek.

Tabel 2.3 Element of Class Diagram

Class

Class merupakan elemen yang

menjelaskan tentang kelas pada Class

diagram. Elemen ini digambarkan

dengan bentuk kotak diisi dengan nama

kelas, attribut, dan operasi.

Associate

Associate merupakan elemen yang

menghubungkan antar kelas dengan

hubungan menggunakan. Associate ini

digunakan ketika satu kelas

menggunakan kelas lain yang dibuat

dalam satu package. Associate

digambarkan dengan garis.

Generalize

Generalize merupakan elemen yang

menghubungkan satu kelas sebagai

parent dan kelas lainnya sebagai child.

Generalize digunakan ketika suatu kelas

37

melakukan inherit untuk operasi dan

attribute dari kelas lain. Generalize

digambarkan dengan bentuk panah ke

arah kelas parent.

Composition

Composition merupakan elemen

yang menghubungkan satu kelas dengan

kelas lain sebagai hubungan dalam

kepemilikan. Composition digunakan

ketika satu kelas membutuhkan kelas

lainnya dimana kelas tersebut harus

berada dalam kelas tersebut, tujuan

penggunaan elemen ini untuk

menghubungkan kelas mana yang

memiliki kelas tertentu. Composition

digambarkan dengan garis dan salah

satu ujung diberikan gambar wajik

berisi warna hitam.

Agregation

Agregation merupakan elemen

yang menghubungkan satu kelas dengan

kelas lain sebagai hubungan dalam

kepemilikan. Composition digunakan

ketika satu kelas membutuhkan kelas

38

lainnya dimana kelas tersebut dapat ada

berada dalam kelas tersebut, tujuan

penggunaan elemen ini untuk

menghubungkan kelas mana yang

memiliki kelas tertentu. Composition

digambarkan dengan garis dan salah

satu ujung diberikan gambar wajik.

2.1.9.5 Entity Relationship Diagram

ERD merupakan diagram yang menggambarkan tentang entitas tabel berupa field

yang dimiliki dan hubungan yang dimiliki pada entitas tersebut. Sebuah ERD

merupakan model data yang menjelaskan struktur entitas dari tabel tersebut (Janssen,

2012).

Tabel 2.4 Element of Entity Relationship Diagram

Entity

Entitas merupakan elemen yang

menjelaskan tentang tabel dan field yang

dimilikinya. Elemen ini digambarkan

dengan bentuk kotak seperti kelas pada

class diagram tetapi tanpa adanya

operasi.

Association

39

Association : merupakan elemen

yang menghubungkan antara tabel

dengan tabel lainnya. Dalam association

memiliki nilai hubungan(multiplicity)

memiliki sebagai berikut :

• satu, satu entity hanya dapat

memiliki satu entity yang

berhubungan

• nol hingga satu, satu entity dapat

memiliki nol atau satu entity

yang berhubungan.

• banyak, satu entity dapat

memiliki banyak entity yang

berhubungan.

• nol hingga banyak, satu entity

dapat memiliki nol hingga

banyak entity yang berhubungan.

• satu hingga banyak, satu entity

dapat memiliki satu hingga

banyak entity yang berhubungan.

40

2.2 Teori Khusus

Teori khusus adalah teori-teori yang berhubungan dengan topik yang dibahas dalam

skripsi ini.

2.2.1 PHP

PHP adalah sebuah bahasa pemrograman yang berjalan pada sebuah web server

(server-side). PHP diciptakan oleh programmer unix dan perl Rasmus Lerdoft pada

bulan Agustus-September 1994.Pada awalnya, Rasmus ingin mencoba menciptakan

sebuah script pada website pribadinya dengan bertujuan untuk memonitor siapa saja

yang pernah mengunjungi websitenya.Oleh karena itu, PHP dapat melakukan apa saja

yang bisa dilakukan program CGI lain, yaitu mengolah data dengan tipe apapun,

menciptakan halaman web yang dinamis, serta menerima dan menciptakan cookies, dan

bahkan PHP bisa melakukan lebih dari itu. Agar dapat menjalankan script server-side

dibutuhkan tiga program utama, yaitu web-server (dapat berupa IIS dari windows atau

apache), modul PHP dan juga web browser. (The PHP Group, 2012)

Kelebihannya adalah :

a. PHP dapat berjalan pada semua jenis sistem operasi, antara lain pada Linux dan

varian Unix (HP-UX, Solaris dan OpenBSD), pada Ms Windows, Mac dan

masih banyak lagi (The PHP Group, 2012).

b. PHP juga dapat berjalan pada beberapa jenis web-server antara lain Apache,

Microsoft IIS, personal webserver, Netscape dan Iplanet Server, Caudium,

41

Xitami, Omnihttpd,mozilla firefox dan masih banyak lagi (The PHP Group,

2012)

c. Banyaknya sampel kode yang ada beredar di internet, sehingga mempermudah

anda mencari bantuan saat melakukan penulisan kodedengan PHP (Mah, 2009).

d. Keseragaman fungsi, para pengembang kebanyakan berkontribusi atau

berintegrasi dengan‘code libraries’ mereka ke proyek PHP. Hal ini

memungkinkan untuk menyelesaikan fungsi-fungsi yang rumit seperti

menciptakan barcode hanya dengan beberapa baris kode saja. Dengan

banyaknya database libraries berarti memungkinkan pertukaran dengan

bermacam-macam database dengan mudah, hanya dengan memodifikasi satu

parameter (Mah, 2009)

e. Kepopularisan PHP dapat ditunjukkan dengan banyaknya aplikasi berbasis web

yang dibangun menggunakan PHP, dari Wordpress yang merupakan blogging

engine paling populer sampai phpBB yang merupakan forum terlengkap dibuat

menggunakan PHP. Karena kode asli PHP gratis dan mudah didapatkan (Mah,

2009)

Kekurangannya adalah:

Dari semua kemudahan dan kefleksibilitasan dari pengembangan PHP, pernahkah

anda membuat suatu proyek yang besar sendirian? Hal ini membutuhkan pengalaman

yang sesuai dengan tingkat kesulitan proyeknya. Jangan mengharapkan orang yang

masih pemula dalam PHP menyelesaikan proyek yang besar dan kompleks (Mah,

Disadvantages of Web Development Using PHP, 2009).

42

Jurnal oleh Suzumura, Trent, Tatsubori, Tozawa, dan Onodera (2008) membahas

tentang kemampuan php sebagai bahasa yang digunakan untuk menyediakan web

service terbukti memberikan performalebih tinggi dibandingkan menggunakan bahasa

Java maupun C. Dalam jurnal ini juga dijelaskan bahwa pada php 5 sudah mendukung

fasilitas untuk SOAP, sehingga mempermudah pengembangan web service dengan

sedikit menuliskan kode. Selain itu performa php-SOAP cukup tinggi dilihat dari hasil

percobaan dalam jurnal ini. Maka dengan hal-hal tersebut pilihan php sebagai bahasa

untuk menyediakan web service cukup tepat dilihat dari performa saat run-time ataupun

saat melakukan pengembangan service.

2.2.2 Code Igniter

CodeIgniter merupakan sebuah lightweight framework yang membantu pengembang

php untuk mengurangi jumlah kode yang harus ditulis. Script tulisan pun akan lebih

mudah untuk dibaca ataupun diupdate Selain itu juga membantu mendisiplinkan cara

pengembang untuk melakukan coding juga memberikan website lebih terstruktur.

Dikatakan lightweight karena tidak semua fitur terdapat pada CodeIgniter seperti contoh

scaffolding ataupun generators sebuah kode yang dapat secara otomatis menuliskan

script dasar. Hal tersebut karena CodeIgniter lebih berkonsentrasi untuk membuat hal

dasar menjadi lebih mudah seperti pengelolaan session ataupun cookies, akses database

dan query, mengerjakan hal yang berkaitan dengan html seperti page, form dan validasi

pada isi form, pengetesan, komunikasi pada internet dengan FTP (File Transfer

Protocol) ataupun XMLRPC (Upton, 2007).

43

Pola design pada CodeIgniter menggunakan MVC dimana terdapat tiga bagian

model, view, dan controller. Model merupakan obyek, yang merepresentasikan data

yang diperlukan atau ditampilkan. Model berhubungan erat dengan database dan

melakukan akses jika diperlukan. View merupakan tampilan yang akan dihadapkan

langsung dengan pengguna dengan informasi berdasarkan kondisi model yang ada.

Controller merupakan suatu pengendali pada design MVC dimana dapat mengubah

kondisi model dan memberikan data yang dinamis kepada view, mereka pun juga dapat

mengubah view yang akan ditampilkan berdasarkan kondisi model (Upton, 2007).

Kelebihan yang dimiliki oleh CodeIgniter adalah kemudahannya dalam

menggunakan framework ini, selain itu juga database yang didukung cukup banyak

seperti MySQL, PostgreSQL, Oracle, SQLite. Framework ini juga memiliki komunitas

yang cukup besar sehingga ketika terjadi kesulitan ataupun bug akan mendapat

dukungan dari cukup banyak programmer. Dokumentasi yang dimiliki oleh CodeIgniter

merupakan salah satu yang terbaik karena mudah untuk diikuti dan terus diperbaiki.

Tutorial yang dimiliki pun cukup membantu programmer dalam menggunakan

framework ini.Codeigniter pun memiliki keunggulan dalam database bahwa pengguna

dapat menggunakan pola active record ataupun ORM(Object Relational

Mapper).CodeIgniter pun memiliki helper yang cukup banyakdan mendukung tugas

yang berulang(Wu, 2009).

Kelemahan pada CodeIgniter adalah kurangnya internasionalisasi untuk web site.

CodeIgniter juga terbatas dalam perangkat untuk testing. Juga kurangnya fungsi-fungsi

pada core framework ini(Wu, 2009).

44

Pada jurnal Vuksanovic dan Sudarevic (2011:5)dijelaskan bahwa dengan

menggunakan framework dapat membantu pengembang lebih mudah dalam

mengembangkan applikasi website. Hal tersebut karena pengembang tidak harus

melakukan hal umum yang berulang-ulang perlu dikerjakan karena hal tersebut sudah

dituliskan pada framework.

2.2.3 Bootstrap

Bootstrap merupakan sebuah framework css yang memudahkan pengembang untuk

membangun website yang menarik dan responsif. Tidak konsistensinya terhadap aplikasi

individual membuat sulitnya untuk mengembangkan dan pemeliharaannya. Bootstrap

adalah css tetapi dibentuk dengan LESS, sebuah pre-prosessor yang memberi

fleksibilitas dari css biasa. Bootstrap memberikan solusi rapi dan seragam terhadap

solusi yang umum, tugas interface yang setiap pengembang hadapi. Bootstrap dapat

dikembangkan dengan tambahan lainnya karena ini cukup fleksibel terhadap pekerjaan

design butuhkan(Otto, 2011).

Keunggulan dalam menggunakan Bootstrap adalah semua bagian untuk antarmuka

pengguna menggunakan style css, Bootstrap dapat menggunakan LESS preprosessor

sebuah teknologi yang mengurangi dan mengefisienkan penulisan kode CSS. Bootstrap

dapat diintegrasikan dengan JavaScript untuk menjadikan lebih menarik dengan efek-

efek yang dapat diberikan dengan JavaScript (Tectale, 2012).

Kelemahan dalam menggunakan Bootstrap adalah dengan adanya penggunaan

bootstrap menjadi tidak adanya keunikan didalam website karena akan samanya

45

tampilan yang diberikan. Terdapat juga laporan bahwa sistem grid pada bootstrap tidak

responsif (Tectale, 2012).

2.2.4 Amazon Web Service

AWS atau disebut juga Amazon Web Service adalah nama layanan yang disediakan

oleh Amazon yang bergerak dibidang cloud computing. Di Amazon, penbembang dapat

memiliki akses dan membangun services system, dan biaya yang dibebankan kepada

pengguna relatif murah, karena pengguna hanya perlu membayar atas apa yang

pengguna gunakan saja. AWS ini memberikan layanan yang terjangkau dan juga handal,

setelah sistem berjalan pengguna masih dapat menambahkan sesuatu ke dalam sistem itu

dan juga Amazon menyediakan ketersediaan yang baik. Dengan begini, pengembang

tidak perlu lagi memikirkan masalah infrastruktur lagi (Murty, 2008:Preface xi).

Amazon menyediakan 5 web services, yaitu:

a. Amazon Simple Storage Service: S3

Simple Storage Service yang disediakan amazon memberikan online storage

untuk tipe data apa saja dengan keamanan yang baik. Amazon S3 ini tidak

membatasi berapa banyak data yang bisa disimpan, berapa lama data disimpan,

ataupun berapa besar bandwith yang diberikan untuk melakukan transfer data

(Murty, 2008:2).

46

b. Amazon Elastic Compute Cloud: EC2

EC2 merupakan layanan dari Amazon yang memungkinkan pengguna untuk

menjalankan beberapa komputer server berbasis Linux secara bersamaan sesuai

permintaan pengguna untuk melakukan pemrosesan data atau untuk menjalankan

web service tanpa harus membayar uang rental lagi (karena cost pada AWS

hanya yang digunakan saja yang dibebankan). Pengguna mendapatkan akses

sampai pada root dari operating system, sehingga pengguna dapat

mengkonfigurasi sendiri aturan untuk pengaksesan jaringan, dan sebagainya.

Setelah semua dikonfigurasi pengguna dapat menyimpan image dari server

sebagai konfigurasi(Murty, 2008:2).

c. Amazon Simple Queue Service: SQS

Layanan yang digunakan untuk sebuah komputer mengirim pesan ke

komputer lainnya pada service AWS untuk memanage system, seperti untuk

menyalakan komputer lagi bila traffic banyak, mematikan komputer, mengganti

konfigurasi dari komputer lain yang digunakan melalui pesan. Dengan layanan

ini pengguna tidak perlu lagi memaintain sendiri untuk konfigurasi dan

penggunaan komputer lainnya (Murty, 2008:3).

d. Amazon Flexible Payment Service: FPS

Layanan yang digunakan untuk mentransfer uang antar pengguna atau

perusahaan yang memiliki Amazon Payments accounts. Selain itu, Amazon FPS

47

dapat digunakan untuk melakukan pembayaran credit cards dan untuk banking.

Semua pembayaran di mediasi oleh Amazon(Murty, 2008:3).

e. Amazon SimpleDB

Layanan untuk menyimpan bagian kecil dari informasi tekstual kedalam

struktur database sederhana yang mudah diolah, kembangkan, dan dicari.Jika

aplikasi yang dikembangkan menggunakan database yang sederhana, layanan ini

dapat menggantikan server Relational Database Management System (RDBMS)

yang traditional sehingga pengguna tidak perlu lagi merawat databasenya, karena

sudah ditangani oleh server Amazon (Murty, 2008:4).

Keuntungan dari Amazon Web Service adalah:

a. Biaya murah

Pengguna hanya perlu membayar apa yang digunakan saja seperti server

uptime. (Murty, 2008)

b. Scalable

Pengguna dapat selalu menambahkan/mengganti modul di sistem yang

sedang berjalan di Amazon Web Services (Murty, 2008).

c. Reliable

Pengguna tidak perlu khawatir akan ketersediaan layanan dari Amazon Web

Service, karena Amazon sendiri adalah perusahaan besar yang memiliki

infrastructure yang baik (Murty, 2008).

48

d. Layanan yang baik untuk memulai eCommerce

Karena biaya murah, para pengembang dapat mencoba startup e-commerce

tanpa mencari modal yang banyak (Murty, 2008).

Kekurangan dari Amazon Web Service adalah:

a. Belum support Windows

Sekarang Amazon Web Services hanya menyediakan server berbasis Linux

saja, jadi untuk pengembang yang belum biasa atau memang belum pernah

menggunakan Linux, terpaksa pengembang harus belajar menggunakan Linux

(Murty, 2008).

Dari Jurnal Diginmotion (2010:1-13)dijelaskan bahwa Amazon Elastic Compute

Cloud merupakan layanan dari AWS yang merupakan mesin virtual yang berguna untuk

menjalankan aplikasi yang akan dijalankan di AWS. Spesifikasi komputer yang

ditawarkan sangatlah baik, pilihan yang termurahnya sendiri sudah menawarkan

komputer yang baik.Namun sayangnya data di memori pada EC2 hilang pada saat

komputer dimatikan. Untuk itu Amazon memberikan layanan baru yang diberi nama

Elastic Block Store yang bekerja bagaikan storage - storage yang sambung menyambung,

sehingga data pada memori di EC2 tidak hilang setelah komputer EC2 dimatikan.Juga

ada EBS storage setara dengan RAID hardware yang ada pada data center. EBS

memberikan fasilitas yang dinamakan snapshots, dimana EBS volume dapat

dikonfigurasi untuk melakukan incremental backup di S3.Dengan fasilitas snapshots ini,

pengguna dapat melakukan rollback pada waktu yang spesifik.

49

2.2.5 JavaScript

Javascript merupakan sebuah bahasa pemrograman populer yang di dukung oleh

semua web browser dan web tools lainnya.yang memungkinkan fungsi-fungsi interaktif

yang bisa ditambahkan ke dalam halaman web yang statis. Dengan javascript dapat

membuat interaksi pengguna dan aplikasi lebih interaktif. Javascript berkembang dari

bahasa netscape live script.Javascript tertanam kedalam halaman web karena hal itu

hanya bisa di eksekusi dengan mengambil sebuah halaman dari semua situs web.Hal ini

tidak bisa digunakan untuk penyelidikan sumber komputer. Java adalah sebuah bahasa

pemrograman yang bersifat full-blown yang bisa memanipulasikan banyak sumber

dalam komputer.bagaimana pun juga kedua javaScript routines dan program java

(applet) diaktivasikan dari sebuah halaman web yang bersifat sanboxed dan tidak

mempunyai pemerintahan penuh dalam mesin (Giffin, 2012).

Kelebihan Javascript adalah:

a. Javascript dieksekusi di sisi klien

Ini berarti kode di eksekusi di prosessor daripada dibebankan pada web

server sehingga menghemat bandwidth dan beban pada web server. (JScripters,

2012).

b. Javascript merupakan bahasa yang relatif mudah

Bahasa Javascript relatif mudah untuk dipelajari dan menjanjikan sintaks

yang dekat dengan bahasa tingkat tinggi. Menggunakan model DOM (Document

Object Model) yang menyediakan banyak memungkinkan menuliskan fungsi

50

kepada berbagai objek pada halamannya, membuat pembuatan script dengan

Javascript dapat dilakukan dengan mudah. (JScripters, 2012).

c. Javascript relatif cepat bagi end user

Saat kode dieksekusi di komputer pengguna, hasil dan pemprosesannya

selesai secara instant tergantung dari tugasnya ( tugas di Javascript pada halaman

web biasanya sederhana sehingga mencegah terjadinya pemonopolian memori)

begitu juga Javascript tidak perlu di proses di dalam Web Server dan dikirim

balik ke pengguna yang mengkonsumsi lokal maupun server bandwith.

(JScripters, 2012).

d. Dapat memperluas fungsi pada halaman web

Aplikasi tambahan seperti Greasemonkey memungkinkan pengembang

Javascript untuk menulis bagian dari Javascript yang bisa dieksekusi pada

halaman web yang diinginkan untuk memperluas fungsinya.Jika kamu

menggunakan sebuah website dan membutuhkan beberapa fitur untuk

ditambahkan, kamu bisa menulisnya sendiri dan menggunakan aplikasi tambahan

seperti Greasemonkey untuk diimplementasikan ke dalam halaman web.

(JScripters, 2012).

51

Kekurangan dari Javascript adalah:

a. Masalah Keamanan

Bagian dari javascript, sekali ditambahkan ke halaman web akan segera

dieksekusi di server klien. Hal ini memungkinkan untuk mengeksploitasi sistem

pengguna. Selama pembatasan tertentu di set oleh standart web pada browser,

kode jahat masi bisa di eksekusi dengan menyesuaikan diri terhadap batasan

yang ditetapkan (JScripters, 2012).

b. Pembentukan pada Javascript bervariasi

Layout mesin yang berbeda-beda mungkin saja membentuk Javascript secara

berbeda sehingga mengakibatkan ketidak konsistenan di segi fungsi dan

antarmuka.Sementara versi terbaru dari pembentukan Javascript masih

dipersiapkan untuk memiliki standart dunia, variasi tertentu tetap ada. Konsultan

kegunaan website di seluruh dunia mendapatkan keuntungan dari hal ini, namun

juga membuat emosi ribuan pengembang web tiap harinya (JScripters, 2012).

Dalam jurnal Meyer, Rabb (2010) dijelaskan bahwa javascript terkini telah mampu

melakukan interaksi dengan model object dokumen didalam browser. Sehingga

meningkatkan kelayakan antarmuka pengguna dan website dinamis. Javascript banyak

digunakan oleh web browser dan menjadi serangan dari luar, salah satunya adalah

penggunaan fungsi eval() dimana fungsi ini digunakan untuk melakukan pembentukan

dokumen Javascript.

52

2.2.6 JQuery

JQuery merupakan tipe dari library Javascript (Prototype, Ext Core dan moo.fx

merupakan contoh lain) yang dibuat untuk membuat Javascript lebih mudah diakses dan

digunakan. JQuery mensederhanakan sintax Javascript dan memberikan interaksi yang

lebih baik antara Javascript dan bahasa pengembangan web yang lainnya. Jquery

memberikan akses yang lebih mudah ke DOM (Document Object Model) dan

memungkinkan pembuatan animasi, widget dan segmen web yang dinamis (AJAX)

dibandingkan dengan Javascript saja. JQuery juga merupakan library Javascript yang

paling populer digunakan sekarang oleh banyak situs web yang terkenal(JScripters.com,

2012).

Fitur lain yang menarik dari JQuery adalah kemampuan untuk

mengimplementasikan fungsionalitas AJAX. Dengan AJAX dimungkinkan untuk

menyelesaikan beberapa fungsi tanpa meninggalkan atau me-refresh halaman.AJAX saat

ini digunakan dimana-dimana di berbagai situs karena lebih cepat dan alternatif yang

baik (JScripters.com, 2012).

Kelebihan JQuery adalah:

a. Mudah Digunakan

Ini merupakan keuntungan utama menggunakan JQuery. JQuery lebih mudah

digunakan jika dibandingkan dengan Javascript biasa maupun library javascript

lainnya. Disamping sintax yang simpel, JQuery juga membutuhkan baris kode

yang lebih pendek untuk membuat fitur yang sama jika dibandingkan dengan

library lain (JScripters.com, JQuery: advantages and disadvantages, 2012).

53

b. Library Besar

Dengan JQuery dimungkinkan untuk menampilkan sekumpulan fungsi secara

besar jika dibandingkan dengan library Javascript lainnya (JScripters.com,

JQuery: advantages and disadvantages, 2012).

c. Komunitas opensource yang kuat

Banyak pengguna JQuery yang rela menggunakan waktunya untuk

mengembangkan dan meningkatkan fungsionalitas dari JQuery. Maka dari itu

muncul ratusan Plugins JQuery yang dapat di-download dan digunakan untuk

mempercepat proses pengembangan proyek. Keuntungan lain dibalik ini karena

ke efisiensiannya dan keamanan dari script nya (JScripters.com, JQuery:

advantages and disadvantages, 2012).

d. Dokumentasi dan panduan pengajaran yang baik

Situs web JQuery memiliki dokumentasi dan panduan pengajaran yang

lengkap yang memungkinkan pemula di dunia pemrograman berekseprimen

dengan library ini (JScripters.com, JQuery: advantages and disadvantages, 2012).

e. Ajax Support

Dengan JQuery dimungkinkan untuk mengembangkan Ajax dengan mudah,

dengan Ajax memungkinkan interface yang mulus dimana aksi bisa dilakukan di

halaman tanpa meload kembali halaman (JScripters.com, JQuery: advantages

and disadvantages, 2012).

54

Kekurangan JQuery adalah:

a. Fungsionalitas mungkin terbatas

Meskipun JQuery memiliki library yang menakjubkan di segi kuantitas,

bergantung pada seberapa banyak kustomisasi yang dibutuhkan untuk halaman

website, fungsionalitas mungkin terbatas sehingga menggunakan Javascript

mentah tidak bisa dihindari di beberapa kasus (JScripters.com, JQuery:

advantages and disadvantages, 2012).

b. File Javascript JQuery diperlukan

File Javascript JQuery dibutuhkan untuk menjalankan setiap perintah dalam

JQuery, meskipun ukuran dari file ini relatif kecil (25-100KB tergantung server),

ini tetap menjadi beban bagi server klien dan mungkin juga server web, jika

script JQuery disimpan dalam server web (JScripters.com, JQuery: advantages

and disadvantages, 2012).

Dalam jurnal Shadlou, Pong, dan Sukumaran (2011:4) digunakan teknologi JQuery

beserta AJAX untuk membangun sistemnya, disitu dijelaskan bahwa Penggunaan JQuery

dan AJAX dalam pengembangan situs web yang memungkinkan kompatibilitas cross

platform dan cross browser. Dengan JQuery dan AJAX dapat diambil keuntungan penuh

dari kemampuan komputer sang klien dan mengurangi load server.

55

2.2.7 CSS

CSS pertama kali dikembangkan pada tahun 1997, sebagai suatu cara untuk

pengembang Web untuk menentukan tampilan dan nuansa halaman Web mereka. Hal itu

dimaksudkan untuk memungkinkan pengembang untuk memisahkan konten dari desain

sehingga HTML bisa melakukan lebih dari fungsi yang awalnya berdasarkan markup

dari isi, tanpa rasa khawatir tentang desain dan tata letak(Kyrnin, What is CSS?, 2012).

CSS tidak mendapatkan popularitas sampai sekitar tahun 2000, ketika browser Web

mulai menggunakan lebih dari font dasar dan aspek warna CSS. Dan sekarang, semua

browser modern mendukung semua CSS Level 1, CSS 2 dan beberapa aspek Tingkat

CSS 3 (Kyrnin, What is CSS?, 2012).

CSS adalah singkatan dari Cascading Style Sheet. Style sheet mengacu pada

dokumen itu sendiri.Style sheet telah digunakan untuk mendesain dokumen selama

bertahun-tahun.Mereka adalah spesifikasi teknis untuk layout, apakah cetak atau online.

Desainer cetak menggunakan style sheet untuk memastikan bahwa desain mereka

dicetak persis dengan spesifikasi yang telah mereka buat. Sebuah style sheet untuk

halaman Web melayani tujuan yang sama, tetapi dengan fungsionalitas tambahan juga

mengatakan bahwa Engine Viewing (Web browser) bagaimana untuk membuat

dokumen yang dilihat (Kyrnin, What is CSS?, 2012).

Sedangkan Cascade adalah bagian yang bersifat khusus. Sebuah style sheet Web

dimaksudkan untuk Cascade melalui serangkaian style sheet, seperti sungai atas air

terjun. Air di sungai menghantam semua bebatuan di air terjun, tapi hanya yang di

56

bagian bawah mempengaruhi persis di mana air akan mengalir. Hal yang sama berlaku

dari cascade dalam style sheet Web(Kyrnin, What is CSS?, 2012).

Setiap halaman Web dipengaruhi oleh setidaknya satu style sheet, bahkan jika

desainer Web tidak menerapkan Style. Style sheet ini adalah agen pengguna style sheet -

gaya default yang digunakan browser Web akan digunakan untuk menampilkan halaman

jika tidak ada instruksi lain disediakan. Tetapi jika desainer menyediakan instruksi lain,

browser harus tahu mana instruksi harus diutamakan (Kyrnin, What is CSS?, 2012).

Tujuan dari penggunakan teknologi ini adalah sebagai komplemen pada html5 yang

memiliki batasan pada pembuatan tampilan yang menarik, dan lebih mudah untuk

melakukan pengendalian tampilan pada semua file tampilan.

2.2.8 MySQL

Karena karakteristik arsitektur dari MySQL yang flexible, MySQL dapat berjalan

dengan baik di desktop application maupun web application. MySQL dapat digunakan

untuk embedded application, data warehouses, content indexing and delivery software,

highly reduntant systems, online transaction proccesing(OLTP), dan masih banyak lagi.

Dengan konfigurasi yang benar, MySQL dapat digunakan pada berbagai macam

perangkat keras, dan juga MySQL mendukung banyak tipe data. Salah satu fitur penting

dari MySQL adalah storage-engine architecture yang designnya memisahkan query

processing dan pekerjaan - pekerjaan server lainnya dari penyimpanan dan pengambilan

data. Dengan adanya separasi ini dapat membuat pengguna memilih bagaimana data

disimpan, performa apa yang ingin dicapai, fitur - fitur apa aja yang diinginkan, dan

karakteristik lainnya. MySQL juga memiliki fitur Partitioned Tables sebagai logical

57

table yang merupakan komposisi dari beberapa sub-tables. Tujuan dari partitioning ini

adalah untuk membentuk coarse form of indexing dan data clustering dari table. Dengan

begini sebagian besar dari table tidak perlu diakses dan untuk menyimpan rows yang

berelasi dengan erat (Schwartz, Zaitsev, dan Tkachenko, 2012).

Keuntungan MySQL adalah:

a. MySQL dapat dijalankan dibanyak platform

Saat ini dapat dijalankan di Linux, Windows, Mac, solaris, OS2 (Schwartz,

Zaitsev, dan Tkachenko, 2012).

b. Banyak API bahasa pemrograman yang terintegrasi dengan MySQL

MySQL merupakan database sistem yang memiliki performa yang baik,

sehingga banyak bahasa pemrograman yang memiliki API untuk

mengintegrasikan MySQL untuk dipakai sebagai database. Berikut adalah contoh

–contohnya: C, C++, PHP, Java, Perl, Phyton, Tcl, Ruby, dan lain –

lain(Schwartz, Zaitsev, dan Tkachenko, 2012).

c. Performa dapat dioptimasikan

Dengan arsitektur yang dimiliki MySQL, pengguna dapat melakukan

konfigurasi MySQL untuk mendapatkan performa yang optimal(Schwartz,

Zaitsev, dan Tkachenko, 2012).

58

d. MySQL merupakan DBMS yang open-sources& freeware

Perbaikan error & pengembangan lebih mudah karena adanya forum yang

aktif(Schwartz, Zaitsev, dan Tkachenko, 2012).

e. MySQL irit resources

MySQL menggunakan engine default bernama MyISAM yang menggunakan

sedikit disk space, memory, dan CPU usage(Schwartz, Zaitsev, dan Tkachenko,

2012)

Kekurangan MySQL adalah:

a. MySQL tidak memiliki fitur - fitur seperti Analysis Services, Integration

Services dan service - service lainnya yang disediakan dari Database System

yang berbayar(Schwartz, Zaitsev, dan Tkachenko, 2012).

b. MySQL tidak memiliki algoritma join selengkap Oracle, SQL Server, dan

PostgreSQL(Schwartz, Zaitsev, dan Tkachenko, 2012).

2.2.9 PHP Depend

PHP Depend merupakan alat yang melakukan analisis kode statis berdasarkan

sumber kode yang diberikan. Analisis PHP Depend pertama kali mengambil kode dari

sumber dan mengubahnya menjadi struktrur data internal yang dapat mudah diproses.

Struktur data ini biasanya disebut sebagai AST (Abstract Syntax Tree), yang

memberikan perbedaan statement dan elemen yang digunakan dalam basis analisa

sumber. Kemudian AST yang telah dibuat dan digunakan untuk mengukur nilai, yang

59

disebut sebagai software metrics. Tiap nilai tersebut menandakan aspek kualitas pada

perangkat lunak yang dianalisa (Pichier, 2012).

2.2.10 Page Speed

Page Speed merupakan tools yang dikembangkan oleh Google untuk mengevaluasi

performa berdasarkan sudut pandang pengguna, juga mengukur waktu loading halaman.

Itu merupakan jangka waktu kosong yang terjadi antara saat pengguna meminta halaman

baru dan saat halaman secara penuh dirender oleh browser. Praktik terbaik berhubungan

dengan masa loading halaman, termasuk perbaikan nama dns, pengaturan koneksi TCP,

pengiriman request HTTP, pengunduhan sumber, pengambilan sumber dari cache,

parsing dan eksekusi skript, dan render obyek pada halaman (Google, 2012).

2.2.11 Yslow

Yslow merupakan tools untuk mengukur kecepatan website yang dikembangkan

oleh Yahoo. Evaluasi yang dilakukan berdasarkan sudut pandang client. Pengukuran

tersebut berdasarkan sejumlah aturan untuk tingginya performa halaman. Aturan

tersebut atara lain mengurangi permintaan HTTP, menggunakan Content Delivery

Network, menambahkan masa berlaku atau header pengendali cache, menggunakan gzip,

meletakkan stylesheet pada bagian atas dari halaman, meletakkan script pada bagian

bawah dari halaman, hindari ekspresi css, gunakan external javascript dan css, kurangi

pencarian DNS, minifikasi javascript dan css, hindari redirect, kurangi script yang

duplikat, konfigurasi e-tags, simpan ajax dalam cache, bersihkan buffer seawal mungkin,

gunakan get untuk permintaan AJAX, atur komponen dalam kesesuaian masa

permintaan, kurangi jumlah elemen DOM, sebarkan komponen ke beberapa domain,

60

kurangi jumlah iframe, kurangi besar cookie, minimalisasi akses ke DOM, gunakan

domain yang bebas cookie untuk komponen, gunakan <link> daripada @import, hindari

filter, optimisasi gambar, gunakan sprite, jangan lakukan perubahan besar gambar pada

html, gunakan favicon.ico kecil dan dapat disimpan pada cache, gunakan komponen

dibawah 25KB, gabungkan komponen menjadi dokumen multipart, hindari sumber

image kosong (Yahoo!, 2013).

2.2.12 HTML5

HTML5 adalah platform untuk web manapun.Yang biasanya digunakan oleh

pengembang web mobile, sebuah perusahaan dengan kebutuhan bisnis yang spesifik,

atau Pengembang Game yang serius yang ingin menjelajahi web sebagai platform baru.

HTML5 memperkenalkan banyaknya fitur-fitur terkini yang memungkinkan

pengembang untuk membuat aplikasi dan website dengan fungsionalitas, kecepatan,

kinerja, dan pengalaman dari aplikasi desktop. Tapi tidak seperti aplikasi desktop,

aplikasi ini dibangun pada platform web dapat menjangkau audience yang lebih luas

dengan menggunakan array lebih luas daripada perangkat. HTML5 mempercepat laju

inovasi Anda dan memungkinkan Anda untuk mulus menggelar kerja terbaru Anda ke

semua pengguna secara bersamaan.(html5rocks, 2012)

Kelebihan dari HTML5 adalah adanya integrasi antara html dengan teknologi-

teknologi yang ada seperti kebutuhan pengembang untuk memasang video ataupun

audio. Adapun juga terdapat element semantik yang membantu pengembang menuliskan

kode yang lebih rapi dan sederhana. Semantik pada HTML telah ditingkatkan dengan

adanya header, navigation, footers sebagai tag. Form pada HTML5 juga lebih menarik

61

sehingga terdapat peningkatan pada antarmuka pengguna. Adapun juga konsistensi

terminologi pada web page.Dengan adanya fitur yang ada pada browser saat ini

pengerjaan pada frontend lebih mudah. Pada HTML5 telah memiliki cache sebuah data

yang disimpan dalam memory sehingga permintaan dan response terhadap server. Selain

itu dengan HTML5 pengembang akan lebih mudah dalam menggunakan sessionStorage

dan localStorage. Pada HTML5 terdapat dukukan pada lokasi geologi lewat alamat ip,

koneksi wireless, menara pengawas, ataupun gps. (eyerys.com, 2012)

Kelemahan dari HTML5 adalah dukungan terhadap browser hanya pada browser

terbaru sehingga pada pengguna yang menggunakan browser lama tidak akan dapat

menggunakan HTML5. Masih mungkin adanya perubahan pada penamaan tag,

mengingat bahwa HTML5 masih terus dikembangkan.Tidak adanya nomor URI ataupun

DOCTYPE. (eyerys.com, 2012)

Tujuan dari penggunaan HTML5 adalah kemampuannya terkini pada struktur

kodenya lebih baik dibandingkan sebelumnya, juga dengan teknologi ini mempermudah

dalam merancang kode untuk tampilan kepada pengguna dan HTML5 juga sudah

terintegrasi sepenuhnya dengan BootStrap.

Dalam jurnal Corcoran, Mooney, Winstanley, dan Bertolotto (2011) dibahas tentang

perbedaan teknologi HTML5 dengan teknologi HTML versi sebelumnya.Pada HTML5

versi ini menyediakan sebuah platform yang dikembangkan untuk menjalankan tugas-

tugas menuju kapabilitas lebih besar dengan teknologi terbaru dan pengenalan dari

banyak API (Application Programming Interface).