BAB 2 LANDASAN TEORI 2.1 Teori Umum 2.1.1 Pengertian Sistem Menurut Jogiyanto HM (2005:2), sistem adalah elemen-elemen yang berinteraksi untuk mencapai suatu tujuan tertentu. Sistem adalah sekelompok komponen yang saling berhubungan, bekerjasama untuk mencapai tujuan bersama dengan menerima masukan dan menghasilkan keluaran dalam suatu proses transformasi yang teratur (OBrien, 2006, p29). Sistem terdiri dari tiga komponen dasar yaitu : 1. Input atau masukan, yaitu elemen yang masuk ke dalam sistem untuk diproses. 2. Process atau proses, yaitu proses yang terjadi di dalam sistem yang mengubah input atau masukan menjadi output atau keluaran. 3. Output atau keluaran, yaitu elemen yang keluar dari sistem sebagai hasil transformasi dari input atau masukan. 2.1.2 Analisis dan Perancangan Sistem 2.1.2.1 Analisis Sistem Menurut Jogiyanto HM (2001:129), analisis sistem adalah penguraian dari suatu sistem informasi yang utuh ke dalam bagianbagian komponennya dengan maksud untuk mengidentifikasikan dan mengevaluasi permasalahan, kesempatan, hambatan yang 8 9 terjadi dari kebutuhan yang diharapkan sehingga dapat diusulkan perbaikannya. Menurut McLeod (2001, p190), analisis sistem adalah penelitian atas sistem yang telah ada dengan tujuan untuk merancang sistem baru atau diperbarui. Tahapan dalam analisis sistem meliputi : 1. Mengumumkan penelitian sistem. 2. Mengorganisasikan tim proyek. 3. Mendefinisikan kebutuhan informasi. 4. Mendefinisikan kriteria kinerja sistem. 5. Menyiapkan usulan rancangan. 6. Menyetujui atau menolak rancangan proyek. 2.1.2.2 Perancangan Sistem Menurut McLeod (2001, p192), perancangan sistem adalah penentuan proses dan data yang diperlukan sistem yang baru. Menurut Jogiyanto HM (2005), perancangan sistem adalah bagian dari analisa sistem, dimana perancangan sistem merupakan langkah keempat. Sasaran dari perancangan sistem adalah menentukan langkah-langkah operasi dalam proses pengolahan data, menentukan prosedur untuk mendukung operasi sistem. Perancangan sistem dapat dibagi dalam dua bagian, yaitu: 10 1. Perancangan sistem secara umum atau perancangan konseptual, perancangan logical atau perancangan secara makro. 2. Perancangan sistem terinci atau perancangan sistem secara fisik. Tujuan dari perancangan sistem adalah untuk memenuhi kebutuhan pengguna sistem serta memberikan gambaran yang jelas dan rancang bangun yang lengkap kepada programmer dan ahli-ahli teknik yang terlibat dalam perancangan sistem. Perancangan sistem mengandung dua pengertian yaitu merancang sistem yang baru dan mengadakan perbaikan atas sistem sebelumnya. 2.1.2.3 Model Spiral Model Spiral adalah model yang diusulkan oleh Boehm (1988), yaitu model proses perangkat lunak yang evolusioner yang merangkai sifat iteratif dari model prototype dengan cara kontrol dan aspek sistematis dari model sekuensial linier. Model itu berpotensi untuk pengembangan versi pertambahan perangkat lunak secara cepat. Di dalam model spiral, perangkat lunak dikembangkan di dalam suatu deretan pertambahan. Selama awal iterasi, rilis inkremental bisa merupakan sebuah model atau prototipe kertas. Selama iterasi berikutnya, sedikit demi sedikit dihasilkan versi sistem rekayasa yang lebih lengkap.(Roger S.Pressman, p47) 11 Model spiral dibagi menjadi sejumlah aktivitas kerangka kerja, disebut juga wilayah tugas, di antara tiga sampai enam wilayah tugas. Berikut ini merupakan enam wilayah tugas dari model spiral: 1. Customer Communication, Komunikasi Pelanggan yaitu tugastugas yang dibutuhkan untuk membangun komunikasi yang efektif diantara pengembang dan pelanggan. 2. Planning, Perencanaan yaitu tugas-tugas yang dibutuhkan untuk mendefinisikan sumber-sumber daya, ketepatan waktu, dan proyek informasi lain yang berhubungan. 3. Risk Analysis, Analisis Resiko yaitu tugas-tugas yang dibutuhkan untuk menaksir resiko-resiko yang mungkin akan dihadapi, baik manajemen maupun teknis. 4. Engineering, Perekayasaan yaitu tugas-tugas yang dibutuhkan untuk membangun satu atau lebih representasi dari aplikasi tersebut. 5. Construction and Release, Konstruksi dan Peluncuran yaitu tugas-tugas yang dibutuhkan untuk mengkonstruksi, menguji, memasang (install) dan memberikan pelayanan kepada pemakai, contohnya pelatihan dan dokumentasi. 6. Customer Evaluation, Evaluasi Pelanggan yaitu tugas-tugas yang dibutuhkan untuk memperoleh umpan balik dari pelanggan dengan didasarkan pada evaluasi representasi perangkat lunak, 12 yang dibuat selama masa perekayasaan, dan diimplementasikan selama masa pemasangan. Gambar 2.1 Model Spiral Tipikal 2.1.3 Database Management System (DBMS) Menurut Connolly (2005, p16), Database Management System adalah sebuah sistem perangkat lunak yang memungkinkan pengguna untuk mendefinisikan, membuat, memelihara, dan mengontrol pengaksesan ke basis data. Fasilitas-fasilitas yang disediakan pada sebuah DBMS antara lain : 1. Data Definition Language, pengguna dapat mendefinisikan basis data, termasuk menspesifikasikan tipe-tipe dan struktur data serta constraint pada data untuk disimpan dalam basis data. 2. Data Manipulation Language, DBMS dapat menangani permintaan dari pengguna untuk mengakses, memasukkan, mengubah, mengambil, dan menghapus data dari basis data. 13 3. Kontrol akses ke basis data, antara lain : a. Security, melindungi basis data dari perusakan dan mencegah pengaksesan basis data oleh pengguna yang tidak berwenang. b. Integrity, mengatur konsistensi dari basis data yang disimpan. c. Concurency control, memungkinkan pengaksesan basis data dengan multipengguna secara bersama-sama, tanpa menggangu operasi masing-masing. d. Recovery control system, memperbaiki basis data ke bentuk yang dianggap benar setelah terjadinya suatu kegagalan perangkat keras ataupun perangkat lunak. e. Pengguna accessible catalog, catalog yang memberikan gambaran dari data yang terdapat pada basis data. 2.1.4 Delapan Aturan Emas (Eight Golden Rules) Menurut Shneiderman (1998, p72-73), terdapat delapan aturan emas dalam merancang sebuah pengguna interface, yaitu: 1. Berusaha keras untuk konsisten. Konsisten dalam kesamaan terminologi dalam membuat menu, tampilan, font dan help screen dan juga konsisten dalam warna, kapitalitas, dan tampilan. 2. Memungkinkan frequent pengguna menggunakan shortcuts. Menyediakan shortcuts untuk aksi yang sering digunakan.Pengguna mengharapkan adanya special keys, perintah tersembunyi dan fasilitas 14 makro serta waktu respon dan tampilan yang cepat untuk mempercepat gerak pengguna dalam pengaksesan. 3. Memberikan umpan balik yang informatif. Untuk setiap aksi yang dilakukan oleh pengguna, beberapa di antaranya harus mempunyai sistem feedback. Untuk aksi yang sering dan sederhana, maka respon yang diberikan juga sederhana, tetapi jika aksi yang jarang dan besar maka respon juga harus lebih banyak dan rinci. 4. Merancang dialog untuk menghasilkan keadaan akhir. Urutan aksi harus dibagi menjadi awal, tengah, dan akhir. Dengan adanya umpan balik, pengguna dapat merasa lebih merasa aman dalam melakukan sebuah tindakan dengan memberikan gambaran hasil akhir dari suatu pilihan, serta pemberian banyak option-option kepada pengguna sehingga bisa ikut mempengaruhi hasil akhir. 5. Memberikan pencegahan dan penanganan kesalahan yang sederhana. Suatu sistem harus dirancang agar kesalahan yang dibuat pengguna dapat ditekan seminimal mungkin, dan pesan kesalahan yang dimunculkan harus dapat dimengerti oleh pengguna awam. 6. Mengijinkan pembalikan aksi (undo) dengan mudah. Aksi harus dapat dibalikkan menjadi keadaan sebelumnya sehingga membuat pengguna merasa aman karena ia tahu bahwa kesalahan yang dibuat dapat diperbaiki. 7. Mendukung pengguna menguasai sistem atau inisiator sebagai pusat kendali. 15 Membuat pengguna merasa memegang kendali atas sistem tersebut, bukan sebagai responden. Kesulitan pengguna dalam menavigasi site atau dalam mendapatkan data yang diinginkan akan menimbulkan rasa tidak puas. 8. Mengurangi beban ingatan jangka pendek. Manusia hanya dapat mengingat tujuh info ditambah atau dikurang dua info pada suatu waktu. Batasan ini berarti suatu sistem harus dibuat sesederhana mungkin sehingga tidak membuat seorang pengguna bingung karena terlalu banyak info. Dalam merancang suatu sistem, ada beberapa hal yang perlu diperhatikan yang mempengaruhi pengguna secara langsung, antara lain: a. Tampilan Data Tampilan memegang peranan penting karena dengan tampilan data yang baik dapat memudahkan dan menarik pengguna untuk mempelajari sistem. Shneiderman (1998, p386) menjabarkan beberapa pedoman dalam membuat tampilan yang dikemukakan oleh Smith dan Mosier antara lain: 1. Pertahankan format yang konsisten dari satu tampilan ke tampilan lainnya untuk setiap jenis tampilan data. 2. Gunakan kalimat yang singkat dan sederhana. 3. Gunakan pernyataan yang positif dan hindari pernyataan negatif. 16 4. Berikan label pada setiap halaman untuk menunjukkan hubungan dengan halaman berikutnya pada tampilan yang memiliki banyak halaman. 5. Awali setiap tampilan dengan judul atau header yang menggambarkan isi atau tujuan tampilan. Beri jarak paling sedikit satu baris kosong antara judul dengan isi tampilan. b. Warna Shneiderman (1998, p398) menyatakan bahwa tampilan yang berwarna dapat menarik pengguna dan dapat meningkatkan kinerja, tetapi penggunaannya harus sesuai. Berikut ini adalah beberapa aturan penggunaan warna menurut Shneiderman (1998, p398-403): 1. Gunakan warna secara hati-hati. 2. Batasi jumlah warna yang digunakan. 3. Konsisten dalam penggunaan warna. 4. Perhatikan kecocokan antar warna jika ditampilkan bersama. c. Tombol Tombol biasanya digunakan untuk menampilkan pilihan yang tersedia serta untuk menunjukkan pilihan yang berstatus aktif atau non-aktif. Beberapa macam tombol yang sering digunakan adalah check button, radio button, dan push button. Perlu diperhatikan agar tombol yang digunakan harus diatur sedemikian rupa agar tidak menyulitkan pengguna. 17 d. Waktu Respon Waktu respon adalah waktu (dalam satuan detik) yang diperlukan oleh pengguna untuk melakukan aktivitas, seperti menekan tombol sampai komputer menampilkan hasilnya pada layar atau printer. Semakin cepat waktu respon maka semakin baik sistem tersebut. 2.1.5 Internet Mac Bride (1997, p1) mendefinisikan internet sebagai berikut: Internet adalah jaringan komunikasi global yang terbuka dan menghubungkan ribuan jaringan komputer, melalui sambungan telepon umum maupun pribadi. Secara individual, jaringan komponennya dikelola oleh agen-agen pemerintah, universitas, organisasi komersial,serta sukarelawan. Internet didefinisikan sebagai berikut: internet merupakan kumpulan jaringan komputer yang bekerja sama secara global mendistribusikan pertukaran informasi melalui protokol TCP/IP. (John December, 1997, p27) 2.1.6 E-commerce 2.1.6.1 Pengertian E-Commerce Menurut O’Brien (2005, p212), e-commerce adalah proses pembelian dan penjualan, pemasaran dan pelayanan, pengiriman dan pembayaran dari suatu produk, jasa atau informasi, antara suatu enterprise dan calon pelanggan, pelanggan, pemasok, atau rekan bisnis lainnya. 18 E-commerce mengubah bentuk persaingan, kecepatan bertindak, dan perampingan interaksi, produk, dan pembayaran dari pelanggan ke perusahaan dan dari perusahaan ke pemasok. 2.1.6.2 Kategori E-Commerce Ada tiga kategori dari e-comerce yaitu : 1. Business to Consumer (B2C) Bisnis ini menjual produk atau jasa konsumsi pribadi. 2. Business to Business (B2B) Bisnis ini merupakan kerja sama antar mitra bisnis untuk menjual produk atau jasa yang nantinya akan dijual kembali. 3. Consumer to consumer (C2C) Pada bisnis ini, pelanggan dapat membeli atau menjual satu sama lain dalam proses lelang di website lelang. 2.1.7 E-Business Menurut James A. O’Brien (2005:p314), e-bussiness adalah penggunaan internet dan jaringan serta teknologi informasi lainnya yang mendukung e-commerce, komunikasi dan kerja sama perusahaan, dan berbagai proses yang dijalankan melalui web, baik dalam jaringan perusahaan maupun dalam para pelanggan serta mitra bisnisnya. E-bussiness meliputi e-commerce yang melibatkan pembelian dan penjualan, serta pemasaran dan pelayanan produk, jasa, dan informasi melalui internet dan jaringan lainnya. 19 E-bisnis adalah istilah yang digunakan untuk menggambarkan bisnis yang dijalankan pada internet, atau penggunaaan teknologi internet untuk meningkatkan produktivitas dan keuntungan dari suatu bisnis. (http://www.wisegeek.com/what-is-ebusiness.htm) 2.1.8 Pengertian Promosi Pada suatu perusahaan, banyak aktivitas yang dilakukan tidak hanya menghasilkan produk atau jasa, menetapkan harga, dan menjual produk atau jasa, tetapi banyak aktivitas lainnya yang saling berkaitan satu dengan lainnya. Salah satunya adalah promosi, kegiatan promosi adalah salah satu bagian dari bauran pemasaran perusahaan, yang isinya memberikan informasi kepada masyarakat atau konsumen tentang produk atau jasa yang ditawarkan perusahaan. Tidak hanya itu, kegiatan promosi merupakan kegiatan komunikasi antara perusahaan dengan pelanggan atau konsumen. Dewasa ini, perusahaan menganggap bahwa promosi merupakan bagian penting dari pemasaran, karena pihak perusahaan berharap dengan promosi yang dilaksanakan secara efektif dapat meningkatkan kualitas produk atau jasa perusahaan sesuai dengan target penjualan yang telah ditetapkan dan dapat bersaing dengan perusahaan lain yang menghasilkan produk atau jasa yang sejenis. Dengan pandangan demikian perusahaan berharap dengan dilaksanakannya kegiatan promosi secara berkesinambungan dan terarah akan mampu mencapai hasil penjualan dan keuntungan yang maksimal. 20 Peneliti akan mengemukakan beberapa pendapat dari para ahli pemasaran dan praktisi tentang penelitian promosi, yaitu sebagai berikut : Pengertian promosi menurut Djaslim Saladin dan Yevis Marty Oesman (2002 : 123) : “Promosi adalah suatu komunikasi informasi penjual dan pembeli yang bertujuan untuk merubah sikap dan tingkah laku pembeli, yang sebelumnya tidak mengenal menjadi mengenal sehingga menjadi pembeli dan mengingat produk tersebut”. Sedangkan pengertian promosi menurut Buchari Alma (2006 : 179) adalah : Promosi adalah sejenis komunikasi yang memberi penjelasan dan meyakinkan calon konsumen mengenai barang dan jasa dengan tujuan untuk memperoleh perhatian, mendidik, mengingatkan dan meyakinkan calon konsumen. Promosi merupakan alat komunikasi dan penyampaian pesan yang dilakukan baik oleh perusahaan maupun perantara dengan tujuan memberikan informasi mengenai produk, harga dan tempat. Informasi itu bersifat memberitahukan, membujuk, mengingatkan kembali kepada konsumen, para perantara atau kombinasi keduanya. Dalam promosi juga, terdapat beberapa unsur yang mendukung jalannya sebuah promosi tersebut yang biasa disebut bauran promosi. 2.1.9 Java Menurut definisi dari Sun Microsystem, Java adalah nama dari sekumpulan teknologi untuk membuat dan menjalankan perangkat lunak pada computer standalone atau lingkungan jaringan. Java2 merupakan 21 generasi kedua dari Java platform, generasi awalnya adalah Java Development Kit. Java tersusun atas sebuah mesin interpreter yang diberi nama JVM (Java Virtual Machine), yang dapat membaca bytecode dalam file class pada program sebagai representasi langsung yang berisi bahasa mesin. Java merupakan bahasa yang portable, bisa dijalankan di semua sistem operasi yang di dalamnya terdapat JVM (Java Virtual Machine). Salah satu dari proyek pertama yang dikembangkan menggunakan Java sebuah remote kontrol yang diberi nama Star 7. Platform Java terdiri atas kumpulan library, JVM (Java Virtual Machine), kelas-kelas loader yang dipaket dalam sebuah lingkungan rutin Java, sebuah compiler, debugger dan perkakas lain yang dijadikan satu dalam JDK (Java Development Kit). Agar program Java dapat berjalan dibutuhkan juga JRE (Java Runtime Enviroment). JRE (Java Runtime Enviroment) berisi JVM (Java Virtual Machine) dan library Java yang digunakan. Ada tiga edisi dari platform Java yaitu J2EE (Java2 Enterprise Edition), J2ME (Java2 Micro Edition), dan J2SE (Java2 Standard Edition). Java awalnya dibuat oleh James Gosling saat masih bergabung di Sun Microsystems pada tahun 1991. Pada awalnya diberi nama Oak, dimana untuk menghormati pohon yang ada di luar jendela Gosling. Kemudian namanya diubah ke Java karena telah ada sebuah bahasa yang diberi nama Oak. Saat ini merupakan bagian dari Oracle dan dirilis tahun 1995. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin 22 rutin atas bawah yang minimal. Aplikasi-aplikasi berbasis Java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Java Virtual Machine (JVM). Java merupakan bahasa pemrograman yang bersifat umum atau nonspesifik (general purpose) dan secara khusus didesain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi Java mampu berjalan di beberapa platform sistem operasi yang berbeda, Java dikenal pula dengan slogannya, Tulis sekali, jalankan dimana pu. Saat ini Java merupakan bahasa pemrograman yang paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi berbasis web. 2.1.10 Unified Modelling Language (UML) UML (Unified Modelling Language) adalah suatu bahasa standar yang digunakan untuk menspesifikasikan, memvisualisasi, mengkonstruksi serta mendokumentasikan artifak dari suatu software sistem yang berbasis objek. UML (Unified Modelling Language) tidak didasarkan pada bahasa pemrograman tertentu. Standar spesifikasi UML (Unified Modelling Language) dijadikan standar de facto oleh OMG (Object Management Group) pada tahun 2007. Spesifikasi ini menjadi populer dan standar karena sebelum adanya UML (Unified Modelling Language), telah ada berbagai macam spesifikasi yang berbeda. Hal ini menyulitkan komunikasi antar pengembang perangkat 23 lunak. Untuk itu, beberapa pengembang spesifikasi yang sangat berpengaruh berkumpul untuk membuat standar baru. UML (Unified Modelling Language) dirintis oleh Grady Booch dan James Rumbaugh pada tahun 1994 dan kemudian Ivar Jacobson. UML mendefinisikan diagram-diagram, antara lain : a. Use Case Diagram Use case diagram digunakan untuk menggambarkan interaksi antara pengguna sistem (aktor) dengan kasus (use case) yang disesuaikan dengan langkah-langkah (skenario) yang telah ditentukan. Sejak tahun 1992, penggembang UML (Unified Modelling Language), Jacob Et All, menjadikan use case sebagai model utama yang dibutuhkan pada UML (Unified Modelling Language). Ada 4 jenis relasi yang bisa timbul pada use case diagram, yaitu : 1. Asosiasi antara aktor dan use case. Menggunakan garis tanpa panah untuk mengindetifikasikan siapa atau apa yang meminta interaksi dan bukannya mengindikasikan aliran data. Bila aktor berinteraksi secara pasif dengan sistem maka menggunakan garis dengan panah terbuka untuk mengindentifikasikannya. 2. Asosiasi antara use case. Bila suatu use case termasuk di dalam use case lain, maka dapat digambarkan dengan tanda panah terbuka ke arah sub use case. Aktor tidak boleh dihubungkan pada use case<<include>><<extend>> 24 merupakan perluasan dari use case lain jika kondisi atau syarat terpenuhi, sebaiknya penggunaan asosiasi ini dikurangi, karena akan membuat diagram sulit dipahami. Aktor tidak boleh dihubungkan pada use case,extend, tanda panah terbuka harus terarah ke parent atau base use case. 3. Generalisasi atau inheritance antara use case. Generalisasi atau inheritance dilambangkan dengan sebuah garis berpanah yang tertutup pada salah satu ujungnya yang menunjukkan lebih umum dan harus digambarkan secara vertikal. Generalisasi atau inheritance antar use case dibuat ketika ada sebuah keadaan yang lain atau perlakuan khusus. Inheriting use case di bawah base atau parent use case. 4. Generalisasi atau inherintance antara aktor. Generalisasi atau inheritance antar aktor dibuat ketika ada aktor baru yang terbentuk dan mempunyai atribut dan metode yang sama dengan aktor yang sudah ada. Inheriting use case di bawah base atau parent aktor. 25 Gambar 2.2 Use Case Diagram b. Class Diagram Class diagram adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut atau properti) suatu sistem, dan menawarkan layanan untuk memanipulasi keadaan tersebut (metoda atau fungsi). Class diagram menggambarkan struktur dan deskripsi class, package, dan objek beserta hubungan satu sama lain seperti pewarisan, asosiasi, dan lain-lain. Class memiliki tiga area pokok, yaitu: 1. Nama (stereotype), merupakan nama dari sebuah class. 2. Atribut, merupakan properti dari sebuah class. Atribut melambangkan batas nilai yang mungkin ada pada objek dari class. 3. Metoda, merupakan sesuatu yang dapat dilakukan oleh sebuah class, atau yang dapat dilakukan oleh class lain terhadap sebuah class. 26 Gambar 2.3 Class Diagram Atribut dan metoda dapat memiliki salah satu sifat sebagai berikut: a. Private, tidak dapat dipanggil dari luar class yang bersangkutan dan ditampilkan dalam bentuk (-) dalam class diagram. b. Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya. Sifat protected ditampilkan dalam bentuk (#) dalam class diagram. c. Public, dapat dipanggil oleh siapa saja dan ditampilkan dalam bentuk (+) dalam class diagram. d. Package, hanya dapat dipanggil oleh instance sebuah class pada paket yang sama dan ditampilkan dalam bentuk (~) dalam class diagram. Berikut merupakan notasi dari class diagram: 1. Class Class adalah blok-blok pembangun pada pemrograman berorientasi objek. Sebuah class digambarkan pada sebuah kotak yang terbagi atas tiga bagian, yaitu: nama class, definisi atribut dan definisi fungsi. 2. Association 27 Sebuah asosiasi merupakan sebuah hubungan paling umum antara dua class. Garis ini dapat melambangkan tipe-tipe hubungan dan juga hukum-hukum multiplicity pada sebuah hubungan seperti one to one, one to many, many to many. 3. Composition Jika sebuah class tidak dapat berdiri sendiri dan merupakan bagian dari class yang lain, maka class tersebut memiliki relasi composition terhadap class tempat class tersebut bergantung. Sebuah hubungan composition digambarkan sebagai garis dengan ujung berbentuk jajaran genjang berisi atau solid. 4. Dependency Hubungan dependency dilakukan apabila sebuah class menggunakan class yang lain. Penggunaan dependency dilakukan untuk menunjukkan operasi pada suatu class yang menggunakan class yang lain. Sebuah dependency dilambangkan sebagai sebuah panah bertitik-titik. 5. Aggregation Agregasi mengindikasikan keseluruhan bagian relationship dan biasanya disebut sebagai relasi mempunyai sebuah atau “bagian dari”. Sebuah agregasi dilambangkan sebagai sebuah garis dengan sebuah jajaran genjang yang tidak berisi atau tidak solid. 6. Generalization Sebuah relasi generalisasi sepadan dengan sebuah relasi inheritance pada konsep berorientasi objek. Generalisasi dilambangkan dengan 28 sebuah panah dengan kepala panah yang tidak solid yang mengarah ke kelas induk. c. Object Diagram Object diagram adalah diagram yang memberikan gambaran model instance-instance dari sebuah class. Diagram ini digunakan untuk menggambarkan sebuah sistem pada sebuah sudut pandang waktu tertentu. Dengan menggunakan diagram ini dapat memeriksa keabsahan kelas-kelas diagram berkut aturan - aturan multiplisitasnya dengan real data dan mengujinya dengan skenario - skenario tertentu. 1. Object a. Objek-objek diidentifikasikan dengan cara meletakkan nama instance-nya kemudian diikuti oleh tanda titik dua didepan nama class-nya. b. Nilai property atau atribut dituliskan berpasangan seperti nama_atribut=nilai. c. Sedangkan notasi sebuah objek digambarkan segi empat yang terbagi atas 2 bagian. 2. Association a. Object diagram juga dapat mengandung asosiasi. b. Biasanya constraint, detil relationship, multiplisitas yang ada di class diagram tidak disertakan dalam object diagram sebagai upaya memfokuskan perhatian hanya terhadap objek dan property atau atributnya. 29 c. Asosiasi antar 2 objek biasanya dinotasikan dengan sebuah garis yang menghubungkan kedua objek. d. Sequence Diagram Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertical (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respon dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. 2.2 Teori Khusus 2.2.1 Sistem Operasi Android 2.2.1.1 Sejarah Sistem Operasi Android Android adalah perangkat lunak open source yang dibuat untuk perangkat mobile. (http://source.Android.com/) Android mencakup sistem operasi, middleware, dan aplikasi. Android menyediakan platform yang terbuka bagi para pengembang untuk menciptakan aplikasi mereka. Awalnya, Google Inc. membeli Android Inc. yang merupakan pendatang baru yang membuat perangkat lunak untuk ponsel atau smartphone. Kemudian untuk 30 mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan perangkat keras, perangkat lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nividia. Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan open source pada perangkat mobile. Di lain pihak, Google meliris kode-kode Android di bawah lisensi Apache, sebuah lisensi perangkat lunak dan open platform perangkat seluler. Di dunia ini terdapat dua jenis distributor sistem operasi Android. Pertama, yang mendapat dukungan penuh dari Google atau Google Mail Service (GMS) dan yang kedua adalah yang benar-benar bebas distribusinya tanpa dukungan langsung Google atau dikenal dengan Open Handset Distribution (OHD). Sekitar September 2007 Google mengenalkan Nexus One, salah satu jenis smartphone yang menggunakan Android sebagai sistem operasinya. Telepon seluler ini diproduksi oleh HTC Corporation dan tersedia di pasaran pada 5 Januari 2008. Pada 9 Desember 2008 diumumkan anggota baru yang bergabung dalam program kerja Android ARM Holdings, Atheros Communications, diproduksi oleh Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericson, Toshiba Corp, dan Vodafone Group Plc. Seiring pembentukan Open Handset Alliancem OHA 31 mengumumkan produk perdana mereka Android, perangkat mobile yang merupakan modifikasi kernel Linux 2.6. Sejak Android dirilis, telah dilakukan berbagai pembaruan berupa pembaruan bug dan penambahan fitur baru. Pada masa saat ini kebanyakan vendor-vendor smartphone sudah memproduksi smartphone berbasis Android, vendor-vendor itu antara lain HTC, Motorola, Samsung, LG, HKC, Huawei, Archos, Wehstation Camangi, Dell, Nexus, SciPhone, WayteQ, Sony Ericson, LG, Acer, Philips, T-Mobile, Nexian, IMO, Asus dan masih banyak lagi vendor smartphone di dunia yang memproduksi Android. Hal ini karena Android itu adalah sistem operasi yang open source, sehingga bebas didistribusikan dan dipakai oleh vendor manapun. Tidak hanya menjadi sistem operasi di smartphone, saat ini Android menjadi pesaing utama dari Apple pada sistem operasi tablet di PC. Pesatnya pertumbuhan Android selain faktor yang disebutkan di atas adalah karena Android itu sendiri adalah platform yang sangat lengkap baik itu sistem operasinya, Aplikasi dan Tool Pengembangan, Market aplikasi Android serta dukungan yang sangat tinggi dari komunitas open source di dunia, sehingga Android terus berkembang pesat baik dari segi teknologi maupun dari segi jumlah device yang ada di dunia. 32 2.2.1.2 Sistem Arsitektur Gambar 2.4 Sistem Arsitektur Android Sistem Arsitektur Android terdiri dari : a. GNU atau Linux Kernel Sistem operasi Android dikembangkan dari GNU atau kernel Linux, diciptakan oleh Linus Torvald ketika ia masih menjadi mahasiswa di Universitas Helsinki pada tahun 1991. Android dapat dimasukkan ke berbagai perangkat, hal ini karena GNU atau Linux mendukung kernel yang memiliki lapisan abstraksi perangkat keras. Selain itu, dengan GNU atau kernel Linux juga mendukung manajemen memori, manajemen proses, jaringan dan jenis servis lainnya. b. Native Libraries Layer di atas kernel adalah native libraries. Pustaka asli Android semua ditulis dalam C atau C + +, dikompilasi untuk 33 arsitektur perangkat keras khusus yang digunakan oleh smartphone, dan diinstal oleh vendor smartphone juga. Beberapa pustaka asli yang paling penting adalah sebagai berikut: 1. Surface manager : Android menggunakan composite window manager yang mirip dengan Vista (Ms Windows) atau Compiz Fusion (GNU atau Linux), tapi jauh lebih sederhana. Alih-alih gambar langsung ke buffer layar, perintah gambar kita masuk ke bitmap rahasia yang kemudian digabungkan dengan bitmap lain untuk membentuk tampilan pengguna. 2. 2D dan 3D graphics : objek dua dan tiga dimensi dapat dikombinasikan dalam pengguna interface tunggal di Android. Pustaka akan menggunakan 3D hardware jika perangkat keras mendukung atau menggunakan perangkat lunak jika perangkat keras tidak ada. 3. Media codecs : Android dapat memutar video dan juga memutar ulang rekaman audio dalam berbagai format termasuk AAC, AVC (H.264), H.263, MP3, dan MPEG4. 4. SQL database : di Android terdapat mesin SQLite database ringan, database yang sama digunakan di Firefox dan Apple iPhone. 34 5. Browser engine : Untuk tampilan cepat dari konten HTML, Android menggunakan pustaka WebKit. WebKit ini adalah mesin yang sama digunakan dalam browser Google Chrome, browser Safari Apple, iPhone Apple, dan platform Nokia S60. c. Android Runtime Lapisan di atas kernel adalah Android runtime, termasuk mesin virtual Dalvik (Dalvik VM) dan pustaka inti Java. Dalvik VM adalah implementasi Java dari Google, dioptimalkan untuk perangkat mobile. Semua kode yang Anda tulis untuk Android akan ditulis di Java dan dijalankan dalam Virtual Machine. Dalvik berbeda dari Java tradisional dalam dua hal penting yaitu : 1. Dalvik VM menjalankan .dex file, yang dijabarkan pada waktu kompilasi dari standar file .class dan .jar. File .dex lebih kompak dan efisien daripada file .class, suatu pertimbangan penting untuk memori terbatas dan perangkat bertenaga baterai yang berbasis Android. 2. Pustaka Java core yang datang dengan Android berbeda dari pustaka Java SE (Java Standard Edition) dan Java ME(Java Mobile Edition). 35 d. Application Framework Lapisan di atas native libraries dan runtime adalah lapisan Application Framework. Lapisan ini menyediakan blok tingkat tinggi, bagian paling penting dari framework adalah sebagai berikut: 1. Activity Manager : ini mengontrol siklus hidup aplikasi. 2. Content Provider : objek ini mengkapsulasi data yang harus dibagi antara aplikasi, seperti kontak. 3. Resource Manager :sumber daya apa yang terjadi dengan program anda yang tidak diprogramkan. 4. Location Manager : Android juga mendukung perhitungan posisi kita menggunakan informasi dari menara ponsel di dekatnya, dan jika kita tersambung ke hotspot wifi, maka dapat menggunakannya juga. Perlu diingat bahwa semua penyedia lokasi yang tidak dapat diandalkan sampai batas tertentu. Ketika kita berjalan di dalam bangunan, misalnya, sinyal GPS tidak dapat diperoleh. 5. Notification Manager : Acara seperti pesan yang datang, janji, peringatan proximity, invasi asing, dan banyak lagi. e. Applications andWidgets Lapisan teratas dalam diagram arsitektur Android adalah Applications and Widgets. Applications adalah program yang dapat mengambil alih seluruh layar dan berinteraksi dengan pengguna. Di sisi lain, Widget (kadang-kadang disebut 36 gadget), hanya beroperasi di sebuah persegi panjang kecil dari aplikasi layar Home. 2.2.1.3 Versi Android Ponsel pertama yang menggunakan sistem operasi Android adalah HTC Dream, yang dirilis pada 22 Oktober 2008.Andoid memiliki sejumlah pembaruan dan penambahan fitur sejak dirilis pertama. Berikut ini beberapa versi yang dimiliki Android sebagai berikut: 1. Android versi 1.1 Pada 9 Maret 2009, Google merilis Android versi 1.1. Android versi ini dilengkapi dengan pembaruan estetis pada aplikasi, jam alarm, voice search (pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email. 2. Android versi 1.5 (Cupcake) Pada 30 April 2009, Google merilis Android versi 1.5 berdasarkanLinux Kernel 2.6.27. Terdapat beberapa pembaruan termasuk juga penambahan beberapa fitur dalam seluler versi ini yakni kemampuan merekam dan menonton video dengan modus kamera, mengunggah video ke Youtube dan gambar ke Picasa langsung dari telepon, dukungan Bluetooth A2DP, kemampuan terhubung secara 37 otomatis ke headset bluetooth, animasi layar, dan keyboard pada layar yang dapat disesuaikan dengan sistem. 3. Android versi 1.6 (Donut) Pada 15 September 2009, Android merilis versi 1.6 yang didasarkan pada Linux Kernel 2.6.29. Pembaruan yang dilakukan adalah menampilkan proses pencarian yang lebih baik dibanding sebelumnya, galeri yang memungkinkan pengguna untuk memilih foto yang akan dihapus, kamera, camcorder dan galeri yang dintegrasikan, teknologi yang mendukung Code Division Multiple Accessatau Evolution Data Only (CDMA atau EVDO), 802.1x, Virtual Private Network (VPN), text-to-speech engine, kemampuan dial contact,dukungan resolusi Wide Video Graphics Array (VWGA). 4. Android versi 2.0/2.1 (Éclair) Pada 3 Desember 2009 Android versi 2.0/2.1 (Eclair) dirilis.Pembaruan yang dilakukan adalah pengoptimalan kecepatan hardware, peningkatan Google Maps 3.1.2, perubahan antar muka pengguna dengan browser baru dan dukungan HTML5, tampilan daftar kontak yang baru, dukungan flash untuk kamera 3,2 MP, digital zoom, dan Bluetooth 2.1. 5. Android versi 2.2 (Frozen Yoghurt) 38 Pada 20 Mei 2010 Android versi 2.2 yang didasarkan pada Linux Kernel 2.6.32 dirilis. Pembaruan yang dilakukan antara lain dukungan Adobe Flash 10.1, kecepatan kinerja dan aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8 JavaScript engine yang dipakai Google Chrome yang mempercepat kemampuan rendering pada browser, pemasangan aplikasi dalam SD Card, kemampuan WiFi Hotspot portabel, dan kemampuan auto update dalam aplikasi Android Market. 6. Android versi 2.3 (Gingerbread) Pada 6 Desember 2010 Android versi 2.3 yang didasarkan pada Linux 2.6.35 dirilis. Pembaruan yang dilakukan antara lain peningkatan kemampuan permainan (gaming), peningkatan fungsi copy paste, layar antar muka pengguna didesain ulang, dukungan format video VP8 dan WebM, efek audio baru (reverb, equalization, headphone virtualization, dan bass boost), dukungan kemampuan Near Field Communication (NFC), dan dukungan jumlah kamera yang lebih dari satu. 7. Android versi 3.0/3.1 (Honeycomb) Pada tanggal 22 Febuari 2011 Android versi Honeycomb yang didasarkan pada Linux Kernel 2.3.36 dirilis dan dirancang khusus untuk komputer tablet. Android versi ini mendukung ukuran layar yang lebih besar. User Interface 39 pada Honeycomb juga berbeda karena sudah didesain untuk tablet. Honeycomb juga mendukung multi prosesor dan juga akselerasi perangkat keras untuk grafis. Tablet pertama yang dibuat dengan menjalankan Honeycomb adalah Motorola Xoom. 8. Android versi 4.x (Ice Cream Sandwich) Pembaruan yang dilakukan adalah: a. Home Screen Berbeda dengan Honeycomb pada tablet, Anda dapat mengubah ukuran widget sesuai selera Anda, sehingga penggunanya lebih nyaman. Ikon aplikasi dapat diseret ke dalam folder, ala IOS. Tapi Ice Cream Sandwich lebih unggul dari iPhone dengan membiarkan Anda menempatkan kontak seseorang (atau setidaknya jalan pintas speed dial) ke dalam folder juga, dan bahkan menempatkan orang dalam 'favorit'. b. Notifikasi Android sudah memiliki sistem notifikasi yang lebih baik daripada yang lain. Kini, Anda juga bisa mengintip notifikasi kendati layar ponsel dalam keadaan terkunci. c. Keyboard Ada keyboard baru, dengan inline periksa ejaan. Juga untuk kepentingan cut, copy, dan paste sehingga memudahkan input. 40 d. Screenshot Dulu, kita tidak dapat berbagi screenshot Android sederhana, semudah pada perangkat IOS. Nah, sekarang Android memiliki kemampuan screenshot persis sama, dengan animasi Polaroid kecil yang lucu untuk menyorot tindakan. e. Browser Alih-alih tab horizontal, browser baru memegang 16 tab halaman terbuka, ditumpuk vertikal, bahwa Anda dapat membolak-balik, dengan live preview. Jika pada perangkat tablet Anda harus menekan-tahan untuk meminta versi desktop dari sebuah situs web, dengan versi ini Anda dengan mudah mendapatkan link full version. f. Gmail Aplikasi Gmail terlihat lebih bagus. Anda dapat memilih beberapa email sekaligus untuk mempercepat pengarsipan. Anda juga dapat membolak-balik email Anda horizontal, untuk membaca lebih cepat, dan bahkan mencari hingga 30 hari ke belakang, tanpa terhubung ke jaringan. Alamat email sekarang berasosiasi dengan orang-orang, sehingga Anda mendapatkan banyak pilihan. Anda bahkan dapat memilih untuk menggunakan media komunikasi mungkin bukan email-nya, tapi juga IM atau akun Twitternya. 41 g. Kalender Memungkinkan Anda membolak-balik tanggal lebih mudah. Agenda bisa di-zoom in untuk melihat aktivitas selama sebulan dalam sekejap. h. Mobile Data Seperti pada iPhone, kini Anda dapat menonaktifkan mobile data Anda untuk menghindari biaya yang tidak diinginkan dari operator nirkabel Anda. Anda dapat melihat grafik penggunaan bulanan Anda, dan bahkanmengendalikan lonjakan dalam penggunaan Anda, dan melihat aplikasi yang tepat yang menyebabkan masalah itu. Kemudian Anda dapat membatasi penggunaan data aplikasi tersebut. Kontrol ini cukup mengagumkan. i. Foto dan video Kamera baru pada ponsel Nexus Galaxy memiliki zero shutter lag, dan mendukung video 1080p, time-lapse video photography, dan pilihan lainnya. Tapi di luar itu, semua perangkat Ice Cream Sandwich akan membiarkan Anda berbagi foto langsung dari dalam kamera, dan melihat semua gambar Anda tidak hanya diorganisasi oleh waktu tetapi dengan lokasi atau bahkan orang-orang dan seperti pada iPhone, Anda dapat melakukan beberapa pengeditan dasar pada kamera. 42 2.2.1.4 Fitur Sistem Operasi Android a. Kerangka Kerja Aplikasi (Application Framework) Digunakan untuk menulis aplikasi di Android sehingga memungkinkan penggunaan kembali dan penggantian komponen. Kerangka kerja ini didukung oleh berbagai open source libraries seperti openssl, sqlite,dan libc serta didukung oleh libraries utama Android. Kerangka kerja sistem operasi Android didasarkan pada UNIX file system permission yang menjamin bahwa aplikasi-aplikasi tersebut hanya memiliki kemampuan yang diberikan oleh pemilik ponsel pada waktu penginstalan. b. DVM (Dalvik Virtual Machine) DVM (Dalvik Virtual Machine) adalah sebuah mesin virtual yang menggunakan memori yang sangat rendah dan secara khusus dirancang untuk Android untuk dijalankan pada embedded system. DVM (Dalvik Virtual Machine) bekerja dengan baik pada situasi dengan tenaga yang rendah dan mengoptimalkan perangkat mobile. DVM juga mengatur atribut dari CPU (Central Processing Unit) serta membuat sebuah format file yang spesial (.DEX) yang dibuat selama build time post processing. DVM (Dalvik Virtual Machine) mengambil file yang dihasilkan oleh class Java dan menggabungkannya ke dalam satu atau lebih Dalvik Executable (.dex). DVM (Dalvik Virtual Machine) dapat 43 menggunakan kembali salinan informasi dari beberapa class file dan secara efektif mengurangi kebutuhan penyimpanan oleh setengah dari Java Archive (.jar) file tradisional. Konversi antara kelas Java dan format (.dex) dilakukan dengan memasukkan “dx tool”. DVM (Dalvik Virtual Machine) menggunakan assembly-code yang berbeda dimana DVM (Dalvik Virtual Machine) menggunakan register sebagai unit utama dari penyimpanan data daripada menggunakan stack. Hasil akhir dari executable-code pada Android, merupakan hasil dari DVM (Dalvik Virtual Machine) yang didasarkan bukan pada Java byte-code melainkan pada file (.dex). Hal ini berarti bahwa Java byte-code tidak dieksekusi secara langsung melainkan dimulai dari Java class file terlebih dahulu dan kemudian mengkonversikannya ke dalam file (.dex) yang berhubungan. c. Browser yang terintegrasi. Didasarkan pada open source WebKit engine yang memiliki dua layout dan pengelompok frame.Layout menampilkan halaman tanpa menunggu untuk melakukan pemblokan elemen seperti eksternal Cascade Style Sheet (CSS) atau eksternal JavaScript. Beberapa saat kemudian dilakukan penghalusan dengan semua sumber sudah diunduh ke dalam sebuah perangkat. Frame yang ada digabungkan menjadi suatu frame tunggal dan memasukkannya ke dalam browser. Fitur-fitur 44 inilah yang meningkatkan kecepatan dan penggunaan browsing internet melalui ponsel. d. Grafik yang teroptimasi. Didukung oleh library grafis 2D dan grafis 3D yang berdasarkan spesifikasi OpenGl ES 1.0 (akselerasi perangkat keras bersifat opsional). e. SQLite SQLite merupakan relational database management system yang kecil (sekitar 500Kb) yang diintegrasikan pada sistem operasi Android. SQLite didasarkan pada function calls dan single file, dimana semua definisi, tabel, dan data disimpan. f. Mendukung media Dukungan media untuk suara, video dan format gambar seperti Moving Picture Experts Group 4 (MPEG4), MPEG-1 or MPEG-2 Audio Layer 3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic experts Group (JPG), Portable Network Graphics (PNG), Graphics Interchange Format (GIF). g. Teknologi komunikasi GSM, Bluetooth, Enhanced Data rates for GSM Evolution (EDGE), 3rd Generation (3G), dan WiFi™ (bergantung dari perangkat keras yang digunakan). 45 h. Kamera, Global Postioning System (GPS), kompas dan accelerometer (bergantung dari perangkat keras yang digunakan). i. Lingkungan deployment Lingkungan pengembangan yang lengkap, seperti emulator, peralatan untuk debugging, memori dan performance profiling, serta plug-in untuk Eclipse IDE (Integrated Development Environment). 2.2.2 XML XML adalah suatu bahasa markup yang digunakan untuk merepresentasikan dokumen yang dipertukarkan pada jaringan internet. Dengan struktur dan definisi yang jelas, XML dapat dipakai merepresentasikan dan mengkomunikasikan basis data relasional yang tersebar. Penelitian ini membahas bagaimana representasi dan sinkronisasi antar basis data relasional dapat dilakukan dengan studi kasus pada tiga DBMS relasional. Keuntungan dari XML adalah sebagai berikut: a. Sederhana Informasi atau code yang ditulis di dalam XML mudah dibaca dan dimengerti serta dapat diolah dengan mudah oleh komputer. b. Terbuka 46 XML adalah standar World Wide Web Consortium (W3C), didukung oleh pemimpin pasar industri perangkat lunak. c. Dapat diperluas Sekumpulan tags tidak ada yang tetap dan tags yang baru dapat dibuat ketika diperlukan. d. Self Description Dokumen XML dapat disimpan tanpa memerlukan definisi tertentu karena mengandung meta data dalam bentuk tag dan atribut. Setiap tag XML dapat memiliki atribut dalam jumlah yang tidak terbatas. e. Dapat menambahkan beberapa tipe data. Dokumen XML dapat berisi tipe data yang mungkin dari data multimedia (gambar, suara, video) ke komponen aktif (Java applet, ActiveX). f. Dapat menambahkan data yang ada. Pemetaan struktur data yang ada seperti sistem file atau database relasional ke dalam XML sangat sederhana. XML mendukung berbagai format data dan dapat mencakup semua struktur data yang ada. g. Berisi informasi konteks yang dapat dibaca oleh tag machine, atribut dan struktur elemen memberikan informasi konteks yang dapat digunakan untuk menafsirkan arti dari isi. h. Memisahkan bagian isi dengan tampilan. i. Mendukung dokumen multi bahasa dan unicode. j. Memfasilitasi perbandingan dan kesatuan data struktur pohon dokumen XML memungkinkan dokumen untuk dibandingkan dan di-agregasi secra lebih efisien elemen demi elemen. 47 2.2.3 MySQL MySQL merupakan salah satu DBMS open source yang paling populer pada saat ini.(http://www.mysql.com/about/) Meskipun dahulu MySQL pernah dikritisi karena tidak memiliki beberapa fitur yang ada dalam DBMS pada umumnya, namun saat ini MySQL sudah banyak dikembangkan. 2.2.3.1 Structured Query Language (SQL) SQL digunakan untuk berkomunikasi dengan sebuah database. SQL adalah bahasa yang meliputi perintah-perintah untuk menyimpan, menerima, memelihara, dan mengatur akses ke basis data serta digunakan untuk memanipulasi dan menampilkan data dari database.(R.W. Rosari, 2008) Penggunaan SQL pada DBMS (Database Management System) sudah cukup luas. SQL dapat dipakai oleh berbagai kalangan, misalnya DBA (Database Administrator), progammer ataupun pengguna. Hal ini disebabkan karena : a. SQL sebagai bahasa administrasi database Dalam hal ini SQL dipakai oleh DBA untuk menciptakan serta mengendalikan pengaksesan database. b. SQL sebagai bahasa query interaktif Pengguna dapat memberikan perintah-perintah mengakses database yang sesuai dengan kebutuhannya. c. SQL sebagai bahasa pemrograman database 48 Pemrogram dapat menggunakan perintah-perintah SQL dalam program aplikasi yang dibuat. d. SQL sebagai bahasa client atau server SQL juga dipakai sebagai untuk mengimplementasikan sistem client atau server. Sebuah client dapat menjalankan suatu aplikasi yang mengakses database. Dalam hal ini sistem operasi antara server dan client bisa berbeda. Di samping hal tersebut di atas SQL juga diterapkan pada internet atau intranet untuk mengakses database melalui halaman-halaman web untuk mendukung konsep web dinamis. 2.2.4 JavaScript Object Notation (JSON) JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat (generate) oleh komputer. Format ini dibuat berdasarkan bagian dari bahasa pemrograman JavaScript, Standar ECMA262 Edisi ke-3 - Desember 1999. JSON merupakan format teks yang tidak bergantung pada bahasa pemrograman apapun karena menggunakan gaya bahasa yang umum digunakan oleh programmer keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python dll. Oleh karena sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa pertukaran-data. JSON terbuat dari dua struktur: 1. Kumpulan pasangan nama atau nilai. Pada beberapa bahasa, hal ini dinyatakan sebagai objek (object), rekaman (record), struktur (struct), 49 kamus (dictionary), tabel hash (hash table), daftar berkunci (keyed list), atau associative array. 2. Daftar nilai terurutkan (an ordered list of values). Pada kebanyakan bahasa, hal ini dinyatakan sebagai larik (array), vektor (vector), daftar (list), atau urutan (sequence). Struktur-struktur data ini disebut sebagai struktur data universal. Pada dasarnya, semua bahasa pemrograman modern mendukung struktur data ini dalam bentuk yang sama maupun berlainan. Hal ini pantas disebut demikian karena format data mudah dipertukarkan dengan bahasa-bahasa pemrograman yang juga berdasarkan pada struktur data ini. JSON menggunakan bentuk sebagai berikut: • Object Object adalah sepasang nama atau nilai yang tidak terurutkan. Object dimulai dengan { (kurung kurawal buka) dan diakhiri dengan } (kurung kurawal tutup). Setiap nama diikuti dengan : (titik dua) dan setiap pasangan nama/nilai dipisahkan oleh , (koma). Gambar 2.5 Bentuk Object JSON 50 • Array Array adalah kumpulan nilai yang terurutkan. Larik dimulai dengan [ (kurung kotak buka) dan diakhiri dengan ] (kurung kotak tutup). Setiap nilai dipisahkan oleh , (koma). Gambar 2.6 Bentuk Array JSON • Value Nilai (value) dapat berupa sebuah string dalam tanda kutip ganda, atau angka, atau true atau false atau null, atau sebuah objek atau sebuah larik. Struktur-struktur tersebut dapat disusun bertingkat. Gambar 2.7 Bentuk Value JSON • String String adalah kumpulan dari nol atau lebih karakter Unicode, yang dibungkus dengan tanda kutip ganda. Di dalam string dapat digunakan backslash escapes "\" untuk membentuk karakter khusus. Sebuah 51 karakter mewakili karakter tunggal pada string. String sangat mirip dengan string C atau Java. Gambar 2.8 Bentuk String JSON • Number Angka (Number) sangat mirip dengan angka di C atau Java, kecuali format oktal dan heksadesimal tidak digunakan. Gambar 2.9 Bentuk Number JSON (Sumber: http://json.org/json-id.html) 52 2.2.5 Location Based Service Location Based Service (LBS) atau layanan berbasis lokasi adalah istilah umum yang digunakan untuk menggambarkan teknologi yang digunakan untuk menemukan lokasi perangkat yang digunakan.(Nazzruddin Safaat H, 2011, p226) Dua unsur utama LBS adalah : 1. Location Manager (API Maps) Menyediakan tools atau source untuk LBS, Application Programming Interface (API) Maps menyediakan fasilitas untuk menampilkan, memanipulasi maps atau peta beserta fitur-fitur lainnya seperti tampilan satelit, street (jalan), maupun gabungannya. 2. Location Provider (API Location) Menyediakan teknologi pencarian lokasi yang digunakan oleh perangkat. API Location berhubungan dengan data GPS (Global Positioning System) dan data lokasi real-time.