BAB 2 LANDAS AN TEORI 2.1. Titik M enurut Ryan Gladhill (2008), titik adalah posisi atau lokasi yang tepat pada suatu bidang. Dalam istilah geometris, titik adalah sepasang koordinat x, y. Titik merupakan posisi atau lokasi pada permukaan bidang. (sumber
:
http://gdbasics.com) 2.2. Garis Garis adalah rangkaian tak terbatas dari titik yang memiliki panjang bukan ketebalan. Garis merupakan hubungan antara dua titik, atau merupakan jalur dari pergerakan titik. (sumber : http://gdbasics.com) 2.3. Android Android adalah sistem operasi untuk perangkat mobile berbasis linux yang mencakup sistem operasi, middleware, dan aplikasi. Android menyediakan platform terbuka bagi para pengembang untuk dapat menciptakan aplikasi mereka sendiri yang digunakan untuk perangkat lunak mobile seperti handphone, smartphone, dan tablet. Pada mulanya Android Inc mengembangkan perangkat lunak untuk ponsel/smartphone dan hadir sebagai pendatang baru dalam industri tersebut. Kemudian Google membeli Android Inc
membuatnya menjadi open source,
sehingga pengembang dapat menggunakan kode sumber tanpa dipungut biaya. Android juga didukung oleh komunitas open source yaitu kumpulan orangorang yang dapat saling bekerja sama dan saling membantu memanfaatkan kode 9
10 sumber yang tersedia untuk dipelajari, diperbaiki, dan dirubah dalam menciptakan dan serta mengembangkan aplikasi. M enurut Nazruddin Safaat (2011, h.2), Android merupakan platform mobile yang memiliki tiga hal sebagai berikut: 1. Lengkap (complete platform), karena Android menyediakan banyak tools dalam membangun perangkat lunak dan memiliki peluang untuk mengembangkan aplikasi. 2. Terbuka (open source platform), karena pengembang secara bebas dapat mengembangkan aplikasi dan platform Android disediakan melalui lisensi open source. 3. Free (free platform), karena Android merupakan plaform yang bebas untuk dikembangkan dan tidak ada royalti untuk pengembangan pada platform Android. Android memiliki versi-versi sebagai berikut: • Android versi 1.1 • Android versi 1.5 (Cupcake) • Android versi 1.6 (Donut) • Android versi 2.0/2.1 (Eclair) • Android versi 2.2 (Froyo: Frozen Yoghurt) • Android versi 2.3 (Gingerbread) • Android versi 3.0/3.1 (Honeycomb) • Android versi 4.0 (Ice Cream)
11 2.3.1. Android versi 3.0/3.1 (Honeycomb) Android versi 3.0/3.1 merupakan versi Android yang dirancang khusus untuk perangkat tablet yang berbeda dengan versi-versi sebelumnya yang hanya berjalan di perangkat smartphone.
Android versi 3.0 dibuat untuk
mendukung untuk ukuran layar yang lebih besar seperti tablet dalam hal user interface dan fitur-fitur yang berbeda dengan versi sebelumnya. 2.3.2. Dalvik Virtual Machine (DVM) Android menggunakan Dalvik Virtual M achine (DVM ) yaitu virtual sendiri yang dirancang agar fitur-fitur berjalan pada perangkat mobile. Dalvik Virtual M achine (DVM ) merupakan register bases.
DVM didesain dan
ditulis oleh Don Bornsten dan beberapa engineers Google lainnya. Untuk menangani fungsionalitas tingkat rendah termasuk keamanan, threading, dan proses manajemen memori. Dalvik Virtual M achine menggunakan kernel linux yang memungkinkan pengguna untuk menulis aplikasi C/C++ seperti pada OS linux pada umumnya. DVM merupakan mesin virtual yang mengeksekusi file dalam Dalvik Executeable (.Dex) Format yaitu sebuah format yang dioptimalkan untuk penyimpanan yang efisien, eksekusi, dan pemetaan memori. Semua hardware yang berbasis Android dijalankan menggunakan virtual machine untuk mengeksekusi aplikasi. DVM mengeksekusi executable file yang diciptakan
dengan
mengubah class
bahasa
java dan
menggunakan tools yang disediakan dalam SDK Android.
dikompilas i
12 2.3.3. Android S oftware Development Kit (SDK) Android SDK adalah tools Application Programming Interface (API) yang dibutuhkan untuk mengembangkan aplikasi ber-platform Android dengan menggunakan bahasa pemrograman java. Pada Android SDK sudah tersedia 2.3.4. Arsitektur Android Dalam sistem operasi Android memiliki bagian-bagian sebagai berikut : • Applications Applications adalah layer yang berisi satu set aplikasi inti yang terdiri dari klien email, program SM S, peta, browser, kontak, dan lain-lain. Semua aplikasi ditulis menggunakan bahasa pemrograman Java. • Application Framework Android merupakan sebuah platform pengembangan terbuka (Open Development Platform) sehingga pengembang dapat membangun aplikasi yang inovatif. Pengembang secara bebas dapat mengakses perangkat
keras,
mengakses
informasi,
menjalankan
service
background, mengatur alarm, menambahkan notifikasi ke status bar, dan lain-lain. Application Framework merupakan layer yang memberikan akses ke API secara penuh kepada pengembang
untuk membuat dan
mengembangkan aplikasi inti di dalam Android. Seperangkat layanan dan sistem yang disediakan oleh Applications Framework adalah sebagai berikut:
13 ‐
Views yang digunakan untuk membangun sebuah aplikasi, termasuk list, grid, teks, tombol, dan web browser yang dapat di-embed.
‐
Content
Provider
yang memungkinkan
aplikasi
untuk
mengakses data dari aplikasi lain (seperti kontak) atau untuk berbagi data mereka sendiri. ‐
Resource Manager yaitu penyedia akses string lokal, grafik, dan tata letak dokumen
‐
Notification Manager yang memungkinkan semua aplikasi untuk menampilkan notifikasi dalam status bar
‐
Activity Manager yang mengelola siklus hidup aplikasi dan menyediakan navigasi
‐
Libraries M erupakan layer yang mencakup satu set libraries C/C++ yang digunakan oleh berbagai komponen dari sistem Android untuk menjalankan aplikasi. Beberapa libraries C/C++ tersebut antara lain sebagai berikut : 9 Media
Libraries
untuk mendukung pemutaran
dan
perekaman audio, format video, dan gambar statis, termasuk M PEG4, H.256, M P3, AAC, AAC, AM R, JPG, dan PNG. 9 Surface Manager untuk mengelola akses ke subsistem layar
14 9 LibWebCore merupakan web browser modern dengan engine embeded web view. 9 3D libraries yang merupakan implementasi OpenGL ES 1,0 API sehingga mengoptimalkan 3D. 9 SQLite merupakan mesin database relasional yang tersedia untuk mendukung database untuk semua aplikasi. • Android Run Time Setiap aplikasi Android berjalan dalam prosesnya sendiri. Contoh seperti Dalvik Virtual M achine (DVM ) mengeksekusi file dalam Dalvik executable (.Dex). Virtual mesin ini berbasis register dan menjalankan class yang dikompilasi oleh Java Compiler, sehingga dapat menjalankan fungsi-fungsi secara optimal. • Linux Kernel Linux kernel merupakan layer yang melayani sistem inti dalam Android seperti keamanan, manajemen memori, manajemen proses, driver,
dan
sistem-sistem operasi Android
menggunakan linux kernel versi 2.6.
lainnya.
Android
15
Gambar 2.1 Arsitektur Android (Sumber: http://developer.android.com/guide/basics/what-is-android.html)
2.4. Java M enurut Jeff Friesen (2010, p.1), Java adalah platform untuk mengeksekusi program dan terdiri dari library untuk menjalankan program dan berinteraks i dengan sistem operasi yang mendasarinya. Java adalah bahasa pemrograman yang sederhana, berorientasi objek, terdistribusi, diinterpretasikan, kuat, aman, arsitektur netral, portabel, kinerja tinggi, multithreaded, dan dinamis. Java dapat dijalankan di berbagai jenis sistem operasi dan arsitektur komputer. Java pertama kali dikembangkan oleh tim yang dipimpin oleh James Gosling di Sun M icrosystem. Pada mula nya disebut Oak yang dirancang pada tahun 1991 untuk digunakan dalam chip tertanam dalam peralatan elektronik konsumen.
16 Kemudian pada tahun 1995, berganti nama menjadi Java yang didesain ulang untuk mengembangkan aplikasi internet. 2.5. PHP PHP Hypertext Preprocessor (PHP) merupakan suatu bahasa yang bersifat server side (berjalan di sisi server). PHP sendiri dapat disisipkan dalam bahas a HTM L. Karena berjalan di sisi server, maka bahasa PHP dieksekusi di server, kemudian dikirimkan hasilnya dalam bentuk HTM L. Oleh karena itu, kode PHP tidak terlihat. Sebagian besar sintaks PHP dipinjam dari C, Java, dan Perl. Tujuan diciptakannya bahasa ini adalah agar pengembang web dapat menulis halaman web secara dinamis dan cepat. M enurut Vikram Vaswani (2009, p.5), PHP memiliki beberapa keunggulan, antara lain: •
Kinerja Script yang ditulis dalam PHP mengeksekusi lebih cepat dibandingkan yang ditulis dalam bahasa script lain.
•
Portabilitas PHP tersedia untuk UNIX, M icrosoft Windows, M ac OS, dan OS/2. PHP merupakan program portable antar platform. Kemampuan untuk melakukan cross-platform merupakan salah satu keunggulan bagi lingkungan perusahaan yang multiplatform.
•
Kemudahan dalam penggunaan
17 PHP adalah bahasa pemograman yang sangat canggih dan dilengkapi dengan 5000 fungsi. Hal ini merupakan salah satu alasan PHP disukai sebagai alat prototyping untuk aplikasi berbasis web.
•
Open source PHP merupakan bahasa open source dan tersedia secara bebas di web serta dapat digunakan tanpa biaya lisensi.
2.5.1. Prinsip Kerja PHP
Prinsip kerja PHP hampir sama dengan HTM L yaitu diawali dengan mengirimkan permintaan halaman web oleh browser. Klien memanggil berdasarkan URL (Uniform Resource Locator) melalui browser, kemudian kode-kode PHP diterjemahkan oleh mesin PHP ke kode HTM L terlebih dahulu sebelum diterjemahkan browser untuk ditampilkan di klien.
Gambar 2.2 Konsep Kerja PHP
18 2.6. MySQL M enurut Larry
Ullman (2006, pp.ix-x), M ySQL adalah Database
Management System (DBM S) untuk database relasional, oleh karena itu MySQL adalah sebuah RDBM S (Relational Database Management System). Database adalah sekumpulan (sering saling terkait) data, baik teks, angka, atau file biner, yang disimpan dan diselenggarakan oleh DBM S. Secara teknis, MySQL adalah sebuah aplikasi yang mengelola file yang disebut database. MySQL adalah sebuah aplikasi open source, seperti PHP dan beberapa jenis dari Unix yang berarti user dapat secara bebas untuk menjalankan atau bahkan memodifikasi kode sumber yang dapat di-download di internet. 2.7. SQLite SQLite adalah aplikasi embedded yang digunakan untuk mengelola database. SQLite merupakan aplikasi open source yang dirilis pada tahun 2000 dan dirancang untuk menyediakan cara penyimpanan yang cepat dan penggunaan memori yang sangat sedikit untuk aplikasi yang mengelola data. M enurut Grant Allen dan M ike Owens (2010, p.1) SQLite dapat mengelola data tanpa overhead yang sering terjadi pada sistem manajemen database relasional. Dalam penggunaannya SQLite sangat portable, mudah digunakan, efisien, dan mudah digunakan. SQLite adalah database yang tertanam di dalam sebuah program. Program inilah yang akan melakukan pekerjaan dan mengolah data. Salah satu keuntungan dari memiliki serverdatabase di dalam program yaitu tidak ada konfiguras i jaringan, persyaratan administrasi yang diperlukan untuk mengakses databas e
19 tersebut, tidak perlu memikirkan kekhawatiran dari adanya firewall, dan tidak perlu membuang waktu untuk mengurus authentication untuk mengakses data. Baik klien dan server dijalankan bersama-sama dalam proses yang sama. Overhead tidak terjadi karena mengurangi,
menyederhanakan
administrasi database, dan
membuatnya lebih mudah untuk menyebarkan aplikasi karena segala data yang dibutuhkan dikompilasi langsung di program. 2.7.1. SQLite di Android M enurut Nazruddin Safaat H (2011, p.158), Android memiliki fasilitas untuk membuat database yang dikenal dengan SQLite. Di dalam Android, SQLite termasuk dalam Android runtime, sehingga setiap versi dari Android dapat membuat database dengan SQLite. Untuk menggunakan SQLite dalam pembuatan database pada Android tidak tersedia secara otomatis, melainkan harus meng-createdatabase sendiri, mendefinisikan tabel, index, serta datanya. Untuk membuat dan membuka database menggunakan libraries, yaitu: import android.database.sqlite.SQLiteOpenHelper Libraries tersebut menyediakan tiga metode yaitu: •
Constructor, menyediakan representasi versi dari database skema yang kita gunakan.
•
onCreate(), menyediakan SQLiteDatabase object yang kita butuhkan dalam definisi tabel dan inisialisasi data.
•
onUpgrade(), menyediakan fasilitas convertdatabase dari skema database versi yang lama ke skema database versi yang baru.
20 2.8. WebSocket WebSocketadalah teknologi yang dirancang untuk menyederhanakan kompleksitas
pada
komunikasi
bi-directional,
full-duplex
melalui
socket
Transmission Control Protocol (TCP) tunggal dimana pesan dapat dikirimkan antara klien dan server. WebSocket mengunakan protokol berbasiskan HTTP. Koneksi WebSocket dibentuk dengan mengubah protokol HTTP menjadi protokol WebSocket ketika melakukan handshake antara klien dan server. (sumber: http://websocket.org/). 2.8.1. Protocol HTTP/1.1 HTTP adalah protokol jaringan untuk web yang digunakan untuk berkomunikasi antara klien dan server. HTTP hampir selalu menggunakan TCP sebagai protokol transport. TCP bekerja sangat baik dalam hal koneksi jangka panjang, tetapi bentuk HTTP menggunakan koneksi TCP yang baru setiap melakukan permintaan, sehingga setiap permintaan yang dikeluarkan akan memerlukan pengaturan koneksi TCP yang baru. Karena hal tersebut bandwidth yang tersedia tidak dipergunakan dengan maksimal. Versi HTTP terakhir yang menggunakan koneksi tersebut adalah HTTP/1.0. HTTP/1.1 yang merupakan protokol HTTP yang diterapkan oleh WebSocket telah mengatasi permasalahan tersebut. Karena sebelumnya HTTP/1.0 tidak membuat ketentuan terhadap koneksi tetap. Beberapa implementasi dari HTTP/1.0 menggunakan header yang tetap hidup untuk menahan koneksi namun pola tersebut tidak dapat beroperasi dengan intermediate proxy. HTTP/1.1 menyediakan beberapa solusi umum dengan melakukan koneksi tetap sebagai
21 standar. HTTP/1.1 klien, server, dan proxy menganggap koneksi akan tetap terbuka setelah transmisi response dan request. Protokol memperbolehkan implementasi untuk menutup koneksi kapan saja.
Gambar 2.3 Arsitektur Protocol HTTP/1.1 (Sumber: http://baraknaamafinal.appspot.com/http.jsp) M eskipun HTTP/1.1 mendukung transmisi dari berbagai permintaan pada koneksi TCP tunggal, setiap request harus dapat terkirim dalam satu pesan yang saling berdampingan, dan server harus mengirim respon secara urutan apa yang telah diterimanya dari request. Namun klien tidak perlu menunggu untuk menerima response untuk mengirimkan pesan pada koneksi yang sama. Dalam kata lain, klien dapat mengirimkan request yang banyak pada koneksi TCP sebelum menerima response apapun. Hal ini dapat memberikan peforma yang baik karena tidak memerlukan waktu menunggu lagi dalam pengiriman pesan.
22 2.9. JavaS cript JavaScript adalah bahasa pemograman web. M ayoritas situs web modern menggunakan JavaScript, semua web browser yang modern pada desktop, konsol game, tablet, dan smartphone termasuk dalam interpreter dari JavaScript. JavaScript merupakan bagian dari 3 serangkai teknologi yang dipelajari oleh pengembang yang terdiri dari HTM L untuk menentukan isi dari halaman web, CSS untuk menentukan tampilan halaman web, dan JavaScript untuk menentukan perilaku dari halaman web. M enurut David Planagan (2011, p.1), JavaScript merupakan bahasa pemrograman tingkat tinggi yang dinamis dan cocok untuk gaya pemrograman berorientasi objek dan fungsional. JavaScript berasal dari sintaks Java namun berbeda dari bahasa pemrograman Java. JavaScript telah menjadi bahasa yang umum, tujuan yang kuat, dan efisien. 2.10. Extensible Markup Language (XML) M enurut Kevin Howard (2009, p.xii), XM L adalah spesifikasi untuk menyimpan informasi dan juga merupakan spesifikasi untuk menggambarkan struktur informasi tersebut. XM L adalah bahasa markup (seperti HTM L), XM L tidak memiliki label sendiri . Hal ini memungkinkan orang menulis XM L untuk menciptakan apapun tag yang dibutuhkan. Spesifikasi XM L memungkinkan oran g untuk mendefinisikan bahasa markup mereka sendiri. XM L adalah bahasa yang didesain khusus untuk penyimpanan data dan transportasi. XM L terlihat seperti HTM L, lengkap dengan tag, atribut, dan nilainilai. XM L juga dapat digunakan untuk berbagi data antara sistem yang berbeda
23 dan organisasi. Hal ini disebabkan XM L hanyalah sebuah sebuah file teks dan tidak lebih. XM L juga terstruktur, mudah dimengerti, mudah untuk mengurai, mudah untuk memanipulasi, dan mudah dibaca. XM L memiliki struktur yang sangat teratur dan dapat diperkirakan. Jika file memenuhi aturan-aturan ini maka dianggap well-formed. Aturan-aturan itu mengandung antara lain: •
Elemen root Setiap file XM L harus berisi salah satu dan hanya satu elemen root. Elemen root ini berisi semua elemen lain dalam dokumen.
•
Tag penutup Setiap elemen harus memiliki tag penutup.
•
Elemen harus benar dan tepat Jika memulai elemen A, kemudian mulai elemen B, maka terlebih dahulu menutup B sebelum menutup elemen A.
•
Case Sensitive XM L merupakan case sensitive.
M enurut Kevin Howard (2009, p.xii), keunggulan dari bahasa XM L adalah sebagai berikut: •
XM L adalah bahasa yang mudah dipelajari dan diadaptasi.
•
M enggunakan XM L untuk mendesain kesesuaian bahasa markup dan kemudian menggunakan bahasa tersebut untuk menyimpan informasi.
24 •
XM L dapat digunakan untuk mengirimkan data antara sistem yang berbeda. Karena itulah penyebab dokumen XM L merupakan dokumen teks yang sederhana, terstruktur,
mudah dimengerti,
mudah di parse, mudah untuk memanipulasi data, dan mudah untuk dibaca manusia. XM L tidak mengkhususkan jenis user untuk menggunakannya. Sehingga bebas digunakan oleh siapa saja. 2.11. Node.js Node.js adalah platform yang dibangun pada Chrome JavaScript runtime yang bertujuan untuk agar mudah untuk membangun aplikasi jaringan yang scalable. Node.js menggunakan event-driven, non blocking I/O model yang membuatnya ringan dan efisien dan cocok untuk data intensif dari aplikasi real time yang berjalan dalam perangkat yang terdistribusi. (sumber : http://nodejs.org) M enurut M ick Thompson (2011, p.1), Node.js telah menjadi asynchronous framework populer untuk JavaScript. Node.js merupakan aplikasi internet yang sangat scalable terutama web server. Program ini dituliskan dalam JavaScript, menggunakan event-driven, asynchronous I/O untuk meminimalkan overhead dan memaksimalkan skalabilitas. Node.js mengimplementasikan multiple Websocket Servers dan mendukung protocol HTTP/1.1. 2.11.1. S ocket IO Socket.IO merupakan Application Programming Interface (API) dari WebSocket yang dibuat oleh Guillermo Rauch, CTO dari LearnBoost.
25 Socket.IO ini akan membuat sambungan yang dibentuk dengan WebSocket untuk menciptakan aplikasi real time yang dapat bekerja di mana saja. Socket.IO juga menyediakan API untuk NodeJS yang banyak ditemukan pada API sisi klien. (sumber : http://socket.io). 2.12. Web S ervice M enurut Doug Tidwell, James Snell, dan Pavel Kulchenko (2001, p.6), web service adalah sebuah aplikasi yang dapat diakses melalui jaringan menggunakan kombinasi dari protokol seperti HTTP, XM L, SM TP, atau Jabber. Web service merupakan sebuah antarmuka yang berada di posisi antara kode sumber aplikasi dan pengguna dari kode sumber tersebut. Bertindak sebagai lapisan abstraksi, memisahkan platform dan bahasa pemrograman spesifik rincian tentang bagaimana kode aplikasi sebenarnya dipanggil. M enurut Eric Newcomer (2002, p.7), web service mengangkut sejumlah data yang besar dan efisien dari sebelumnya. Hasil yang didapat lebih cepat, lebih baik, dan lebih produktif. Seperti pada gambar 2.3 layanan web service menyediakan penghubung standar yang menghubungkan, menyajikan ke jaringan dan berinteraksi dengan sistem back-end perangkat lunak, seperti sistem manajemen database, NET, J2EE (Java2 Platform, Enterprise Edition), atau CORBA (Common Object Request Broker Architecture) objek, adapter untuk paket Enterprise Resources Planning (ERP). Layanan web service menerima pesan XM L standar dari jaringan, mentransformasi data XM L ke dalam format yang dimengerti oleh sistem back-end perangkat lunak tertentu dan memberikan kembali pesan balasan. Implementasi perangkat lunak yang mendasari web
26 servicedapat dibuat dengan menggunakan bahasa pemrograman, sistem operasi, atau sistem middleware
Gambar 2.4Web Service interface dengan back end system (Newcomer, 2002, p.8)
2.12.1. Web Service Description Language (WS DL) Web Service Description Language (WSDL) adalah format skema XM L yang mendefinisikan extensible framework untuk menggambarkan layanan web service. Web serviceframework ini menyediakan secara umum menjelaskan tipe data yang lewat melalui pesan, operasi yang dilakukan pesan, dan pemetaan dari pesan ke jaringan transportasi.
27
Gambar 2.5 Elemen-elemen WSDL (Newcomer, 2002, p.23)
2.12.2. Simple Object Access Protocol (SOAP) Simple Object Access Protocol (SOAP) merupakan transportasi minimum yang dibangun untuk menghubungkan layanan web service. M enurut Eric Newcomer (2012, p.25), SOAP mendefinisikan informasi apa yang akan dikirim dan bagaimana dirancang untuk menyediakan komunikasi, menjembatani atau menghubungkan dua atau lebih proses komunikasi melalui protokol.
28
Gambar 2.6SOAP message connect remote sites (Newcomer, 2002, p.26)
SOAP memiliki beberapa bagian utama, yaitu: •
Envelope : mendefinisikan awal dan akhir pesan.
•
Header : Berisi sembarang atribut opsional dari pesan yang digunakan dalam pengolahan pesan, baik di titik perantara atau pada titik akhir.
•
Body : berisi data XM L yang terdiri dari pesan yang dikirim.
•
Attachment : terdiri dari satu atau lebih dokumen yang dilampirkan ke pesan utama (SOAP dengan attachment saja).
•
RPC Interaction : mendefinisikan bagaimana model gaya interaksi RPC dengan SOAP.
29 •
Encoding : mendefinisikan bagaimana mewakili data sederhana dan kompleks sedang dikirim dalam pesan.
2.13. JavaS cript Object Notation (JSON) JavaScript Object Notation (JSON) merupakan format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia. Format teks penulisan bahasanya tidak
bergantung pada bahasa pemrograman
apapun
karena
menggunakan gaya bahasa yang umum digunakan oleh programmer diantaranya C, C++, Java, JavaScript, Perl, Python, dan lain-lain. Oleh karena sifat yang tidak bergantung itu yang menyebabkan JSON menjadi bahasa ideal yang digunakan dalam pertukaran data. (sumber : http://www.json.org/ ) JSON terdiri dari 2 struktur, yaitu: • Kumpulan pasangan nama/nilai. Pada beberapa bahasa, hal ini dinyatakan sebagai objek (object), rekaman (record), struktur (struct), kamus (dictionary), hash tabel, keyed list, atau associative array • Daftar nilai terurut (an ordered list of values). Pada kebanyakan bahasa dinyatakan sebagai array, vector, list, atau sequence. 2.14. Database M enurut Thomas Connoly and Carolyn Begg (2010, p.54), database adalah sekumpulan data yang saling berhubungan secara logis dan menggunakan aplikasi untuk mengatur dan mengendalikan akses ke database yang disebut Database M anagement System.
30 Database adalah kumpulan informasi yang disimpan di dalam komputer, yang diorganisasikan dan disimpan secara terintegrasi dengan menggunakan metode tertentu untuk memenuhi kebutuhan para pengguna. 2.14.1. Database Management System (DBMS ) M enurut
Thomas Connoly and Carolyn Begg (2010, p.66),
Database Management System (DBM S) adalah sebuah sistem aplikasi yang memperbolehkan pengguna untuk mendefinisikan, membuat, menjaga, dan mengontrol akses ke database. Sistem aplikasi ini memungkinkan pengguna untuk mendefinisikan database, menspesifikasikan tipe data, struktur database, dan batasan-batasan dari data yang akan disimpan di dalam database yang dinamakan Data Definition Language (DDL). Selain
itu
memungkinkan
pengguna
untuk
menyisipkan,
memperbaharui, menghapus, dan menerima data dari database yang dinamakan Data Manipulation Language (DM L). DBM S menyediakan kendali akses terhadap database, seperti : 9
Sistem keamanan, yang mencegah pengguna tidak sah untuk mengakses database.
9
Sistem terintegrasi, yang memelihara konsistensi data yang disimpan.
9
Sistem kontrol konkurensi, yang memperbolehkan pembagian akses ke database.
31 9
Sistem kontrol perbaikan (recovery), yang mengembalikan database ke konsistensi sebelum nya yang disebabkan oleh kegagalan hardware atau software.
9
Pedoman yang dapat diakses pengguna, yang berisi penjelasan dari informasi data yang ada di dalam database.
2.14.2. Structured Query Language (SQL) SQL merupakan singkatan dari Structured Query Language yang memungkinkan pengguna untuk mengakses dan memanipulasi database. SQL memiliki beberapa fungsi sebagai berikut: •
M engeksekusi query terhadap database.
•
M engambil data dari database.
•
M enyisipkan catatan (record) dalam database.
•
M emperbarui catatan (record) dalam database.
•
M enghapus catatan (record) dalam database.
•
M enciptakan database baru.
•
M embuat database baru.
•
M embuat tabel baru di database.
•
M embuat Viewdalam database.
•
M engatur hak akses pada tabel, prosedur, dan View.
32 2.14.3. Entity Relational Diagram (ERD) Entity Relational Diagram (ERD) adalah diagram khusus yang menggambarkan hubungan antar entitas dalam database. Komponen utama ERD : 1. Entitas Entitas adalah suatu tempat atau objek untuk menyimpan data. Contoh: Entitas mahasiswa untuk menyimpan atribut mengenai mahasiswa (Nomor Induk M ahasiswa, Nama M ahasiswa, Alamat, Telepon, dan lain-lain). 2. Atribut Atribut adalah elemen yang berfungsi untuk mendeskripsikan isi dari entitas tersebut dan mengidentifikasikan Contoh:
Entitas
mahasiswa
memiliki
atribut
Nomor
Induk
M ahasiswa, Nama M ahasiswa, Alamat, dan Telepon. 3.
Relasional Relational adalah hubungan yang dimiliki antar entitas.
2.15. Interaksi Manusia dan Komputer Desainer antarmuka sangat berperan dalam transformasi yang mengubah komputer. Pada mulanya komputer hanya digunakan dan dimengerti oleh pengembang
sendiri,
kemudian
diubah
menjadi komputer
sosial yang
memungkinkan pengguna untuk berkomunikasi, berinteraksi, dan melayani kebutuhan profesional. Pergeseran secara dramatis ini yang membuat peneliti dan
33 desainer antarmuka memanfaatkan teknologi maju untuk melayani kebutuhan manusia.
Penelitian-penelitian
yang dilakukan
menciptakan
ilmu
desain
interdispliner interaksi manusia dengan komputer dengan menerapkan metodemetode psikologi experimental untuk alat-alat canggih dari ilmu komputer. M elalui ilmu interaksi manusia dan komputer dapat mempermudah dalam pengoperasian komputer. (Ben Shneiderman, 2010, p.22) 2.15.1. Delapan Aturan Emas M enurut Ben Shneiderman (2010, pp.88-89), dalam mendesain user interface ada delapan aturan yang harus diimplementasikan dalam merancang sistem yang interaktif dan berkualitas tinggi, antara lain: 1. Berusaha untuk tetap konsisten Konsisten pada urutan tindakan yang dilakukan pada situasi yang mirip dan penggunaan terminologi identik pada prompt, menu, dan layar bantuan. Konsisten pada warna, tata letak, kapitalisasi, jenis huruf, dan sebagainya yang digunakan secara keseluruhan. 2. M emungkinkan frequent user untuk melakukan jalan pintas (shortcut) M engenali kebutuhan pengguna yang beragam dan desain untuk transformasi konten. Perbedaan pengguna dari pemula, pengguna ahli, rentang usia, cacat, dan keragaman setiap teknologi yang memperkaya persyaratan yang bisa dijadikan panduan desain. M enambahkan fitur untuk pemula seperti penjelasan dan fitur untuk pengguna ahli berupa jalan pintas (shortcut) untuk meningkatkan
34 kecepatan
tindakan,
memperkaya
desain
antarmuka,
dan
meningkatkan kualitas sistem yang dirasakan. 3. M emberikan umpan balik yang informatif Untuk setiap tindakan pengguna harus memiliki sistem umpan balik. Untuk tindakan yang sering dilakukan dan kurang penting, respon dapat diberikan secara sederhana, sedangkan untuk tindakan yang jarang dilakukan dan sangat penting respon balik harus lebih substansial. 4. M erancang dialog untuk mencapai suatu penutupan Urutan tindakan harus di organisir ke dalam kelompok awal, tengah, dan akhir. Umpan balik yang informatif pada penyelesaian sekelompok
tindakan
akan
memberikan
petunjuk
dalam
mempersiapkan sekelompok tindakan berikutnya. 5. M encegah kesalahan Sebisa mungkin mendesain sistem yang tidak membuat pengguna melakukan kesalahan fatal. Jika pengguna membuat kesalahan, interface harus mendeteksi kesalahan dan memberikan instruksi sederhana, konstruktif, dan spesifik untuk perbaikan. M isalnya, pengguna tidak mengetik ulang dan seluruh nama serta alamat jika mereka hanya memasukkan kode pos yang tidak valid, tetapi diarahkan untuk memperbaiki hanya dibagian yang salah. 6. Kemudahan kembali ke tindakan sebelumnya
35 Sebisa mungkin tindakan yang dilakukan dapat dibatalkan atau dikembalikan pada saat sebelum dilakukannya tindakan tersebut. Hal ini akan mengurangi kecemasan pengguna untuk melakukan tindakan karena telah mengetahui tindakan dapat dibatalkan, sehingga pengguna dapat berani mengekplorasi berbagai tindakan asing yang belum pernah dilakukan. 7. M endukung pusat kendali internal Pengguna yang berpengalaman menginginkan mereka bertanggung jawab atas antarmuka dan antarmuka merespon tindakan mereka. 8. M engurangi beban ingatan jangka pendek Kapasitas terbatas manusia untuk memproses informasi dalam memori jangka pendek yang menyebabkan dibutuhkanya desain antarmuka yang mudah sederhana dan mudah mengingat informasi dari satu layar dan menggunakan informasi di layar lain. 2.15.2. Lima Faktor Manusia Terukur M enurut Ben Shneiderman (2010, pp.88-89), ada lima faktor manusia terukur, yaitu: 1. Waktu untuk belajar Ukuran waktu yang diperlukan user untuk belajar memahami aplikasi yang baru. Semakin cepat waktu yang diperlukan user untuk belajar maka semakin baik. 2. Kecepatan kinerja
36 Ukuran
waktu
seberapa
cepat
user
dapat
menyelesaikan
pekerjaannya. 3. Tingkat kesalahan oleh pengguna Seberapa banyak kesalahan yang dilakukan user dalam melakukan kegiatan. 4. Daya ingat Kemampuan user untuk mempertahankan ingatan selama jangka waktu tertentu. 5. Kepuasan subjektif Seberapa puas user dalam menggunakan aplikasi. Dalam hal ini user memberikan umpan balik terhadap penggunaan. 2.16. Rekayasa Piranti Lunak M enurut Roger S.Presman (2010, p13), rekayasa piranti lunak merupakan penerapan sistematis, displin, pendekatan kuantitatif yang dilakukan untuk pengembangan, pengoperasian, dan pemeliharaan perangkat lunak. Dalam proses pembuatan perangkat lunak terdapat kumpulan aktivitas kerja, tindakan, dan tugas-tugas yang dilakukan ketika sebuah perangkat lunak yang akan dibuat. Semua kegiatan ini disebut model proses. 2.16.1. Rapid Prototyping Model M enurut artikel “Selecting a Development Approach”, rapid prototyping model merupakan model proses yang mendefinisikan satu set tujuan umum untuk perangkat lunak, akan tetapi tidak mengidentifikasikan
37 persyaratan rinci untuk fungsi dan fitur. Rapid prototyping berupaya untuk mengurangi risiko proyek yang melekat dengan memecah proyek ke dalam segmen yang lebih kecil dan menyediakan kemudahan perubahan selama proses pembangunan. Dalam sistem yang dikembangkan terdapat proses yang berulang-ulang dalam beberapa langkah sampai modifikasi prototipe memenuhi
kebutuhan
pengguna.
Berbeda
dengan
model
proses
prototyping, hasil prototipe yang dibuat akan dibuang dan membangun prototipe yang baru. Berikut merupakan gambar dari model proses rapid prototyping
Gambar 2.7 M odel Proses Rapid Prototyping
Pada model proses rapid prototyping memiliki langkah-langkah sebagai berikut: 1. Initial Investigation Pengumpulan kebutuhan dari user untuk mengetahui apa saja kebutuhan saat ini yang nantinya akan dikembangkan. 2. Requirement Definition
38 Tahap ini merupakan identifikasi dari hasil pengumpulan data yang telah dilakukan. 3. System Design Perancangan dari sistem yang akan dibuat dalam tahap ini secara logika, struktural dan user interface. 4. Coding and Testing Pengkodean
dan
penyusunan
logika yang telah
dibuat
sebelumnya pada system design. Pada tahap ini setelah pengkodean selesai maka dilakukan testing. Bila masih diperlukan perbaikan pengkodean, maka bisa dilakukan langsung pengkodean. 5. Implementation Untuk mengetahui sejauh mana sistem aplikasi yang telah dibuat, maka langkah selanjutnya dilakukan implementasi untuk diuji oleh user. Kemudian user memberikan feedback mengenai sistem yang telah digunakan. 6. Maintenance Hasil dari feedback yang diberikan user yang nantinya digunakan untuk pengembangan selanjutnya untuk membuat aplikasi yang lebih baik dari sebelumnya. 2.17. Unified Modeling Language (UML) M enurut Whitten (2007, p.371), Unified M odeling Language (UM L) merupakan satu set permodelan konvensi yang digunakan untuk menentukan atau
39 menggambarkan sebuah sistem perangkat lunak dalam hal objek. Pendekatan yang seluruh tekniknya berorientasi objek disebut permodelan objek. Pada akhir 80-an dan awal 90-an banyak metode berorientasi objek yang digunakan pada industri. Karena begitu banyak metode dan teknik permodelan yang terkait menjadi masalah bagi industri pengembangan sistem berorientasi objek. Sehingga menyebabkan menghambat komunikasi antara anggota tim dan pengguna sistem karena begitu banyak metode yang digunakan. M asalah tersebut yang menyebabkan upaya untuk merancang sebuah bahasa permodelan standar. Pada tahun 1994 Grady Booch dan James Rumbaugh menggabungkan masing-masing metode berorientasi objek untuk menciptakan sebuah proses dan standar tunggal untuk mengembangkan sistem berorientasi objek. Ivar Jacobson bergabung pada 1995 untuk membuat bahasa permodelan objek standar. Unified Modeling Language (UM L) versi 1.0 dirilis pada tahun 1997 dan versi saat ini adalah 2.0. UM L tidak menentukan metode namun diterima secara luas sebagai standar permodelan. Object M anagement Group (OMG) mengadopsi UM L dan mengembangkan sesuai kebutuhan industri. 2.17.1. Use Case Diagram M enurut Whitten (2007, p.246), Use case diagram merupakan grafis yang menggambarkan interaksi antar sistem, sistem eksternal dan user. Dengan kata lain, grafis menggambarkan siapa yang akan menggunakan sistem dan dalam cara apa pengguna mengharapkan untuk berinteraksi dengan sistem. Narasi use case digunakan secara tekstual untuk menggambarkan urutan langkah setiap interaksi.
40
Gambar 2.8 Contoh Use Case Diagram
Komponen dari use case diagram, antara lain: •
Actors Seorang actor melakukan aktivitas dalam use case menyelesaikan beberapa tugas atau kegiatan yang menghasilkan sesuatu yang dapat diukur.
Gambar 2.9 Contoh Actor di Use Case Diagram
41 •
Relationship Relationship adalah sebuah hubungan yang digambarkan sebagai garis antara dua simbol pada diagram use case. Setiap hubungan yang terjadi bisa memiliki arti yang berbeda tergantung dari bagaimana garis ditarik dan apa jenis simbol yang dihubungkan. Dalam use case memiliki beberapa jenis hubungan, antara lain: ‐
Associations Sebuah hubungan antara actor dan use case setiap kali terjadi interaksi satu sama lain. Association digambarkan sebagai garis lurus yang solid yang menghubungkan actor dan use case searah maupun dua arah seperti yang ditunjukkan pada gambar di bawah ini.
Gambar 2.10 Contoh Associations di Use Case Diagram
‐
Extends Sebuah use case yang berisi fungsi yang kompleks dan terdiri dari beberapa langkah, maka untuk menyederhanakan use case membagi sebuah use case menjadi beberapa use case yang fungsionalitas dari use case aslinya agar lebih mudah dipahami.
42 Pembagian use case tersebut direpresentasikan dengan garis solid atau putus-putus dan diberi label<<extends>>.
Gambar 2.11 Contoh Extends di Use Case Diagram
‐
Uses (or Includes) Dalam membuat use case mungkin bisa menggunakan dua atau lebih use case yang sama. Oleh karena itu untuk mengurangi redundansi use case yang digunakan, use case tersebut dibuat menjadi satu yang disebut abstract use case. Hubungan use cas e dengan abstract use case menggunakan garis solid atau putusputus dan diberi label <<uses>>.
Gambar 2.12 Contoh Uses di Use Case Diagram
43
‐
Depends On Sebuah use case yang memiliki ketergantungan dengan use cas e lainnya dalam melakukan urutan untuk menyelesaikan sebuah fungsi atau untuk melangkah ke fungsi selanjutnya. Hubungan depen on digambarkan dengan garis solid atau putus-putus yang diberi label <<depends on>>.
Gambar 2.13 Contoh Depends On di Use Case Diagram
Dalam analisis berorientasi objek menggunakan use case ke dalam model menggunakan analisa kasus dengan melakukan langkah-langkah berikut: 1. M engidentifikasikan, mendefinisikan, dan mendokumentasikan pelakupelaku baru.
44 Pada saat kebutuhan bisnis menggunakan use casemodel dan pada saat itulah disetujui oleh pemilik sistem, penganalisa sistem, seluruh tim pengembang, melalui pembicaraan dengan para stakeholder, dilanjutkan dengan mempelajari lebih banyak tentang apa yang diperlukan agar sistem dapat berjalan sukses. Selama upaya ini dilakukan mungkin ada pelaku
tambahan
yang ditemukan
dan
dengan
demikian
perlu
didefinisikan dan didokumentasikan. 2. M engidentifikasi, mendefinisikan, dan mendokumentasikan use case baru Pada langkah satu ditemukan pelaku baru, kemudian pada langkah dua mengarah ke interaksi baru dengan sistem sehingga membuat use case baru. Sebagai aturan umum, setiap jenis antarmuka pengguna yang digunakan untuk memproses kegiatan bisnis akan memerlukan use case sendiri. Sebagai contoh pada industri perbankan, use case melakukan deposit di sebuah mesin ATM akan berbeda dari use case melakukan deposit menggunakan teller bank. Tujuan dari proses sama dan banyak langkah yang sama, tetapi penggunaan sistem yang sebenarnya mungkin berbeda
atau
bagaimana
pengguna
berinteraksi
dengan
sistem
menggunakan teknologi spesifik. Use case baru diidentifikasi akan perlu didefinisikan dalam use case pelaku sebelumnya. 3. M engidentifikasikan kemungkinan penggunaan kembali Bila memiliki dua use case yang memiliki tujuan bisnis yang sama namum memiliki teknologi antarmuka atau penggunaan sistem yang
45 sebenarnya berbeda, kedua use case dapat dapat menggunakan langkah yang umum, untuk menghilangkan langkah-langkah berlebihan. Untuk menghilangkan langkah-langka berlebihan, kita dapat mengekstrak langkah-langkah umum ke use case terpisah yang disebut use case abstract. Di samping itu, ketika kita menganalisa use case dan menemukan use case yang berisi fungsi kompleks yang terdiri dari beberapa langkah-langkah yang lebih kompleks dalam use case itu sendiri yang disebut extension use case. Use case baru ini juga akan didefinisikan dalam kumpulan use case yang disiapkan sebelumnya. 4. M enyempurnakan Diagram Use Case M odel (jika diperlukan) Dengan menemukan pelaku-pelaku baru dan use case, kita dapat memperbarui use case penggunaan diagram model yang dibangun sebelumnya. 5. M endokumentasikan sistem analisis menggunakan naratif case. Setiap kebutuhan bisnis semua use case telah ditinjau dan disetujui oleh pengguna. Setiap use case akan disempurnakan untuk menyertakan informasi lebih banyak untuk menentukan fungsi sistem secara rinci. 2.17.2. Activity Diagram M enurut Whitten (2007, p.390), Activitydiagram merupakan grafis yang menggambarkan aliran berurutan dari kegiatan use case atau proses bisnis. Activity diagram juga digunakan untuk logika model dengan sistem. Activity diagram berbeda dengan diagram alur (flowchart) karena
46 menyediakan mekanisme untuk menggambarkan aktivitas yang terjadi secara pararel.
47
2 1
4
5
3
6
7
8
Gambar 2.14 Contoh Activity Diagram Keterangan:
48 1. Initial node : lingkaran padat mewakili awal proses 2. Actions : persegi panjang bulat yang mewakili langkah-langkah individu. Urutan tindakan membentuk aktivitas total yang ditunjukkan oleh diagram. 3. Flow : panah pada diagram menunjukkan perkembangan melalui tindakan. Kebanyakan mengalir tanpa perlu kata-kata untuk mengidentifikasikan, kecuali keluar dari keputusan. 4. Decision : bentuk berlian dengan satu aliran masuk dan dua atau lebih
mengarah
keluar.
M engalir
keluar
ditandai untuk
menunjukkan kondisi. 5. M erge : bentuk berlian dengan dua atau lebih arus masuk dan satu arus keluar. Ini menggabungkan aliran yang sebelumnya dipisahkan oleh keputusan. 6. Fork : Bar hitam dengan satu arus dan dua atau lebih mengalir keluar. 7. Join : Bar hitam dengan dua atau lebih arus masuk dan satu arus keluar, tidak ada akhir pemrosesan konkuren. Semua tindakan yang masuk ke bergabung harus diselesaikan sebelum proses berlanjut. 8. Activity final : Lingkaran padat di dalam lingkaran berongga mewakili akhir proses
49 2.17.3. Sequence Diagram M enurut Whitten (2007, p.394) Sequences merupakan grafis yang menggambarkan bagaimana objek berinteraksi satu sama lain melalui pesan dalam pelaksanaan use case atau operasi. Sequence diagram manggambarkan pesan dikirim dan diterima antara objek dan urutan. Sequence diagram biasanya untuk menggambarkan rangkaian langkahlangkah yang dilakukan sebagai respon dari sebuah event untuk menghasilkan output tertentu.
2
4
1
3 9
5 7 8
6
Gambar 2.15 Contoh Sequence Diagram
50
Keterangan: 1. Actor : aktor berinteraksi dengan user interface yang ditampilkan dengan use case actor. Kadang aktor diwakilkan dengan frame seperti class dengan notasi <
>. Garis putus-putus vertikal yang memanjang ke bawah dari aktor menunjukkan urutan lifeline. 2. Interface class : kotak yang menunjukkan interface class code agar tidak membingungkan user terhadap class ini maka diberi label <>. Titik dua (:) menunjukkan contoh class yang dijalankan dan garis putus-putus vertikal yang memanjang ke bawah dari class menunjukkan urutan lifeline. 3. Controller class : setiap use case akan memiliki satu atau lebih class controller yang digambarkan sama dengan interface class yaitu <> 4. Entity class : kotak yang dimasukkan setiap memiliki entry yang berkolaborasi dalam urutan langkah proses. Titik dua (:) menunjukkan sebuah contoh objek, dengan kata lain, perintah yang spesifik, produk spesifik, dan sebagainya. 5. Messages : panah horizontal yang menunjukkan pesan yang dikirimkan ke class. 6. Activation bars : bar yang menunjukkan periode waktu masing-masing object instance yang ada.
51 7. Return messages : panah horizontal putus-putus merupakan return message. Setiap tindakan harus mengirimkan kembali pesan baik itu benar/salah untuk menunjukkan sebuah tindakan telah dilakukan. 8. Self-call : sebuah objek dapat mengsambil method sendiri 9. Frame : kotak bingkai dalam sequence diagram yang menunjukkan bahwa satu atau lebih pesan merupakan sebuah langkah-langkah opsional dan menunjukkan bahwa controller perlu loop melalui semua item. 2.17.4. Class Diagram M enurut Whitten (2007, p.648), class diagram merupakan grafis yang menggambarkan struktur objek dari sebuah sistem dan hubungan antara kelas-kelas objeknya. Sistem berorientasi objek yang terstruktur setidaknya memiliki tiga jenis kelas objek, antara lain: •
Entity Classes Entiy Class merupakan model class yang berisi informasi dan dikenal sebagai atribut.
•
Interface Classes Seorang user yang berkomunikasi dengan sistem melalui user interface dan diimplementasikan sebagai sebuah class. Peranan dari interface ini adalah: 1. M enterjemahkan input dari user ke dalam sistem informasi yang dapat memahami dan digunakan untuk memproses kegiatan bisnis.
52 2. Kebutuhan
data
yang
berkaitan
kegiatan
bisnis
dan
menterjemahkan data untuk ditampilkan untuk user. •
Control Classes Control classes mengimplementasikan logika bisnis atau aturan bisnis dari sistem. Pada umumnya user mengimplementasikan satu atau lebih control classes. Control classes mengirimkan messages dari interface classes dan menerima messages dari entity classes.
Atribut dan metoda dapat diakses oleh class lain yang disebut visibility. UM L memberikan tiga tingkatan dari visibility sebagai berikut: a. Public, dinotasikan dengan simbol “+” dan dapat dipanggil oleh siapa saja dalam class diagram. b. Protected, dinotasikan dengan simbol “#” dan hanya dapat dipanggil oleh class yang bersangkutan dengan anak-anak yang mewarisinya. c. Private, dinotasikan dengan “-“ dan tidak dapat dipanggil dari luar class yang bersangkutan.
53
6 5
4
1
3
2
Gambar 2.16 Contoh Class Diagram
Keterangan: 1. Visibility untuk setiap atribut telah ditentukan dan pada gambar di atas semua atribut adalah private yang dinotasikan dengan simbol “-“. 2. M etoda dan visibility telah ditentukan. 3. Alur dari hubungan yang menunjukkan pesan yang masuk. 4. Inteface classes untuk menunjukkan interface utama kepada user. 5.
Sebuah control class utnuk mengkoordinasi interaksi antara interface object dan entity object.
6. Interface object tergantung pada control object.