BAB 2 LANDASAN TEORI
2.1
Teori Umum Berikut ini merupakan teori-teori umum yang digunakan sebagai landasan teori dalam penulisan skripsi ini.
2.1.1 Pengertian Data Menurut Whitten dan Bentley (2007, p21), data adalah fakta mentah mengenai orang, tempat, peristiwa, dan hal-hal yang penting dalam suatu organisasi. Setiap fakta ini, secara relatif tidak mempunyai arti. Menurut Connolly dan Begg (2005, p20), data merupakan komponen paling penting dalam Database Management System, yang berasal dari sudut pandang pengguna. Data bertindak sebagai jembatan yang menghubungkan antara mesin dengan pengguna Menurut Pressman (2010, p841), data merupakan informasi mentah, kumpulan fakta yang harus diproses agar memiliki arti.
2.1.2 Pengertian Sistem Menurut O’Brien (2005, p29), sistem merupakan sekumpulan elemen yang saling berhubungan atau berinteraksi hingga membentuk satu kesatuan. 9
10 2.1.3 Pengertian Informasif Menurut O’Brien (2005, p703), informasi adalah data yang ditempatkan dalam konteks yang berarti dan berguna untuk pengguna. Menurut Pressman (2010, p841), informasi diperoleh dengan mengasosiasikan fakta ke dalam konteks yang diberikan. Informasi yang dikumpulkan pada berbagai topik yang terkait dan yang tidak terkait terhubung untuk membentuk tubuh fakta yang di sebut pengetahuan.
2.1.4 Pengertian Sistem Informasi Menurut O’Brien (2005, p5), sistem informasi merupakan suatu kombinasi teratur dari orang-orang, hardware, software, jaringan komunikasi, dan sumber daya data yang mengumpulkan, mengubah, dan menyebarkan informasi dalam sebuah organisasi.
2.1.5 Pengertian Sistem Operasi Menurut Stallings (2011, p718), Sistem operasi adalah software yang mengontrol eksekusi dari program dan menyediakan layanan seperti alokasi sumber daya, penjadwalan, kontrol input / output, dan pengaturan data.
2.1.6 Model Proses Waterfall Menurut Pressman (2010, p39), model proses Waterfall, yang sering disebut classic life cycle, menawarkan pendekatan yang sistematik
11 dan sekuensial dalam pengembangan software. Model proses Waterfall diawali dengan pengumpulan kebutuhan pengguna, proses perencanaan, pemodelan, konstruksi, dan penyebaran, berpuncak pada dukungan yang berkelanjutan pada software yang telah jadi.
Gambar 2.1 Model Proses Waterfall
2.1.7 Model Proses Incremental Menurut Pressman (2010, p41), model proses Incremental mengkombinasikan elemen-elemen aliran proses linier dan paralel. Proses model Incremental menerapkan urutan linier seperti waktu yang berlangsung
pada
kalender.
Setiap
urutan
linier
menghasilkan
penyampaian "penambahan" dari software dengan cara yang mirip dengan peningkatan yang dihasilkan oleh aliran proses evolusi.
Communication Planning Modelling (analysis, design)
increment #n
Construction (code, test) Deployment (delivery, feedback) delivery of n th increment
increment #2 increment #1
delivery of 2nd increment delivery of 1st increment
Gambar 2.2 Model Proses Incremental
12 2.1.8 Pengertian Database Menurut Connolly dan Begg (2005, p15), database merupakan sekumpulan data logikal yang berelasi, dan didesain untuk mendapatkan informasi yang dibutuhkan sebuah organisasi. Hal ini berarti bahwa database merupakan tempat penyimpanan data yang besar dan dapat digunakan secara bersamaan oleh banyak pengguna. Menurut Whitten dan Bentley (2007, p518), di dalam sebuah database terdapat beberapa tabel yang berisi fields dan records. Fields adalah implementasi fisik dari sebuah atribut data. Fields adalah unit terkecil dari data yang disimpan dalam database. Sedangkan records adalah sebuah koleksi (kumpulan) fields yang diatur dalam format yang telah ditentukan sebelumnya. Terdapat empat macam field yang dapat disimpan dalam database : a.
Primary Key Primary key adalah field yang memberikan tanda unik dalam setiap record.
b.
Secondary Key Secondary key adalah sebuah field yang mengidentifikasikan sebuah record tunggal atau bagian dari beberapa record.
c.
Foreign Key Foreign key adalah field yang menunjuk ke sekumpulan record yang terdapat dalam tabel yang lain di database.
13 d.
Descriptive Field Descriptive Field adalah field selain key field yang menyimpan data bisnis. Relational database adalah database yang mengimplementasikan
data sebagai sederetan tabel dua dimensi yang dihubungkan satu sama lain dengan foreign key. (Whitten dan Bentley, 2007, p526)
2.1.9 Database Management System (DBMS) Menurut Hoffer, Prescott, dan Topi (2009, p49), database management system (DBMS) adalah sistem software yang digunakan untuk membuat, memelihara, dan menyediakan akses kontrol ke database pengguna. Sebuah DBMS menyediakan metode sistematik untuk membuat, meng-update, menyimpan, dan mendapatkan data dalam database. DBMS memungkinkan pengguna akhir dan programmer aplikasi untuk berbagi data, dan memungkinkan data yang dibagi di antara beberapa aplikasi, bukan disebarkan dan disimpan dalam file baru untuk setiap aplikasi baru. Sebuah DBMS juga menyediakan fasilitas untuk mengendalikan akses data, menerapkan
integritas
data,
mengelola
kontrol
konkurensi,
dan
memperbaiki database.
a.
Relational Database Management System (RDBMS) Relational DBMS adalah sebuah sistem manajemen data yang mengimplementasikan relasi antara model data, salah satu tempat di
14 mana data disimpan dalam kumpulan tabel, dan hubungan data yang direpresentasikan dengan nilai umum, bukan link. (Hoffer, Prescott, dan Topi, 2009, p352) b.
Object-Relational Database (ORDB) Object-Relational database merupakan relational database dengan
penambahan
konsep
object-oriented.
Meskipun
tidak
sepenuhnya berorientasi objek, sistem object-relational database masih berhasil bersaing dengan sistem object-oriented database. (Teorey, Lightstone, Nadeau, dan Jagadish, 2011, p298)
Sebuah fitur utama sistem object-relational yang ditambahkan ke relational database adalah pemikiran dari sebuah tipe data abstrak. Database tradisional memiliki satu set kecil tipe data standar (seperti integer, date, presisi, double precision, dsb). Tipe data abstrak (Abstract Data Type / ADT) mengizinkan objek class yang kompleks didefinisikan sebagai tipe database. Instansi tipe data ini dapat kemudian disimpan sebagai nilai atribut dalam kolom tabel yang telah didefinisikan sebagai ADT ini. (Teorey et al, 2011, p153)
2.1.10 Arsitektur Three-Tier Arsitektur Three-Tier Client-Server mengajukan 3 lapisan, dimana masing-masing berpotensi dijalankan pada platform yang berbeda-beda : 1.
Lapisan antarmuka pengguna, yang berjalan pada komputer pengguna (klien).
15 2.
Lapisan bussiness logic dan proses. Tingkatan menengah ini dapat berjalan pada server dan sering disebut application server.
3.
Sebuah DBMS yang menyimpan data yang dibutuhkan oleh tingkatan menengah. Tingkatan ini dapat berjalan pada server yang terpisah yang disebut database server.
(Connolly dan Begg, 2005, p61)
Gambar 2.3 Arsitektur Three-Tier Client-Server
2.1.11 Pengertian Internet (Interconnected Networking) Menurut Williams dan Sawyer (2011, p18), internet adalah sebuah jaringan komputer di seluruh dunia yang menghubungkan ratusan ribu jaringan yang lebih kecil. Jaringan ini menghubungkan beberapa komputer
16 pada bidang edukasi, komersial, non-profit, dan kebutuhan militer, serta masing-masing individu.
2.1.12 Pengertian Web Berikut ini beberapa teori yang menyangkut pengembangan aplikasi yang berbasis web. a.
eXtensible Markup Language (XML) XML atau eXtensible Markup Language adalah sebuah bahasa markup baru yang dikembangkan oleh W3C (World Wide Web Consortium). XML
digunakan untuk mengirim, menukar, dan
memanipulasi dalam dalam aplikasi internet. XML berisi data yang didefinisikan sendiri dalam format dokumen; dan tidak bergantung pada platform. XML juga memudahkan pengiriman dokumen dari satu situs ke situs lainnya melalui HTTP. Namun, penerapan XML tidak hanya terbatas untuk aplikasi internet konvensional saja; XML juga dapat digunakan untuk berkomunikasi dan bertukar informasi dalam konteks lain. (Sills, Ahmed, Boumphrey, Dotthatcom.com, dan Ortiz, 2002, p84) . Menurut Hoffer, Prescott, dan Topi (2009, p720), XML merupakan bahasa scripting berbasis teks yang digunakan untuk menggambarkan struktur data hirarki, menggunakan tag seperti HTML.
17 b.
HyperText Transfer Protocol (HTTP) Menurut Williams dan Sawyer (2011, p66), HTTP adalah aturan komunikasi yang memungkinkan browser tersambung ke web server.
c.
Transmission Control Protocol/Internet Protocol (TCP/IP) TCP/IP adalah protokol yang memungkinkan semua komputer menggunakan data yang ditransimisikan melalui internet. TCP/IP digunakan pada semua transaksi internet, mulai dari mengirim email sampai mengunduh gambar dari situs web. Prinsip utamanya, TCP/IP menentukan bagaimana piranti pengirim memberi tanda jika telah selesai mengirim pesan dan bagaimana piranti penerima memberi tanda jika telah menerima pesan tersebut. (Williams dan Sawyer, 2011, p62)
d.
Domain Name System (DNS) Domain merupakan suatu lokasi di internet, yaitu di web server tertentu. Nama domain menunjukkan lokasi dan jenis alamat. Komponen nama domain dipisahkan dengan tanda titik (dot). Komponen terakhir dari nama domain disebut top level domain, yaitu ekstensi
tiga
(3)
huruf
yang
mengekspresikan
tipe
domain: .gov, .com, .net, .edu, .org, .mil, .int, pemerintahan, komersial, jaringan, pendidikan, oraganisasi nonprofit, militer, atau organisasi internasional. (Williams dan Sawyer, 2011, p66)
18 e.
Universal Resource Locator (URL) URL adalah kumpulan karakter yang menunjuk pada potongan informasi khusus di bagian mana saja pada web. Dengan kata lain, URL adalah alamat situs web yang unik (tidak ada dua situs berbeda yang memiliki alamat yang sama). (Williams dan Sawyer, 2011, p65)
f.
Web Server Web server merupakan sebuah proses yang berjalan pada komputer host, yang menunggu request dari HTTP masuk. Web server menyediakan akses terhadap informasi dan layanan yang disimpan dalam web. (Eaglestone dan Ridley, 2001, p209) Menurut Hoffer, Prescott, dan Topi (2009, p469), web server digunakan untuk memproses permintaan dari klien dan kemudian mengembalikan halaman HTML kepada klien.
g.
Web Service Web service merupakan aplikasi enterprise berbasis web yang menggunakan
terbuka,
standar
berbasis
XML
dan
protokol
transportasi untuk bertukar data dengan klien yang memanggil. (Jendrock, Evans, Gollapudi, Haase, dan Srivathsa , 2010, p15) Web service adalah sebuah sistem software yang didesain untuk dapat dioperasikan pada interaksi mesin ke mesin melalui jaringan. Web service memiliki antarmuka yang dideskripsikan dalam format machine-processable (WSDL). Sistem lain yang berinteraksi dengan web service dengan cara yang ditentukan oleh deskripsinya
19 menggunakan pesan SOAP, biasanya disampaikan menggunakan HTTP dengan serialisasi XML bersama dengan standar web terkait yang lain. (Graham et al, 2001, p) Menurut Hoffer, Prescott, dan Topi (2009, p720), web service adalah seperangkat standar yang muncul, yang mendefinisikan protokol untuk komunikasi secara otomatis antara program software melalui Web. Web service berbasis XML dan biasanya bekerja di belakang layar untuk membangun suatu komunikasi yang transparan antara komputer.
2.1.13 Object-Oriented Programming (OOP) Menurut
Deitel
dan
Deitel
(2012,
p11),
Object-Oriented
Programming meningkatkan produktivitas sehingga mengurangi biaya pengembangan software. Pengembang software menemukan bahwa menggunakan sebuah desain berorientasi objek modular dan pendekatan implementasi dapat membuat kelompok pengembangan software jauh lebih produktif daripada dengan teknik sebelumnya seperti “structured programming” — object-oriented programming sering lebih mudah untuk dipahami, diperbaiki dan dimodifikasi. Berikut ini adalah beberapa kunci mengenai konsep object-oriented programming. a.
Method dan Class Pada sebuah program, menjalankan suatu tugas membutuhkan sebuah method. Method ini merupakan tempat statemen program yang
20 melakukan tugasnya. Method ini menyembunyikan statemen dari pengguna. Pada Java, dibuat sebuah unit program yang disebut dengan class untuk menjadi tempat sekumpulan method yang melakukan tugas dari class tersebut. (Deitel dan Deitel, 2012, p11) b.
Instantiation Object dari class harus dibangun sebelum program dapat melakukan tugas yang didefinisikan oleh method pada class. Proses pembangunan ini disebut dengan instantiation. Sebuah object kemudian disebut sebagai instansi dari class-nya. (Deitel dan Deitel, 2012, p12)
c.
Reuse Class dapat dipakai berkali-kali untuk membangun object-object. Menggunakan kembali class yang sudah ada ketika membuat classclass
dan
program-program
menghemat
waktu
dan
tenaga.
Penggunaan kembali juga membantu pembangunan sistem yang lebih handal dan efektif, karena class dan komponen yang ada telah melalui pengujian, debug dan kinerja tuning. (Deitel dan Deitel, 2012, p12) d.
Messages dan Methods Calls Message dikirimkan ke object. Setiap message diimplementasikan sebagai sebuah panggilan method yang memberitahukan sebuah method pada object untuk melakukan tugas. (Deitel dan Deitel, 2012, p13)
21 e.
Attributes dan Instance Variables Sebuah object memiliki atribut yang dibawanya bersama sepanjang penggunaan object tersebut dalam sebuah program. Atribut ini ditetapkan sebagai bagian dari class object. Atribut ditentukan oleh instance variables class. (Deitel dan Deitel, 2012, p12)
f.
Encapsulation Class mengenkapsulasi atribut dan method ke dalam object – sebuah atribut object dan method yang berhubungan erat. Object dapat berkomunikasi satu sama lain, tetapi biasanya suatu object tidak mengetahui bagaimana object lainnya diimplementasikan – rincian implementasi tersembunyi dalam object itu sendiri. (Deitel dan Deitel, 2012, p13)
g.
Inheritance Sebuah class object baru dapat dibuat dengan cepat dan mudah dengan inheritance – class baru akan menyerap karakteristik class yang sudah ada, memungkinkan pengubahan dan penambahan karakteristik unik sendiri. (Deitel dan Deitel, 2012, p13) Class yang sudah ada disebut dengan superclass, dan class yang baru disebut dengan subclass. Setiap subclass dapat menjadi superclass untuk subclass berikutnya. (Deitel dan Deitel, 2012, p360) Sebuah anggota public pada class dapat diakses di manapun program ini memiliki referensi ke sebuah object dari class itu atau salah satu subclass-nya. Sebuah anggota private pada class dapat diakses hanya
22 oleh
anggota class itu sendiri. Sebuah anggota protected pada
superclass dapat diakses oleh anggota dari superclass-nya, anggota subclass-nya dan anggota dari class lain yang berada pada package yang sama — anggota protected mempunyai akses ke package. (Deitel dan Deitel, 2012, p360) h.
Polymorphism Polymorphism memungkinkan untuk membuat "program di umum" daripada "program dalam spesifik". Secara khusus, polymorphism memungkinkan untuk menulis program yang proses object-nya berbagi superclass yang sama (baik secara langsung atau tidak langsung) seolah-olah mereka semua object dari superclass. Hal ini dapat menyederhanakan pemrograman. (Deitel dan Deitel, 2012, p397)
2.1.14 Java Java
merupakan
bahasa
pemrograman
level
tinggi
yang
dikembangkan oleh Sun Microsystem pada tahun 1995, juga merupakan sebuah bahasa berorientasi objek. Digunakan untuk menuliskan programprogram yang padat dan bisa diunduh melalui internet dan dengan segera dieksekusi pada banyak komputer. File kode sumber Java (file dengan ekstensi .java) dikompilasi ke dalam format yang disebut bytecode (file dengan ekstensi .class), yang nantinya bisa dieksekusi oleh sebuah penerjemah (interpreter) Java. Kode Java yang telah dikompilasi bisa
23 berjalan pada sebagian besar komputer karena penerjemah Java dan lingkungan untuk menjalankannya, Java Virtual Machines (JVMs), telah tersedia di sebagian besar sistem operasi. (Deitel dan Deitel, 2003, p539)
2.1.15 JavaScript JavaScript adalah scripting language (bahasa pemrograman yang ringan) terpopuler pada internet, dan berjalan pada berbagai browser, seperti Internet Explorer, Firefox, Chrome, Opera, dan Safari. JavaScript didesain untuk menambah interaktivitas halaman HTML. JavaScript biasanya ditanamkan pada halaman HTML. JavaScript adalah interpreted language (berarti JavaScript mengeksekusi tanpa kompilasi pendahuluan) dan setiap orang dapat menggunakan JavaScript tanpa harus membeli lisensi. ( http://www.w3schools.com/js/js_intro.asp )
2.1.16 Structured Query Language (SQL) Berikut ini beberapa teori yang menyangkut SQL, meliputi pengertian dan kelompok statement dalam SQL. a.
Pengertian SQL Standard Query Language (SQL, dibaca S-Q-L atau juga Sequel) adalah bahasa query paling umum yang sekarang baik secara formal dan de facto merupakan bahasa standar untuk database management system. (Connolly dan Begg , 2005, p16)
24 Sebuah statement dalam SQL terdiri dari reserved words dan user-defined words. Reserved words merupakan bagian tetap dari bahasa SQL dan memiliki makna yang tetap. Reserved words harus dieja dengan tepat seperti yang diharuskan dan tidak dapat dipisahkan. User-defined words dibuat oleh pengguna dan merepresentasikan nama dari variasi objek database seperti, tabel, kolom, dan sebagainya. (Connolly dan Begg , 2005, p116) b.
Kelompok Statement dalam SQL Statement dalam SQL dikelompokkan menjadi lima, yaitu Data Defintion Language, Data Manipulation Language, Data Control Language, Transaction Control Language, dan Pengendali Programatik. 1)
Data Definition Language (DDL) Data Definition Language adalah bahasa yang memperbolehkan seorang database administrator (DBA) atau pengguna untuk mendeskripsikan dan menamai suatu entitas, atribut, dan hubungan yang dibutuhkan oleh aplikasi, bersamaan dengan integritas data dan keamanan datanya. (Connolly dan Begg , 2005, p40)
2)
Data Manipulation Language (DML) Data
Manipulation
Language
merupakan
bahasa
yang
menyediakan seperangkat operasi untuk mendukung operasi manipulasi data yang berada dalam database. Pengoperasian
25 manipulasi
data
diantaranya
memasukkan
data
baru,
memodifikasi data, mengambil data, maupun menghapus data dari basis-data. (Connolly dan Begg, 2005, p41) 3)
Data Control Language (DCL) Data Control Language merupakan bahasa yang digunakan untuk mengendalikan pengaksesan data. Pengendalian dapat dilakukan pada setiap pengguna, tabel, kolom, ataupun operasi yang dapat dilakukan. Perintah-perintah ini berkaitan dengan pengaturan keamanan basis-data. Contoh dari bahasa DCL adalah GRANT, REVOKE, dan LOCK.
4)
Transaction Control Language (TCL) Transaction
Control
Language
merupakan
bahasa
yang
digunakan untuk mengontrol pengeksekusian dari sebuah transaksi. Contoh dari perintah TCL adalah COMMIT, dan ROLLBACK. 5)
Pengendali Programatik Dalam kelompok statement ini, perintah-perintah yang termasuk pengendali programatik merupakan pernyataan-pernyataan yang berhubungan dengan pemanfaatan SQL dalam bahasa lain. Pernyataan-pernyataan
terdapat
pada
bahasa
konvensional
generasi ketiga (3-GL), seperti COBOL. Perintah-perintah yang termasuk dalam kategori ini diantaranya CLOSE, DECLARE, FETCH, dan OPEN.
26 2.1.17 Delapan Aturan Emas Perancangan User Interface Menurut Shneiderman (2010, pp88-89), terdapat delapan aturan yang digunakan sebagai petunjuk dasar yang baik untuk merancang suatu tampilan antarmuka pengguna. Delapan aturan yang disebut juga dengan Eight Golden Rules of Interface Design, yaitu : a.
Berusaha untuk konsisten Bentuk-bentuk dari konsistensi adalah konsisten untuk aksi yang sejenis atau mirip, konsistensi warna, jenis tulisan, ukuran, dan tata letak dan harus diterapkan pada seluruh aplikasi.
b.
Menyediakan usability universal Penerapan usability universal adalah dengan menggunakan singkatan dan tombol-tombol shortcut yang sudah umum digunakan, sehingga familiar dengan pengguna.
c.
Memberikan umpan balik yang informatif Adanya umpan balik dari sistem untuk setiap aksi yang dilakukan oleh pengguna. Untuk aksi yang sering dilakukan dan tindakan kecil, dapat menggunakan respon yang sederhana. Sedangkan untuk aksi yang jarang dilakukan dan tindakan besar, maka harus menggunakan respon yang lebih substansial.
d.
Merancang dialog untuk menghasilkan suatu penutupan Urutan tindakan sebaiknya diatur dalam pengelompokkan menjadi bagian awal, tengah, dan akhir. Umpan balik yang informatif pada
27 akhir tindakan harus dapat memberikan indikasi bahwa proses yang dilalui sudah benar. e.
Memberikan penanganan kesalahan yang sederhana Rancangan sistem yang dibuat harus bisa meminimalisir kemungkinan pengguna melakukan kesalahan fatal. Walaupun pengguna melakukan kesalahan, maka sistem harus dapat mendeteksi dan memberikan instruksi sederhana namun jelas agar pengguna dapat memperbaiki kesalahan.
f.
Mudah kembali ke tindakan sebelumnya Dengan mengetahui bahwa aksi yang sudah dilakukan dapat dibatalkan, maka kecemasan pengguna dapat dihilangkan. Sehingga pengguna tidak takut untuk mengekplorasi pilihan-pilihan lain yang belum digunakan.
g.
Mendukung internal locus of control Sistem yang baik adalah sistem yang memberikan kendali kontrol kepada pengguna, sehingga pengguna tidak merasa sistem yang mengontrol pengguna.
h.
Mengurangi beban ingatan jangka pendek Ingatan manusia memiliki keterbatasan untuk mengolah informasi, oleh karena itu sistem tidak boleh membebani ingatan pengguna dalam jangka panjang
28 2.2
Teori Khusus Berikut ini merupakan teori-teori khusus yang digunakan sebagai landasan teori dalam penulisan skripsi ini.
2.2.1 Android Android adalah sebuah sistem operasi untuk perangkat mobile yang mencakup aplikasi sistem operasi, middleware dan aplikasi. Android SDK menyediakan fitur dan API yang diperlukan untuk mulai mengembangkan aplikasi
pada
platform
Android
dengan
menggunakan
bahasa
pemrograman Java. ( http://developer.android.com/guide /basics/ what-isandroid.html ) Menurut DiMarzio (2008, p6), Android, sebagai suatu sistem, adalah sistem operasi berbasis Java yang berjalan pada kernel Linux 2.6. Sistem ini sangat ringan dan berfitur lengkap. Android dikembangkan oleh Open Handset Alliance, Android membawa inovasi dengan internet dan keterbukaan terhadap perangkat mobile. Android memberikan sebuah software yang lengkap untuk aplikasi pada telepon seluler : sistem operasi, middleware dan aplikasi kunci dalam mobile. Android memiliki empat karakteristik sebagai berikut: 1)
Terbuka Android dibangun untuk memungkinkan developers membuat aplikasi mobile yang menarik yang bisa mengambil keuntungan penuh dari semua handset yang ditawarkan dengan maksud untuk menjadi
29 aplikasi yang benar-benar terbuka. Sebagai contoh, sebuah aplikasi dapat memanggil salah satu dari fungsi inti telepon seluler seperti membuat panggilan, mengirim pesan teks, atau menggunakan kamera, memungkinkan developer untuk menciptakan pengalaman yang lebih kaya dan lebih kohesif bagi pengguna. Android dibuat di atas Linux Kernel terbuka dan memanfaatkan mesin virtual khusus yang dirancang untuk mengoptimalkan memori dan sumber daya hardware dalam lingkungan mobile. Android merupakan open source, bebas dikembangkan untuk menyertakan teknologi baru yang mutakhir yang baru muncul. Platform ini akan terus berkembang seiringnya komunitas developer yang bekerja sama untuk membangun aplikasi mobile yang inovatif. 2)
Semua aplikasi diciptakan sama Android tidak membedakan antara aplikasi inti dari telepon seluler dan aplikasi pihak ketiga (third-party application). Semua aplikasi dapat dibangun dan untuk memiliki akses yang sama terhadap kemampuan telepon seluler dalam menyediakan berbagai aplikasi dan layanan kepada pengguna Dengan perangkat yang dibuat berbasis platform Android, pengguna dapat sepenuhnya menyesuaikan telepon seluler sesuai keinginan mereka.
3)
Memecahkan hambatan pada aplikasi Android memecah hambatan untuk membangun aplikasi baru dan inovatif. Sebagai contoh, seorang developer dapat menggabungkan
30 informasi dari web dengan data pada telepon seluler individu – seperti kontak pengguna, kalender, atau lokasi geografis – untuk memberikan pengalaman pengguna yang lebih relevan. 4)
Pengembangan aplikasi yang cepat dan mudah Android menyediakan akses yang luas kepada developer untuk menggunakan berbagai libraries yang diperlukan dan tools yang dapat dipakai dalam pembuatan aplikasi. Sebagai contoh, Android memungkinkan developer untuk mendapatkan lokasi dari perangkat, dan memungkinkan perangkat tersebut untuk berkomunikasi satu sama lain sehingga memungkinkan aplikasi sosial peer-to-peer. ( http://www.android.com/about/ )
a.
Fitur-fitur Android Fitur-fitur yang tersedia di Android adalah sebagai berikut : 1)
Kerangka Aplikasi Android merupakan Open Development Platform, yaitu Android memberi kemampuan kepada developer untuk dapat membangun aplikasi yang inovatif. Kerangka aplikasi ini dirancang agar developer dapat dengan mudah menggunakan kembali komponen yang sudah digunakan. Kerangka kerja ini didukung oleh sejumlah open source library seperti openssl, sqlite, dan libc, serta library inti Android. Dari sudut keamanan, kerangka kerja ini didasarkan pada UNIX file system permission yang menjamin
31 aplikasi tersebut hanya memiliki kemampuan yang diberikan pemilik telepon seluler pada waktu instalasi. 2)
Dalvik Virtual Machine (DVM) DVM adalah sebuah mesin virtual dengan memori yang rendah, yang didesain khusus untuk Android yang dijalankan di embedded system dan bekerja dengan baik pada daya rendah. DVM menciptakan format file khusus, yaitu .dex yang dibuat pada saat build time post processing. Konversi class Java dan format .dex dilakukan dengan memasukkan “dx” tool. DVM menggunakan kernel linux untuk menangani fungsionalitas tingkat rendah termasuk keamanan, threading, dan proses serta manajemen memori. Semua hardware yang berbasis Android dijalankan dengan menggunakan Virtual Machine untuk eksekusi aplikasi, sehingga dapat diimplementasikan ke hardware tertentu. DVM mengeksekusi Dalvik executable file, sebuah format yang dioptimalkan untuk memastikan memori yang digunakan sangat kecil. File .dex diciptakan dengan mengubah kelas bahasa java dan dikompilasi menggunakan tools yang disediakan dalam SDK Android.
3)
Browser yang terintegrasi Browser yang berintegrasi (Integrated browser) berdasarkan mesin WebKit open source.
32 4)
Grafis yang telah dioptimasi Grafis yang telah dioptimasi didukung oleh library grafis 2D yang kustom; grafis 3D yang berdasarkan OpenGL ES 1.0.
5)
SQLite SQLite adalah sebuah relational database management system berukuran kecil (500 Kb) yang berintegrasi Android. SQLite berbasis pada pemanggilan fungsi dan single file, dimana semua definisi, tabel, dan data disimpan.
6)
Media Pendukung Media pendukung yang umum untuk audio, video, dan gambar dalam beberapa format (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF).
7)
GSM Telephony (bergantung pada hardware yang digunakan).
8)
Bluetooth, EDGE, 3G, dan WiFi (bergantung pada hardware yang digunakan).
9)
Camera, GPS, Compass, dan Accelerometer (bergantung pada hardware yang digunakan).
10) Lingkungan pengembangan yang lengkap perangkat emulator, peralatan untuk debugging, memori, dan performance profiling, dan plugin untuk Eclipse IDE.
33 b. Arsitektur Android Diagram di bawah ini menunjukkan komponen utama sistem operasi Android : 1)
Aplikasi
Android akan disertakan dengan sebuah set aplikasi inti termasuk email klien, program SMS, kalender, peta, browser, kontak, dan lainnya. Semua aplikasi ditulis menggunakan bahasa pemrograman Java.
Gambar 2.4 Diagram Arsitektur Android
2)
Kerangka Kerja Aplikasi Dengan menyediakan sebuah platform pengembangan terbuka (open development platform), Android menawarkan para developer kemampuan untuk membangun aplikasi yang sangat
34 kaya dan inovatif. Developer bebas mengambil keuntungan dari perangkat hardware, mengakses informasi lokasi, menjalankan layanan background, menetapkan alarm, menambahkan notifikasi ke status bar, dan lainnya. Para developer memiliki akses penuh ke kerangka kerja API (Application Programming Interface) yang dipakai oleh aplikasi inti. Arsitektur aplikasi dirancang untuk menyederhanakan penggunaan kembali komponen-komponen (reusable): aplikasi apapun dapat mempublikasikan kemampuannya dan aplikasi lainnya dapat juga memakai kemampuan itu (tergantung pada keterbatasan keamaan yang diberlakukan oleh kerangka kerja). Mekanisme yang sama memungkinkan komponen dapat diganti oleh pengguna. Dasar dari semua aplikasi adalah seperangkat layanan dan sistem, termasuk didalamnya: a) Seperangkat Views yang dapat digunakan untuk membangun sebuah aplikasi, termasuk lists, grids, text boxes, buttons, dan bahkan memasukkan sebuah web browser. b) Content Providers yang memungkinkan aplikasi untuk mengakses data dari aplikasi-aplikasi lain (seperti kontak), atau untuk memberikan data mereka sendiri.
35 c) Sebuah Resource Manager yang menyediakan akses ke sumber daya non-kode seperti string lokal, grafik, dan file layout. d) Sebuah Notification Manager yang memungkinkan semua aplikasi untuk menampilkan custom alerts dalam status bar. e) Sebuah Activity Manager yang mengelola siklus hidup dari aplikasi dan menyediakan sebuah navigasi backstack umum. 3)
Libraries Android mencakup satu set C/C++ libraries yang digunakan oleh berbagai komponen sistem Android. Kemampuan ini diketahui oleh para developer melalui kerangka kerja aplikasi Android. Beberapa libraries inti adalah sebagai berikut: a)
System C library – sebuah implementasi turunan BSD dari standar library sistem C (libc), digunakan untuk perangkat yang berbasis Linux .
b)
Media Libraries – berdasarkan PacketVideo’s OpenCORE; libraries mendukung pemutaran kembali dan perekaman banyak format audio dan video yang populer, serta file bergambar statis, termasuk MPEG4, H.264, MP3, AAC, AMR, JPG, dan PNG.
c)
Surface Manager – mengelola akses ke tampilan subsistem dan
juga menggabungkan layer grafis 2D dan 3D dari
beberapa aplikasi.
36 d)
LibWebCore – sebuah mesin web browser yang modern yang mengatur browser dalam Android.
e)
SGL – mesin grafis yang mendasari 2D.
f)
3D libraries – sebuah implementasi berdasarkan OpenGL ES 1.0 APIs; libraries yang menggunakan akselerasi hardware 3D (jika tersedia) atau software rasterizer 3D yang dioptimalkan.
g)
FreeType – untuk merender gambar bitmap dan font vektor .
h)
SQLite – sebuah database relasional yang kuat dan ringan yang tersedia untuk semua aplikasi.
4) Android Runtime Android mencakup seperangkat libraries inti yang menyediakan sebagian besar fungsi yang tersedia dalam libraries inti dari bahasa pemrograman Java. Setiap aplikasi Android berjalan dalam prosesnya sendiri, yang masing-masing memiliki mesin virtual Dalvik. Dalvik telah dibuat supaya dapat menjalankan beberapa mesin virtual dengan efisien. Mesin virtual Dalvik mengeksekusi file dalam format Dalvik Executable (.dex) yang dioptimalkan untuk pemakaian memori minimal. Mesin virtual ini
berbasis
register,
dan
menjalankan class-class
yang
dikompilasi oleh compiler bahasa Java yang telah berubah menjadi format .dex oleh alat yang telah ada didalamnya yaitu alat “dx”. Mesin Virtual Dalvik bergantung pada kernel Linux
37 untuk fungsionalitas dasar seperti threading dan manajemen memori tingkat rendah. 5) Linux Kernel Android bergantung pada Linux versi 2.6 untuk layanan sistem inti seperti keamanan, manajemen memori, manajemen proses, jaringan stack, dan model driver. Kernel juga berfungsi sebagai lapisan abstraksi antara hardware dan sisa dari software stack. (http://developer.android.com/guide/basics/what-is-android.html )
c.
Versi Android Menurut Harahap (2011, h11-12), berikut ini merupakan informasi beberapa versi Android yang sudah ada: 1) Android Versi 1.1 Pada 9 Maret 2009, Google merilis Android versi 1.1 yang dilengkapi dengan pembaruan estetis pada aplikasi, jam alarm, pencarian
suara,
pengiriman
pesan
dengan
Gmail,
dan
pemberitahuan email. 2) Android Versi 1.5 (Cupcake) Pada 30 April 2009, Google kembali merilis telepon seluler dengan menggunakan Android dan SDK (Software Development Kit) dengan versi 1.5 (Cupcake). Terdapat beberapa pembaruan termasuk juga penambahan beberapa fitur dalam seluler versi ini yakni kemampuan merekam dan menonton video dengan modus
38 kamera, meng-upload video ke Youtube dan gambar ke Picasa langsung dari telepon, dukungan Bluetooth A2DP, kemampuan terhubung secara otomatis ke headset Bluetooth, animasi layar, dan keyboard pada layar yang dapat disesuaikan dengan sistem. 3) Android Versi 1.6 (Donut) Android versi 1.6 ini dirilis pada 15 September 2009 dengan menampilkan proses pencarian yang lebih baik dibanding sebelumnya, penggunaan baterai indikator dan kontrol applet VPN. Fitur lainnya adalah galeri yang memungkinkan pengguna untuk memilih foto yang akan dihapus, kamera, camcorder, dan galeri yang diintegrasikan, CDMA/EVDO, 802.1x, VPN, Gestures, Text-to-speech engine, kemampuan dial kontak. 4) Android Versi 2.0/2.1 (Eclair) Pada 26 Oktober 2009, Android versi 2.0/2.1 (Eclair). Perubahan yang dilakukan adalah pengoptimalan kecepatan hardware, peningkatan Google Maps 3.1.2, perubahan UI dengan browser baru, dan dukungan HTML5, tampilan daftar kontak yang baru, flash untuk kamera 3,2MP, digital zoom, dan Bluetooth 2.1. 5) Android Versi 2.2 (Froyo: Frozen Yoghurt) Pada 20 Mei 2010 Android versi 2.2 diluncurkan. Android versi ini yang sekarang banyak beredar di pasaran. Fitur yang tersedia di Android versi ini sudah kompleks, diantaranya adalah :
39 •
Kerangka aplikasi yang memungkinkan penggunaan dan penghapusan komponen yang tersedia.
•
Dalvik Virtual Machine dioptimalkan untuk perangkat mobile.
•
SQLite untuk penyimpanan data
•
Mendukung media: audio, video, dan berbagai format gambar (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, dan GIF)
•
GSM,
Bluetooth,
EDGE,
3G,
dan
WiFi
(hardware
independent) •
Kamera, Global Positioning System (GPS), kompas, dan accelerometer (tergantung hardware)
6) Android Versi 2.3 (Gingerbread) Android versi 2.3 diluncurkan pada bulan Desember 2010, dengan beberapa reivisi sebagai berikut : •
SIP-based VoIP
•
Near Field Communications (NFC)
•
Gyroscope dan sensor
•
Multiple cameras support
•
Mixable audio effects
•
Download Manager
2.2.2 Unified Modeling Language (UML) Menurur Pressman (2010, p841), Unified Modeling Language (UML) merupakan bahasa standar untuk menuliskan cetak biru
40 (blueprints)
dari
software.
UML
dapat
digunakan
untuk
mengvisualisasikan, merincikan, menyusun, dan mendokumentasikan artefak dari sebuah sistem intensif software. Dengan kata lain, arsitektur software
membuat
diagram
UML
untuk
membantu
developers
membangun sebuah software. UML 2.0 menyediakan beberapa jenis diagram untuk digunakan dalam memodelkan software. Contohnya ialah class, deployment, use case, sequence, communication, activity, dan state diagram. Dengan banyaknya jenis diagram yang tersedia, semua aspek penting dalam sistem dapat terekspresikan. a.
Class Diagram Class diagram
menyediakan sebuah pandangan statis atau
struktural dari sebuah sistem. Class diagram tidak menampilkan property dinamis dari komunikasi antara objek dalam class pada diagram. Elemen utama pada class diagram adalah sebuah kotak, yang merupakan ikon untuk mewakili class dan antar muka. Bagian paling atas dari kotak tersebut berisi nama dari class tersebut. Pada bagian tengah berisikan atribut-atribut yang dimiliki oleh class tersebut. Bagian terakhir dari kotak tersebut berisikan operasi-operasi atau perilaku (behaviour). (Pressman, 2010, p842)
41
Gambar 2.5 Class Diagram
b.
Use Case Diagram Use case mendeskripsikan cara pengguna berinteraksi dengan sistem, dengan mendefinisikan langkah-langkah yang dibutuhkan untuk mencapai tujuannya. Variasi dalam urutan langkah-langkah menjelaskan berbagai skenario. Use case diagram merupakan gambaran luas dari semua use case dan relasinya Use case diagram menyediakan gambaran luas mengenai fungsi dari sistem.
42
Gambar 2.6 Use Case Diagram Pada diagram ini, gambar stick figure merepresentasikan sebuah aktor yang terkait dengan satu kategori pengguna (atau elemen interaksi lainnya). Biasanya sistem yang kompleks memiliki lebih dari satu aktor. Pada use case diagram, use case dilambangkan dengan lingkaran oval. Aktor terhubung ke use case dengan sebuah garis. Use case dan aktor dipisahkan oleh sebuah kotak persegi panjang, dimana use case diletakkan kedalam kotak, sedangkan aktor diletakkan di luar kotak. Kotak ini memvisualisasikan batasan dari sistem. (Pressman, 2010, p847)
43 c.
Deployment Diagram UML deployment diagram berfokus pada struktur dari sebuah sistem software dan berguna untuk menunjukkan distribusi fisik dari sebuah sistem software antara platform hardware dan lingkungan eksekusi.
Gambar 2.7 Deployment Diagram Pada diagram ini, komponen hardware
digambarkan pada
kotak berlabel “<<device>>”. Jalur komunikasi antara komponen hardware digambarkan dengan garis dengan label opsional. Setiap node pada deployment diagram dapat dijelaskan dengan detail mengenai perangkatnya. Sebuah artifact biasanya merupakan file yang berisi software yang berjalan pada perangkat. Deployment diagram juga
dapat
menampilkan
node
lingkungan
eksekusi,
yang
digambarkan sebagai kotak berisi label. Node ini mewakili sistem, seperti sistem operasi yang dapat menjadi host dari software lain. (Pressman, 2010, p896)
44 d.
Sequence Diagram Sequence diagram digunakan untuk menunjukkan komunikasi yang dinamis antara objek selama eksekusi tugas. Sequence diagram menunjukkan urutan sementara dalam pesan yang dikirim antara objek untuk menyelesaikan tugas. Seseorang mungkin menggunakan sequence diagram untuk menunjukkan interaksi dalam satu use case atau di salah satu skenario dari suatu sistem software. (Pressman, 2010, p848). Pada sequence diagram, setiap kotak pada baris di atas biasanya berhubungan dengan objek, meskipun ada kemungkinan untuk memiliki kotak dengan model lainnya seperti class. Di bawah setiap kotak, terdapat garis putus-putus yang disebut lifeline dari sebuah objek. Sumbu x pada sequence diagram berkaitan dengan waktu, dengan waktu meningkat seiring dengan pergerakan ke bawah. Sequence diagram menampilkan metode panggilan dengan menggunakan panah horizontal dari caller ke caller, diberi label dengan nama metode dan dapat juga termasuk parameter, tipe, dan tipe pengembaliannya. Ketika sebuah objek mengeksekusi sebuah metode, white bar, disebut juga activation bar, dapat ditampilkan di bawah lifeline dari objek tersebut. Pada diagram ini juga dapat menunjukkan pengembalian dari pemanggilan metode dengan panah putus-putus dan label opsional. (Pressman, 2010, p849).
45
Gambar 2.8 Sequence Diagram e.
Activity Diagram Activity diagram adalah diagram untuk menggambarkan aksiaksi dan keputusan-keputusan yang terjadi sesuai fungsi-fungsi yang telah dilakukan (Pressman, 2010, p161).
Gambar 2.9 Activity Diagram
46 Activity diagram menggambarkan perilaku dinamis dari sistem atau bagian dari sistem melalui aliran kontrol antara tindakan yang dilakukan sistem. (Pressman, 2010, p853). Komponen-komponen utama pada activity diagram ialah: 1.
Rounded rectangles, menggambarkan tugas spesifik yang dilakukan oleh sistem software,
2.
Arrows, menggambarkan aliran kontrol dalam sistem,
3.
Decision diamond, menggambarkan suatu pilihan keputusan atau tindakan,
4.
Solid black dot, menggambarkan simpul awal yang menandakan titik mulai sebuah aktifitas,
5.
Black dot surrounded by a black circle, menggambarkan simpul ahir yang menandakan titik akhir sebuah aktifitas,
6.
Fork, menggambarkan adanya pemisahan dari satu aktivitas menjadi dua atau lebih aktivitas,
2.2.3 Entity Relationship Diagram (ERD) Menurut Deitel dan Deitel (2012, p1177), Entity Relationship Diagram (ERD) menggambarkan tabel-tabel di dalam
database dan
hubungan diantara tabel-tabel tersebut. Primary key dalam sebuah tabel mengidentifikasi setiap baris dalam suatu tabel secara unik. Garis yang menghubungkan tabel-tabel menggambarkan relasi antar tabel.
47 2.2.4 SQLite SQLite
adalah
suatu
paket
software
public-domain
yang
menyediakan sistem manajemen database relasional (RDBMS). “Lite” pada SQLite tidak merujuk pada kemampuannya, tetapi merujuk pada keringanan dalam pengaturan kompleksitas, biaya administrasi, dan penggunaan sumber daya. SQLite didefinisikan oleh fitur berikut: a.
Serverless SQLite tidak memerlukan proses server yang terpisah atau sistem untuk beroperasi. Library SQLite mengakses penyimpanan file secara langsung.
b.
Zero Configuration Tidak ada server berarti tidak memerlukan pengaturan. Membuat sebuah database SQLite semudah membuka sebuah file.
c.
Cross-Platform Keseluruhan database berada di dalam sebuah file cross-platform yang tidak memerlukan administrasi.
d.
Self-Contained Sebuah library berisi seluruh sistem database yang tergabung langsung ke aplikasi host.
e.
Small Runtime Footprint Pembuatan standar memerlukan beberapa megabyte memori dan kurang dari 1 megabyte kode. Dengna beberapa penyesuaian, ukuran dan memori yang digunakan library dapat berkurang secara signifikan.
48 f.
Transaksional Transaksi dalam SQLite sepenuhnya ACID (atomicity, consistency, isolation, durability), yang memungkinkan akses yang aman dari beberapa proses atau thread.
g.
Memiliki fitur yang lengkap SQLite mendukung sebagian besar fitur bahasa query yang ada pada standar SQL92 (SQL2).
h.
Sangat handal Tim pengembang SQLite melakukan pengujian kode dan verifikasi yang sangat serius pada setiap pengembangannya.
2.2.5
MySQL Database MySQL telah menjadi database terbuka terpopuler di dunia karena performa yang tinggi, kehandalan yang tinggi dan kemudahan penggunaan. Database MySQL juga merupakan database pilihan untuk generasi baru dari aplikasi yang dibangun pada stack LAMP (Linux, Apache, MySQL, PHP / Perl / Python). MySQL berjalan pada lebih dari 20 platform termasuk Linux, Windows, Mac OS, Solaris, HP-UX, IBM AIX, memberikan fleksibilitas yang memberikan kendali bagi pengguna. MySQL menawarkan tool database yang lengkap, dukungan, pelatihan dan layanan konsultasi untuk mempermudah penggunanya. (http://www.mysql.com/why-mysql/ )
49 2.2.6 Hibernate Hibernate adalah Object Relational Mapping (ORM) yang kuat dan memiliki kinerja tinggi dalam persistensi dan layanan query. Hibernate memungkinkan pengembangan class persistence berikut ungkapan objek orientasi, termasuk asosiasi, inheritance, polymorphism, komposisi, dan koleksi. Hibernate menangani pemetaan dari class Java ke tabel di database
dan
dari
tipe
data
Java
ke
tipe
data
SQL.
( http://www.hibernate.org/about ) Hibernate memperbolehkan penggunaan ekspresi query dalam ekstensi SQL portable hibernate sendiri (Hibernate Query Language atau HQL), SQL asli, atau dengan orientasi objek Criteria dan Example API. Tidak seperti banyak solusi persistence lainnya, Hibernate tidak menyembunyikan kekuatan dari SQL. Hal ini menjamin bahwa investasi dalam teknologi relasional dan pengetahuan berlaku seperti biasa. ( http://www.jboss.com/products/hibernate / ) Hibernate merupakan suatu proyek yang menargetkan suatu solusi lengkap untuk permasalahan dalam mengatasi masalah data persistence dalam Java. Hibernate merupakan perantara interaksi antara aplikasi Java dengan database relasional. Umumnya, hibernate digunakan dalam aplikasi two-tier dan three-tier client-server, dengan hibernate digunakan hanya pada server. (Bauer dan King, 2005, p41) Hibernate bekerja dengan baik dengan pendaftaran model yang diimplementasikan dengan POJOs. (Bauer dan King, 2005, p67)
50 a.
Plain Old Java Objects (POJOs) Plain Old Java Objects, merupakan komponen model untuk pengembangan antar muka, dan diterapkan kembali ke layer bisnis. Sebuah POJO menyatakan metode bisnis, yang menentukan perilaku, dan properti yang mewakili keadaan. Beberapa properti merupakan asosiasi untuk POJO lainnya.
Gambar 2.10 Contoh Implementasi POJO Hibernate tidak mengharuskan kelas persisten menerapkan serializable. Namun, ketika objek disimpan dalam HttpSession atau melewati nilai menggunakan RMI, serialisasi diperlukan. (Hal ini sangat mungkin terjadi dalam aplikasi hibernate.) Berbeda dengan spesifikasi JavaBeans, yang tidak memerlukan konstruktor tertentu, hibernate memerlukan konstruktor tanpa argumen untuk setiap class persistence.
Hibernate
menginisiasikan
kelas
terus-menerus
menggunakan Constructor.newInstance(), sebuah fitur refleksi Java API.
51 Properti-properti POJO mengimplementasikan atribut entitas bisnis, misalnya, username pengguna. Properti-properti biasanya diimplementasikan sebagai variabel, bersama dengan metode accessor property: sebuah metode untuk mengambil nilai dari variabel dan metode untuk mengubah nilainya. Metode ini dikenal sebagai getter dan setter. (Bauer dan King, 2005, p67) b.
Data Access Object (DAO) Pola desain Data Access Object berasal dari cetak biru Sun Java. DAO bahkan digunakan dalam aplikasi demo Java Petstore terkenal. Sebuah DAO mendefinisikan sebuah antarmuka untuk operasi persistence (Create, Read, Update, Delete atau CRUD dan metode finder) yang berkaitan dengan entitas persistence tertentu; DAO menganjurkan pengelompokan kode yang berhubungan dengan entitas itu.
Gambar 2.11 Contoh Sederhana DAO
52 2.2.7 Apache eXtensible Interaction System (AXIS) Menurut Hoffer, Prescott, dan Topi (2009, p182), AXIS dirancang untuk dapat digunakan dalam berbagai lingkungan oleh pengguna dengan berbagai level kemampuan dan kepentingan. Axis adalah semua komponen pengolahan pesan yang bekerja bersama untuk menangani (menerima, memproses, dan memghasilkan) pesan SOAP.
2.2.8 Komponen Web Services Berikut ini merupakan komponen-komponen dalam sebuah web service : a.
Simple Object Access Protocol (SOAP) Menurut Hoffer, Prescott, dan Topi (2009, p488), SOAP adalah protokol komunikasi berbasis XML yang digunakan untuk mengirim pesan antar aplikasi melalui internet. SOAP adalah sebuah bahasa
yang
platform
independen,
sehingga
memungkinkan
komunikasi antar aplikasi yang berbeda. Menurut Jendrock et al (2010, p16), request klien dan response dari web service ditransmisikan sebagai pesan Simple Object Access Protocol (SOAP) melalui HTTP untuk memungkinkan pertukaran sepenuhnya antar operasi antara klien dan web service, semua berjalan pada platform yang berbeda dan pada berbagai lokasi di internet. HTTP dikenal sebagai standar request-response untuk mengirimkan pesan pada internet, dan SOAP merupakan protocol berbasis XML
53 yang mengikuti model request dan response HTTP. Bagian dari pesan SOAP yang diangkut melakukan hal berikut: 1) Mendefinisikan
sebuah
envelope
berbasis
XML
untuk
menggambarkan apa yang ada di pesan tersebut dan menjelaskan bagaimana untuk memproses pesan tersebut. 2) Meliputi
aturan
pengkodean
berbasis
XML
untuk
mengungkapkan instansi aplikasi - mendefinisikan tipe data di dalam pesan. 3) Mendefinisikan
sebuah
konvensi
berbasis
XML
untuk
merepresentasikan request untuk layanan remote dan response yang dihasilkan.
b.
Web Services Description Language (WSDL) Web Services Description Language (WSDL) merupakan format XML standar untuk menggambarkan layanan jaringan. Deskripsi mencakup nama layanan, lokasi layanan, dan cara untuk berkomunikasi dengan layanan. WSDL dapat dipublikasikan di web. (Jendrock et al, 2010, p16) Menurut Hoffer, Prescott, dan Topi (2009, p488), Web Services Description Language adalah sebuah bahasa berbasis XML yang
digunakan
untuk
mendeskripsikan
web
service
dan
menspesifikasikan sebuah antarmuka umum untuk layanan tersebut
54 c.
Universal Description, Discovery, and Integration (UDDI) Universal Description, Discovery, and Integration memiliki peran sebagai layanan registri privat, termasuk konvensi penyimpanan deskripsi layanan
WSDL dalam suatu registri UDDI. Kegunaan
UDDI adalah untuk memfasilitasi service discovery dalam waktu mendesain dan secara dinamis pada saat runtime. Proyek UDDI berjalan pada registri bisnis online publik. (Graham et al, 2001, p388) UDDI sebenarnya lebih dari sekedar registri bisnis dan layanan, UDDI juga menjelaskan suatu set struktur data dan spesifikasi API. Web service provider yang akan mempublikasikan bisnis dan deskripsi layanannya ke suatu registri, dan requestor layanan, saat desain ataupun runtime, akan melakukan query registri untuk deskripsi layanan. UDDI menyediakan kemampuan publikasi dan pencarian yang sangat canggih. UDDI mencakup informasi lebih dari sekedar deskripsi layanan, termasuk metadata bisnis dan taksonomi bisnis dan layanan. (Graham et al, 2001, p390)
2.2.9 JavaServer Pages (JSP) Teknologi JavaServer Pages (JSP) memungkinkan penempatkan potongan kode servlet langsung ke dokumen berbasis teks. Halaman JSP adalah dokumen berbasis teks yang terdiri dari dua jenis teks:
55 1.
data statis, yang dapat dinyatakan dalam format berbasis teks seperti HTML atau XML.
2.
elemen JSP, yang menentukan bagaimana halaman mengkontruksi konten dinamis.
(Jendrock et al, 2010, p27)
2.2.10 JavaServer Pages Standard Tag Library (JSTL) JavaServer Pages Standard Tag Library (JSTL) mengenkapsulasi fungsi utama yang umum
untuk berbagai aplikasi JSP. Daripada
menggunakan campuran tag-tag dari beberapa vendor pada aplikasi JSP, digunakan sebuah set tag yang standar. Standarisasi ini memungkinkan untuk menyebarkan aplikasi pada setiap kontainer JSP yang mendukung JSTL dan membuat aplikasi tersebut seakan mengimplementasikan tag-tag yang dioptimalkan. JSTL memiliki tag iterator dan kondisional untuk penanganan kontrol
aliran,
tag
untuk
memanipulasi
dokumen
XML,
tag
internasionalisasi, tag untuk mengakses database menggunakan SQL, dan fungsi-fungsi lain yang biasa digunakan. (Jendrock et al, 2010, p27)
2.2.11 Servlet Servlet merupakan class bahasa pemrograman Java yang digunakan untuk memperluas kemampuan dari server yang meng-host aplikasi yang
56 diakses dengan menggunakan model pemrograman request-response. Meskipun servlet dapat merespon semua jenis permintaan, servlet biasanya digunakan untuk memperpanjang aplikasi yang di-host oleh web server. Teknologi Java Servlet HTTP mendefinisikan class khusus servlet untuk aplikasi tersebut. (Jendrock et al, 2010, p180)
2.2.12 E-Commerce Menurut Williams dan Sawyer (2007, pp422-pp425), e-commerce (electronic commerce) adalah pembelian dan penjualan produk dan jasa melalui jaringan komputer. E-commerce membentuk kembali seluruh industri dan membenahi gagasan tentang apa pengertian dari perusahaan. Ada tiga macam sistem e-commerce yang utama, yaitu: a.
Business-to-Business (B2B) Dalam sistem B2B, sebuah bisnis menjual ke bisnis lain dengna menggunakan internet atau jaringan khusus, tujuannya utnuk memotong biaya transaksi dan meningkatkan efisiensi. Selain menjual produk, bisa juga menjual iklan, pelatihan pegawai, riset pasar, dukungan teknis, layanan perbankan, dan layanan dukungan bisnis lainnya.
b.
Business-to-Consumer (B2C) Dalam sistem B2C, perusahaan menjual barang atau jasa kepada konsumen. Sistem e-commerce ini menggeser perantara dan bahkan toko fisik.
57 c.
Consumer-to-Consumer (C2C) Dalam sistem C2C, konsumen menjual barang atau jasa secara langsung ke konsumen lain, kerap kali dengan bantuan pihak ketiga, misalya eBay, sebuah perusahaan lelang online.