BAB 2 LANDASAN TEORI
2.1
Smartphone Menurut Zaki, 2008, smartphone secara harfiah artinya telepon pintar, yakni telepon seluler yang memiliki kemampuan seperti PC walaupun terbatas. Selain itu, smartphone juga mendukung email dan organizer. Fitur lainnya adalah kemapuannya untuk ditambah aplikasi-aplikasi baru. Aplikasi yang dapat diinstalkan ke dalam smartphone tidak hanya yang dibuat produsen pembuat peranti tersebut, namun juga bisa dibuat oleh pihak ketiga atau operator telekomunikasinya. Fungsi lainnya adalah antarmuka tambahan termasuk keyboard QWERTY standar komputer, namun ukurannya kecil (Zaki, 2008).
2.1.1
Android Mengacu pada Bhawiyuga, 2011, Android adalah sistem operasi untuk telepon seluler yang berbasis Linux. Android menyediakan platform terbuka bagi para pengembang buat menciptakan aplikasi mereka sendiri untuk digunakan oleh bermacam piranti bergerak. Android merupakan sebuah sistem operasi seperti halnya symbian pada Nokia, Palm, dan Windows Mobile yang sebelumnya sudah terlebih dahulu kita kenal selama ini. Awalnya, Google Inc. membeli Android Inc., pendatang baru yang membuat peranti lunak untuk ponsel. Kemudian untuk
8
9 mengembangkan
Android,
dibentuklah
Open
Handset
Alliance,
konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, TMobile, dan Nvidia. Di dunia ini terdapat dua jenis distributor sistem operasi Android. Pertama yang mendapat dukungan penuh dari Google atau Google Mail Services (GMS) dan kedua adalah yang benar–benar bebas distribusinya tanpa dukungan langsung Google atau dikenal sebagai Open Handset Distribution (OHD). Sistem perangkat lunak Android sebenarnya merupakan sebuah stack atau tumpukan yang terdiri atas beberapa lapisan dari yang paling dekat dengan perangkat keras sampai yang berinteraksi langsung dengan pengguna. Jadi, dapat dikatakan bahwa Android bukan sekedar suatu framework yang berdiri di atas suatu sistem saja, tapi Android merupakan sistem itu sendiri yang tersusun atas berbagai lapisan perangkat lunak. Pada Gambar 2.1 berikut akan digambarkan lapisan sistem perangkat lunak Android.
10
Gambar 2.1 Lapisan Sistem Perangkat Lunak Android
Berikut akan dijabarkan masing-masing lapisan pada sistem operasi Android mulai dari yang paling dekat dengan perangkat keras.
Gambar 2.2 Lapisan Kernel Linux
Android dibangun dengan memanfaatkan kernel Linux, tetapi Android tidak dapat dikatakan sebagai Linux3. Pada Android tidak terdapat dukungan untuk glibc dan native windowing system. Selain itu, Android tidak menyertakan semua utilitas standar di Linux. Pada Gambar
11 2.2 di atas ditampilkan semua pustaka yang ada pada lapisan kernel Linux pada Android.
Gambar 2.3 Lapisan Sistem Library
Di atas kernel Linux terdapat beberapa set pustaka termasuk bionic (libc buatan Google), dukungan media untuk audio, video dan grafis bersama dengan database lokal yang ringan yaitu SQLite. Pada Gambar 2.3 di atas ditampilkan semua pustaka yang ada pada lapisan Libraries pada Android. Sebenarnya, di bawah lapisan library Android terdapat lapisan abstraksi perangkat keras atau Hardware Abstraction Layer (HAL). Lapisan ini merupakan antarmuka yang menjembatani antara logic dan akses perangkat keras. Berikut Gambar 2.4 yang menampilkan lapisan HAL.
Gambar 2.4 Lapisan Android Runtime
12 Komponen kunci dari Android terletak pada bagian runtime yang disebut Dalvik Virtual Machine (VM). Untuk melihat skema lapisan Runtime, dapat dilihat pada Gambar 2.5.
Gambar 2.5 Lapisan Android Framework
Bagian Application Framework menyediakan banyak layanan lapisan atas dalam bentuk class Java.
Gambar 2.6 Lapisan Android Application
Lapisan teratas dari perangkat lunak Android adalah lapisan Application. Seperti yang terlihat pada Gambar 2.6, terdapat beberapa aplikasi standar yang sudah disediakan oleh Android. Dalam pembuatan aplikasi, diperlukan beberapa instalasi software yang mendukung antara lain Java, Android SDK, Eclipse, dan ADT.
13 A.
Java Platform, Standard Edition (Java SE) Menurut Kadir, 2004, Java adalah bahasa pemrograman serbaguna. Java dapat digunakan untuk membuat suatu program sebagaimana anda membuatnya dengan bahasa seperti Pascal atau C++. Yang lebih menarik, java juga mendukung sumber daya internet yang saat ini popular, yaitu World Wide Web atau yang sering disebut Web saja. Java juga mendukung aplikasi klien/server, baik dalam jaringan local (LAN) maupun jaringan berskala luas (WAN). Java dikembangkan oleh Sun Microsystem pada Agustus 1991, dengan nama semula Oak. Konon Oak adalah pohon semacam jati yang terlihat dari jendela tempat pembuatnya, James Gosling, bekerja. Ada yang mengatakan bahwa Oak adalah singkatan dari “Object Application Kernel”, tetapi ada yang menyatakan hal itu muncul setelah nama Oak diberikan. Pada Januari 1995, Karena nama Oak dianggap kurang komersial, maka diganti Java (Kadir, 2004). Dalam sejumlah literatur disebutkan bahwa Java merupakan hasil perpaduan sifat dari sejumlah bahasa pemrograman, yaitu C, C++, Object-C, SmallTalk, dan Common LISP. Selain itu java juga dilengkapi dengan unsur keamanan. Yang tak kalah penting adalah Java menambahkan paradigma pemrograman yang sederhana. Jika anda telah mengenal C atau C++, yang mengandalkan pointer dan anda dapat merasakan keruwetannya, Java justru meninggalkannya
14 sehingga anda akan memperoleh kemudahan saat menggunakannya (Kadir, 2004). Mengacu pada Kadir, 2004, program Java bersifat tidak bergantung pada platform, artinya, Java dapat dijalankan pada sebarang komputer
dan
bahkan
pada
sebarang
sistem
operasi.
Ketidakbergantungan terhadap platform sering dinyatakan dengan istilah portabilitas. Yang menarik, tingkat portabilitas Java tidak hanya sebatas pada program sumber (source code), melainkan juga pada tingkat kode biner yang disebut bytecode. Dengan demikian bila anda telah mengkompilasi program Java pada komputer bersistem operasi Windows, anda dapat menjalankan hasil kompilasi
pada
Macintosh
secara
langsung,
tanpa
perlu
mengkompilasi ulang. Kode yang disebut bytecode dapat dijalankan pada berbagai sisterm operasi karena kode ini berbeda dengan kode mesin. Kode mesin sangat bergantung pada platform, sedangkan bytecode dapat dimengerti oleh semua platform yang telah dilengkapi dengan interpreter Java. Mengingat bahwa hasil kompilasi Java dapat dijalankan pada sebarang sistem operasi ataupun prosesor, Java sering dikatakan bersifat netral terhadap arsitektur komputer (Kadir, 2004).
15 B.
Android SDK (Software Development Kit) Menurut Safaat, 2011, Android SDK adalah tools API (Application Programming
Interface)
yang
diperlukan
untuk
mulai
mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Saat ini disediakan Android SDK sebagai alat bantu dan API untuk mulai mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java.
C.
Eclipse Menurut Pisa, 2009, Eclipse adalah sebuah pengembangan lingkungan yang terintegrasi yang membantu Anda untuk membangun aplikasi-aplikasi dalam banyak bahasa. Eclipse adalah software open source yang didukung oleh Eclipse foundation, sebuah asosiasi non profit yang serupa dalam ruang lingkup dasar Apache. Eclipse pada awalnya dikembangkan oleh OTI (Object technology International) dan kemudian oleh IBM sebagai bagian dari proyek VisualAge. Hal ini kemudian menjadi bagian dari strategi IBM untuk membuat kode open source untuk mendorong adaptasi dari teknologi-teknologi yang dirancang untuk berjalan pada platform yang lebih disukai oleh IBM. Berkat arsitekturnya yang sangat kuat dan stabil, dan karena sebagian yang ditulis dalam bahasa Java, Eclipse dapat berjalan di beberapa sistem operasi dengan mudah. Inti dari Eclipse adalah
16 plug-in manager yang dapat memuat, menginstal, dan menjalankan berbagai
plug-in,
masing-masing
seperti
komponen
yang
menyediakan berbagai jenis layanan. Terdapat plug-in yang mengetes, debug, dan menjalankan kode Anda, dan membantu Anda menulis kode dalam banyak bahasa yang berbeda, seperti AS, JavaScript, CF, PHP dan lain-lain. Bahasa default-nya adalah selalu Java.
D.
ADT (Android Development Tools) Menurut Safaat, 2011, ADT adalah plug-in yang membuat Eclipse dapat membuat project berbasis Android. ADT harus di-install, karena sebagai penghubung antara Android SDK dengan IDE Eclipse yang akan digunakan sebagai tempat coding aplikasi Android nantinya.
2.2
Short Message Service (SMS) Short Message Service (SMS) adalah suatu fasilitas untuk mengirim dan menerima suatu pesan singkat berupa teks melalui perangkat nirkabel, yaitu perangkat komunikasi telepon seluler. Salah satu kelebihan dari SMS adalah biaya yang murah. Selain itu SMS merupakan metode store dan forward sehingga keuntungan yang didapat adalah pada saat telepon seluler penerima tidak dapat dijangkau, dalam arti tidak aktif atau diluar service area, penerima tetap dapat menerima SMS-nya apabila telepon seluler tersebut sudah aktif kembali (Pakpahan, 2009).
17 SMS menyediakan mekanisme untuk mengirimkan pesan singkat dari dan menuju media-media wireless dengan menggunakan sebuah Short Messaging Service Center (SMSC), yang bertindak sebagai sistem yang berfungsi menyimpan dan mengirimkan kembali pesan-pesan singkat. Jaringan wireless menyediakan mekanisme untuk menemukan station yang dituju dan mengirimkan pesan singkat antara SMSC dengan wireless station. SMS mendukung banyak mekanisme input sehingga memungkinkan adanya interkoneksi dengan berbagai sumber dan tujuan pengiriman pesan yang berbeda (Pakpahan, 2009).
2.2.1 SMS Gateway Komunikasi menggunakan SMS mengandung informasi berupa nomor telepon seluler pengirim, penerima, waktu dan pesan (message). Informasi tersebut dapat diolah dan bisa melakukan aktivasi transaksi tergantung kode-kode yang sudah disepakati. Untuk dapat mengelola semua transaksi yang masuk dibutuhkan sebuah sistem yang mampu menerima kode SMS dengan jumlah tertentu, mengolah informasi yang terkandung dalam pesan SMS dan melakukan transaksi yang dibutuhkan. Sistem yang dapat melakukan hal tersebut dinamakan SMS gateway (Dewanto et al, 2007, p36). Sistem minimal dari SMS gateway adalah sebuah Personal Computer yang dilengkapi dengan aplikasi SMS gateway, perangkat komunikasi berbasis selluler (Telpon Selluler atau Modem GSM/CDMA) yang terhubung dengan PC. Aplikasi SMS gateway adalah sebuah perangkat lunak yang mampu membaca informasi SMS yang diterima dan melakukan
18 pengelolaan sesuai kebutuhan. Untuk koneksi dengan telepon selluler menggunakan perintah AT Command melalui port I/O (serial/USB) yang mendukung GSM Modem ataupun berbagai merk telepon selluler. Untuk aplikasi pembacaan data SMS menggunakan konversi PDU Format dan metoda parsing untuk memisahkan kode-kode transaksi. Pembacaan dan pengelolaan pesan berikutnya menggunakan sebuah aplikasi berbasis Sistem Informasi Manajemen (Dewanto et al, 2007, p36).
2.3
Web Server Web server adalah software yang menjadi tulang belakang dari world wide web (www). Web server menunggu permintaan dari client yang menggunakan browser seperti Netscape Navigator, Internet Explorer, Mozilla, dan program browser lainnya. Jika ada permintaan dari browser, maka web server akan memproses permintaan itu kemudian memberikan hasil prosesnya berupa data yang diinginkan kembali ke browser. Data ini mempunyai format yang standar, disebut dengan format SGML (Standard Generalized Markup Language). Data yang berupa format ini kemudian akan ditampilkan oleh browser sesuai dengan kemampuan browser tersebut. Contohnya, bila data yang dikirim berupa gambar, browser yang hanya mampu menampilkan teks (misalnya lynx) tidak akan mampu menampilkan gambar tersebut, dan jika ada akan menampilkan alternatifnya saja. Web server, untuk berkomunikasi dengan client-nya (web browser) mempunyai protokol sendiri, yaitu HTTP (hypertext transfer protocol). Dengan protokol ini, komunikasi antar web server dengan client-nya dapat saling dimengerti dan lebih seperti telah dijelaskan diatas, format data pada world wide
19 web adalah SGML. Tapi para pengguna internet saat ini lebih banyak menggunakan format HTML (hypertext markup language) karena penggunaannya lebih sederhana dan mudah Kata HyperText mempunyai arti bahwa seorang pengguna internet dengan web browser-nya dapat membuka dan membaca dokumen-dokumen yang ada dalam komputernya atau bahkan jauh tempatnya sekalipun. Hal ini memberikan cita rasa dari suatu proses yang tridimensional, artinya pengguna internet dapat membaca dari satu dokumen ke dokumen yang lain hanya dengan mengklik beberapa bagian dari halaman-halaman dokumen (web) itu. Proses yang dimulai dari permintaan web client (browser), diterima web server, diproses, dan dikembalikan hasil prosesnya oleh web server ke web client lagi dilakukan secara transparan. Setiap orang dapat dengan mudah mengetahui apa yang terjadi pada tiap-tiap proses. Secara garis besarnya web server hanya memproses semua masukan yang diperolehnya dari web client-nya (Effendi, 2009).
2.3.1 GNU All Mobile Management Utilities (GAMMU) Mengacu pada Gammu Project, 2009, yang diterjemahkan oleh Putro et al, 2009, mendefinisikan Gammu sebagai berikut: “GAMMU (GNU All Mobile Management Utilities) merupakan sebuah aplikasi untuk membangun SMS gateway. Aplikasi tersebut saat ini dikelola oleh Michal Cihar dan orang-orang yang berpengalaman dalam membuat aplikasi Gnokii dan MyGnokii”. Gammu merupakan gabungan antara aplikasi, script, dan driver untuk menghubungkan sebuah telepon seluler atau perangkat serupa
20 dengan komputer lalu menjalankan fungsi-fungsi dari perangkat tersebut seperti mengirim SMS. Gammu Project, 2009, yang diterjemahkan oleh Putro et al, 2009, mendefinisikan kemampuan Gammu sebagai berikut: “Gammu memiliki kemampuan menjalankan layanan antara lain calls, SMS, EMS, phonebook memories, filesystem, logos, pictures, ringtones, dan lain-lain”. Setiap layanan pada Gammu dijalankan melalui command line dari dalam folder Gammu (C:/gammu_win32/win32 pada sistem operasi Windows dan etc/gammu pada sistem operasi Linux). Di dalam folder ini terdapat file-file application untuk menjalankan Gammu seperti gammu, gammurc, dan smsdrc. Selain file application juga terdapat file database yang disediakan Gammu (Putro et al, 2009, p2). Menurut Muhadkly, 2007, Gammu bukanlah aplikasi jadi, tetapi merupakan sebuah modul yang bisa digabungkan dengan bahasa pemrograman apa saja, bisa dengan PHP atau ASP, Delphi atau Visual Basic, bahkan tanpa pemrograman pun, Gammu sudah bisa mengirim dan menerima SMS lewat komputer, hanya saja tidak ada interface-nya, Gammu juga dapat diakses lewat database administration seperti PhpMyAdmin misalnya. Seluruh layanan pada Gammu memiliki peran masing-masing, seperti layanan calls memungkinkan server dapat melakukan dial voice, answer call, hold call, dan call conference. Selain dapat melakukan hubungan telepon, Gammu juga dapat dikondisikan untuk mengirimkan dan menerima SMS dan EMS. Dengan demikian, layanan ini dapat digunakan
21 untuk mengirim pesan, download ringtone, caller SMS, send picture, animation, MMS, dan VCARD GAMMU (Putro et al, 2009, p2). Gammu juga dapat mengakses informasi pada telepon seluler seperti phonebook, dan IMEI. Pada sistem operasi, Gammu dijalankan sebagai service yang “menumpang” pada service MySQL server. Dalam
proses
komunikasi
dengan
komputer,
Gammu
menggunakan file konfigurasi yang dinamakan gammurc. File ini berisikan seluruh konfigurasi yang diperlukan untuk berkomunikasi dengan komputer, yang meliputi port yang digunakan, tipe koneksi yang digunakan, log file, dan lain–lain. Sedangkan untuk menghubungkan dengan database digunakan file Smsdrc yang berisikan konfigurasi tentang datebase. Saat instalasi kedua file ini secara otomatis akan dibuat di dalam folder Sample. Di setiap file konfigurasi sudah disertakan petunjuk–petunjuk yang diperlukan untuk mempermudah user dalam melakukan konfigurasi. Source Gammu bisa di unduh di situs resminya, yaitu www.gammu.org. Menurut Putro et al, 2009, Gammu juga mampu menyediakan akses data pada telepon selular yang tersimpan dalam memori antara lain calls, voice mailbox, SIM phonebook, dan phone internal phonebook. Dikarenakan kemampuan Gammu dalam mengakses memori, maka Gammu juga menyediakan layanan yang bernama file system dimana dengan layanan ini pengguna dapat menambah dan mengubah isi mauapun nama folder dan file yang tersimpan. Layanan terakhir yang dimiliki oleh Gammu adalah backing up and restoring phone / SIM data. Sehingga pengguna Gammu dapat mem-
22 backup semua data dari telepon selular ke sebuah text file. File-file yang dapat di-backup oleh Gammu adalah phonebook, calendar notes, SMSC settings, operator logo,WAP, dan user ringtones GAMMU (Putro et al, 2009, p2).
2.3.2 XAMPP Menurut Kurniawan, 2009, XAMPP merupakan tool yang menyediakan paket perangkat lunak ke dalam satu buah paket. Dengan menginstal XAMPP maka tidak perlu lagi melakukan instalasi dan konfigurasi web server Apache, PHP, dan MySQL secara manual. XAMPP akan menginstalasi dan mengkonfigurasikan secara otomatis. Dalam aplikasi XAMPP sudah terdapat program Apache untuk web server, modul PHP, dan MySQL server. XAMPP sendiri merupakan aplikasi gratis (freeware) yang bisa didapatkan melalui situs ApacheFriends yang beralamat di www.apachefriends.org/en/xampp.html. Nama XAMPP merupakan singkatan dari X (program ini dapat dijalankan di banyak sistem operasi), Apache (merupakan aplikasi web server), MySQL (merupakan aplikasi database server), PHP (bahasa pemrograman web)dan Perl (bahasa pemrograman) (Hakim S.,2008).
2.3.3 Apache Web Server Web server merupakan server yang menangani komunikasi data pada internet melalui jalur World Wide Web (WWW) atau HTML (Hyper Text Markup Language). Layanan HTTP dapat dilakukan kerena kita
23 melakukan request pada host yang berada di internet, dan host IX tersebut menanggapi dengan mengirimkan informasi yang kita butuhkan berupa kode–kode HTML yang akan diubah kedalam bentuk halaman web oleh browser. Salah satu jenis web server adalah Apache. Menurut
Kurniawan,
2009,
tugas
utama
Apache
adalah
menghasilkan halaman web yang benar kepada user berdasarkan kode PHP yang dituliskan oleh pembuat halaman web. Jika diperlukan juga berdasarkan kode PHP yang dituliskan, maka dapat saja suatu database diakses terlebih dahulu (misalnya dalam MySQL) untuk mendukung halaman web yang dihasilkan. Apache versi pertama dikembangkan oleh Robert Mc Cool ( yang terlibat di NCSA ) pada tahun 1995. Ditulis dalam bahasa C, perkembangannya dilakukan bersama rekan-rekan melalui email. Dia mengerjakan proyek itu bersama Apache grupnya yaitu Brian Behlendorf, Roy T. Fielding, Rob Hartill, David Robinson, Cliff Skolnick, Randy Terbush, Robert S. Thau, Andrew Wilson, Eric Hagberg, Frank Peter dan Nicolas Pioch (The Apache Software Foundation, 2011). Pada awal mulanya, Apache merupakan perangkat lunak sumber terbuka yang menjadi alternatif dari web server Netscape (sekarang dikenal sebagai Sun Java System Web Server). Sejak April 1996 Apache menjadi web server terpopuler di Internet. Pada Mei 1999, Apache digunakan di 57% dari semua web server di dunia. Pada November 2005 persentase ini naik menjadi 71% (Netcraft Ltd, 2005).
24 Apache adalah paket aplikasi yang digunakan web server yang handal dan stabil. Jika dibandingkan dengan web server lainnya, Apache masih menjadi andalan para webmaster. Perkembangan server ini sangat pesat sehingga hampir semua server web menggunakan Apache. Aplikasi ini dapat di-download di www.apache.org. aplikasi Apache dikenal dengan httpd. Jika menggunakan Linux Redhat/Fedora maka paket ini sudah ada dalam bentuk .RPM (Dwiyoga W.,2005).
2.3.4 MySQL SQL (Structured Query Language) adalah bahasa standar yang digunakan untuk mengakses server database. Semejak tahun 70-an, bahasa ini telah dikembangkan oleh IBM, yang kemudian diikuti dengan adanya Oracle, Infomix, dan Sybase. Dengan SQL, proses akses database menjadi lebih user friendly dibandingkan dengan misalnya dBase ataupun Clipper yang masih menggunakan perintah-perintah pemrograman murni (Syaukani, 2005, p1). MySQL adalah sebuah server database SQL multiuser dan multithreaded. SQL sendiri adalah salah satu bahasa database yang paling populer di dunia. Implementasi program server database ini adalah program daemon ‘mysqld’ dan beberapa program lain serta beberapa pustaka (Syaukani, 2005, p1). MySQL dibuat oleh TcX dan telah dipercaya telah mengolah sistem dengan 40 buah database yang berisi 10,000 tabel dan 500 diantaranya memiliki 7 juta baris (kira-kira 100 gigabyte data). Database ini
25 dibuat untuk sistem keperluan database yang cepat, andal, dan mudah digunakan. Walaupun memiliki kemampuan yang cukup baik, MySQL untuk sistem operasi Unix bersifat freeware dan terdapat versi shareware untuk sistem operasi Windows. Menurut pembuatnya, MySQL disebut seperti “my-ess-que-ell” dan bukan my-sequell (Syaukani, 2005, p1).
2.4
Waterfall Model Menurut Pressman, 2001, rekayasa piranti lunak adalah pengembangan dan penggunaan prinsip-prinsip pengembangan software yang dapat diterapkan sesuai kebutuhan dalam sebuah mesin. Rekayasa piranti lunak dalam paradigma yang sering digunakan adalah Classic Life Cycle atau sering disebut Waterfall Model. Waterfall model ini merupakan sebuah pendekatan yang terdiri dari bagian-bagian proses yang meliputi satu kesatuan untuk memerlukan pendekatan kepada piranti lunak. Meliputi aktivitas-aktivitas sebagai berikut: 1.
Analisis (Analysis) Tahap analisis adalah tahap pengumpulan seluruh kebutuhan elemen di tingkat perangkat lunak (requirement analysis). Sehingga dapat ditentukan data (informasi yang saling terkait), fungsi, proses dan prosedur yang diperlukan beserta unjuk kerjanya, dan antarmuka (User Interface). Hasil akhir dari tahap analisis adalah mendapatkan seluruh spesifikasi kebutuhan perangkat lunak.
2.
Perancangan (Design) Pada tahap ini dilakukan pembuatan model dari perangkat lunak. Maksud pembuatan model ini adalah untuk memperoleh pengertian yang lebih baik
26 terhadap aliran data dan kontrol, proses-proses fungsional, tingkah laku operasi dan informasi-informasi yang terkandung di dalamnya. Terdiri dari aktivitas utama pemodelan proses, pemodelan data dan desain antarmuka. 3.
Pengkodean (Code) Setelah tahap perancangan sistem selanjutnya dilakukan konversi rancangan sistem ke dalam kode-kode bahasa pemrograman yang diinginkan. Pada tahap ini dilakukan pembuatan komponen-komponen sistem yang meliputi modul program, antarmuka, dan basis data.
4.
Ujicoba (Test) Selanjutnya program harus diuji coba dimana difokuskan terhadap tiga aktivitas yakni logika internal perangkat lunak, pemastian bahwa semua perintah yang ada telah dicoba, dan fungsi eksternal untuk memastikan bahwa dengan masukan tertentu suatu fungsi akan menghasilkan keluaran sesuai dengan yang dikehendaki.
5.
Pemeliharaan (Maintenance) Pada tahap pemeliharaan ini perangkat lunak sudah diserahkan kepada pengguna. Pada tahap ini dilakukan evaluasi terhadap sistem yang baru untuk mengetahui apakah sistem telah memenuhi tujuan yang ingin dicapai. Dari hasil evaluasi ini dimungkinkan untuk melakukan perubahan-perubahan yang diperlukan terhadap sistem agar sistem senantiasa dapat digunakan dengan baik.
27 2.5
Unified Modeling Language (UML) Mengacu pada Huda & Komputer, 2010, Pemodelan (modeling) adalah proses merancang peranti lunak (software) sebelum melakukan pengkodean (coding). Model peranti lunak dapat dianalogikan seperti pembuatan blueprint pada pembangunan gedung. Membuat model dari sebuah sistem yang kompleks sangatlah penting, karena kita tidak dapat memahami sistem semacam itu secara menyeluruh. Semakin kompleks sebuah sistem, semakin penting pula penggunaan teknik pemodelan yang baik. Dengan menggunakan model, diharapkan pengembangan peranti lunak dapat memenuhi semua kebutuhan pengguna dengan lengkap dan tepat termasuk faktor-faktor seperti scalability, robustness, security, dan sebagainya. Unified Modeling Language (UML) adalah sebuah “bahasa” yang telah menjadi
standar
dalam
industri
untuk
visualisasi,
merancang
dan
mendokumentasikan sistem peranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem. Secara konsep dasar, UML mendefinisikan berbagai diagram (Huda & Komputer, 2010).
2.5.1 Use Case Diagram Menggambarkan
fungsionalitas
dari
sebuah
sistem
(apa
fungsinya), yang merepresentasikan sebuah interaksi antara aktor dengan sistem (sebuah pekerjaan). Misalnya menambah data/membuat laporan. Aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Sebuah use case dapat meng-include fungsionalitas use case lain. Sebuah use case dapat di-include
28 oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common. Sebuah use case juga dapat meng-extend use case lain dengan behaviour-nya sendiri (Huda & Komputer, 2010).
2.5.2 Class Diagram Class adalah sebuah spesifik objek, yang memiliki atribut/properti dan layanan/fungsional (metode/fungsi). Class diagram menggambarkan struktur dan deskripsi kelas, package dan objek beserta hubungan satu sama lain, seperti containment, pewarisan, asosiasi, dan lain-lain. Kelas memiliki tiga hal pokok: Nama(dan stereotype), Atribut, dan Metode (Huda & Komputer, 2010). Hubungan antarkelas: 1.
Asosiasi, yaitu hubungan statis antarakelas, biasanya menggambarkan kelas yang memiliki atribut berupa kelas lain. Terdapat banyak jenis asosiasi, misalnya: a.
Asosiasi sederhana: bentuk asosiasi sederhana (
).
b.
Agregasi yaitu hubungan yang menyatakan bagian, biasanya hubungan data master dan data detailnya. Missal satu pembelian terdiri atas sejumlah item barang (
c.
).
Navigability: merupakan arah query/komunikasi antar-objek, bisa atu atau dua arah, terlihat pada tanda panahnya (
d.
Campuran/Composite: campuran asosisasi (
). ).
29 2.
Generalisasi, yaitu hubungan hierarkis antara anak dan bapak, karena kelas dapat diturunkan dari kelas lain dan mewarisi semua atrsibut dan metode kelas asalnya serta menambah fungsionalitas (
3.
).
Implementasi (realization), yaitu hubungan antara objek yang menjamin adanya pola khusus dalam prerilaku anggota objek lainnya. Ini dapat diwujudkan dengan adanya kelas yang mengimplementasikan interface tertentu (
4.
).
Ketergantungan (dependency) yaitu sebuah kelas membutuhkan objek lain untuk bisa memfungsikan dirinya sendiri dengan baik (
5.
).
Hubungan dinamis, yaitu rangkaian pesan (message) yang di-passing dari suatu kelas ke kelas lain.
2.5.3 Sequence Diagram Diagram ini menggambarkan interaksi antarobjek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respon dari sebuah event untuk menghasilkan output tertentu. Diawali dari sebuah aktivitas tertentu, kemudian berproses mengikuti urutan tertentu, yang bisa terlihat melalui message antarobjeknya (Huda & Komputer, 2010).
30 2.6
Flowchart Menurut Romney & Steinbart, 2006, Flowchart adalah teknik analitis yang digunakan untuk mendeskripsikan beberapa aspek dari sistem informasi dalam bentuk yang jelas, singkat dan logis. Flowchart mengunakan serangkaian simbol standar untuk mendiskripsikan berupa gambar prosedur pemrosesan transaksi yang digunakan oleh perusahaan dan aliran data dalam sistem. Tiap gambar menunjukan dan menggambarkan operasi yang dilakukan dan input, output, proses, dan media penyimpanan yang digunakan. Simbol flowchart dapat dibagi menjadi empat kategori berikut: a.
Simbol input/output menggambarkan alat atau media yang menyediakan input ke atau catatan output dari operasi pemprosesan.
b.
Simbol pemprosesan juga menunjukan jenis alat yang digunakan untuk memproses data atau mengindikasikan saat pemprosesan terlaksana secara manual.
c.
Simbol penyimpanan menggambarkan alat-alat yang digunakan untuk menyimpan data yang digunakan oleh sistem pada saat itu.
d.
Simbol aliran dan lain-lain mengindikasikan aliran data dan barang-barang. Selain itu juga menggambarkan beberapa operasi dimana flowchart berawal dan berakhir, dimana keputusan dibuat, dan kapan memberikan catatan penjelasan di flowchart.
Ada empat macam tipe flowchart menurut Hollander et al, 2000, yaitu: a.
System Flowchart, menggambarkan semua yang dilakukan didalam sistem (alur dokumen, alur data, proses).
31 b.
Document/prosedur flowchart, menggambarkan arus/ alur dokumen saja.
c.
Hardware Flowchart, menggambarkan perangkat keras dari teknologi.
d.
Program Flowchart,menggambarkan logika/ bahasa pemrograman, uruturutan yang dilakukan oleh komputer.
2.7
Entity Relationship Diagram (ERD) Menurut Menurut Connolly & Begg, 2005, pemodelan ER adalah pendekatan dari atas ke bawah untuk merancang basis data yang dimulai dengan mengidentifikasi data yang penting yang dikenal dengan sebutan entitas dan hubungan antara data harus diperlihatkan dalam model ini. Model E-R (Entity Relationship) adalah sebuah model yang merepresentasikan data sistem dengan sejumlah entitas dan relationship. Entitas merupakan obyek tertentu dalam sebuah sistem. Relationship adalah sebuah interaksi antara satu atau lebih entitas. Atribut ialah suatu sifat dalam sejumlah obyek. Diagram hubungan entitas merupakan notasi grafis dalam pemodelan data konseptual yang mendeskripsikan hubungan antara penyimpanan. Diagram hubungan entitas atau Entity Relationship Diagram (ERD) mendokumentasikan data perusahaan dengan mengidentifikasi jenis entitas dan hubungannya. ERD disiapkan pada suatu titik dalam proses pengembangan sistem saat gambaran besar data ditentukan (Connolly & Begg, 2005).
32 2.7.1 Entity Type Menurut Menurut Connolly & Begg, 2005, tipe entity adalah kumpulan objek-objek dengan property yang sama yang didefinisikan oleh perusahaan yang keberadaannya tidak tergantung. Konsep dasar dari bentuk Entity Relationship adalah tipe entitas. Sebuah tipe entitas memiliki keberadaan yang bebas dan bisa menjadi objek dengan keberadaan fisik atau menjadi objek dengan keberadaan konseptual. Ini berarti perancang yang berbeda mungkin mengidentifikasi entitas yang berbeda. Entity Occurrence adalah objek dan tipe entitas yang dapat diidentifikasi secara unik.
2.7.2 Relationship Type Menurut Connolly & Begg, 2005, relationship type adalah sekumpulan asosiasi berarti antara entity types. Relationship occurrence adalah sebuah asosiasi yang dapat diidentifikasi secara unik di mana terdiri dari satu occurrence dari masing-masing entity type yang berhubungan. Hubungan adalah suatu asosiasi yang ada antara dua jenis entitas. Hubungan digambarkan dengan bentuk belah ketupat. Tiap belah ketupat diberi label kata
kerja.
Setiap
relationship
type
digambarkan
dengan
garis
menghubungkan Entity type dan diberi nama yang hubungannya. Pada umumnya, hubungannya menggunakan kata kerja atau frase pendek yang mengandung kata kerja. Jika memungkinkan, nama hubungannya harus bersifat unik. Secara umum, nama hubungan hanya mempunyai arti untuk satu arah saja.
33 2.7.3 Attributes Menurut Connolly & Begg, 2005, atribut adalah sifat dari sebuah entitas atau sebuah tipe relationship. Atribut menyimpan nilai dari setiap entity occurrence dan mewakili bagian utama dari data yang disimpan dalam basis-data. Attribute Domain adalah satuan nilai-nilai untuk satu atau beberapa atribut. Setiap atribut yang dihubungkan dengan sebuah nilai disebut domain. Domain mendefinisikan nilai-nilai yang dimiliki sebuah atribut dan sama dengan konsep domain pada model relasional. Simple attribute adalah atribut yang terdiri dari satu komponen tunggal dengan keberadaan yang bebas. Simple attribute tidak bisa dibagi lagi kedalam komponen yang lebih kecil lagi, misalnya posisi dan gaji dari entitas pegawai. Composite attribute adalah atribut yang terdiri dari banyak komponen dengan sebuah keberadaan yang bebas. Contohnya atribut alamat dari kantor cabang yang mengandung nilai (jalan,kota,kode pos) bisa dipecahkan menjadi atribut sederhana jalan, kota dan kode pos. Single value attribute adalah atribut yang memiliki nilai tunggal untuk masing-masing kejadian dari entitas. Multi value attribute adalah atribut yang memiliki banyak nlai untuk masing-masing kejadian dari entitas. Derived attribute adalah atribut yang menggantikan sebuah nilai yang diturunkan dari nilai sebuah atribut yang berhubungan, tidak perlu pada jenis entitas yang sama.
34 2.7.4 Keys Menurut Connolly & Begg, 2005, candidate key adalah kunci yang secara unik mengenali setiap kejadian di dalam tipe entitas. Sebuah candidate key tidak boleh NULL. Sebuah entitas mungkin punya lebih dari satu candidate key. Primary key adalah candidate key yang dipilih sebagai kunci primer untuk mengenali secara unik setiap occurrence dari sebuah tipe entity. Pemilihan primary key untuk sebuah entitas adalah berdasarkan pada pertimbangan panjang atribut, jumlah minimal dari kebutuhan atribut dan memenuhi syarat unik. Candidate key yang tidak dipilh menjadi primary key disebut sebagai alternative key. Composite key adalah Candidate key yang terdiri dari dua atribut atau lebih. Foreign key adalah atribut pada satu relasi yang cocok pada candidate key dari beberapa relasi.
2.7.5 Strong And Weak Entity Type Menurut Connolly & Begg, 2005, tipe entitas yang kuat adalah tipe entitas yang keberadaannya tidak bergantung pada tipe entitas lain. Karakterisitiknya adalah stiap kejadian entitasnya secara unik mampu diidentifikasikan menggunakan atribut primary key pada entitasnya. Tipe entitas yang lemah adalah tipe entitas yang bergantung pada keberadaan entitas lainnya. Karakterisitiknya adalah setiap kejadian entitas lainnya. Karakterisitiknya adalah setiap kejadian entitas tidak bisa diidentifikasikan secara unik hanya dengan menggunakan atribut yang bergantung pada entitasnya.
35 2.7.6 Structural Constraints Menurut Connolly & Begg, 2005, tipe utama dari batasan hubungan di dalam relationship disebut multiplicity adalah jumlah kemungkinan kejadian dari sebuah entitas yang mungkin berhubungan ke sebuah kejadian tunggal dari sebuah entitas yang tergabung melalui sebuah hubungan khusus. Hubungan Binary secara umum dibedakan menjadi: a.
Derajat hubungan one to one (1 : 1) Derajat hubungan antar entitas 1 : 1 terjadi bila tiap anggota entity Staff hanya boleh berpasangan dengan satu anggota dari Branch. Sebaliknya, tiap anggota dari entitas Branch hanya boleh berpasangan dengan satu anggota dari entitas Satff.
b.
Derajat hubungan one to many (1 : *) Derajat hubungan ini terjadi bila tiap anggota entitas Staff boleh berpasangan dengan lebih dari satu anggota entitas. PropertyForRent hanya boleh berpasangan dengan satu anggota entitas Staff.
c.
Derajat hubungan many to many (* : *) Derajat hubungan antar entitas ini terjadi bila tiap anggota entitas newspaper boleh berpasangan dengan lebih dari satu anggota entitas PropertyForRent. Sebaliknya anggota entitas PropertyForRent boleh juga berpasangan dengan lebih dari satu anggota entitas newspaper.
Multiplicity adalah angka kemungkinan kejadian suatu entitas dalam hubungan n-ary ketika nilai yang lain (n - 1) ditetapkan. Pada umumnya multiplicity untuk hubungan n-ary memiliki angka potensial dari entitas
36 kejadian dalam hubungan ketika nilai (n - 1) telah ditetapkan untuk tipe-tipe entitas yang berpartisipasi.
2.8
Sistem Informasi Geografi SIG mulai dikenal pada awal 1980-an. Sejalan dengan berkembangnya perangkat komputer, baik perangkat lunak maupun perangkat keras, SIG berkembang sangat pesat pada era 1990-an. Secara harafiah, SIG dapat diartikan sebagai : ”suatu komponen yang terdiri dari perangkat keras, perangkat lunak, data geografis dan sumberdaya manusia yang bekerja bersama secara efektif untuk menangkap,
menyimpan,
memperbaiki,
memperbaharui,
mengelola,
memanipulasi, mengintegrasikan, menganalisa, dan menampilkan data dalam suatu informasi berbasis geografis”. Informasi spasial memakai lokasi, dalam suatu sistem koordinat tertentu, sebagai dasar referensinya. Karenanya SIG mempunyai kemampuan untuk menghubungkan berbagai data pada suatu titik tertentu di bumi, menggabungkannya, menganalisa dan akhirnya memetakan hasilnya. Aplikasi SIG menjawab beberapa pertanyaan seperti: lokasi, kondisi, trend, pola, dan pemodelan. Kemampuan inilah yang membedakan SIG dari sistem informasi lainnya. Dilihat dari definisinya, SIG adalah suatu sistem yang terdiri dari berbagai komponen yang tidak dapat berdiri sendiri-sendiri. Memiliki perangkat keras komputer beserta dengan perangkat lunaknya belum berarti bahwa kita sudah memiliki SIG apabila data geografis dan sumberdaya manusia yang mengoperasikannya belum ada. Sebagaimana sistem komputer pada umumnya, SIG hanyalah sebuah ‘alat’ yang mempunyai kemampuan khusus. Kemampuan
37 sumberdaya manusia untuk memformulasikan persoalan dan menganalisa hasil akhir sangat berperan dalam keberhasilan sistem SIG (Puntodewo et al, 2003).
2.8.1 Data Spasial Data spasial mempunyai dua bagian penting yang membuatnya berbeda dari data lain, yaitu informasi lokasi dan informasi atribut yang dapat dijelaskan sebagai berikut: •
Informasi lokasi atau informasi spasial. Contoh yang umum adalah informasi lintang dan bujur, termasuk diantaranya informasi datum dan proyeksi. Contoh lain dari informasi spasial yang bisa digunakan untuk mengidentifikasikan lokasi misalnya adalah Kode Pos.
•
Informasi deskriptif (atribut) atau informasi non spasial. Suatu lokalitas bisa mempunyai beberapa atribut atau properti yang berkaitan dengannya; contohnya jenis vegetasi, populasi, pendapatan per tahun, dsb.
2.8.2 Sistem Koordinat Informasi lokasi ditentukan berdasarkan sistem koordinat, yang di antaranya mencakup datum dan proyeksi peta. Datum adalah kumpulan parameter dan titik kontrol yang hubungan geometriknya diketahui, baik melalui pengukuran atau penghitungan. Sedangkan sistem proyeksi peta adalah sistem yang dirancang untuk merepresentasikan permukaan dari suatu bidang lengkung atau spheroid (misalnya bumi) pada suatu bidang datar.
38 Proses representasi ini menyebabkan distorsi yang perlu diperhitungkan untuk memperoleh ketelitian beberapa macam properti, seperti jarak, sudut, atau luasan (Puntodewo et al, 2003).
2.8.3 Format Data Spasial Dalam SIG, data spasial dapat direpresentasikan dalam dua format, yaitu: •
Vektor Dalam data format vektor, bumi kita direpresentasikan sebagai suatu mosaik dari garis (arc/line), polygon (daerah yang dibatasi oleh garis yang berawal dan berakhir pada titik yang sama), titik/point (node yang mempunyai label), dan nodes (merupakan titik perpotongan antara dua buah garis). Keuntungan utama dari format data vektor adalah ketepatan dalam merepresentasikan fitur titik, batasan dan garis lurus. Hal ini sangat berguna untuk analisa yang membutuhkan ketepatan posisi, misalnya pada basisdata batas-batas kadaster. Contoh penggunaan lainnya adalah untuk mendefinisikan hubungan spasial dari beberapa fitur. Kelemahan data vektor yang utama adalah ketidakmampuannya dalam mengakomodasi perubahan gradual.
•
Raster Data raster (atau disebut juga dengan sel grid) adalah data yang dihasilkan dari sistem Penginderaan Jauh. Pada data raster, obyek geografis direpresentasikan sebagai struktur sel grid yang disebut dengan pixel (picture element). Pada data raster, resolusi (definisi visual) tergantung pada ukuran pixel-nya. Dengan kata lain, resolusi
39 pixel menggambarkan ukuran sebenarnya di permukaan bumi yang diwakili oleh setiap pixel pada citra. Semakin kecil ukuran permukaan bumi yang direpresentasikan oleh satu sel, semakin tinggi resolusinya. Data raster sangat baik untuk merepresentasikan batas-batas yang berubah secara gradual, seperti jenis tanah, kelembaban tanah, vegetasi, suhu tanah, dsb. Keterbatasan utama dari data raster adalah besarnya ukuran file; semakin tinggi resolusi grid-nya semakin besar pula ukuran file-nya. Masing-masing format data mempunyai kelebihan dan kekurangan. Pemilihan format data yang digunakan sangat tergantung pada tujuan penggunaan, data yang tersedia, volume data yang dihasilkan, ketelitian yang diinginkan, serta kemudahan dalam analisa. Data vektor relatif lebih ekonomis dalam hal ukuran file dan presisi dalam lokasi, tetapi sangat sulit untuk digunakan dalam komputasi matematik. Sebaliknya, data raster biasanya membutuhkan ruang penyimpanan file yang lebih besar dan presisi lokasinya lebih rendah, tetapi lebih mudah digunakan secara matematis.
2.8.4 Sumber Data Spasial Sebagaimana telah kita ketahui, SIG membutuhkan masukan data yang bersifat spasial maupun deskriptif. Beberapa sumber data tersebut antara lain adalah: 1.
Peta analog (antara lain peta topografi, peta tanah, dsb.) Peta analog adalah peta dalam bentuk cetakan. Pada umumnya peta analog dibuat
40 dengan teknik kartografi, sehingga sudah mempunyai referensi spasial seperti koordinat, skala, arah mata angin dsb. Peta analog dikonversi menjadi peta digital dengan berbagai cara yang akan dibahas pada bab selanjutnya. Referensi spasial dari peta analog memberikan koordinat sebenarnya di permukaan bumi pada peta digital yang dihasilkan. Biasanya peta analog direpresentasikan dalam format vektor. 2.
Data dari sistem Penginderaan Jauh (antara lain citra satelit, foto-udara, dsb.) Data Pengindraan Jauh dapat dikatakan sebagai sumber data yang terpenting bagi SIG karena ketersediaanya secara berkala. Dengan adanya
bermacam-macam
satelit
di
ruang
angkasa
dengan
spesifikasinya masing-masing, kita bisa menerima berbagai jenis citra satelit
untuk
beragam
tujuan
pemakaian.
Data
ini
biasanya
direpresentasikan dalam format raster. 3.
Data hasil pengukuran lapangan. Contoh data hasil pengukuran lapang adalah data batas administrasi, batas kepemilikan lahan, batas persil, batas hak pengusahaan hutan, dsb., yang dihasilkan berdasarkan teknik perhitungan tersendiri. Pada umumnya data ini merupakan sumber data atribut.
4.
Data GPS. Teknologi GPS memberikan terobosan penting dalam menyediakan data bagi SIG. Keakuratan pengukuran GPS semakin tinggi
dengan
berkembangnya
teknologi.
direpresentasikan dalam format vektor.
Data
ini
biasanya
41 2.9
Desain User Interface Shneiderman dan Plaisant mengemukakan 8 (delapan) aturan yang dapat digunakan sebagai petunjuk dasar yang baik untuk merancang suatu user interface. Delapan aturan ini disebut dengan Eight Golden Rules of Interface Design, yaitu: a.
Konsistensi Konsistensi dilakukan pada urutan tindakan, perintah, dan istilah yang digunakan pada prompt, menu, serta layar bantuan.
b.
Menyediakan usability universal Ada kebutuhan dari pengguna yang sudah ahli untuk meningkatkan kecepatan interaksi, sehingga diperlukan singkatan, tombol fungsi, perintah tersembunyi, dan fasilitas makro.
c.
Memberikan umpan balik yang informatif Untuk setiap tindakan operator, sebaiknya disertakan suatu sistem umpan balik. Untuk tindakan yang sering dilakukan dan tidak terlalu penting, dapat diberikan umpan balik yang sederhana. Tetapi ketika tindakan merupakan hal yang penting, maka umpan balik sebaiknya lebih substansial. Misalnya muncul suatu suara ketika salah menekan tombol pada waktu input data atau muncul pesan kesalahannya.
d.
Merancang dialog untuk menghasilkan suatu penutupan Urutan tindakan sebaiknya diorganisir dalam suatu kelompok dengan bagian awal, tengah, dan akhir. Umpan balik yang informatif akan meberikan indikasi bahwa cara yang dilakukan sudah benar dan dapat mempersiapkan kelompok tindakan berikutnya.
42 e.
Memberikan penanganan kesalahan yang sederhana Sedapat mungkin sistem dirancang sehingga pengguna tidak dapat melakukan kesalahan fatal. Jika kesalahan terjadi, sistem dapat mendeteksi kesalahan dengan cepat dan memberikan mekanisme yang sedehana dan mudah dipahami untuk penanganan kesalahan.
f.
Mudah kembali ke tindakan sebelumnya Hal ini dapat mengurangi kekuatiran pengguna karena pengguna mengetahui kesalahan yang dilakukan dapat dibatalkan; sehingga pengguna tidak takut untuk mengekplorasi pilihan-pilihan lain yang belum biasa digunakan.
g.
Mendukung tempat pengendali internal (internal locus of control) Pengguna ingin menjadi pengontrol sistem dan sistem akan merespon tindakan yang dilakukan pengguna daripada pengguna merasa bahwa sistem mengontrol pengguna. Sebaiknya sistem dirancang sedemikan rupa sehingga pengguna menjadi inisiator daripada responden.
h.
Mengurangi beban ingatan jangka pendek Keterbatasan ingatan manusia membutuhkan tampilan yang sederhana atau banyak tampilan halaman yang sebaiknya disatukan, serta diberikan cukup waktu pelatihan untuk kode, mnemonic, dan urutan tindakan.