Upload
others
View
37
Download
0
Embed Size (px)
Citation preview
6
BAB 2
LANDASAN TEORI
2.1 Teori-teori Umum
Dalam penyusunan skripsi ini ada beberapa teori umum yang digunakan sebagai
landasan. Di bawah ini adalah pemaparan teori-teori tersebut.
2.1.1 Teori-teori Pemrograman Web
2.1.1.1 Internet
Internet adalah jaringan komputer terbesar di dunia, yang sebenarnya merupakan
sebuah jaringan dari banyak jaringan. Jaringan yang saling terkoneksi ini bertukar
informasi menggunakan standar protokol terbuka dan non-proprietary.
Internet menjadi sebuah dimensi baru dalam bidang komunikasi – sebuah dunia
virtual elektronik di mana waktu dan tempat tidak memiliki arti lagi (Turban et al, 2003,
p200).
2.1.1.2 World Wide Web
Menurut Turban et al. (2003, p214), World Wide Web adalah sebuah sistem
dengan standar yang diterima secara universal untuk penyimpanan (storing),
pengambilan kembali (retrieving), penyusunan struktur (formating), dan penampilan
(displaying) informasi menggunakan arsitektur client/server.
Sementara menurut Raggett (1999), World Wide Web adalah sebuah jaringan
sumber-sumber daya informasi. World Wide Web bergantung pada tiga mekanisme
7
untuk membuat sumber daya tersebut siap tersedia kepada sebanyak mungkin audien:
(1) skema penamaan seragam untuk menempatkan sumber daya di Web (contoh URI),
(2) protokol untuk mengakses sumber daya di Web (contoh HTTP), dan (3) hypertext
untuk memudahkan navigasi antarsumber daya (contoh HTML).
World Wide Web, atau yang sering disebut juga dengan Web, WWW, ataupun
W3, tidak sama dengan Internet. Internet berfungsi sebagai mekanisme transportasi,
sementara Web adalah salah satu aplikasi yang menggunakan fungsi transpor tersebut
(Turban et al, 2003, p213).
a. HyperText Markup Language (HTML)
Web didasarkan pada sebuah bahasa hypertext standar dengan nama Hypertext
Markup Language (HTML). HTML ini akan menyusun struktur dokumen dan
memberikan dokumen tersebut suatu dynamic hypertext link ke dokumen lainnya, baik
yang disimpan dalam komputer yang sama maupun di komputer berbeda. Menggunakan
hypertext link ini (umumnya berwarna biru, dicetak tebal, dan diberi garis), pengguna
dapat mengklik link tersebut dan selanjutnya akan ditranspor ke dokumen lain (Turban
et al, 2003, p214).
Raggett (1999) menjelaskan istilah HTML ini sebagai bahasa publikasi universal
yang digunakan oleh Web dan umumnya dimengerti oleh semua komputer.
b. Uniform Resource Locator (URL)
Untuk mengakses sebuah situs Web, seorang pengguna harus menspesifikasikan
Uniform Resource Locator (URL) yang menunjuk pada sebuah alamat khusus di Web.
8
Sebagai contoh, http://www.microsoft.com merupakan sebuah URL yang menunjuk pada
situs Web Microsoft (Turban et al, 2003, p214).
Raggett (2009) lebih tertarik menyebut URL ini dalam sebutan yang lebih
umum, URI (Universal Resource Identifier). Ia menyadari kebanyakan orang lebih
familiar dengan istilah URL daripada istilah URI, namun menurutnya, URL adalah
subhimpunan dari skema penamaan URI yang lebih umum.
c. Hypertext Transport Protocol (HTTP)
Kalau dilihat pada contoh URL di atas (http://www.microsoft.com), ada kata-kata
HTTP. HTTP ini merupakan singkatan dari Hypertext Transport Protocol yang menjadi
standar komunikasi dalam pentransferan halaman-halaman/dokumen Web melalui
Internet. HTTP menentukan bagaimana sebuah pesan disusun dan ditransmisikan, serta
aksi apa yang harus dilakukan oleh Web server (tempat menyimpan situs Web) dan
browser (aplikasi piranti lunak untuk mengakses Web) dalam merespon berbagai
perintah (Turban et al, 2003, p214).
2.1.1.3 Server-side Scripting
Server-side scripting adalah tentang “memprogram” perilaku server. Biasanya
ketika sebuah browser meminta sebuah file HTML, server akan memberikan file
tersebut, tapi jika file mengandung sebuah server-side script, script yang ada di dalam
file HTML tersebut akan dieksekusi oleh server terlebih dahulu, baru file diberikan
kepada browser sebagai plain HTML
(http://www.w3schools.com/web/web_scripting.asp).
9
2.1.1.4 Client-side Scripting
Client-side scripting adalah tentang “memprogram” perilaku dari browser.
Terkadang client-side scripting juga disebut dengan istilah browser scripting
(http://www.w3schools.com/Web/web_javascript.asp).
a. Asynchronous JavaScript and XML (AJAX)
AJAX merupakan singkatan dari Asynchronous JavaScript and XML.
Sebenarnya AJAX sendiri bukanlah sebuah teknologi, AJAX hanya menggabungkan
teknik-teknik pemrograman yang sudah diketahui secara umum namun dengan cara
yang tidak biasa.
Ketika sedang menggunakan aplikasi-aplikasi desktop, diharapkan hasil dari
pekerjaan yang sudah dibuat dapat segera muncul, tanpa harus menunggu layar (screen)
di-redraw kembali oleh program. Semisal ketika sedang menggunakan sebuah aplikasi
spreedsheet seperti Excel, diharapkan apa yang diketikkan dalam suatu cell dapat
langsung muncul ketika fokus berpindah ke cell tetangga. AJAX memungkinkan
aplikasi Web agar dapat bekerja seperti ini (Ballard, 2006, pp1-2).
2.1.1.5 Style Sheets
Style sheet mendeskripsikan bagaimana dokumen-dokumen ditampilkan pada
layar, atau mungkin bisa juga untuk bagaimana mereka dilafalkan. W3C telah dengan
sangat aktif mempromosikan penggunaan style sheet dalam Web semenjak Consortium
didirikan pada tahun 1994.
Dengan menempelkan style sheet dalam struktur dokumen Web (contoh HTML),
baik yang membuat maupun yang membaca dapat mengubah presentasi dari dokumen-
10
dokumen tanpa mengorbankan independensi device ataupun menambahkan tag-tag baru
HTML (http://www.w3.org/Style/).
a. Cascading Style Sheets (CSS)
CSS pertama kali diciptakan oleh Håkon Wium Lie dan Bert Bos, mereka
merupakan tim teknisi komputer yang juga menciptakan World Wide Web, yang
sekarang dikenal sebagai WWW, pada tahun 1991. CSS merupakan sebuah mekanisme
yang diimplementasikan di dalam tag dari sebuah pemrograman Web (seperti HTML)
yang digunakan untuk memodifikasi isi dari halaman Web sehingga menghasilkan
tampilan yang berbeda dengan tampilan HTML biasa, singkatnya bila kita memakai tag
biasa seperti <p> akan menghasilkan tulisan biasa, sedangkan bila kita menggunakan
CSS, maka kita bisa mengubah tampilannya baik warna, tipe font, bahkan ukuran font
dari penggunaan tag <p>.
W3C (World Wide Web Consortium) yang juga merupakan hasil karya dari
Håkon Wium Lie dan Bert Bos, mengelompokkan CSS berdasarkan dua jenis yakni
CSS1 dan CSS2, di mana CSS2 merupakan hasil dari pengembangan CSS1 yang
memiliki semua fitur dari CSS1. CSS2 diperkenalkan pada bulan Mei 1998. CSS2
memiliki sekitar 70 properti (termasuk properti untuk sound dan page break) sedangkan
CSS1 hanya memiliki sekitar 50 properti saja.
Hal-hal yang dapat dilakukan dalam merancang tampilan halaman Web dengan
menggunakan CSS, antara lain:
- Menetapkan besarnya font.
- Menambahkan indentasi pada sebuah teks.
- Mengatur margin dan padding pada halaman Web.
11
- Menambahkan elemen-elemen lain pada halaman Web, seperti border
disekitar teks.
- Dapat menggunakan pengukuran seperti senti meter, piksel, persen, atau em
pada ukuran dari teks, tabel, atau button.
- Membuat style yang berbeda untuk satu halaman Web atau beberapa
halaman Web.
- Mengubah struktur atau style dari tag biasa yang terdapat pada halaman
Web.
- Mengatur dengan tepat penggunaan gambar background yang ditampilkan
dan apakah gambar tersebut perlu diulang secara horisontal atau vertikal
ataupun tidak perlu diulang.
- Mengubah jarak antarkarakter dalam suatu kata, bahkan dapat mengubah
jarak spasi antar kalimat (Schengili, 2000, pp5-9).
2.1.1.6 Really Simple Syndication (RSS)
RSS digunakan untuk menyediakan content syndication feed: sebuah file
konsisten dan dapat dibaca oleh mesin yang memungkinkan situs Web membagikan
konten mereka kepada aplikasi-aplikasi lainnya dengan cara standar. Sebenarnya, RSS
ini dahulu digunakan untuk membagikan data antarsitus Web, tapi sekarang lebih umum
untuk digunakan antara suatu situs dan sebuah aplikasi desktop bernama RSS reader
(Hammersley, 2005, p1).
Istilah RSS sendiri memiliki kepanjangan yang bermacam-macam. Pada RSS
versi 0.91, RSS merupakan singkatan dari Rich Site Summary. RSS juga disebut-sebut
sebagai kependekan dari RDF Site Summary ketika RSS dalam versi 0.9 dan 1.0.
12
Sekarang, RSS 2.0, disebut-sebut sebagai kependekan dari Really Simple Syndication
(http://id.wikipedia.org/wiki/RSS).
2.1.1.7 Rich Internet Application (RIA)
Rich Internet Application (RIA) merupakan aplikasi yang meyediakan
kehandalan dan fungsi layaknya aplikasi desktop. RIA dapat dijalankan baik pada
desktop maupun browser, yang tentunya tetap harus dapat terhubung pada internet.
Untuk menggunakan RIA yang berjalan pada browser, pengguna tidak perlu melakukan
instalasi piranti lunak khusus
(http://www.adobe.com/resources/business/rich_internet_apps/).
Adapun keuntungan dari RIA khususnya yang berjalan pada browser:
- Lebih banyak menjangkau pengguna, karena untuk menggunakan RIA, tidak
dibutuhkan persyaratan-persyaratan khusus (hanya dibutuhkan komputer
dengan browser yang tehubung Internet).
- Lebih responsif. Berbeda dengan aplikasi Web konvensional yang me-reload
halaman secara keseluruhan ketika terjadi suatu aksi/event (contohnya :
ketika suatu tombol/link ditekan) dari pengguna, RIA hanya meng-update
bagian-bagian tertentu, sehingga pengguna dapat lebih cepat mendapatkan
informasi yang dibutuhkan.
- Menurunkan harga yang harus dibayar. Ketika pengguna melakukan aksi
dengan menekan tombol/link, permintaan tersebut akan dikirimkan ke server
untuk diproses, kemudian server memberikan hasil yang ditampilkan pada
sisi klien (client side). Ketika hasil permintaan diberikan kepada pengguna,
ada harga yang harus dibayar sesuai kapasitas/besar halaman yang
13
ditampilkan. Pada Web konvensional tentunya halaman yang ditampilkan
akan membutuhkan kapasitas yang lebih besar dibandingkan Web yang
mengacu pada RIA, hal ini disebabkan RIA hanya me-reload bagian-bagian
yang berubah saja, sehingga harga yang harus dibayarpun menjadi lebih
murah (http://www.inowweb.com/web-design/rich-internet-applications-ria).
2.1.1.8 Message Digest 5 (MD5)
MD-5 (Message Digest 5) merupakan fungsi hash satu arah yang diciptakan oleh
Ron Rivest. MD-5 adalah salah satu aplikasi yang digunakan untuk mengetahui bahwa
pesan yang dikirim tidak mengalami perubahan sewaktu berada di jaringan.
Algoritma MD-5 secara garis besar mengambil pesan yang mempunyai panjang
tidak tetap diubah menjadi 'sidik jari' atau 'intisari pesan' yang mempunyai panjang tetap
yaitu 128 bit. 'Sidik jari' ini tidak dapat dibalik untuk mendapatkan pesan, dengan kata
lain tidak ada orang yang dapat melihat pesan dari 'sidik jari' MD-5 (Sofwan et al., 2006,
p.22).
McGlinn (2005) berpendapat bahwa hashing password (sidik jari digital)
merupakan cara untuk mengenkripsi sebuah password sebelum disimpan ke dalam basis
data sehingga apabila basis data jatuh ke tangan yang salah, kerusakannya dapat
dibatasi. Ada beberapa algoritma hashing yang kuat, salah satu yang sering dijumpai
adalah MD5.
2.1.1.9 CAPTCHA
CAPTCHA, singkatan dari Completely Automated Public Turing Test to Tell
Computers and Humans Apart, adalah sebuah program yang melindungi berbagai situs
14
Web dari bots (Web robots) dengan cara membangkitkan dan menilai tes yang dapat
dikerjakan oleh manusia tapi tidak dapat dikerjakan oleh program komputer masa
sekarang. Sebagai contoh, manusia dapat membaca teks yang meliuk-liuk tapi tidak bagi
program komputer (http://www.captcha.net).
CAPTCHA sudah merupakan hal yang wajar di Web. Luis von Ahn, asisten
profesor di Carnegie Mellon yang turut ambil bagian dalam tim pengembangan
CAPTCHA, memperkirakan orang-orang mengisi hampir 200 juta CAPTCHA setiap
harinya (Grossman, 2008).
2.1.2 Teori-teori Interaksi Manusia dan Komputer
2.1.2.1 Delapan Aturan Emas
Menurut Shneiderman (1998, pp.74-75), ada delapan aturan emas untuk
perancangan antarmuka pengguna:
1. Berusaha untuk konsisten.
Terminologi identik harus digunakan pada menu, tampilan bantuan, dan
prompt. Harus diperhatikan konsistensi warna, layout, kapitalisasi, font, dan
berbagai hal lainnya.
2. Memungkinkan beberapa pengguna untuk menggunakan shortcut.
Waktu respon yang cepat dan rata-rata tampilan yang cepat menjadi daya
tarik tersendiri bagi para pengguna yang sering menggunakan aplikasi.
Gunakan singkatan, key khusus, perintah tersembunyi, dan fasilitas makro.
3. Menyajikan umpan balik yang informatif.
Untuk setiap aksi dari pengguna, harus ada umpan balik dari sistem.
15
4. Merancang dialog yang memberikan penutupan.
Memberikan umpan balik yang informatif saat sekumpulan aksi selesai
dilakukan dapat memberikan operator kepuasan, perasaan aman, dan
menjadi sinyal untuk membuang rencana cadangan mereka.
5. Memberikan pencegahan kesalahan dan penanganan kesalahan yang
sederhana.
Sebisa mungkin, rancang sistem yang membuat pengguna tidak dapat
melakukan sebuah kesalahan serius.
6. Memungkinkan pembalikan aksi yang mudah.
Sebisa mungkin, aksi harus dapat dibalikkan.
7. Mendukung pusat kendali internal (internal locus of control).
Operator berpengalaman sangat menginginkan perasaan mereka berkuasa
terhadap sistem dan sistem merespon aksi-aksi mereka.
8. Mengurangi beban ingatan jangka pendek.
Batasan manusia memproses informasi dalam ingatan jangka pendek
membutuhkan tampilan yang dibuat sesederhana mungkin.
2.1.2.2 Lima Faktor Manusia Terukur
Menurut Shneiderman (1998, p.15), ada lima faktor manusia terukur yang harus
mendapat perhatian penting saat evaluasi:
1. Waktu pembelajaran (time to learn)
Berapa lama waktu yang dibutuhkan member dari komunitas pengguna
untuk mempelajari bagaimana cara menggunakan perintah-perintah yang
relevan terhadap sekumpulan tugas-tugas?
16
2. Kecepatan performa (speed of performance)
Berapa lama waktu dibutuhkan untuk mengerjakan tugas yang sedang
diukur?
3. Rata-rata kesalahan oleh para pengguna (rate of errors by users)
Berapa banyak dan kesalahan jenis apa yang dibuat orang ketika
mengerjakan tugas-tugas yang sedang diukur?
4. Ingatan jangka panjang (retention over time)
Seberapa baik pengguna mempertahankan pengetahuannya setelah sejam,
sehari, atau seminggu?
5. Kepuasan subjektif (subjective satisfaction)
Seberapa jauh pengguna menyukai berbagai aspek dari sistem?
2.1.2.3 Storyboard
Storyboard dapat dikatakan sebagai sebuah prototipe dengan notasi paling
sederhana. Storyboard merupakan penjelasan grafis sebuah tampilan muka dari suatu
bakal sistem tanpa menyertakan fungsional dari sistem.
Mengevaluasi customer ataupun pengguna terhadap storyboard dapat dengan
cepat menentukan apakah perancangan berada dalam jalur yang tepat (Dix et al., 1998,
p208).
2.1.3 Teori-teori Rekayasa Piranti Lunak
2.1.3.1 Software Process
Dalam mengembangkan sebuah produk atau sistem, adalah sangat penting untuk
melakukannya dalam suatu tahapan-tahapan yang terprediksi. Tahapan-tahapan ini
17
menjadi sebuah peta jalan guna mencapai hasil dengan kualitas tinggi dan tepat waktu.
Software process adalah peta jalan tersebut (Pressman, 2005, p52).
a. Process Framework
Ketika software process dijalankan dalam pembuatan proyek-proyek
pengembangan piranti lunak, ditemui sejumlah kesamaan tahapan yang kemudian
dijadikan kerangka kerja atau disebut dengan istilah process framework. Secara umum,
process framework terdiri atas 5 tahapan, yaitu komunikasi, perencanaan, pemodelan,
pembangunan, dan pen-deploy-an.
Dalam tahapan komunikasi, terjadi proses komunikasi dan kerja sama yang
sangat intensif dengan customer dan para stakeholder lainnya. Requirement gathering
terjadi pada tahap ini.
Selanjutnya, dalam tahap perencanaan dibuat sebuah rencana yang menjelaskan
mengenai tugas-tugas teknis yang akan dilakukan, resiko-resiko yang mungkin tejadi,
sumber daya yang dibutuhkan, produk hasil kerja yang akan dihasilkan, dan jadwal
pengerjaannya.
Tahapan pemodelan menciptakan model-model analisis requirement dan
perancangan yang membuat baik pihak pengembang maupun customer mengerti dengan
lebih baik terhadap requirement dan desain dari piranti lunak yang akan dikembangkan.
Lebih jauh mengenai pemodelan, tahapan ini terdiri atas dua aktivitas, yaitu analisis dan
perancangan.
Selanjutnya, tahapan masuk kepada tahap pengkonstruksian yang melingkupi
code generation dan pengujian yang dibutuhkan untuk menemukan kesalahan-kesalahan
dalam kode.
18
Apabila sudah selesai, baik seluruhnya maupun sebagian, piranti lunak diberikan
kepada customer yang kemudian akan mengevaluasinya dan memberikan umpan balik
berdasarkan hasil evaluasi tersebut (Pressman, 2005, pp54-57).
b. Waterfall Process Model
Process model sebagai bagian yang lebih khusus dari process framework dan
bersifat adaptif terdiri atas berbagai macam jenis, salah satunya adalah waterfall process
model.
Waterfall model bersifat linier, sistematis, dan sequential dengan tahapan-
tahapan mengacu pada process framework sehingga terdiri atas 5 tahapan seperti dalam
process framework. Waterfall model atau yang sering juga disebut sebagai classic life
cycle sangat tepat digunakan untuk proyek-proyek yang sudah sangat jelas requirement-
nya (Pressman, 2005, p79).
Gambar 2.1 Waterfall Model
(Sumber: Pressman, 2005, p79)
2.1.3.2 Framework
Framework adalah sebuah sistem peranti lunak yang terutama dirancang untuk
dapat digunakan kembali pada berbagai macam proyek yang berbeda-beda, atau pada
Communication project initiation requirements gathering
Planning estimating scheduling tracking
Modeling analysis design
Construction code test
Deployment delivery support feedback
19
berbagai macam produk dari sebuah product line. (Lethbridge dan Laganière, 2002,
pp14-15)
Framework juga dapat diartikan sebagai teknologi reusable dari sistem piranti
lunak yang dapat diimplementasikan/dipergunakan pada berbagai macam aplikasi.
(Lethbridge dan Laganière, 2002, p61)
a. Model-View-Controller Architectural Pattern
Model-View-Controller, atau MVC, adalah sebuah pola arsitektur yang berguna
untuk membantu memisahkan layer antarmuka pengguna dari bagian-bagian lain sistem.
MVC tidak hanya membuat layer antarmuka pengguna menjadi koheren, tapi juga
membantu mengurangi kopling antara layer antarmuka pengguna dari sistem.
Gambar 2.2 MVC Architectural Pattern
(Sumber: Lethbridge dan Laganière, 2002, p.338)
Pola MVC memisahkan layer fungsional sistem (model) dari dua aspek
antarmuka pengguna, view dan controller. Model mengandung berbagai class yang
20
instance-nya dapat dilihat ataupun dimanipulasi. View mengandung objek-objek yang
berguna untuk me-render tampilan data dari model pada antarmuka pengguna.
Sementara controller mengandung objek-objek yang mengontrol dan mengatur interaksi
pengguna dengan view dan model. Ia mengandung logic yang merespon ketika penguna
menuliskan sesuatu pada sebuah field atau mengklik mouse pada sebuah kontrol
(Lethbridge dan Laganière, 2002, pp.337-338).
2.1.3.3 Unified Modeling Language (UML)
OMG (Object Management Group), dalam situs resminya (http://www.uml.org),
mendefinisikan UML (Unified Modeling Language) secara umum sebagai sebuah
spesifikasi dari OMG yang paling banyak digunakan dan merupakan suatu cara
memodelkan tidak hanya struktur aplikasi, perilaku, dan arsitektur, tetapi juga proses
bisnis dan struktur data.
Sementara menurut Lethbridge dan Laganière (2002, p151), UML adalah sebuah
bahasa grafis standar yang dibangun secara kolaboratif untuk memodelkan piranti lunak
berorientasikan objek. UML bukanlah sebuah metodologi karena UML tidak
mendeskripsikan urut-urutan langkah untuk melakukan sesuatu. Sebaliknya, UML
adalah bahasa pemodelan yang digunakan untuk menciptakan model visual dari sistem
piranti lunak.
Booch et al. sendiri dalam bukunya yang berjudul The Unified Modeling
Language User Guide (2005, p13), menuliskan bahwa UML adalah sebuah bahasa
standar untuk menulis cetak biru dari piranti lunak. UML dapat digunakan untuk
memvisualisasikan, menspesifikasikan, membangun, dan mendokumentasikan artefak-
artefak dari sebuah sistem piranti lunak intensif. UML cocok untuk memodelkan
21
berbagai sistem dari sistem informasi enterprise hingga aplikasi berbasis Web
terdistribusi, bahkan juga untuk real time embedded system.
Ada banyak jenis diagram UML beserta konsep-konsep di dalamnya, namun
Dharwiyanti dan Wahono (2006, p3) merangkumnya ke dalam tabel berikut.
Tabel 2.1 Rangkuman Konsep Dasar UML
Major Area View Diagrams Main Concepts
structural static view class diagram class, association, generalization, dependency, realization, interface
use case view use case diagram use case, actor, association, extend, include, use case generalization
implementation view
component diagram
component, interface, dependency, realization
deployment view
deployment diagram
node, component, dependency, location
dynamic state machine view
statechart diagram state, event, transition, action
activity view activity diagram state, activity, completion transition, fork, join
interaction view sequence diagram interaction,object, message, activation
collaboration diagram
collaboration, interaction, collaboration role, message
model management
model management view
class diagram package, subsystem, model
extensibility all all constraint, stereotype, tagged values
(Sumber: Dharwiyanti dan Wahono, 2006, p3)
Dengan demikian, UML mencakup use case diagram, class diagram, statechart
diagram, activity diagram, sequence diagram, collaboration diagram, component
diagram, dan deployment diagram. Berikut adalah penjelasan singkatnya, masih
menurut Dharwiyanti dan Wahono (2006, pp4-11).
22
- Use case diagram
Use case diagram menggambarkan fungsionalitas yang diharapkan dari
sebuah sistem. Yang ditekankan adalah “apa” yang dibuat sistem dan bukan
“bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara
aktor dengan sistem. Seorang/sebuah aktor adalah sebuah entitas manusia
atau mesin yang berinterkasi dengan sistem untuk melakukan pekerjaan-
pekerjaan tertentu.
- Class diagram
Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan
sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi
objek. Class menggambarkan keadaan (atribut/properti) suatu sistem,
sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut
(metode/fungsi).
Class diagram menggambarkan struktur dan deskripsi class, package, dan
objek beserta hubungan satu sama lain seperti containment, pewarisan,
asosiasi, dan lain-lain.
- Statechart diagram
Statechart diagram menggambarkan transisi dan perubahan keadaan (dari
satu state ke state lainnya) suatu objek pada sistem sebagai akibat dari
stimulus-stimulus yang diterima. Pada umumnya statechart diagram
menggambarkan class tertentu (satu class dapat memiliki lebih dari satu
statechart diagram).
23
- Activity diagram
Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang
sedang dirancang, bagaimana masing-masing alir berawal, keputusan yang
mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga
dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa
eksekusi.
- Sequence diagram
Sequence diagram menggambarkan interaksi antarobjek di dalam dan di
sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message
yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi
vertikal (waktu) dan dimensi horisontal (objek-objek yang terkait).
- Collaboration diagram
Collaboration diagram juga menggambarkan interaksi antarobjek seperti
sequence diagram, tetapi lebih menekankan pada peran masing-masing
objek dan bukan pada waktu penyampaian message. Setiap message
memiliki sequence number, di mana message dari level tertinggi memiliki
nomor 1. Message dari level yang sama memiliki prefiks yang sama.
- Component diagram
Component diagram menggambarkan struktur dan hubungan antarkomponen
piranti lunak, termasuk ketergantungan (dependency) di antaranya.
24
- Deployment diagram
Deployment diagram menggambarkan detail bagaimana komponen di-
deploy dalam infrastruktur sistem, di mana komponen akan terletak (pada
mesin, server, atau piranti keras apa), bagaimana kemampuan jaringan pada
lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisikal.
2.1.4 Teori-teori Sistem Basis Data
2.1.4.1 Basis Data
Menurut Connolly dan Begg (2005, p15), basis data adalah suatu koleksi
bersama data-data yang saling terkait secara logis, dan juga merupakan pendeskripsian
dari data-data tersebut, yang dirancang untuk menyajikan informasi yang dibutuhkan
oleh sebuah organisasi.
Dalam basis data, terdapat tiga istilah penting, yakni entitas, atribut, dan
relationship. Entitas adalah sebuah objek berbeda (bisa seseorang, tempat, sesuatu,
konsep, ataupun kejadian) dalam organisasi yang harus direpresentasikan dalam basis
data. Atribut adalah sebuah properti yang mendeskripsikan beberapa aspek dari objek
yang ingin di-record. Relationship adalah sebuah asosiasi antarentitas (Connolly dan
Begg, 2005, p15).
2.1.4.2 Database Management System (DBMS)
Menurut Connolly dan Begg (2005, p16), DBMS adalah sebuah sistem piranti
lunak yang memungkinkan pengguna untuk mendefinisikan, membuat, merawat, dan
mengendalikan akses ke basis data.
25
DBMS menyediakan berbagai fasilitas, yaitu:
- DBMS memungkinkan pengguna untuk mendefinisikan basis data, biasanya
dengan menggunakan sebuah bahasa pendefinisi data (Data Definition
Language) atau sering disebut dengan singkatannya, DDL. DDL
memungkinkan pengguna untuk menspesifikasikan tipe-tipe dan struktur
data, serta constraint terhadap data yang akan disimpan ke dalam basis data.
- DBMS memungkinkan pengguna untuk menambah (insert), mengubah
(update), menghapus (delete), dan mengambil kembali (retrieve) data dari
basis data, biasanya menggunakan sebuah bahasa pemanipulasi data (Data
Manipulation Language), DML.
- DBMS menyediakan akses terkontrol ke basis data. Beberapa contohnya
adalah sistem keamanan yang mencegah pengguna tanpa otoritas mengakses
basis data, sistem integritas yang merawat konsistensi data yang tersimpan,
sistem kontrol concurrency yang memungkinkan akses bersama ke basis
data, sistem kontrol recovery yang mengembalikan basis data ke kondisi
konsisten sebelumnya yang biasanya disebabkan kegagalan piranti lunak
ataupun keras, dan sebuah user-accessible catalog yang mengandung
penjelasan-penjelasan dari data-data di basis data (Connolly dan Begg, 2005,
pp16-17).
2.1.4.3 Entity Relationship Diagram (ERD)
Untuk memastikan bahwa pemahaman akan sifat alami data dan bagaimana data
itu dipergunakan oleh sebuah enterprise sudah tepat, maka perlu sebuah model untuk
mengkomunikasikannya secara non-teknis dan bebas dari ambiguitas. Entity
26
Relationship (ER) Model adalah salah satu contohnya. Pemodelan ER adalah sebuah
pendekatan top-down untuk perancangan basis data yang dimulai dengan
mengidentifikasikan data penting yang disebut entitas (entities) dan relationships
antardata yang harus direpresentasikan dalam sebuah model. Kemudian ditambahkan
detail seperti atribut-atribut dan constrain-constrain dari entitas, relationships, dan
atribut. ERD menjadi model dari pemodelan ER ini (Connolly dan Begg, 2005, p342).
2.2 Teori-teori Khusus
Dalam penyusunan skripsi ini, juga digunakan teori-teori yang secara khusus
membahas mengenai e-book dan e-book reader. Berikut adalah teori-teori tersebut.
2.2.1 E-book
Electronic book atau yang lebih sering dikenal dengan e-book adalah tulisan
yang berada di media digital yang setara dengan buku konvensional. E-book biasanya
dibaca melalui peralatan atau piranti lunak tertentu, yang disebut dengan E-book Reader
(James, 2009).
Istilah e-book ini mulai populer sejak munculnya Project Gutenberg. Project
Gutenberg disebut-sebut sebagai koleksi pertama dan terbesar dari berbagai buku
elektronik, atau e-book, gratis. Michael Hart, pendiri dari Project Gutenberg mulai
mengembangkan berbagai e-book pada tahun 1971 dan terus menginspirasi
pembentukan berbagai e-book dan berbagai teknologi yang berhubungan dengan itu
hingga hari ini (http://www.gutenberg.org/wiki/Gutenberg:About).
27
2.2.2 E-book Reader
E-book reader adalah sebuah media yang berguna untuk menampilkan e-book,
agar pembaca seolah-olah sedang membaca sebuah buku.
E-book reader dapat digolongkan ke dalam 2 jenis berdasarkan wujudnya, yaitu
e-book reader device dan e-book reader software.
E-book reader device adalah sebuah alat elektronik khusus yang berperan
sebagai media fisik dalam membaca e-book, sebagai contoh yang mempopulerkan e-
book reader pertama kali adalah Kindle, yang dibuat oleh Amazon
(http://www.amazon.com). Sedangkan e-book reader software adalah sebuah aplikasi
yang ditanamkan pada sebuah device untuk membaca e-book tersebut, contohnya adalah
Adobe Acrobat Reader pada desktop dan Google Books yang berjalan pada Web
(http://www.adobe.com/products/acrobat).
2.2.3 Dewey Decimal Classification (DDC)
Dalam ilmu kepustakaan, Dewey Decimal Classification (DDC) merupakan
klasifikasi ciptaan abad ke-19 yang dibuat atas prinsip taksonomis dan hirarkhis (Basuki,
1991, p399).
DDC terdiri atas sembilan kelas utama ditambah satu kelas generalia sehingga
terdapat 10 kelas utama. Setiap kelas utama dibagi lagi menjadi subkelas, kemudian
dibagi lagi pada tahap berikutnya. Kelas utama yang dimaksud adalah (1) Karya umum
dengan kode 000, (2) Filsafat dan disiplin berkaitan dengan kode 100, (3) Agama
dengan kode 200, (4) Ilmu-ilmu sosial dengan kode 300, (5) Bahasa dengan kode 400,
(6) Ilmu-ilmu Murni dengan kode 500, (7) Teknologi (ilmu-ilmu terapan) dengan kode
28
600, (8) Kesenian dengan kode 700, (9) Sastra dengan kode 800, dan (10) Geografi
umum dan sejarah serta cabangnya dengan kode 900 (Basuki, 1991, pp407-408).
Belakangan, seiring dengan semakin maraknya literatur-literatur di bidang
komputer, maka kategori ilmu komputer dimasukkan dengan menggabungkannya
bersama karya umum (kode 000) (http://www.oclc.org/dewey/resources/summaries/).
2.2.4 PHP: Hypertext Preprocessor (PHP)
PHP (PHP: Hypertext Preprocessor) adalah sebuah general-purpose scripting
language bersifat open source yang banyak digunakan khususnya dalam pengembangan
Web dan dapat diintegrasikan dengan HTML. Sintaksnya mirip dengan bahasa C, Java,
dan Perl sehingga mudah untuk dipelajari. Tujuan utama dari bahasa ini adalah untuk
memungkinkan para pengembang Web dalam menulis halaman-halaman Web dinamis
(Achour et al., 2009).
Sklar (2004, pp4-6) dalam bukunya Learning PHP 5 memberikan pendapat
mengenai keunggulan dari bahasa server-side scripting PHP ini yang adalah sebagai
berikut.
- PHP tidak berbayar
- PHP bersifat open source
- PHP bersifat cross-platform
- PHP banyak digunakan
- PHP menyembunyikan kompleksitasnya
- PHP dibuat untuk pemrograman Web
29
Zandstra (2003, p10) berpendapat bahwa pada kebanyakan proyek, PHP dapat
secara signifikan mempercepat proses produksi dibandingkan dengan bahasa scripting
yang lain.
2.2.4.1 CodeIgniter
CodeIgniter adalah sebuah framework PHP open source sederhana dan elegan
yang pengembangannya difokuskan kepada kinerja dalam kondisi nyata dan bertujuan
untuk pengembangan aplikasi web dengan lebih cepat dibandingkan jika harus menulis
source code dari awal (http://www.codeigniter.com; CodeIgniter User Guide versi
1.7.2).
Dalam CodeIgniter User Guide versi 1.7.2, CodeIgniter dituliskan sebagai
framework yang tidak membutuhkan banyak sumber daya dan diklaim sebagai
framework PHP tercepat. Framework ini menggunakan pendekatan MVC (Model-View-
Controller) di mana business logic dan presentation dipisahkan secara jelas sehingga
desainer dan programmer dapat bekerja secara terpisah dalam pengembangan sebuah
proyek.
Gambar 2.3 Diagram Aliran Data pada CodeIgniter
(Sumber: CodeIgniter User Guide versi 1.7.2)
30
Aliran data pada sistem yang menggunakan framework CodeIgniter, seperti yang
tampak pada Gambar 2.3 di atas, dijelaskan pada CodeIgniter User Guide versi 1.7.2
dalam poin-poin sebagai berikut.
a. index.php bertindak sebagai front controller yang fungsinya untuk
menginisialisasi sumber-sumber daya utama yang diperlukan untuk
menjalankan CodeIgniter.
b. Router memeriksa HTTP request untuk menentukan apa yang harus
dilakukan.
c. Jika terdapat cache file, request akan dikirim secara langsung kepada
browser, melompati eksekusi sistem secara normal.
d. Sebelum controller aplikasi di-load, HTTP request dan setiap data yang di-
submit pengguna akan disaring untuk keamanan.
e. Controller menge-load models, core libraries, plugins, helpers, dan sumber-
sumber daya lainnya yang dibutuhkan untuk memproses request khusus.
f. View akhir di-render kemudian dikirim kepada web browser untuk
ditampilkan. Jika caching diaktifkan, view akan di-cached terlebih dahulu
sehingga untuk request-request selanjutnya pelayanan dapat tersedia.
2.2.5 JavaScript
W3Schools (http://www.w3schools.com/Web/web_javascript.asp)
mendefinisikan JavaScript dengan poin-poin, yakni: (1) JavaScript adalah sebuah bahasa
scripting, (2) Sebuah bahasa scripting adalah bahasa pemrograman yang ringan, (3)
JavaScript terdiri atas baris-baris kode komputer yang dapat segera dieksekusi, (4)
JavaScript biasanya di-embed secara langsung ke dalam halaman-halaman HTML, (5)
31
JavaScript dirancang untuk menambah interaktif halaman-halaman HTML, dan (6)
Siapa saja dapat menggunakan JavaScript tanpa harus membayar lisensi.
Javascript digunakan pada jutaan halaman Web untuk meningkatkan desain,
memvalidasi form, mendeteksi browser, membuat cookie, dan banyak lagi. JavaScript
menjadi bahasa scripting paling populer di Internet dan dapat bekerja pada semua
browser umum.
2.2.5.1 jQuery
jQuery adalah sebuah JavaScript jenis baru yang cepat dan ringkas. jQuery
menyederhanakan HTML document traversing, event handling, animation, dan interaksi
AJAX untuk rapid web development (http://www.jquery.com).
2.2.5.2 jQuery UI
jQuery UI adalah sebuah widget dan interaction library yang dikembangkan di
atas perpustakaan JavaScript jQuery yang dapat digunakan untuk mengembangkan
aplikasi Web yang sangat interaktif (Dokumentasi Online jQuery UI).
jQuery UI merupakan salah satu plugin utama siap pakai hasil dari implementasi
jQuery. Selain jQuery UI, juga ada berbagai plugin buatan pihak ketiga seperti
mb.scrollable yang memungkinkan objek-objek untuk diakses secara auto scrollable
maupun manual scrollable baik horisontal maupun vertikal, dan jQuery qtip sebagai
alternatif tooltip yang lebih powerfull dibandingkan dengan bawaan HTML.
32
2.2.6 Blueprint
Blueprint adalah sebuah kerangka kerja (framework) yang digunakan untuk CSS
yang bertujuan agar memudahkan dan mempercepat para pengembang dalam
membangun dan mengembangkan sebuah desain halaman Web.
Biasanya pengembang yang satu dengan pengembang yang lainnya pasti
memiliki perbedaan dalam hal mendesain sebuah halaman Web. Para pengembang harus
menuliskan kode CSS mereka masing-masing dengan gaya bahasa dan struktur
programming mereka masing-masing yang pastinya berbeda satu dengan yang lainnya.
Oleh karena itu, diciptakanlah suatu kerangka kerja yang berguna untuk mempermudah
pengembang dalam membangun sebuah desain halaman Web dengan “standarisasi” CSS
dari blueprint framework ini, sehingga dalam mengatur tata letak objek dalam sebuah
halaman Web, mereka dapat seragam dengan menggunakan blueprint antara
pengembang yang satu dengan yang lainnya (http://www.blueprintcss.org).
2.2.7 Flex
Flex merupakan open source framework untuk membuat dan mengembangkan
sebuah aplikasi Web yang mengacu pada RIA dan dapat berjalan baik di browser
maupun di desktop. RIA yang dibuat dengan Flex dapat berjalan di browser hanya
dengan menggunakan Adobe Flash Player, sedangkan pada desktop hanya dibutuhkan
Adobe AIR, sehingga RIA juga bersifat cross-platform (lintas platform) yang tidak
tergantung pada sistem operasi apa yang digunakan oleh pengguna. Adobe Flash Player
dan Adobe AIR dapat di-download secara gratis dari Adobe.com, hal ini semakin
meminimalisir kendala pengguna dalam menggunakan aplikasi Flex
(http://www.adobe.com/products/flex/overview/).
33
Pada awalnya, Flex dirilis oleh Macromedia pada Maret 2004, kemudian Adobe
mengambil alih Flex pada tahun 2005. April 2007 Adobe merilis Flex versi beta dan
akhirnya pada Februari 2008 Flex 3 SDK (Software Development Kit) diluncurkan.
Rencananya pada tahun 2010, Adobe akan mengeluarkan Flex 4.0 dengan nama Gumbo
yang nantinya dibuat menggunakan tool Adobe Flash Builder
(http://opensource.adobe.com/wiki/display/flexsdk).
2.2.7.1 Flex Framework
Framework (kerangka kerja) pada Flex menyediakan declarative language,
application services, komponen, dan konektivitas data yang dapat dibuat dengan cepat.
1. Language /bahasa yang digunakan
Bahasa yang digunakan pada Flex terbagi 2, yaitu :
a. MXML
Yaitu sebuah bahasa berbasis XML yang digunakan untuk menentukan
tampilan visual, seperti menentukan posisi komponen,
menspesifikasikan batasan-batasan untuk antarmuka pengguna (user
interface), serta mengatur behaviour/sifat dari setiap komponen.
b. ActionScript 3
ActionScript 3 merupakan bahasa yang berorientasi pada objek (object-
oriented), yang digunakan dalam mendefinisikan logika aplikasi pada
sisi klien.
MXML dan ActionScript di-compile secara bersamaan dan akan
menghasilkan satu file swf. Untuk dapat mempercantik antarmuka
34
pengguna (user interface), flex mendukung pengembang menggunakan
CSS (Cascading Style Sheet) baik secara internal maupun eksternal.
2. Class Library dan Application Services
Flex memberikan class library (class yang dapat digunakan/dipakai oleh
pengembang perangkat lunak) dan application services (layanan-layanan
aplikasi) dalam membuat RIA. Layanan aplikasi yang dimaksud yaitu
kemudahan untuk merapikan data (data binding), membuat objek dengan
cara drag-and-drop, memberikan kemudahan untuk mengatur
tampilan/design, serta efek animasi dan transisi yang telah disediakan
3. Komponen
Komponen yang disediakan berdasarkan dengan kebutuhan user, mulai dari
button, checkbox, radio button, color picker, sampai pada datagrid, combo
box, dan text editor. Pengembang/developer bebas memodifikasi komponen-
komponen yang telah ada ataupun membuat komponen yang baru sesuai
dengan kebutuhan pengguna. Untuk mempercantik antarmuka pengguna
(user interface), Flex framework juga meyediakan kemudahan bagi
pengembang/developer untuk membuat kolom-kolom datagrid yang mudah
di-drag (draggable)
(http://www.adobe.com/products/flex/features/flex_framework/).
2.2.7.2 Kelebihan dan Kekurangan Flex
Berikut akan dibahas kelebihan dan kekurangan menggunakan aplikasi yang
dibuat menggunakan Flex khususnya yang berbasis pada Web.
35
Kelebihan:
- Tidak memerlukan penginstalan piranti lunak khusus, hanya dibutuhkan
Adobe Flash Player minimal versi 9 yang di letakkan di browser. Flash
Player inipun dapat dipakai secara bebas dan gratis.
- Dapat dijalankan di berbagai browser dan sistem operasi.
- Memiliki tampilan antarmuka pengguna (user interface) yang lebih dinamis
dibandingkan Web konvensional, karena Flex menyediakan animasi dan fitur
yang mendukung, sehingga pengguna semakin dimanjakan untuk
menggunakan aplikasi tersebut.
- Lebih cepat dalam merespon aksi dari pengguna, karena setiap komponen
sudah di sediakan/disiapkan pada saat Flash Player memunculkan file swf
tersebut, jadi ketika aksi-aksi berikutnya, aplikasi tersebut sudah dapat
diproses secara langsung tanpa meminta komponen-komponen yang
diperlukan.
Kekurangannya adalah pada saat pertama kali aplikasi berjalan, waktu yang
dibutuhkan lebih lama dibandingkan Web konvensional, karena Flash Player tersebut
harus mengambil komponen-komponen yang diperlukan
(http://www.adobe.com/go/flex).
2.2.8 MySQL
MySQL adalah sebuah aplikasi dengan dua lisensi, yakni open source dan
komersial, yang menyediakan server basis data yang sangat cepat, multi-threaded, multi-
user, dan memiliki SQL (Structured Query Language) yang robust. MySQL
diperuntukkan bagi sistem dengan tujuan kritis atau yang bersifat heavy-load, atau dapat
36
juga diintegrasikan bersama piranti lunak untuk diproduksi secara masal (MySQL 5.1
Reference Manual). Dalam website resminya
(http://dev.mysql.com/doc/refman/5.0/en/introduction.html), MySQL diklaim sebagai
basis data open source yang paling populer di dunia.