BAB 2 LANDAS AN TEORI 2.1 Teori Umum 2.1.1 Java M enurut M . Shalahuddin (2008), Java adalah nama untuk sekumpulan teknologi untuk membuat dan menjalankan perangkat lunak pada computer standalone atau pun lingkungan jaringan. Java2 adalah generasi kedua dari java platform (generasi awalnya adalah Java Development Kit). Java berdiri di atas sebuah mesin interpreter yang diberi nama Java Virtual Machine (JVM ). JVM inilah yang akan membaca bytecode dalam file .class dari suatu program sebagai representasi langsung program yang berisi bahasa mesin. Oleh karena itu, bahasa Java disebut sebagai bahasa pemrograman yang portable karena dapat dijalankan pada berbagai sistem operasi, asalkan pada sistem operasi tersebut terdapat JVM . Platform Java terdiri dari kumpulan library, JVM , kelas-kelas loader yang dipaket dalam sebuah lingkungan rutin Java, sebuah compiler, debugger, dan perkakas lain yang dipaket dalam Java Development Kit (JDK). Java2 adalah generasi sekarang yang sedang berkembang dari platform Java. Agar sebuah program Java dapat dijalankan, maka file dengan ekstensi .java harus dikompilasi manjadi file bytecode. Untuk menjalankan bytecode tersebut dibutuhkan JRE (Java Runtime Environment) yang memungkinkan pemakai untuk menjalankan program Java, hanya menjalankan, tidak untuk membuat kode baru lagi. JRE berisi JVM dan library Java yang digunakan. 9
10
2.1.2 Database Database adalah koleksi data yang saling berhubungan dan didesain sedemikian rupa untuk memenuhi kebutuhan informasi dari suatu organisasi (Connolly dan Begg, 2010, p14). Sehingga database memegang peranan penting untuk sebuah sistem dalam penyediaan informasi bagi pengguna. 2.1.2.1 Relational Database Relational database adalah sebuah kumpulan dari relasi yang telah dinormalisasi dengan nama relasi yang jelas (Connolly dan Begg, 2010, p74). Relational database merupakan suatu tipe database yang berdasarkan model relational, dimana semua data dapat dilihat oleh pengguna, disusun dalam bentuk tabel-tabel dan semua operasi pada database berkerja pada tabel-tabel tersebut. Relasi antar-tabel pada relational database sudah melalui tahap normalisasi dengan nama relasi yang berbeda-beda. Ada 3 jenis relasi antar-records dalam tabel (Connolly dan Begg, 2010, p344), yaitu : 1. Relasi one-to-one adalah relasi antara satu record dengan satu record dalam tabel lain yang saling berhubungan. 2. Relasi one-to-many adalah relasi antara satu record dengan lebih dari satu record dalam tabel lain sehingga saling berhubungan. 3. Relasi many-to-many adalah relasi antara banyak record dengan lebih dari satu record dalam tabel lain yang saling berhubungan.
11
2.1.2.2 Database Management System (DBMS ) DBM S (Database Management System) adalah sebuah sistem software yang memungkinkan pengguna untuk mendefinisikan, membuat, memelihara, dan mengatur akses ke dalam database (Connolly dan Begg, 2010, p16). DBM S merupakan sebuah software yang berinteraksi dengan pengguna program aplikasi dan database. Sebuah DBM S menyediakan beberapa fasilitas berikut : 1. Data Definition Language (DDL) DDL adalah sebuah bahasa yang mengijinkan Database Administrator atau pengguna untuk menggambarkan dan memberi nama dari entities, attribute, dan relationships yang dibutuhkan untuk aplikasi bersama dengan semua kepercayaan yang berhubungan dan batasan keamanan (Connolly dan Begg, 2010, p40). 2. Data Manipulation Language (DM L) DM L adalah sebuah bahasa yang menyediakan sekumpulan operasi yang mendukung operasi manipulasi data di dalam database (Connolly dan Begg, 2010, p41). 3. M enyediakan kontrol akses ke dalam database, sebagai contoh : a. Security system, dimana mencegah pengguna yang tidak mempunyai hak untuk mengakses database. b. Integrity system, dimana menjaga konsistensi dari data.
12
c. Concurrency control system, dimana mengijinkan akses yang terbagi dalam database. d. Recovery control system, dimana mengembalikan kondisi database sebelum kegagalan hardware atau software. e. User-accessible catalog, dimana berisi deskripsi dari data dalam database. SQL adalah suatu bahasa yang dirancang untuk sistem operasi pengaksesan
data
pada
struktur
relational
database
yang
mentransformasikan input menjadi output yang diinginkan pengguna (Connolly dan Begg, 2010, p111). Operasi pengaksesan data meliputi penyisipan data (insert), pengubahan data (update), pengambilan data (select), dan penghapusan data (delete). Perintah-perintah di atas dilakukan atas permintaan dari pengguna. 2.1.3 MySQL M enurut artikel “MSIT 643 Relational Database Management System” dan “Migrating From Microsoft SQL Server and Access to MySQL”, pada mulanya MySQL dikembangkan oleh TcX, sebuah perusahaan di Swedia, dengan M ichael Widenius sebagai perancang utama. Pada tahun 1979, ia mengembangkan sebuah Database Management System yang pertama kali diberi nama UNIREG. Lalu pada tahun 1995, terlahirlah M ySQL yang dirilis ke internet. Pada tahun 1999, diperkirakan ada sekitar setengah juta server yang menggunakan MySQL.
13
MySQL sebagai salah satu DBM S yang paling populer memiliki beberapa keunggulan, antara lain: 1. Performance yang tinggi, reliable, dan mudah untuk digunakan. 2. Open Source, yang berarti dapat digunakan dan dikembangkan oleh siapa saja. 3. Dapat dijalankan pada sistem client/server maupun sebagai embedded system. 4. Cross-Platform, MySQL dapat digunakan pada berbagai macam sistem operasi.
2.1.4 SQLite M enurut Owens (2006, p1), SQLite adalah sebuah open source relational database. Dirilis pada tahun 2000, SQLite didesain untuk menyediakan cara mudah bagi aplikasi untuk mengatur data tanpa overhead yang sering timbul dari dedicated relational database management systems. SQLite memiliki reputasi dalam hal portabilitas, mudah digunakan, efisien, dan reliable. SQLite memiliki arsitektur modular yang menggunakan pendekatan unik untuk relational database management. SQLite terdiri dari delapan grup modul yang terpisah dalam tiga subsistem utama. M odul ini membagi proses query menjadi beberapa diskrit yang bekerja seperti sebuah perakitan. Stack teratas meng-compile query, bagian tengah mengeksekusi, dan bagian
14
bawah menangani penyimpanan dan interface dengan sistem operasi (Owens, 2006, p5). 2.1.4.1 Fitur S QLite SQLite menawarkan sejumlah fitur dan kemampuan terlepas dari ukurannya yang kecil. SQLite mendukung subset ANSI SQL92 dan juga banyak fitur lainnya yang ditemukan dalam relational database (Owens, 2006, p8). • Zero Configuration Sejak konsep dasarnya, SQLite telah didesain untuk dikonfigurasi sesimpel mungkin. • Portability SQLite dapat di-compile dan berjalan pada Windows, Linux, BSD, M ac OS X, UNIX, dan banyak platform lain. • Compactness SQLite didesain agar ringan dan lengkap : satu header file, satu library, tanpa memerlukan server eksternal. • Simplicity Sebagai sebuah library pemrograman, API milik SQLite adalah yang paling sederhana dan mudah digunakan. Didesai untuk membantu kustomisasi SQLite dalam berbagai cara. • Flexibility
15
Sejumlah faktor bekerja bersama membuat SQLite sebuah database front-end yang sangat fleksibel, dan back-end yang sederhana. 2.1.5 Smartphone Telepon
pintar
(smartphone)
adalah
telepon
genggam
yang
mempunyai kemampuan tingkat tinggi, kadang-kadang dengan fungsi yang menyerupai komputer (http://id.wikipedia.org/wiki/Telepon_pintar). Belum ada standar pabrik yang menentukan definisi telepon pintar. Bagi beberapa orang, telepon pintar merupakan telepon yang bekerja menggunakan seluruh piranti lunak sistem operasi yang menyediakan hubungan standar dan mendasar bagi pengembang aplikasi. Bagi yang lainnya, telepon pintar hanyalah merupakan sebuah telepon yang menyajikan fitur canggih seperti surat elektronik (e-mail), internet dan kemampuan membaca buku elektronik (e-book) atau terdapat papan ketik (keyboard) dan konektor VGA. Dengan kata lain, telepon pintar merupakan komputer mini yang mempunyai kapabilitas sebuah telepon. 2.1.6 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 HTM L (Achour et al., 2009). Sintaksnya mirip dengan bahasa C, Java, dan Perl sehingga mudah untuk dipelajari. Tujuan utama dari bahasa ini adalah untuk
16
memungkinkan para pengembang Web dalam menulis halaman-halaman Web dinamis. 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
2.1.7 RSS (Really Simple Syndication) 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
17
RSS dalam versi 0.9 dan 1.0. Sekarang, RSS 2.0, disebut-sebut sebagai kependekan dari Really Simple Syndication (Wittenbrink, 2005, p8). 2.1.7.1 Sejarah RSS RDF Site Summary, merupakan RSS versi pertama yang diperkenalkan Netscape pada bulan M aret 1999, yang bertujuan untuk digunakan dalam portal My Netscape (Wittenbrink, 2005, p8). Untuk selanjutnya, versi ini dikenal dengan RSS 0.90. Versi dari RSS terus mengalami perkembangan dan perubahan, penjelasan singkat dari setiap versi RSS adalah sebagai berikut : •
RSS 0.90 adalah versi RSS pertama yang dikembangkan oleh Netscape. RSS ini disebut sebagai RDF Site Summary, berdasarkan pada RDF standar, dan belum kompatibel dengan rekomendasi RDF final.
•
RSS 1.0 adalah sebuah format terbuka yang dikembangkan oleh RSSDEV Working Group. RSS 1.0 adalah sebuah format RDF yang memiliki kesamaan dengan RSS 0.90, akan
tetapi
belum
seluruhnya
kompatibel
dengan
rekomendasi RDF final. •
RSS 1.1 juga merupakan format terbuka, dikembangkan untuk memperbaiki dan melengkapi RSS 1.0.
18
•
RSS 2.0.1 adalah versi tebaru dan merupakan RSS yang mempunyai versi standar 2.0. Pada saat ini RSS diterjemahkan atau diartikan
sebagai Really Simple
Syndication. M enggunakan mekanisme XM L. 2.2 Teori Khusus 2.2.1 Android Android, sebagai sebuah sistem, adalah sebuah operating system berbasis Java yang bekerja pada Linux 2.6 kernel. Sistem ini sangat ringan dan penuh dengan fitur (DiM arzio, 2008, p6).
Gambar 2.1 Tampilan Android pada Android Emulator Aplikasi Android dirancang menggunakan Java dan dapat diterapkan dengan mudah pada platform baru (DiM arzio, 2008, p7). Fitur lain yang dimiliki Android adalah 3-D graphics engine, database yang didukung oleh SQLite, dan web browser yang terintegrasi.
19
Android, selain mengenal dan menunjang user interface (UI) berbasis pemrograman, juga mendukung UI berbasis XM L. UI berbasis XM L adalah sebuah konsep baru bagi pengembang desktop. Salah satu fitur lain yang menarik pada Android adalah arsitekturnya memungkinkan third-party applications dijalankan dengan prioritas yang sama dengan aplikasi yang dibundel dengan core system. Ini adalah kebiasaan utama dari kebanyakan sistem, yang memberikan prioritas lebih pada embedded system applications daripada third-party applications. Selain itu, setiap aplikasi dieksekusi dalam suatu thread tersendiri menggunakan sebuah mesin virtual yang sangat ringan. Fitur yang paling menyenangkan bagi pengembang Android adalah kita dapat mengakses segala hal yang dapat diakses oleh sistem operasi. Dengan kata lain, jika kita ingin membuat sebuah aplikasi untuk menelepon, kita memiliki akses ke phone’s dialer; jika kita ingin membuat aplikasi yang menggunakan GPS internal telepon, kita memiliki akses ke sana. Potensi pengembang untuk membuat aplikasi yang dinamis dan menarik sangat terbuka lebar.
20
Gambar 2.2 Layer Arsitektur Android
2.2.1.1 Dalvik Virtual Machine Setiap aplikasi Android berjalan dalam proses tersendiri, dengan instance dari Dalvik Virtual Machine. Dalvik telah dibuat sedemikian rupa sehingga sebuah perangkat dapat menjalankan beberapa Virtual Machine dengan efisien. Dalvik Virtual Machine mengeksekusi file dalam format Dalvik Executable (.dex) yang mengoptimalkan penggunaan memori seminimal mungkin. Virtual Machine ini berbasis register dan menjalankan class yang dikompilasi oleh Java compiler yang telah dirubah menjadi format .dex. Dalvik VM bergantung pada Linux kernel untuk fungsi dasar seperti threading dan low-level memory management.
21
2.2.1.2 Android Library Terdapat beberapa API yang ditawarkan oleh Android. Berikut adalah APIs inti dari Android Library dan akan tersedia pada setiap versi Android : •
android.util – Paket utilitas yang berisi low-level classes seperti specialized containers, string formatters, dan XML parsing utilities.
•
android.os – Paket sistem operasi yang menyediakan akses ke servis sistem operasi dasar.
•
android.graphics – API grafis bagi low-level graphics classes
•
android.text – Alat pemroses teks untuk menampilkan dan parsing teks.
•
android.database – M enyediakan low-level classes untuk menangani kursor ketika bekerja dengan database.
•
android.content – API konten digunakan untuk mengatur akses data, penyedia konten dan paket.
•
android.view – View adalah class UI inti. Semua elemen UI dibuat menggunakan Views untuk menyediakan komponen interaksi pengguna.
•
android.widget – Elemen UI dasar yang disediakan.
•
com.google.android.maps – High-level API yang menyediakan akses ke native map controls.
22
•
android.app – Paket High-level yang menyediakan akses ke model aplikasi.
•
android.provider – M emudahkan
pengembang mengakses
Content Provider. •
android.telephony – APIs ini memungkinkan akses langsung dengan phone stack pada perangkat, memungkinkan melakukan, menerima, dan memonitor panggilan, status panggilan, dan pesan SM S.
•
android.webkit – APIs ini memungkinkan akses konten webbased.
2.2.2 XML XM L adalah sebuah meta-language (bahasa yang digunakan untuk mendeskripsikan bahasa lain) yang memungkinkan seorang designer membuat sendiri tag yang menyediakan fungsi yang tidak tersedia dalam HTM L (Connolly dan Begg, 2010, p1073). XM L merupakan sebuah versi meta-language yang diturunkan dari Standard Generalized Markup Language (SGM L), yang di desain khusus untuk dokumen website dan dapat mendukung perancang untuk menciptakan tag sendiri, yang memiliki kemampuan untuk mendefinisikan, mentransmisikan, memvalidasikan dan menginterpretasikan data antara aplikasi dan organisasi.
23
XM L dikembangkan oleh World Wide Web Consortium (W3C) yang didukung sekitar 150 orang anggotanya dan versi 1.0 pertama kali dirilis pada tahun 1998. Keunggulan yang dimiliki XM L antara lain (Connolly dan Begg, 2010, p1074) : • Simplicity. XM L menggunakan bahasa yang sederhana, mudah dimengerti oleh manusia dan mesin. • Open standard and platform / vendor-independent. XM L menggunakan standar terbuka dan tidak tergantung pada platform tertentu. • Extensibility. XM L memungkinkan user untuk mendefinisikan tag sendiri sehingga dapat dikembangkan sesuai dengan kebutuhan user. • Reuse. XM L memungkinkan libraries dari XM L tags untuk dibangun sekali dan dapat digunakan kembali oleh banyak aplikasi. • Separation of content and presentation. XM L memisahkan antara isi dan tampilan dari suatu data sesuai dengan pengaturan yang diinginkan. • Improved load balancing. Data dapat ditampilkan pada browser dengan baik. • Support for the integration of data from multiple source. Kemampuan mengintegrasikan data dari berbagai macam sumber
24
yang berbeda adalah hal yang sulit dan memakan waktu. XM L dapat menggabungkan data dari banyak sumber yang berbeda dengan cara yang mudah. • Ability to describe data from a wide variety of applications. XM L dapat digunakan untuk mendeskripsikan data yang terdapat pada aplikasi yang berbeda. • More advanced search engine. Dengan XM L, mesin pencarian akan mampu untuk menyederhanakan berbagai macam tags. • New opportunities. XM L memiliki banyak kelebihan yang dapat dihadirkan dalam banyak aplikasi teknologi saat ini. Struktur hirarkisnya cocok untuk kebanyakan tipe dokumen. Kekurangan-kekurangan XM L : • Parser harus didesain untuk memahami struktur data bersarang yang berubah-ubah dan harus melakukan pengecekan tambahan untuk mendeteksi sintaks atau data yang tidak terformat atau terurut dengan benar. • Urutan penekanan tombol untuk mengetikkan ekspresi XM L pada keyboard standar komputer seringkali kaku. XM L menggunakan teknologi Document Type Definitions (DTDs) yang dapat mendefinisikan sintaks yang valid dari dokumen XM L.
25
Contoh bahasa XM L : <STAFFLIST> <STAFF branchNo=”B005”> <STAFFNO>SL21
John White M anager <STAFF branchNo=”B003”> <STAFFNO>SL37
Ann Beech Assistant
26
2.2.2.1 Deklarasi XML Sebuah file XM L diawali dengan pilihan deklarasi XM L, yang menunjukkan versi XM L yang digunakan oleh penulis dalam dokumen, encoding system yang digunakan dan menentukan apakah ada deklarasi external markup yang perlu dimasukkan. XM L bersifat case-sensitive (huruf kecil tidak sama dengan huruf besar). Artinya tag <price> dan
merupakan hal yang berbeda. 2.2.2.2 Elemen XML Elemen, atau tag, adalah bentuk umum dalam markup. Elemen pertama pasti adalah sebuah root element, yang dapat terdiri atas banyak sub elemen lain. Sebuah dokumen XM L harus mempunyai satu root element. Root element contoh diatas adalah <STAFFLIST>. Setiap elemen diawali dengan tag awal (<STAFF>) dan diakhiri dengan tag akhir (). Sebuah elemen yang kosong ditunjukan dengan tag : <EM PTYELEM ENT/>. Tag harus disarangkan dengan benar. M aksudnya adalah satu tag bisa berada di dalam tag lain (disarangkan), namun tag pembuka dan tag penutupnya harus berada di antara tag pembuka dan penutup dari tag yang mengelilinginya. Contoh Tag bersarang: <STAFF>
27
Ann Beech Pada contoh tersebut, elemen NAM E bersarang di dalam elemen STAFF, elemen FNAM E dan LNAM E bersarang di dalam elemen NAM E. 2.2.2.3 Atribut XML Atribut adalah pasangan nama dan nilai yang mendeskripsikan informasi tentang suatu elemen. Atribut diletakkan dalam tag awal setelah nama elemen dan nilai atribut ada dalam tanda petik. Contoh : <STAFF brachNo=”B005”>. Jika sudah diberikan atribut maka dapat ditunjukkan elemen itu adalah elemen yang kosong, contoh : <SEX gender=”M ”/> 2.2.2.4 Entity References Setiap
entiti
harus
memiliki
nama
yang
unik
dan
penggunaannya dalam sebuah dokumen XM L disebut dengan entity reference. Sebuah entity reference diawali dengan tanda dan (&) dan diakhiri dengan titik koma (;). Entity reference adalah karakter yang mengganti
illegal
character
(http://www.w3schools.com/xml/xml_cdata.asp). predefined entity references pada XM L, yaitu :
di Terdapat
XM L lima
28
Tabel 2.1 Predefined entity references pada XM L
Sumber : http://www.w3schools.com/xml/xml_cdata.asp 2.2.2.5 Komentar XML Komentar pada XM L menggunakan sintaks sama seperti komentar pada HTM L. Contoh: Komentar ini dapat mengandung semua string kecuali ‘--‘. 2.2.2.6 CDATA Section dan Instruksi Proses CDATA section memberitahu prosesor XM L untuk melewati karakter markup dan memberikan teks langsung ke aplikasi tanpa melakukan interpretasi. Instruksi proses dapat digunakan untuk menyediakan informasi ke sebuah aplikasi. Jika mengandung banyak karakter < atau &, elemen XM L bisa didefinisikan sebagai CDATA. Contoh (http://www.w3schools.com/xml/xml_cdata.asp): <script>
29
{ return 0 } } ]]> 2.2.2.7 Urutan Dalam XM L urutan elemen sangatlah penting. Jadi, jika urutan elemen berbeda maka akan dianggap sebagai data yang berbeda. Contoh : John White akan berbeda dengan White John Dalam XM L urutan atribut tidak terpengaruh. Contoh : Dua elemen diatas akan dianggap sama oleh prosesor XM L.