1 BAB 2 LANDASAN TEORI 2.1 Teori Umum Teori umum adalah teori-teori pokok yang digunakan sebagai landasan bagi teoriteori lainnya Software Engineering...
BAB 2 LANDASAN TEORI 2.1 Teori Umum Teori umum adalah teori-teori pokok yang digunakan sebagai landasan bagi teoriteori 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.
8
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 transactionbased 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
(Sommerville,2011:325).
akan
semakin
besar
tergantung
systemnya
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 perangkat
menemukan lunak
cara dengan
yang
lebih
melakukan
baik dan
untuk
membantu
mengembangkan 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 <> 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>>,<>, <<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 batasan
dari
menentukan Boundary dengan
sistem
scope
sistem
untuk
dari
system.
sistem
kotak
merupakan
sekitar
digambarkan 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
aktifitas
tertentu.
mengerjakan 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
menghubungkan
kelas
ini mana
untuk 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
menghubungkan
kelas
ini
untuk
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.
memungkinkan
untuk
menyelesaikan
fungsi-fungsi
yang
rumit
Hal ini 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 efekefek 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 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 teknologiteknologi 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 tugastugas menuju kapabilitas lebih besar dengan teknologi terbaru dan pengenalan dari banyak API (Application Programming Interface).