BAB 2
LANDASAN TEORI
2.1 Teori Umum
2.1.1 Pengertian Sistem
Sistem didefinisikan sebagai suatu jaringan kerja dari prosedur – prosedur
yang saling berhubungan, berkumpul bersama–sama untuk melakukan suatu
kegiatan atau untuk menyelesaikan suatu aturan tertentu (Kusrini & Koniyo,
2007, p. 5)
2.1.2 Teori Internet
2.1.2.1 Pengertian Internet
Menurut Laudon (2012, p. 21), Internet adalah suatu jaringan
global yang menggunakan standar yang umum unutk menghubungkan
jutaan jaringan yang berbeda beda.
8
9
2.1.2.2 Pengertian World Wide Web
Menurut Laudon (2012, p. 21), WWW (world wide web)
merupakan layanan yang disediakan oleh internet dengan standar yang
sudah disepakati secara universal untuk menyimpan, mencari,
memformat, dan menampilkan informasi menggunakan arsitektur
client/server.
2.1.2.3 Sejarah TCP/IP
Menurut Javvin Technologies (2004, p. 11), TCP/IP protocol
merupakan dasar teknikal dari internet. Pengembangan TCP/IP dimulai
dengan nama Project DOD. Saat ini kebanyakan protocol dikembangkan
oleh Internet Engineering Task Force (IETF) yang berada dibawah
Internet Architecture Board (IAB), sebuah organisasi yang disponsori
oleh pemerintah Amerika Serikat. Fungsi utama dari TCP/IP adalah
melakukan pengalamatan (addressing) dan rute (routing) (IP/IPv6 dalam
layer jaringan) dan transportasi kontrol (TCP, UDP dalam layer
transport).
2.1.3 Teori Rekayasa Piranti Lunak (RPL)
2.1.3.1 Definisi RPL
Menurut Pressman (2010, p. 4), piranti lunak (software) adalah:
10
a. Instruksi (program-program komputer) yang ketika dieksekusi
akan memberikan fitur, fungsi, dan performa sesuai yang
diharapkan.
b. Kumpulan struktur data yang memungkinkan program untuk
memanipulasi informatasi, dan
c. Informasi yang bersifat deskriptif dalam bentuk hard copy
ataupun bentuk-bentuk virtual yang mendeskripsikan aplikasi dan
penggunaan program.
2.1.3.2 Karakteristik RPL
Secara garis besar, karakteristik perangkat lunak berbeda dengan
perangkat keras. Menurut Pressman (2010, p. 4), karakteristik dari
perangkat lunak adalah sebagai berikut:
1. Perangkat lunak dikembangkan atau direkayasa, tidak diproduksi
dalam pengertian klasik.
2. Perangkat lunak tidak “usang”.
3. Meskipun industri bergerak menuju konstruksi berbasis
komponen, sebagian besar perangkat lunak terus dibangun secara khusus.
11
2.1.3.3 Lapisan RPL
Pressman (2010,p. 13) mendefinisikan rekayasa perangkat lunak
merupakan teknologi yang bertingkat atau berlapis. Lapisan/tingkatan
tersebut terbagi atas empat lapisan, yaitu:
1. Quality focus
Quality focus merupakan batu landasan yang menopang tools,
methods, dan process dalam RPL.
2. Process Model
Process Model merupakan fondasi dari RPL yang mendefinisikan
sebuah framework untuk sekumpulan key process area yang harus
dibangun demi keefektifan penyampaian teknologi pengembangan RPL.
3. Methods
Methods menerangkan secara teknis tentang bagaimana
membangun suatu perangkat lunak. Lapisan ini meliputi tugas-tugas yang
mencakup analisis kebutuhan (requirements analysis), model desain
(design modeling), pembuatan program (program construction),
pengujian (testing), dan pendukung (support).
12
4. Tools
Tools menyediakan dukungan otomatis dan semi otomatis untuk
process model dan methods.
2.1.3.4 V Model
Menurut Pressman (2010, pp. 39-40), V-model adalah variasi dari
representasi model waterfall. V-model menggambarkan kualitas
hubungan dari satu tindakan ke tindakan lain yang dihubungkan dengan
komunikasi, modeling dan aktifitas awal konstruksi.
Gambar 2.1 Software Engineering Layers
13
Gambar 2.2 Ilustrasi V-model
V-model diawali dengan membuat requirement model yang
semakin disempurnakan menjadi lebih rinci dan teknikal di sisi kiri. Saat
kode sudah dihasilkan, selanjutnya melakukan serangkaian tes kualitas
tindakan jaminan (Quality Assurance Actions) yang memvalidasi masing
masing model. V-model menyediakan cara untuk memvisualisasikan
bagaimana verifikasi dan validasi tindakan yang diterapkan dalam
rekayasa software sebelumnya.
14
2.1.4 UML (Unified Modifying Language)
Menurut Whitten & Bentley (2007, p. 371) UML adalah suatu
konvensi pemodelan yang digunakan untuik menspesifikasikan atau
mendeskripsikan sebuah sistem piranti lunak yang terkait dengan objek.
UML terdiri dari beberapa tipe diagram, yaitu:
a. Use-Case Diagram
Menurut Whitten & Bentley (2007, p. 246-250), use-case diagram
adalah diagram yang menggambarkan interaksi antara sistem dan
pengguna. Dengan kata lain, diagram ini mendeskripsikan siapa yang
akan menggunakan sistem itu dengan cara apa pengguna berinteraksi
dengan sistem.
1. Use case adalah urutan langkah-langkah yang secara tindakan
saling terkait, baik terotomatisasi maupun secara manual untuk
melengkapi suatu tugas bisnis tunggal.
15
Gambar 2.3 Contoh Diagram Model Use-Case
2. Pelaku (Actor) adalah segala sesuatu yang perlu berinteraksi
dengan sistem untuk pertukaran informasi.
Gambar 2.4 Simbol Aktor
16
3. Hubungan (Relationship) pada diagram use case digambarkan
sebagai sebuah garis antara dua simbol. Pemaknaan hubungan
berbeda-beda tergantung bagaimana garis tersebut digambar dan
tipe simbol apa yang digunakan untuk menghubungkan garis
tersebut. Beberapa tipe hubungan yang terdapat pada diagram use
case, yaitu sebagai berikut:
1) Gabungan (Association): hubungan antara pelaku dengan
use case, dimana terjadi interaksi di antara mereka.
Gambar 2.5 Contoh Hubungan Asosiasi
2) Extend: use case yang terdiri dari langkah yang diekstraksi
dari use case yang lebih kompleks untuk menyederhanakan
masalah orisinil dan karena itu memperluas fungsinya.
17
Gambar 2.6 Contoh Hubungan Extension
3) Uses: satu atau lebih use case yang melakukan berbagai
langkah fungsionalitas yang identik.
Gambar 2.7 Contoh Hubungan Uses
18
4) Depends On: use case mana yang memiliki
ketergantungan pada use case lain untuk menetapkan rangkaian
use case yang perlu dikembangkan.
Gambar 2.8 Contoh Hubungan Depends On
5) Inheritance: pada saat dua atau lebih pelaku berbagi
kelakuan umum.
19
Gambar 2.9 Contoh Hubungan Inheritance
b. Class Diagram
Menurut Whitten & Bentley (2007, p. 400), class diagram
menggambarkan struktur objek yang terdapat pada sistem.
Diagram ini menunjukkan objek yang terdapat pada suatu sistem
serta relasi antara objek-objek tersebut.
20
Gambar 2.10 Contoh Class Diagram
21
Beberapa elemen yang terdapat dalam class diagram, yaitu:
1) Class: digambarkan sebagai sebuah kotak yang
terbagi atas tiga bagian. Bagian atas adalah bagian nama dari
class. Bagian tengah mendefinisikan atribut class. Bagian akhir
mendefinisikan method dari sebuah class.
Gambar 2.11 Class
2) Association: merupakan sebuah hubungan yang
paling umum antara dua class dan dilambangkan oleh sebuah
garis yang menghubungkan antara dua class. Garis ini bisa
melambangkan tipe-tipe hubungan. Contohnya one-to-one, one-
to-many, many-to-many.
Gambar 2.12 Association
22
3) Composition: jika sebuah class tidak bisa berdiri
sendiri dan harus merupakan bagian dari class yang lain, maka
class tersebut memiliki relasi composition terhadap class tempat
dia bergantung tersebut. Sebuah hubungan composition
digambarkan sebagai garis dengan ujung berbentuk jajaran
genjang berisi/solid.
Gambar 2.13 Composition
4) Aggregation: jika sebuah class bisa berdiri sendiri
walaupun merupakan bagian dari class yang lain.
Gambar 2. 14 Aggregation
5) Cara bagaimana atribut dan metode diakses oleh
kelas lain didefinisikan dengan visibility. UML menyediakan tiga
tingkat dari visibility, yaitu:
1. Public: ditandai dengan simbol “+”
2. Protected: ditandai dengan simbol “#”
23
3. Private: ditandai dengan simbol “-‘
c. Activity Diagram
Menurut Whitten & Bentley (2007, p. 390), Activity
diagram adalah sebuah diagram yang dapat digunakan untuk
mendeskripsikan secara grafis aliran kerja dari sebuah proses
bisnis, langkah-langkah dari sebuah use case, atau logika dari
sebuah perilaku objek (object behavior/method).
Activity diagram adalah representasi grafis dari aliran
kerja (workflow) atas aktivitas-aktivitas yang bertahap dan aksi-
aksi di dalam sebuah sistem. Diagram ini juga mendukung proses
seleksi, pengulangan (iterasi), dan konkurensi.
Activity diagram sejenis dengan state diagram/statechart
diagram. Diagram ini mendeskripsikan/menggambarkan
kumpulan aktivitas dengan menunjukkan sekuensial dari aktivitas
yang dilakukan. Diagram ini juga bisa menunjukkan aktivitas
yang bersifat kondisional atau paralel. Berikut notasi yang
digunakan pada activity diagram:
24
Tabel 2.1 Simbol pada Activity Diagram
No Simbol Gambar Keterangan
1 Initial
node
Menunjukkan awal dari suatu
proses.
2 Actions Menunjukkan langkah-langkah
aktivitas sistem yang terjadi.
3 Flow Untuk menunjuk ke aksi atau
proses yang lain. Dilengkapi
dengan kata-kata jika berasal
dari decision.
4 Decision Memiiki sebuah flow masuk dan
dua atau lebih flow keluar.
Menunjukkan aktivitas yang
dapat dipilih.
5 Merge Menyatukan flow yang
sebelumnya terpisah oleh
decision.
25
6 Fork Menotasikan permulaan aksi
atau proses paralel yang dapat
terjadi dalam suatu urutan atau
terjadi secara bersamaan.
7 Join Semua aksi yang masuk ke join
harus telah diselesaikan
sebelum proses berlanjut.
8 Activity
Final
Menunjukkan akhir dari
proses.
26
Gambar 2.15 Contoh Activity Diagram
27
d. Sequence Diagram
Menurut Whitten & Bentley (2007, pp. 394-395), Sequence
diagram menggambarkan bagaimana objek-objek berinteraksi satu sama
lain melalui pesan dalam eksekusi dari sebuah use case atau operasi.
Sebuah system sequence diagram membantu untuk mengidentifikasi
pesan tingkat tinggi yang masuk dan keluar dari sistem. (p. 394)
Beberapa notasi yang terdapat di dalam system sequence diagram, yaitu:
1. Actor, berupa aktor yang memulai pada use case ditunjukkan
dengan simbol use case aktor.
2. System, berupa kotak yang menunjukkan sistem yang sedang
berjalan, ditandai dengan notasi titik dua (:) pada awal nama
sistem.
3. Lifelines, berupa garis putus-putus menurun dari simbol aktor dan
sistem.
4. Activation bars, berupa balok yang terletak di atas lifelines,
menunjukkan periode waktu ketika terdapat interaksi secara aktif.
5. Input messages, berupa anak panah mendatar dari aktor ke sistem
yang menunjukkan pesan masuk, dimana kata pertama diawali
dengan huruf kecil, sedangkan kata berikutnya diawali dengan
huruf besar dan tidak ada spasi, diikuti dengan tanda kurung yang
berisi parameter yang dibutuhkan.
28
6. Output messages, berupa anak panah mendatar dengan garis
putus-putus dari sistem ke aktor yang menunjukkan pesan keluar.
7. Receiver Actor, berupa aktor lain yang menerima pesan dari
sistem.
8. Frame, berupa kotak yang menambahkan pesan terpisah untuk
menunjukkan perulangan, alternative, atau pilihan.
2.1.5 Javascript
Menurut Flanagan (2011, p. 1), Javascript adalah bahasa pemrograman
web. Mayoritas situs web modern menggunakan JavaScript, termasuk semua
browser web modern di desktop, game consoles, tablet, dan smart phone.
Javascript adalah bahasa pemrograman berjenis untyped language,
tingkat tinggi, dan dinamis yang cocok untuk gaya pemrograman berorientasi
objek dan fungsional.
Javascript benar-benar berbeda dengan bahasa pemrograman Java, dan
akar dari bahasa scripting javascript telah berkembang menjadi bahasa untuk
keperluan umum yang kuat dan efisien.
29
2.1.6 Interaksi Manusia dan Komputer
Menurut Shneiderman dan Plaisant (2005, p. 4) ,Interaksi Manusia dan
Komputer (IMK) adalah disiplin ilmu yang berhubungan dengan perancangan,
evaluasi, dan implementasi sistem komputer interaktif untuk digunakan oleh
manusia. Titik berat IMK adalah perancangan dan evaluasi antarmuka pemakai
(user interface). Antarmuka pemakai adalah bagian sistem komputer yang
memungkinkan manusia berinteraksi dengan komputer.
2.1.6.1 Lima Faktor Manusia Terukur
Menurut Shneiderman dan Plaisant (2005, p. 16), 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 user 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 user.
30
3. Tingkat kesalahan user
Merupakan suatu tolak ukur seberapa banyak dan apa saja kesalahan
yang dilakukan user dalam mengerjakan suatu tugas.
4. Daya ingat
Merupakan suatu tolak ukur seberapa baik seorang user dapat
mengingat pengetahuan yang didapatkan dalam waktu tertentu.
5. Kepuasan subjektif
Merupakan suatu tolak ukur seberapa besar tingkat kesukaan user
pada tampilan antarmuka yang ada pada aplikasi.
2.1.6.2 Eight Golden Rules of Interface Design
Menurut Shneiderman (2005, pp. 74-75), terdapat delapan aturan
emas (eight golden rules) yang biasa digunakan dalam perancangan
antarmuka pemakai, yaitu:
1. Berusaha untuk konsisten
Konsistensi harus dilakukan pada setiap tindakan, perintah, dan
istilah yang digunakan pada prompt, menu, layar bantu, warna
tampilan, kapitalisasi, huruf, dan sebagainya.
31
2. Menyediakan penggunaan yang universal
Menambahkan fitur seperti tombol cepat (shortcuts) untuk
memudahkan pengguna. Pemakaian shortcuts digunakan untuk
mengurangi jumlah interaksi dan meningkatkan kecepatan
interaksi. Singkatan, tombol fungsi, dan fasilitas makro sangat
membantu untuk pengguna yang sudah ahli.
3. Memberikan umpan balik yang informatif
Untuk setiap aksi yang dilakukan oleh user harus diberikan
umpan balik agar tercipta suasana yang komunikatif. Pada aksi
yang kecil dan sering digunakan, respon yang diberikan
sederhana. Namun, pada aksi yang besar dan jarang digunakan,
respon yang diberikan harus lebih banyak dan rinci.
4. Merancang dialog untuk memberikan penutupan
Urutan tindakan sebaiknya diorganisasi ke dalam kelompok awal,
tengah, dan akhir. Tampilan harus memberikan dialog untuk
menunjukkan penutupan ketika aplikasi selesai diproses ato
dijalankan.
5. Memberikan pencegahan dan penanganan kesalahan yang
sederhana
Sebisa mungkin, sistem dirancang untuk dapat mencegah user
dari kesalahan fatal yang dilakukan. Jika kesalahan dibuat, sistem
32
harus mampu mendeteksi kesalahan, menjelaskan, dan
menawarkan penanganan kesalahan untuk memperbaikinya.
6. Memungkinkan pembalikan aksi yang mudah
Diharapkan adanya fitur untuk kembali (back) ke aktivitas
sebelumnya. Fitur ini bertujuan agar pengguna dapat kembali ke
aktivitas sebelumnya jika ternyata terdapat suatu kesalahan yang
disebabkan pengguna, sehingga kesalahan dapat diperbaiki.
7. Mendukung pusat kendali internal
User memiliki kendali sebagai pemberi aksi pada sistem
antarmuka. Kemudian antarmuka tersebut harus merespon
kembali, sehingga dapat mengontrol program-program yang ada
dalam sistem.
8. Mengurangi beban ingatan jangka pendek
Sebuah sistem diharapkan dapat ditampilkan sesederhana
mungkin dan sebaiknya tampilan halaman yang banyak disatukan,
serta diberikan cukup waktu dalam mempelajari kode, singkatan,
dan urutan tindakan.
33
2.1.7 OOP(Object Oriented Programming)
Menurut Clark (2011, pp. 1-3), OOP adalah sebuah pendekatan untuk
pengembangan perangkat lunak dimana struktur perangkat lunak ini didasarkan
pada benda-benda berinteraksi satu sama lain untuk menyelesaikan tugas.
Interaksi ini membutuhkan bentuk pesan lewat bolak-balik antara objek. Dalam
menanggapi pesan, objek dapat melakukan suatu tindakan atau metode.
Contohnya seperti ketika seseorang ingin pergi ke toko dan berinteraksi dengan
sebuah mobil. Sebuah objek mobil terdiri dari benda-benda yang berinteraksi
satu sama lain untuk menyelesaikan tugas untuk mengantar orang tersebut ke
toko. Orang tersebut meletakkan kunci dan menyalakannya. Hal tersebut
mengirimkan pesan (melalui sinyal listrik) ke objek pemula, yang berinteraksi
dengan objek mesin untuk menyalakan mobil. Sebagai supir, hal tersebut
membuatnya terisolasi dari logika bagaimana suatu objek pada suatu sistem
bekerja sama untuk menyalakan mobil. Orang tersebut hanya memulai urutan
kejadian dengan menjalankan metode mulai dari objek pengapian dengan kunci,
kemudian menunggu respon keberhasilan atau kegagalan.
Banyak pengembang software bisnis yang beralih ke metode objek
oriented dan bahasa pemrograman untuk menyelesaikan berbagai masalah.
Keuntungannya adalah sebagai berikut:
a. Sebuah transisi yang lebih intuitif dari analisis model bisnis perangkat lunak
ke model penerapan perangkat lunak.
34
b. Kemampuan untuk memelihara dan menerapkan perubahan dalam program
yang lebih efisien dan cepat.
c. Kemampuan untuk lebih efektif menciptakan sistem perangkat lunak
menggunakan proses tim, memungkinkan para ahli (specialists) untuk
bekerja pada bagian dari sistem.
d. Kemampuan untuk menggunakan kembali komponen kode dalam program
lain dan membeli komponen yang ditulis oleh pengembang pihak ketiga
untuk meningkatkan fungsi dari program mereka dengan sedikit usaha.
e. Integrasi yang lebih baik dengan sistem komputasi terdistribusi yang
digabungkan secara longgar.
f. Peningkatan integrasi dengan sistem operasi modern.
g. Kemampuan untuk membuat tampilan antarmuka yang lebih intuitif untuk
pengguna.
2.1.7.1 Karakteristik OOP
Menurut Clark (2011, pp. 3-5), beberapa karakteristik yang
terdapat dalam OOP adalah:
a. Objects
Dalam OOP, objek adalah sebuah struktur data untuk
menggabungkan data dan prosedur untuk bekerja dengan data.
Misalnya, apabila ingin memiliki kemampuan pencetakan, maka
35
harus bekerja dengan objek printer yang bertanggung jawab atas
data dan metode yang digunakan dengan printer tersebut.
b. Abstraction
Tanpa kemampuan untuk melakukan abstraksi atau menyaring
sifat benda asing, akan terjadi kesulitan untuk memproses
sejumlah informasi dan konsentrasi pada tugas yang sedang
dilakukan.
c. Encapsulation
Fitur penting lainnya dari OOP adalah enkapsulasi. Enkapsulasi
adalah proses dimana tidak ada akses langsung yang diberikan
untuk data, melainkan tersembunyi. Untuk mendapatkan akses ke
data, diperlukan interaksi dengan objek yang bertanggung jawab
untuk data.
d. Polymorphism
Polimorfisme adalah kemampuan dari dua objek yang berbeda
untuk merespon pesan permintaan yang sama dalam cara yang
unik.
36
e. Inheritance
Dalam OOP inheritance digunakan untuk mengklasifikasikan
objek dalam program sesuai dengan karakteristik dan fungsi yang
umum. Hal itu membuat bekerja dengan objek menjadi lebih
mudah dan intuitif. Hal itu juga membuat program menjadi lebih
mudah, karena memungkinkan pembuat untuk menggabungkan
karakteristik umum kedalam objek orangtua/parent dan mewarisi
karakteristik tersebut di dalam objek anak/child.
f. Aggregation
Agregasi adalah ketika sebuah objek terdiri dari gabungan dari
benda-benda lain yang bekerja sama. Misalnya, mesin pemotong
rumput adalah gabungan dari objek roda, mesin, pisai, dan
sebagainya. Bahkan, objek mesin adalah gabungan dari berbagai
objek. Kemampuan untuk menggunakan agregasi di dalam OOP
merupakan fitur canggih yang memungkinkan implementasi
proses bisnis dan model secara akurat di dalam suatu program.
37
2.1.8 Definisi Database
Menurut Connoly (2005, p. 15), database adalah kumpulan data
yang saling berhubungan secara logis dan dirancang untuk memenuhi
kebutuhan informasi dalam suatu organisasi.
Menurut Whitten & Bentley (2007, p. 518), database adalah
kumpulan data yang saling terkait/ berhubungan.
Sehingga dapat disimpulkan bahwa database adalah suatu
kumpulan data yang berhubungan secara logis dan data dapat
dimanipulasi serta digunakan untuk memenuhi kebutuhan informasi suatu
organisasi.
2.1.9 Bahasa-bahasa dalam database
Sebuah sub-bahasa data terdiri dari 2 bagian yaitu: Data Definiton
language (DDL) dan Data Manipulation Language (DML).
• Data Definiton language(DDL)
Data definition language adalah sebuah bahasa yang mengizinkan
database administrator atau pengguna untuk menjelaskan dan memberi
nama ke entitas-entitas, atribut-atribut, dan relasi yang diperlukan untuk
aplikasi, bersama pula dengan kendala keamanan dan integritas yang
berhubungan.
38
• Data Manipulation Language (DML)
Data Manipulation Language (DML) adalah sebagai bahasa yang
menyediakan operasi-operasi untuk mendukung operasi pemanipulasian
data pada data yang berada di database diantaranya adalah:
• Melakukan penambahan data baru ke databse.
• Melakukan pembaharuan terhadap data yang disimpan
pada database.
• Mengambil kembali data yang berada pada database.
• Menghapus data dari database.
Terdapat dua tipe DML yaitu: procedural dan nonprocedural. Secara garis
besar perbedaan diantara dua tipe data manipulation language tersebut
adalah DML procedural menspesifikasikan bagaimana hasil dari sebuah
pernyataan DML diperoleh. Sedangkan DML nonprocedural hanya
menjelaskan apa hasil yang akan diperoleh.
2.1.10 Definisi Database Management System
Menurut Connoly & Begg (2005, p. 16), DBMS (database management
system) merupakan suatu system perangkat lunak computer yang memungkinkan
pengguna untuk mendefinisikan, membuat dan mengatur database serta
menyediakan suatu kontrol akses ke database.
39
Menurut Whitten & Bentley (2007, p. 525), DBMS (database
management system) adalah perangkat lunak komputer yang terspesialisasi dari
komputer vendor yang digunakan untuk menciptakan, mengakses, mengontrol,
dan mengatur database.
Sehingga dapat disimpulkan DBMS (database management system)
adalah suatu sistem perangkat lunak komputer yang terspesialisasi dan
memungkinkan pengguna untuk mendefinisikan, membuat dan mengatur
database serta menyediakan suatu kontrol akses ke database.
Secara khusus, DBMS menyediakan fasillitas berikut:
Memungkinkan pengguna untuk menentukan database, biasanya melalui
Data Definition Language (DDL). DDL memungkinkan user untuk
menentukan tipe user dan struktur data mendorong data untuk disimpan
ke database.
Memungkinkan pengguna atau user untuk melakukan insert, update,
delete dan retrieve dari database, biasanya melalui Data Manipulation
Language (DML)
Menyediakan akses terkontrol ke database
2.1.11 Komponen Utama Database
Menurut Connolly & Begg (2005, pp. 18-21), komponen-komponen
DBMS adalah sebgai berikut:
40
1. Hardware (perangkat keras), dibutuhkan untuk menjalankan DBMS dan
juga aplikasi-aplikasinya. Yang termasuk perangkat keras adalah mini computer,
network computer, personal computer, dan mainframe.
2. Software (perangkat lunak), terdiri dari perangkat lunak DBMS itu
sendiri dan aplikasi program, bersama operating system, termasuk didalamnya
perangkat lunak jika DBMS digunakan dalam jaringan.
3. Data, merupakan komponen terpenting dari lingkungan DBMS yang
dilihat dari sudut pandang pengguna akhir. Data berperan sebagai jembatan
antara komponen prosedur dan komponen manusia.
4. Prosedur, mengacu pada instruksi-instruksi dan aturan-aturan yang
pengendalian desain dan penggunaan database.
5. People (sumber daya manusia), mengacu pada semua manusia yang
terlibat dalam sistem seperti DBA, programmer, aplikasi, pengguna, akhir dan
lain-lain.
2.1.12 Keuntungan Dan Kerugian DBMS
Ada beberapa keuntungan yang didapat dengan memakai DBMS yaitu
menurut Connolly & Begg (2005, pp. 26-30):
• Mengontrol redudansi data.
• Konsistensi data
41
• Lebih banyak informasi dari jumlah data yang sama.
• Share data.
• Meningkatkan integritas data.
• Meningkatkan keamanan.
• Standar pelaksanaan.
• Skala ekonomi (data operasional organisasi dijadikan satu database dan
membuat aplikasi pada satu sumber data sehingga akan penghematan biaya).
• Keseimbangan aksesibilitas data dan data responsiveness.
• Meningkatkan produktivitas.
• Meningkatkan pemeliharaan melalui data independence.
• Meningkatkan konkurensi(mengurangi loss informasi dan loss integritas).
• Meningkatkan layanan backup dan recovery.
Namun ada pula kerugian dari pemakaian DBMS sebagai berikut:
• Kompleksitas.
• Ukuran.
• Biaya DBMS.
• Biaya penambahan perangkat keras.
42
• Biaya konversi (biaya staf spesialis, biaya pelatihan).
• Performance (tidak dapat berjalan secepat yang diinginkan).
• Resiko kesalahan yang lebih tinggi.
2.2 Teori Khusus
2.2.1 JSON (Javascript Object Notation)
JSON adalah standar berbasis teks ringan yang dirancang terbuka
dan mudah untuk dibaca dan ditulis manusia serta mudah bagi mesin
untuk mengurai dan menghasilkan pertukaran data. Hal ini didasarkan
pada subset dari Bahasa Pemrograman JavaScript, standar ECMA 262
Edisi 3 (Pengenalan JSON, 2011) merupakan format text bahasa
independen tetapi menggunakan konvensi bahasa yang akrab dari bahasa
C, meliputi C, C++, C#, Java, JavaScript, Perl, Python, dan lainnya. Hal
hal inilah yang membuat JSON sebagai bahasa pertukaran yang ideal.
Format JSON awalnya ditentukan oleh Douglas Crockford dan
dijelaskan dalam RFC4627. Jenis media internet yang resmi untuk JSON
adalah aplikasi/json. Format JSON sering digunakan untuk serialisasi dan
mengirimkan data terstruktur melalui koneksi jaringan. Terutama untuk
pengiriman data antara server dan aplikasi web, melayani sebagai
alternatif ke XML.
43
2.2.2 Node.JS
Menurut jurnal yang ditulis oleh Iqbal (2012) Node.js adalah
sistem perangkat lunak yang didesain untuk pengembangan aplikasi web.
Aplikasi ini ditulis dalam bahasa JavaScript, menggunakan basis event
dan asynchrounous I/O. Tidak seperti kebanyakan bahasa JavaScript yang
dijalankan pada peramban, Node.js dieksekusi sebagai aplikasi server.
Aplikasi ini terdiri dari V8 JavaScript Engine buatan Google dan
beberapa modul bawaan yang terintegrasi.
Sedangkan menurut Teixeira (2012, p. iv) Node.JS diperkenalkan
oleh seorang programmer bernama Ryan Dahl pada European JSCONF
2009. Saat ini lebih dikenal secara sederhana sebagai 'Node'. Node
memungkinkan programmer untuk secara mudah mengkonstruksikan
network services yang cepat dan terukur.
2.2.3 Mongo DB
Menurut Francia (2012, p. 3), MongoDB dibangun oleh Eliot
Horowitz dan Dwight Merriman untuk mengoptimalkan operasi dan
skala. Filosofi dibalik MongoDB adalah untuk memiliki fungsi sebanyak
mungkin sambil memungkinkan pengembangan secara horizontal dan
disaat bersamaan memastikan keserasian dalam pengalaman
pengembang.
44
2.2.4 Android
2.2.4.1 Pengenalan Android
Menurut Burnette (2009, p. 12), Android merupakan tooklkit
perangkat lunak open source baru untuk perangkat mobile masa depan,
android sendiri diciptakan oleh perusahaan Google yang bekerja sama
dengan Open Handset Alliance.
2.2.4.2 Kelebihan dan Kekurangan Android
Meski saat ini sudah banyak platform mobile di pasaran seperti :
Symbian, iOS, Windows Mobile, Blackberry, Java Mobile Edition, Linux
Mobile (LiMo), dsb, namun android masih bisa menyaingi platform
sebelumnya, karena android adalah yang pertama menggabungkan fitur –
fitur sebagai berikut :
1. Merupakan pengembang platform bebas yang berbasis
linux dan open source, bebas karena pengembang dapat
menggunakan dan menyesuaikan platform tanpa harus membayar
royalty.
2. Sebuah komponen berbasis arsitektur yang terinspirasi
oleh mashup internet. Bagian dari satu aplikasi dapat
45
dikembangkan, digantikan, ditingkatkan komponennya sesuai
dengan versi anda sendiri. Sehingga dapat memunculkan berbagai
kreativitas pada mobile application.
3. Memiliki layanan berbasis lokasi menggunakan GPS atau
triangulasi menara sel untuk menyesuaikan dimana anda berada.
4. Memungkinkan anda untuk memanfaatkan kekuatan
penyimpanan local untuk berhubungan dengan komputasi dan
sinkronisasi. Browser dan peta views dapat ditanamkan langsung
pada aplikasi. Semuanya dapat ditingkatkan sambil tetap menekan
harga biaya pengembangan
5. Android dioptimalkan untuk perangkat daya rendah dan
rendah memori, yang dimana pada platform sebelumnya tidak
terpikirkan.
6. Mendukung grafis dan suara berkualitas tinggi, lebih
halus. Grafik 2D dan vector grafis serta animasi yang terinspirasi
oleh flash yang menyatu dengan 3D dan dipercepat oleh grafis
OpenGL untuk memungkinkan jenis baru dalam permainan dan
aplikasi bisnis.
7. Memiliki portabilitas diberbagai perangkat keras saat ini
dan masa depan serta memiliki dukungan untuk berbagai jenis
input seperti metode keyboard, layar sentuh dan trackball.
46
8. Program yang terisolasi dapat memberikan tingkat
stabilitas sistem yang tidak terlihat sebelumnya pada ponsel
pintar.
9. Android menawarkan berbagai cara untuk berinteraksi
dengan mobile application bersama dengan dasar – dasar teknis
untuk membuatnya.
10. Semakin berkembangnya membuat android terlihat
mudah, anda tidak membutuhkan akses ke ponsel android saja,
tapi cukup dengan komputer dimana anda dapat menginstall SDK
Android dan emulator.
Android Software Development Kit (SDK) bekerja pada
Windows, Linux, dan Mac OS X. Aplikasi yang anda buat dapat
digunakan pada setiap perangkat Android, sebelum anda memulai
membuat program anda perlu menginstall JAVA, IDE, dan SDK
Android.
Selain kelebihan – kelebihan tersebut ada beberapa
kekurangan Android, diantaranya:
1. Handset Android dibuat oleh banyak vendor dengan
ukuran layar yang berbeda, sebagian menggunakan keyboard
fisik, sebagian lagi hanya menggunakan touch screen. Versi
Android yang terpasang di handset juga berbeda berbeda, hal ini
menyebabkan pengalaman memakai android tidak seragam, hal
47
ini juga sekaligus menyulitkan Programmer dalam membuat
program. Karena apabila versi OS tidak sama, program itu tidak
bisa diinstal.
2. Android adalah produk open source dari Google dan Open
Handset Aliance, itulah mengapa aplikasi yang ada di Android
sangat menyatu dengan layanan Google, sebut saja Email
menggunakan GMail, kalendar menggunakan Google Calendar,
bahkan sampai Contact pun disimpan di Gmail Contact. Bagi
penggemar Google ini merupakan keunggulan sendiri, namun
bagi pengguna yang tidak familiar dengan produk Google (Misal
orang yang baru pindah dari Windows Mobile atau Symbian) hal
ini cukup merepotkan karena mereka harus menyesuaikan
kebiasaannya.
3. Android cukup aktif dikembangkan, hampir tiap tahun
mereka merilis sistem operasi baru, pada tahun 2010 Google
merilis froyo (2.2), Gingerbread (2.3) dan Honeycomb (3.0),
tahun 2011 merilis Ice cream sandwich (4.0). Namun dari sisi
vendor atau operator, update ke user membutuhkan waktu
berbulan bulan, sebagai contoh, froyo dirilis pada bulan mei 2010,
namun pengguna android kebanyakan baru meng-update setelah
bulan September 2010.
48
2.2.5 Sencha Touch 2
Menurut Kosmaczewski (2012, p. 65), Sencha Touch adalah salah
satu UI Framework yang memiliki kemiripan dengan CocoaTouch,
Swing, maupun .NET. Ditulis sepenuhnya dalam bahasa JavaScript.
Sencha Touch menyediakan widget – widget, bereaksi terhadap sapuan
jari kompleks, dan dipersiapkan untuk kreasi web applications yang
bersifat sangat kompleks. Sencha Touch merupakan produk dari Sencha,
yang dibangun berdasarkan gabungan pustaka javascript dari Ext.JS,
jQTouch dan Raphael. Saat buku ini ditulis, Sencha Touch yang
digunakan sudah memasuki versi 2.0.1.
2.2.6 Phonegap
Menurut Kosmaczewski (2012, p. 91), PhoneGap diciptakan oleh
perusahaan bernama Nitobi yang kemudian di akuisisi oleh Adobe. Lebih
daripada itu, PhoneGap telah menjadi proyek resmi dari Apache
Foundation dan sekarang dinamakan Apache Cordova. Secara teknis,
dapat dikatakan bahwa PhoneGap adalah distribusi dari Apache Cordova.
PhoneGap membungkus aplikasi yang diciptakan menggunakkan
HTML, CSS dan JavaScript ke dalam bahasa native menggunakkan
komponen web browser native yang disediakan oleh kebanyakan
smartphone. Menurut promosi dari Adobe, PhoneGap merupakan dua
hal:
49
Wrapper
PhoneGap menangani HTML, CSS dan JavaScript file dan
menyatukannya dalam suatu cara sehingga dapat dirilis di online
store.
Bridge
PhoneGap juga menyediakan mekanisme HTML5 web
applications, yang memungkinkan mereka mengakses dan
memakai informasi dan service yang tersedia dari aplikasi
bawaan, seperti buku kontak lokal, sistem notifikasi, suara, dan
keperluan lainnya.
2.2.7 Websocket
Menurut jurnal yang ditulis oleh Sharma (2011, p. 134) ,Websocket di
HTML5 merupakan kemajuan di bidang komunikasi HTTP. Spesifikasi dari
Websocket memungkinkan saluran komunikasi dua arah single-socket untuk
mengirim dan menerima informasi antara browser dan server. Dengan demikian,
50
Websocket menghindari koneksi dan portabilitas masalah teknik lainnya dan
memberikan solusi yang lebih efisien daripada polling Ajax. Saat ini Websocket
di HTML5 adalah sarana terdepan untuk memfasilitasi full-duplex, pertukaran
data di web secara real time. Websocket menyediakan lintasan sederhana dari
firewall dan router dan kompatibel dengan data biner. Websocket juga
memungkinkan pertukaran data dengan cookie-based authentication.
Gambar 2. 16 Perbandingan Websocket Dengan Teknologi Lain
Tabel diatas membandingkan parameter yang berbeda untuk setiap
teknologi yang berbeda yang digunakan dalam implementasi komunikasi cross-
site pada server QIIIP. Empat belas teknologi dibandingkan terhadap berbagai
parameter seperti cross-browser compatible, cross-site browser security
enforcement, http status codes, dll.
51
2.2.8 PHP
Menurut Suryatiningsih (2009, p. 141), PHP adalah bahasa scripting yang
menyatu dengan HTML dan dijalankan pada sisi server. Artinya semua sintaks
yang diberikan akan sepenuhnya dijalankan pada server sedangkan yang
dikirimkan ke browser hanya hasilnya saja.
Melalui jurnal yang ditulis oleh Korhonen (2008, p. 12), System
GEOMAGIA50 menggabungkan teknologi open source PHP dan MySQL.
GEOMAGIA50 memiliki 3798 klasifikasi intensitas dari 50.000 tahun
lalu(49.900-1998 M?), diterbitkan dalam 165 peer-review artikel jurnal, laporan,
dan bab buku. Hal ini membuat GEOMAGIA50 alat yang ideal untuk
mempelajari perilaku medan magnet Holocone.
2.2.9 Java
Menurut Friesen (2010, p. 1), Java adalah platform untuk mengeksekusi
proram dan terdiri dari library untuk menjalankan program dan berinteraksi
dengan sistem operasi yang mendasarinya. Java adalah bahasa pemrograman
yang sederhana, berorientasi objek, terdistribusi, diinterpretasikan, kuat, aman,
arsitektur netral, portable, kinerja tinggi, multithreaded, dan dinamis. Java dapat
dijalankan di berbagai jenis sistem operasi dan arsitektur komputer.
52
Java pertama kali dikembangkan oleh tim yang dipimpin oleh James
Gosling di Sun Microsystem. Pada mulanya disebut Oak yang dirancang pada
tahun 1991 untuk digunakan dalam chip tertanam dalam peralatan elektronik
konsumen. Kemudian pada tahun 1995, berganti nama menjadi Java yang
didesain ulang untuk mengembangkan aplikasi internet.
2.2.10 Socket IO
Socket.IO menurut website resminya (LearnBoost, 2012) merupakan
Application Programming Interface (API) dari Websocket yang dibuat oleh
Guillermo Rauch, CTO dari LearnBoost. Socket IO ini akan membuat
sambungan yang dibentuk dengan Websocket untuk menciptakan aplikasi real
time yang dapat bekerja dimana saja. Socket.IO juga menyediakan API untuk
Node.JS yang banyak ditemukan pada API sisi klien.
2.2.11 MySQL
Menurut Kadir (2009, p. 15), MySql merupakan software yang tergolong
database server dan bersifat Open Source. Open Source menyatakan bahwa
software ini dilengkapi dengan source code (kode yang dipakai untuk membuat
MySql),selain tentu saja bentuk executable-nya atau kode yang dapat dijalankan
secara langsung dalam sistem operasi, dan bisa diperoleh dengan cara
mengunduh di Internet secara gratis.