BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00994-IF...
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).