BAB 2 TINJAUAN PUSTAKA
2.1
Rekayasa Perangkat Lunak Rekayasa perangkat lunak adalah pembuatan perangkat lunak yang mencakup
proses pembuatan, metode yang digunakan dan alat-alat yang digunakan untuk membangun sebuah perangkat lunak dengan kualitas yang baik (Roger S. Pressman & Bruce R. Maxim, 2015:14-19). Dalam pengembangannya harus memperhatikan para pekerja agar dalam membangun perangkat lunak komputer dapat menyesuaikan pendekatan yang cocok untuk mereka dengan cara yang sesuai dengan kebutuhan.
2.1.1
Defining The Discipline Software engineering adalah teknologi berlapis. Teknologi lapisan
pada software engineering adalah sebagai berikut:
Gambar 2.1 Lapisan Software Engineering
1. A quality focus Landasan yang mendukung rekayasa perangkat lunak. Pendekatan rekayasa apa pun harus berkomitmen pada organisasi untuk kualitas. 2. Process Dasar dari rekayasa perangkat lunak. Proses rekayasa perangkat lunak adalah sebagai pelekat yang memegang lapisan teknologi tetap bersama dan memungkinkan pengembangan rasional dan waktu perangkat lunak komputer.
3. Methods Memberikan cara teknis bagaimana cara membangun software. Metode mencakup banyak hal seperti communication, requirement analysis, design modeling, program construction, testing dan support. 4. Tools Memberikan dukungan secara otomatis ataupun semi otomatis untuk process dan methods. Ketika tools terintegrasi sehingga informasi yang diciptakan oleh satu alat dapat digunakan oleh yang lain, sistem yang mendukung pengembangan perangkat lunak, yang disebut computer-aided software engineering, sudah didirikan.
2.1.2 The Software Process Proses software dibagi menjadi 3, yaitu : 1. The Process Framework Kerangka proses mencakup rangkaian umbrella activities yang berlaku di seluruh proses perangkat lunak (Roger S. Pressman & Bruce R. Maxim, 2015:14-19). Kerangka proses generik untuk rekayasa perangkat lunak meliputi lima kegiatan, yaitu: a. Communication, sebelum melakukan kerja teknis, lebih baik membicarakan dan membahasnya dengan pelanggan. b. Planning, setiap perjalanan yang rumit dapat disederhanakan jika direncanakan. c. Modeling, apakah seorang penata taman, seorang insinyur penerbangan, tukang kayu, pembangun jembatan atau seorang arsitek, harus bekerja dengan model setiap hari. d. Construction, apa yang Anda desain harus Anda bangun. e. Deployment, software tersebut dikirim ke pengguna dan pengguna
tersebut
mengevaluasi
produk
tersebut
dan
pengguna memberikan feedback berdasarkan yang mereka evaluasi. 2. Umbrella Activities Pada umumnya, kegiatan umbrella avtivities diterapkan di seluruh proyek perangkat lunak dan membantu software team dalam mengelola dan mengendalikan kemajuan, kualitas, perubahan dan
resiko (Roger S. Pressman & Bruce R. Maxim, 2015:14-19). Ciri khas umbrella activities adalah: a. Software project tracking and control, mengizinkan software team untuk menilai perkembangan terhadap resiko dari rencana proyek dan mengambil tindakan apa saja yang perlu di lakukan untuk menjaga jadwal yang sudah di rencanakan. b. Risk management, menilai resiko yang mungkin berpengaruh pada hasil dari proyek atau kualitas dari produk c. Software quality assurance, mendefinisikan dan melakukan kegiatan yang diperlukan untuk memastikan kualitas software. d. Technical review, menilai produk kerja rekayasa perangkat lunak dalam upaya untuk mengungkapkan dan menghapus kesalahan sebelum dilanjutkan ke aktivitas selanjutnya. e. Measurement, mendefinisikan dan mengumpulkan langkahlangkah
proses, proyek dan produk membantu tim dalam
memberikan software yang memenuhi kebutuhan stakeholder. f. Software configuration management, mengelolah efek untuk merubah keseluruhan dari proses software. g. Reusability
management,
mendefinisikan
kriteria
untuk
digunakan kembali produk kerja dan mendirikan mekanisme untuk menerima komponen yang dapat digunakan kembali. h. Work product preparation and production, mencakup kegiatan yang dibutuhkan untuk membuat model, dokumen, logs, forms dan lists 3. Process Adaptation Projek diadopsi untuk satu proyek mungkin berbeda secara signifikan dari proses diadopsi untuk proyek lain (Roger S. Pressman & Bruce R. Maxim, 2015:14-19). a. Aliran keseluruhan kegiatan, tindakan , tugas dan saling ketergantungan di antara mereka. b. Sejauh mana tindakan dan tugas didefinisikan dalam setiap kerangka aktivitas c. Sejauh mana produk kerja telah teridentifikasi dan diperlukan. d. Cara di mana kegiatan jaminan kualitas dapat diterapkan.
e. Cara di mana pelacakan proyek dan kontrol kegiatan dapat diterapkan. f. Secara keseluruhan sejauh mana tingkat detail dan ketelitian dengan proses yang sudah digambarkan g.
Sejauh mana pelanggan dan stakeholder lainnya terlibat dengan proyek tersebut.
h. Tingkat otonomi yang diberikan kepada software team. i. Sejauh mana tim organisasi dan peran yang ditentukan
2.2
Agile Software Development Agile software development adalah sebuah metode pengembangan software
yang fokus pada kepuasan pengguna dan dapat melakukan pengembangan software dengan cepat. Agile software development memberikan petunjuk pengembangan mengenai pentingnya analisis dan desain, dan komunikasi yang aktif secara berkelanjutan antara developers dan customer (Pressman Maxim 2015:66).
2.2.1 Scrum Scrum adalah salah satu metode dari agile software development yang diusulkan oleh Jeff Sutherland dan tim-nya pada awal tahun 1990. Scrum mempunyai beberapa framework activites yaitu requirement, analysis, design, evolution, dan delivery. Pada setiap framework activites akan muncul tugas dalam susunan proses yang disebut sprint. Tugas yang dilaksanakan pada setiap sprint akan beradaptasi dengan masalah yang dihadapi dan sering mendapatkan perubahan oleh tim Scrum. Scrum menekankan penggunaan pola pengembangan software yang terbukuti efektif untuk proyek yang mempunyai timeline yang ketat, kebutuhan yang berubah dan bisnis yang penting. Setiap susunan proses mendefinisikan satu set aktivitas pengembangan : a. Backlog Daftar
kebutuhan
proyek
yang
diutamakan
dan
fitur yang
menyediakan bussines value untuk customer. Backlog menyediakan list fitur yang akan dikembangkan pada tahap pengembangan. Item apa pun dapat ditambahkan pada backlog setiap saat. Seorang product
manager melakukan penilaian pada backlog dan melakukan perubahan sesuai kebutuhan. b. Sprints Terdiri dari pekerjaan yang dibutuhkan untuk mencapai kebutuhan yang didefinsikan pada backlog. Setiap fitur yang telah ditentukan pada backlog akan dikembangkan. Setiap Sprint memiliki definisi mengenai apa yang akan dikembangkan, sebuah disain dan perencanaan yang fleksibel yang akan membimbing pengembangan, pekerjaan yang akan dilakukan dan hasil dari produk. Pekerjaan yang akan dilaksanakan di dalam Sprint direncanakan pada saat Sprint Planning. Sprint Goal merupakan sekumpulan tujuan yang akan dicapai dalam satu Sprint sepanjang pengimplementasian Product Backlog yang ditentukan pada bagian Sprint Planning. Tidak ada perubahan pada proses sprint. Oleh karena itu, sprint mengizinkan tim untuk bekerja pada waktu yang singkat tetapi stabil. c. Scrum meetings Pertemuan yang dilakukan secara singkat setiap hari oleh tim scrum. Tiga pertanyaan kunci di tanyakan dan dijawab oleh seluruh tim scrum, yaitu : a. Apa yang anda lakukan setelah pertemuan terakhir? b. Apa masalah yang anda hadapi? c. Apa yang anda rencakan untuk diselesaikan hingga pertemuan berikutnya? Pemimpim tim disebut Scrum Master yang memimpin pertemuan dan menilai respon yang diberikan oleh setiap anggota. Scrum Meeting dapat membantu tim untuk menemukan sebuah masalah secepat mungkin d. Demo Pada tahap ini tim mengirimkan perkembangan software di mana fungsinya
sudah
bisa
diimplementasi.
Setelah
mengirimkan
perkembangan tersebut software akan mulai didemonstrasikan dan dievaluasi kepada customer.
Gambar 2.2 Scrum Process
2.3
UML Unified Modeling Language (UML) adalah metode permodelan desain yang
digunakan untuk menentukan atau menggambarkan suatu sistem perangkat lunak berorientasi objek (Whitten & Bentley 2007:246). UML dapat memberikan gambaran suatu sistem dengan menampilkan banyak notasi grafik dan seperangkat diagram. Dengan menggunakan UML dapat mendefinisikan suatu sistem yang kompleks menjadi lebih sederhana.
2.3.1 Use Case Diagram Use Case Diagram adalah sebuah diagram yang digunakan untuk menggambarkan hubungan antara sistem dan eksternal sistem dan pengguna (Whitten & Bentley 2007:246). Selain itu use case diagram juga menggambarkan dan menjelaskan siapa yang akan menggunakan sistem dan bagaimana
cara
pengguna
berinteraksi
dengan
sistem.
Dalam
menggambarkan use case diagram terdapat bagian-bagian utama yaitu boundaries, actor, use case dan relationships.
Gambar 2.3 Contoh Use Case Diagram
1. Boundaries Boundaries pada use case diagram digunakan untuk membatasi sistem yang dibuat. Boundaries digambarkan dengan persegi panjang di mana use case berada di dalamnya dan aktor terdapat di luar. Dengan adanya boundaries akan lebih mudah untuk melihat cakupan dari suatu sistem. 2. Use Case Use Case digunakan untuk mendeskripsikan suatu fungsi sistem dari perspektif pengguna eksternal dengan menggunakan cara dan istilah yang mudah dimengerti oleh pengguna (Whitten & Bentley 2007:246). Use Case di gambarkan dengan bentuk bulatan panjang di mana nama use case dituliskan di dalamnya.
Use Case Simbol
Gambar 2.4 Contoh Use Case Simbol
3. Actor Aktor
pada
use
case
diagram
digunakan
untuk
menggambarkan seorang pengguna, perangkat atau sistem eksternal yang dibutuhkan untuk berinteraksi dengan sistem untuk mendapatkan informasi (Whitten & Bentley 2007:247). Aktor pada use case diagram digambarkan dengan stick man di mana nama dari aktor tersebut tertulis di bawahnya. Aktor pada use case diagram dibagi menjadi 4 tipe, yaitu : a. Primary Business Actor Stakeholder pada tipe ini akan merasakan manfaat dari berjalannya suatu use case dengan menerima suatu nilai yang terukur. Aktor utama dapat memulai dan boleh tidak memulai dalam suatu kejadian. b. Primary System Actor Stakeholder pada tipe ini langsung berinteraksi dengan sistem untuk menjalankan suatu kejadian. Primary system actor dapat langsung berinteraksi dengan primary business actor untuk mencapai tujuan dengan menggunakan sistem yang sebenarnya. Tipe ini juga memfasilitasi suatu kejadian untuk digunakan langsung dari sistem yang menguntungkan primary business actor. c. External Server Actor Stakeholder pada tipe ini akan merespon permintaan dari use case. d. External Receiver Actor Stakeholder pada tipe ini tidak menjadi aktor utama tetapi menjadi penerima dari suatu use case yang menerima suatu nilai yang dapat diukur atau dapat diamati.
Actor
Gambar 2.5 Contoh Actor pada Use Case Diagram
4. Relationships Sebuah relationships pada use case diagram digambarkan dengan sebuah garis di antara dua simbol. Arti dari setiap relationships berbeda-beda tergantung pada garis yang digambarkan dan tipe simbol yang menghubungkan keduanya. 5. Associations Associations adalah sebuah penghubung yang menghubungkan antara aktor dan suatu use case. Terdapat dua tipe associations, yang pertama
adalah
tipe
association
dengan
tanda
panah
yang
menghubungkan aktor dengan suatu use case sedangkan tipe association yang kedua adalah tipe association tanpa tanda panah yang menghubungkan use case dengan aktor penerima atau external receiver actor.
Gambar 2.6 Contoh Associations pada Use Case Diagram
6. Extends Extension use case adalah bagian dari suatu use case yang dipecah
karena
terlalu
kompleks
dengan
tujuan
untuk
menyederhanakan use case tersebut agar lebih mudah untuk dipahami (Whitten & Bentley 2007:248). Hasil dari pemecahan dari suatu use case disebut extension use case yang mana extension use case memperluas fungsionalitas dari use case yang asli. Hubungan antara extension use case dan use case dapat disebut extends relationship. Suatu extends relationship digambarkan dengan tanda panah dan dengan memberi label nama “<<extends>>” pada penghubungnya. Dalam menggambarkan suatu extends relationship, garis penghubung dimulai dari extension use case dan menunjuk ke use case. Sebuah use case dapat memiliki banyak extends relationship, tetapi suatu
extension use case hanya dapat dipanggil oleh use case yang memecah atau memperluasnya.
Gambar 2.7 Contoh Extends pada Use Case Diagram
7. Uses (includes) Dalam pembuatan use case diagram akan sering menemui keadaan di mana dua atau lebih use case memiliki fungsi sama. Apabila suatu use case memiliki fungsi yang sama lebih baik untuk memecah atau memisahkan ke dalam bagiannya sendiri yang disebut abstract use case. Sebuah abstract use case dapat ditampilkan berulang-ulang yang membuat abstract use case menjadi alat terbaik untuk mengurangi redundansi pada use case. Suatu abstract use case dapat digunakan banyak use case lain apabila suatu use case membutuhkan fungsi dari abstract use case. Hubungan antara abstract use case dan use case dapat disebut uses relationship yang dihubungkan dengan garis. Pada penggambarannya garis dimulai dari use case dan menunjuk dengan tanda panah ke abstract use case. Setiap uses relationship diberi nama <<uses>>.
Gambar 2.8 Contoh Uses (Includes) pada Use Case Diagram
8. Depends On Dalam pengembangan suatu sistem, penting untuk mengetahui use case mana yang memiliki ketergantungan dengan use case lain. Hal ini bertujuan untuk menentukan urutan dari use case mana yang nantinya akan dikembangkan. Contohnya seperti use case penarikan uang yang tidak dapat dijalankan sampai use case membuat deposit dijalankan dan use case membuat deposit tidak dapat dijalankan sampai use case mendaftarkan diri ke bank dilakukan. Karena adanya ketergantungan tersebut, para pengembang harus mengembangkan bagian use case mendaftarkan diri ke bank terlebih dahulu, kemudian yang kedua use case membuat deposit dan yang terakhir use case penarikan uang. Untuk menggambarkan depends on relationship pada suatu use case diagram, garis yang menghubungkan keduanya diberi label <<depends on>>. Penghubung garis dimulai dari suatu use case dan menunjuk dengan tanda panah ke use case yang bergantung kepadanya.
Gambar 2.9 Contoh Depends On pada Use Case Diagram
9. Inheritance Ketika dua atau lebih aktor berbagi sifat yang sama, semua aktor tersebut dapat menggunakan use case yang sama. Untuk mengatasi hal tersebut, dibutuhkan suatu abstract actor untuk mengurangi komunikasi redundan dengan sistem.
Gambar 2.10 Contoh Inheritance pada Use Case Diagram
2.3.2 Use Case Narrative Use case narrative merupakan deskripsi teks yang menjelaskan cara pengguna berinteraksi dengan sistem untuk menyelesaikan tugas. Use case narrative bertujuan supaya pengguna lebih cepat memahami dan mengetahui seberapa besar sistem tersebut (Whitten & Bentley 2007:256-260).
Gambar 2.11 Contoh Use Case Narrative (Sumber: Whitten & Bentley, 2007:257)
Bagian-bagian dari contoh use case narrative adalah sebagai berikut : 1. Author, nama dari pengguna yang berkontribusi dalam pembuatan use-case dan menyediakan kontak bagi siapa saja yang membutuhkan informasi tambahan tentang use case tersebut. 2. Date, tanggal terakhir pada saat use case diubah. 3. Version, versi dari use case. 4. Use-case name, nama dari use case tersebut yang mewakili tujuan dari use case yang sedang dicoba untuk menyelesaikannya. Nama dari use case harus diawali dengan kata kerja. 5. Use-case type, pemodelan use case, kebutuhan bisnis use case, yang berfokus pada visi strategi dan tujuan dari berbagai stakeholders. Jenis dari use case ini adalah bisnis orientasi dan mencerminkan pandangan tingkat tinggi yang diinginkan dari sistem tersebut. 6. Use-case ID, pengenal yang unik untuk mengidentifikasi use case tersebut. 7. Priority, prioritas yang memperlihatkan seberapa penting use case. 8. Source, sumber yang mendefinisikanentitas yang memicu dalam pembuatan use case. Dapat berupa kebutuhan, dokumen spesifik, atau
stakeholder. 9. Primary business actor, pelaku usaha utama adalah stakeholder yang mendapatkan manfaat utama dari eksekusi sebuah use case dengan menerima nilai yang dapat diukur atau diamati. 10. Other participation actors, actor lain yang berpartisipasi dalam use case untuk menyelesaikan tujuannya. 11. Interested stakeholder(s), siapa yang memiliki saham dalam pengembangan dan pengoperasian sistem perangkat lunak. 12. Description, deskripsi singkat yang terdiri dari beberapa kalimat yang menguraikan tujuan dari use case dan aktifitasnya.
Gambar 2.12 Contoh Use Case Narrative yang Telah diperluas (Sumber: Whitten & Bentley, 2007:259)
Gambar 2.13 Lanjutan Use Case Narrative yang Telah diperluas (Sumber: Whitten & Bentley, 2007:260)
Bagian-bagian dari contoh use case narrative yang sudah diperluas adalah sebagai berikut : 1. Precondition, sebuah kendala pada sistem sebelum use case dapat dieksekusi. Khususnya ini mengacu pada use case lainnya yang harus dieksekusi sebelumnya. 2. Tigger, pemicu adalah hal yang memprakarsai pelaksanaan sebuah use case. Sering kali adalah tindakan fisik, seperti seorang pelanggan berjalan menuju loket penjualan atau mengecek surat yang datang. 3. Typical course of event, urutan dari sebuah kegiatan yang dilakukan oleh aktor dan sistem untuk mencapai tujuan dari use case. Ini termasuk interaksi antara sistem dan aktor dan kegiatan yang dilakukan oleh sistem dalam menanggapi interaksi. 4. Alternate course, mendokumentasikan sifat-sifat dari
use case
apabila terjadi pengecualian atau perubahan pada typical course. 5.
Conclusion, menspesifikasikan kesimpulan ketika use case berhasil berhenti, dalam kata lain, ketika aktor utama menerima suatu nilai terukur.
6. Postconditon, sebuah kendala pada sistem sesudah use case berhasil dieksekusi. Ini bisa menjadi data yang tercatat dalam database atau menjadi tanda terima yang dikirim ke pelanggan. 7. Bussiness rules, menentukan kebijaksanaan dan prosedur dari bisnis dengan sistem baru yang harus dipatuhi. Termasuk perhitungan biaya pengiriman atau aturan pemberian syarat kredit. 8. Implementation
constraints
and
specifications,
menentukan
persyaratan nonfungsional yang dapat mempengaruhi realisasi dari use case dan dapat membantu dalam setiap perencanaan dan pencakupan arsitektural. 9. Assumption, setiap asumsi yang dibuat oleh penciptanya ketika mendokumentasikan use case. 10. Open issues, setiap pertanyaan atau masalah perlu dilakukan penyelesaian atau penyelidikan sebelum use case tersebut dapat diselesaikan.
2.3.3 Activity Diagram Activity diagram merupakan diagram yang digunakan untuk menggambarkan urutan proses atau aktivitas suatu sistem (Whitten & Bentley 2007:390). Activity diagram dapat menggambarkan alur proses bisnis, use case dan juga logika dari kebiasaan suatu objek. Sebuah activity diagram dapat dibentuk untuk setiap use case apabila pada use case diagram tersebut memiliki logika yang kompleks sehingga dibutuhkan lebih dari satu activity diagram
untuk
menggambarkannya.
Untuk
memudahkan
dalam
menggambarkan activity diagram terdapat simbol dan penghubung yang harus diketahui sebagai berikut :
Gambar 2.14 Simbol dan Penghubung Pada Activity Diagram
1. Initial Node Initial node merupakan simbol yang digunakan untuk menandakan awal dimulainya suatu proses. 2. Actions Actions menggambarkan urutan dari proses atau akitivitas. 3. Flow Flow digunakan untuk menunjukkan berjalannya suatu proses. 4. Decision Decision digunakan untuk memberikan dua pilihan kondisi dengan sebuah arah flow masuk dan dua atau lebih arah flow yang keluar. 5. Merge Merge digunakan untuk menyatukan flow yang sebelumnya terpisah dari proses decision. 6. Fork Fork digunakan ketika sebuah flow masuk dan terdapat dua flow keluar yang menjalankan dua aktivitas bersamaan. 7. Join Join digunakan ketika terdapat dua flow masuk yang menjalankan dua aktivitas bersamaan dan hanya terdapat sebuah flow yang keluar.
8. Activity Final Activity Final menunjukkan akhir dari suatu proses 9. Subactivity Indicator Subactivity indicator digunakan untuk menandakan suatu proses atau aktivitas yang dipecah pada activity diagram lain. Hal ini bertujuan agar activity diagram tidak terlalu kompleks 10. Connector Connector digunakan untuk mempermudah ketika activity diagram sudah terlalu kompleks. Sebuah flow masuk ke suatu connector yang telah diberi nama dan flow keluar dari connector dengan nama sama yang menunjuk suatu decision atau actions.
Gambar 2.15 Contoh Activity Diagram (Whitten & Bentley 2007:392)
2.3.4 Sequence Diagram Sequence
Diagram
adalah
diagram
yang
digunakan
untuk
memodelkan logika dari use case dengan menggambarkan interaksi yang terjadi saat proses mengirimkan pesan ke sistem dalam waktu yang berurutan (Whitten & Bentley 2007:659). Sebuah sequence diagram digunakan sebagai cara untuk mengintegrasikan langkah-langkah dari use case dengan class diagram. Dalam membuat sebuah sequence diagram terdapat beberapa notasi yang digunakan untuk menggambarkannya, seperti yang terdapat pada tabel berikut :
Tabel 2.1 Notasi pada Sequence Diagram Simbol Notasi
Nama
Deskripsi
Actor
Notasi ini digunakan untuk berinteraksi dengan sistem yang digambarkan seperti simbol actor pada use case diagram.
<
>
Interface Class
Sebuah kotak pada notasi ini menunjukkan sebuah class pada tampilan sistem. Interface class digunakan untuk meyakinkan agar tidak terjadi kebingungan pada kelas dengan memberi notasi <>.
<>
Controller Class
Setiap use case akan memiliki satu atau lebih controller classes, yang digambarkan dengan notasi yang sama seperti interface class yaitu <>,
Entity Classes
Entity classes merupakan notasi simbol yang digunakan untuk mewakili sebuah kelas.
Messages
Messages merupakan notasi yang digunakan untuk menunjukkan input pesan yang dikirimkan kepada setiap kelas-kelas. Setiap pesan yang dikirim akan memanggil perilaku atau fungsi
:Object1
Message
dari kelas tersebut. Activation Bars
Activation bars digunakan untuk menunjukkan periode waktu hidup suatu kelas.
Return Messages
Setiap behavior harus mengembalikan sesuatu, setidaknya mengirimkan pesan kembali seperti benar atau salah untuk menunjukkan berhasil atau tidak.
Self Call
Self call mewakili notasi simbol yang digunakan ketika objek akan memanggil fungsinya sendiri.
Frame
Frame merupakan notasi simbol yang menunjukkan suatu area pada sistem sequence diagram yang membutuhkan perulangan atau seleksi.
Message
Message
Gambar 2.16 Contoh Sequence Diagram (Whitten & Bentley 2007:659)
2.3.5 Class diagram Class diagram digunakan untuk menggambarkan kelas-kelas yang saling berhubungan dengan komponen software untuk membangun suatu perangkat aplikasi (Whitten & Bentley 2007:665). Pada class diagram setiap objek akan berinteraksi dengan objek lain dalam satu sistem yang sama. Contohnya objek pada kelas customer dan order yang dapat menentukan bagaimana customers dan orders saling berhubungan dalam memberikan informasi sistem. 1. Association Association merupakan garis penghubung yang menunjukkan hubungan antara kelas kelas. Semua hubungan yang terjalin merupakan hubungan dua arah yang berarti dapat menginterpretasi ke dalam dua arah.
Gambar 2.17 Association dalam Class Diagram (Whitten & Bentley 2007:377)
2. Multiplicity Multiplicity merupakan nilai minimal dan maksimal dari banyak kejadian pada suatu kelas objek untuk sebuah kejadian dari kelas objek yang saling berhubungan (Whitten & Bentley 2007:378). Dalam
multiplicity
terdapat
beberapa
simbol
notasi
untuk
menunjukkan suatu hubungan antara kelas-kelas seperti pada tabel berikut ini :
Gambar 2.18 Multiplicity dalam Class Diagram (Whitten & Bentley 2007:377)
3. Aggregation Aggregation merupakan hubungan di mana ketika sebuah kelas yang lebih besar memiliki satu atau lebih bagian kecil dari kelas lain. Sebaliknya bagian dari kelas yang lebih kecil seluruhnya merupakan bagian dari kelas yang lebih besar.
Gambar 2.19 Aggregation dalam Class Diagram (Whitten & Bentley 2007:379)
4. Composition Composition merupakan sebuah hubungan aggregation di mana seluruh bagian akan bertanggung jawab terhadap penciptaan dan penghancuran dari bagiannya yang lain. Apabila seluruh bagian terbesar akan berakhir, maka bagiannya yang lain akan berakhir juga.
Gambar 2.20 Composition dalam Class Diagram (Whitten & Bentley 2007:379)
5. Message Message digunakan untuk melakukan komunikasi ketika sebuah objek meminta fungsi atau perilaku dari objek lain untuk meminta informasi atau beberapa aksi. Saat membuat sebuah permintaan harus memberi label nama mengenai fungsi atau perilaku yang dibutuhkan.
Gambar 2.21 Message dalam Class Diagram (Whitten & Bentley 2007:380)
6. Generalization/specialization Generalization/specialization merupakan teknik di mana beberapa atribut dan perilaku yang memiliki tipe sama akan dikelompokkan ke dalam kelasnya yang disebut supertype. Beberapa atribut dan fungsi dari kelas objek supertype akan diturunkan dari kelas-kelas objeknya.
Gambar 2.22 Generalization/specialization pada Class Diagram (Whitten & Bentley 2007:376)
2.4
Interaksi Manusia dan Komputer (IMK) Interaksi manusia dan komputer merupakan ilmu yang mempelajari
hubungan antara manusia dan komputer, di mana komputer dibuat senyaman dan semudah mungkin untuk digunakan oleh manusia yang meliputi perancangan, evaluasi dan implementasi antarmuka pengguna komputer agar dapat dengan mudah digunakan oleh manusia (Ben Shneiderman dan Catherine Plaisant, 2010, pp. 88-89).
2.4.1
Eight Golden Rules Dalam pembuatan user-interface ada aturan yang disebut delapan
aturan emas atau eight golden rules. Delapan aturan emas tersebut dapat diimplementasikan pada kebanyakan sistem interaktif. Delapan aturan emas tersebut adalah 8 prinsip utama dalam yaitu :
1. Berusaha untuk konsisten Dalam membuat suatu tampilan aplikasi harus memiliki aturan standar agar tampilan dan aksi yang diberikan konsisten. Untuk mendapatkan konsistensi tersebut maka urutan aksi yang dilakukan haruslah serupa jika menemui situasi yang sama. Istilah yang sejenis harus konsisten digunakan pada petunjuk, menu, dan layar bantuan. Warna, layout, huruf kapital, font juga harus konsisten pada setiap tampilan 2. Memenuhi kebutuhan universal Memahami kebutuhan dari berbagai macam user seperti pemula dan ahli, perbedaan umur, orang yang cacat dan keragaman teknologi. Pada pemula ditambahkan penjelasan dan fitur bagi ahli, ditambahkan shortcut dan mempercepat navigasi, dapat memperkaya tampilan. 3. Menawarkan umpan balik yang informatif Untuk setiap aktivitas yang dilakukan pengguna, harus memberikan umpan balik. Untuk tindakan biasa dan tindakan kecil, tanggapan lebih sederhana, sedangkan untuk tindakan yang jarang dikerjakan atau tindakan utama, tanggapannya harus lebih kompleks. 4. Merancang dialog yang menghasilkan sebuah penutup Setiap urutan aksi harus diorganisir menjadi permulaan, pertengahan, dan akhir. Umpan balik yang berguna pada setiap akhir penyelesaian sebuah aksi dapat membuat pengguna kepuasan akan menyelesaikan sesuatu, rasa tenang, menghilangkan perkiraan yang ada pada pikiran pengguna, dan sebagai indicator untuk melanjutkan ke aksi yang selanjutnya. 5. Mencegah kesalahan Pastikan pengguna tidak melakukan kesalahan yang fatal. Pada saat pengguna melakukan kesalahan, sistem harus melakukan deteksi akan kesalahan tersebut, dan memberikan cara untuk memperbaiki kesalahan yang telah di perbuat. 6. Mengizinkan pengguna dapat kembali pada aksi sebelumnya Setiap aksi harus mempunyai fungsi untuk kembali kepada aksi sebelumnya. Hal ini dapat menenangkan kecemasan pengguna, karena pengguna tahu bahwa dapat kembali ke aksi sebelumnya ketika
melakukan sebuah kesalahan. Fungsi ini juga dapat meyakinkan pengguna untuk menelusuri fitur yang ada pada aplikasi. 7. Memastikan pengguna yang memegang kontrol Pengguna harus merasa bahwa mereka yang memegang kontrol sebuah interface, dan interface tersebut akan merespon terhadap aksi yang di lakukan oleh pengguna. Pengguna akan kesal jika susah untuk mendapatkan informasi yang dibutuhkan, dan tidak berhasilnya mendapatkan hasil yang di inginkan pada interface tersebut. 8. Mengurangi ingatan jangka pendek Setiap manusia mempunyai batasan untuk memproses sebuah informasi pada otak. Oleh karena itu perancang harus membuat sebuah interface yang tidak memperlakukan pengguna untuk mengingat banyak hal.
2.4.2
Lima Faktor Manusia Terukur Menurut Ben Shneiderman dan Catherine Plaisant (2010, pp. 32)
dalam proses pengujian suatu desain, terdapat lima faktor yang dapat digunakan untuk mengukur, yaitu: 1. Waktu untuk belajar Seberapa lama seorang pengguna dapat memahami suatu aksi. 2. Kecepatan performa Seberapa waktu yang dibutuhkan pengguna untuk mengerjakan suatu aksi. 3. Tingkat kesalahan pada pengguna Seberapa banyak dan seberapa sering pengguna melakukan suatu kesalahan pada sebuah aksi. 4. Daya ingat Seberapa lama pengguna mengingat hal yang sudah dilihat sebelumnya pada sebuah interface. 5. Kepuasan subjektif Seberapa puas pengguna pada banyak aspek yang ada pada sebuah interface.
2.5
Android Android adalah sistem operasi pada perangkat mobile berbasis linux yang
telah di modifikasi. Android awalnya dikembangkan oleh startup bernama Android, Inc. Pada tahun 2005 sebagai strategi untuk masuk ke dunia mobile, Google membeli Android dan mengambil alih proses pengembangannya. Google menginginkan Android menjadi sistem operasi yang terbuka dan gratis. Oleh karena itu, sebagian besar code dari android dirilis pada open source Apache License yang artinya siapa pun dapat mengunduh source code lengkap dari sistem operasi android. (Beginning android 4 application development, Wei-Meng Lee 2012:3)
2.5.1 Versi Android Pengguna sistem operasi Android semakin meningkat disetiap tahunnya. Hal ini membuat Android terus berkembang dengan menambahkan fitur-fitur baru di setiap versi barunya. Saat ini versi Android telah mencapai versi sepuluh atau yang disebut Android Marshmallow. Setiap versi yang dirilis selalu membawa fitur baru dan memperbaiki fitur yang kurang baik dari versi sebelumnya. Berikut adalah data penyebaran versi Android :
Gambar 2.23 Versi Android
2.5.2 Fitur Pada Android Karena Android adalah aplikasi open source di mana manufaktur dapat melakukan custom sesuai keinginan, maka tidak ada konfigurasi atau standar hardware atau software yang pasti. Tetapi android tetap memberikan fitur utama yang telah tertanam di dalam sistem operasinya, yaitu fitur : 1. Storage Menggunakan SQLite, hubungan relasi database yang ringan, untuk menyimpan data 2. Connectivity Mendukung
GSM/EDGE,
IDEM,
CDMA,
EV-DO,
UMTS,
Bluetooth(termasuk A2DP dan AVRCP), Wi-Fi, LTE, dan WiMAX. 3. Messaging Mendukung SMS dan MMS. 4. Web browser berdasarkan pada open source Webkit, bersamaan dengan Chrome’s V8 JavaScript engine. 5. Media support Mendukung beberapa media seperti : H.263, H.264(dalam 3GP atau MP4), MPEG-4 SP, AMR-WB(dalam 3GP), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, dan BMP. 6. Hardware support Accelerometer Sensor, Camera, Digital Compass, Proximity Sensor, dan GPS. 7. Multi-touch Mendukung multi-touch screens. 8. Multi-tasking Mendukung multi-tasking applications. 9. Flash-support Android 2.3 mendukung Flash 10.1. 10. Tethering Mendukung untuk berbagi koneksi internet dengan kabel atau nirkabel.
2.5.3 Arsitektur Pada Android Untuk memahami bagaimana cara kerja Android dapat dilihat pada gambar , yang
menunjukkan berbagai lapisan yang membentuk sistem
operasi android. (Beginning android 4 application development, Wei-Meng Lee 2012:3-5) Sistem operasi Android terbagi menjadi 5 bagian dalam 4 lapisan utama : 1. Linux Kernel Lapisan ini mengandung semua perangkat tingkat rendah untuk berbagai komponen hardware pada perangkat Android. 2. Libraries Lapisan ini mengandung semua kode yang menyediakan fitur-fitur utama dari OS Android. Sebagai contoh, SQLite library memberikan dukungan pada basis data jadi sebuah aplikasi dapat menggunakannya sebagai penyimpanan data. Webkit library memberikan fungsionalitas untuk menelusuri internet. 3. Android Runtime Pada
lapisan
yang
sama
pada
Libraries,
Android
runtime
menyediakan satu set inti libraries yang memungkinkan pengembang pembuatan aplikasi Android menggunakan bahasa pemrograman java. Android runtime juga mengandung mesin virtual Dalvik, yang memungkinkan semua aplikasi Android dapat menjalankan proses dengan sendiri, dengan contoh sendiri dari mesin virtual Dalvik. Dalvik adalah mesin virtual yang khusus dirancang untuk Android dan mengoptimalkan tenaga baterai pada perangkat mobile dengan memory yang terbatas dan CPU. 4. Application Framework Memperlihatkan berbagai kemampuan pada OS Android untuk pengembangan aplikasi jadi mereka dapat menggunakannya di aplikasi mereka. 5. Application Pada lapisan teratas, anda akan menemukan aplikasi yang dikirimkan dengan perangkat android, seperti aplikasi yang unduh dan pasang dari Android Market. Setiap aplikasi yang anda buat akan berada pada lapisan ini.
2.5.4 Activity Activity adalah sebuah jendela yang menampung tampilan dari sebuah aplikasi. Sebuah aplikasi biasanya memiliki satu atau lebih activity di mana tujuan utama dari activity ini adalah untuk berinteraksi dengan pengguna. Sebuah activity dimulai dari pertama tampil hingga aplikasi berakhir dan activity memiliki beberapa tahapan yang disebut activity life cycle.
2.5.5 Fragment Fragment adalah sebuah bagian dari beberapa activity yang dapat digabungkan menjadi satu kesatuan activity.
2.5.6
Intent Intent dapat diartikan sebagai perekat yang dapat membuat berbagai
macam activity dari berbagai macam aplikasi untuk bekerja sama dengan baik.
2.5.7 Activity life cycle Sebuah activity mempunyai life-cycle yang terdiri dari : 1. onCreate() Dipanggil ketika activity dibuat. 2. onStart() Dipanggil ketika activity dapat dilihat oleh user. 3. onResume() Dipanggil ketika activity berinteraksi dengan user. 4. onPause() Dipanggil ketika activity yang sedang berjalan diberhentikan sementara dan activity lain dijalankan. 5. onStop() Dipanggil ketika activity tidak lagi terlihat oleh user. 6. onDestroy() Dipanggil ketika activity dihancurkan oleh sistem. 7. onRestart() Dipanggil ketika activity di berhentikan dan dihidupkan kembali
Gambar 2.24 Activity Life Cycle Pada Android (Wei-Meng Lee, 2012:36-37)
2.6
Basis Data Basis data adalah satu atau banyak data yang dapat digunakan secara
bersamaan oleh berbagai macam bagian dan pengguna. Basis data terdiri dari kumpulan data dan deskripsinya yang bisa digunakan secara bersamaan dan berhubungan secara logika. Basis data diperuntukkan untuk memenuhi kebutuhan suatu organisasi. (Thommas Connolly, Caroyln Begg 2015:63)
2.6.1 DBMS (Database Management System) DBMS adalah sebuah perangkat lunak yang memungkinkan pengguna untuk mendefinisikan, membuat, memelihara dan mengontrol akses pada basis data. DBMS adalah perangkat lunak yang berinteraksi antara aplikasi yang digunakan oleh pengguna dengan sebuah basis data (Thommas Connolly, Caroyln Begg 2015:64).
2.6.2 DDL (Data Definition Language) DDL
adalah
bahasa
yang
memungkinkan
pengguna
untuk
mendeskripsikan nama dari sebuah entitas, atribut, dan hubungan yang dibutuhkan pada sebuah aplikasi. DDL dapat digunakan untuk membuat sebuah skema baru atau melakukan perubahan pada skema yang sudah tersedia. DDL tidak bisa digunakan untuk melakukan manipulasi data (Thommas Connolly, Caroyln Begg 2015:90).
2.6.3 DML (Data Manipulation Language) DML adalah bahasa yang menyediakan beberapa operasi untuk melakukan manipulasi terhadap data yang disimpang pada sebuah basis data. Menurut Thommas Connolly dan Caroyln Begg (2015:90) DML mempunyai beberapa operasi, yaitu : 1. Memasukkan data baru pada basis data 2. Modifikasi data yang sudah disimpan sebelumnya pada basis data 3. Pemulihan data yang terdapat pada basis data 4. Penghapusan data yang terdapat pada basis data.
2.6.4 SQL (Structured Query Language) SQL adalah sebuah bahasa yang didesain untuk penggunaan relasi yang mengubah sebuah input menjadi output yang diinginkan (Thommas Connolly, Caroyln Begg 2015:192-103). SQL mempunyai dua komponen utama : 1. DDL untuk mendefinisikan struktur dari sebuah basis data dan mengontrol akses menuju data 2. DML untuk mengambil dan melakukan modifikasi data
2.6.5 ERD (Entity Relationship Diagram) Entity Relationship Diagram (ERD) adalah sebuah pendekatan desain basis data yang dimulai dengan mengidentifikasi data yang disebut entities dab relationships yang terjadi diantara data yang harus ditampilkan pada sebuah model. Detail pada sebuah ERD dapat berupa sebuah attributes yang memiliki informasi yang terdapat pada setiap entities dan relationships yang
ada, (Connolly dan Begg, 2015:406). Beberapa komponen yang terdapat pada ERD sebagai berikut : 1. Entity Type Entity Type merupakan sekumpulan objek dengan properti yang sama pada sebuah kelompok yang terdapat di dalam database. 2. Attributes
Attributes adalah sebuah properti dari sebuah entity atau sebuah relationship. Sebuah attributes dapat mendeskripsikan sebuah entity. Single-valued attribute adalah sebuah attribut yang menyimpan sebuah value di setiap kejadian pada sebuah entity type. 3. Relationship Type Relationship Type merupakan hubungan antara entitas pada sebuah database.
Hubungan
tersebut.
Relationship
occurence
dapat
mengidentifikasi seberapa banyak kejadian yang terjadi pada sebuah entitiy.
4. Primary Keys Primary Keys adalah sebuah key yang dipilih dari attribut untuk mengidentifikasi setiap kejadian yang terjadi pada sebuah entity.
5. Multiplicity Multiplicity merupakan jumlah maksimum entitas yang dapat melakukan relasi dengan entitas yang lain. Terdapat beberapa tipe multiplicity yaitu : a. One to One (1:1) Setiap entitas A memiliki hubungan paling banyak dengan satu entitas B dan begitu juga sebaliknya. b. One to Many (1:*) Setiap entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B. c. Many to Many (*:*) Setiap entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, begitu juga sebaliknya.
Gambar 2.25 Activity Life Cycle Pada Android 2.7
Teori Terkait 2.7.1 GPS (Global Positioning System) Global Positioning System adalah sebuah nama dari sistem satelit milik Amerika Serikat. Pada awalnya GPS digunakan hanya untuk kebutuhan militer Amerika Serikat, tetapi sekarang GPS dapat ditemui dalam berbagai macam produk dengan berbagai macam tipe. Saat ini jaringan GPS mempunyai 31 satelit yang mengelilingi bumi. Dengan menggunakan receiver yang dapat berkomunikasi dengan satelit tersebut, maka dapat diperoleh lokasi keberadaan pengguna yang menggunakan GPS tersebut dengan lokasi yang akurat.
2.7.2 Google Maps Android API Google Maps Android API adalah salah satu bagian dari Google play services. Google Maps API dapat memasukkan peta pada aplikasi Android
dan melakukan perubahan terhadap peta yang disediakan oleh Google sesuai keinginan. Pengguna dapat melihat peta yang disediakah oleh Google, dan dapat memberikan tanda pada sebuah lokasi dengan marker (Sumber : https://developer.android.com/training/maps/index.html).
2.7.3 PHP PHP (Hypertext Preprocessor) adalah bahasa pemrograman server yang didesain khusus untuk website. PHP dapat di masukan pada sebuah halaman HTML dan akan di eksekusi setiap kali halaman tersebut dikunjungi. PHP akan diinterpretasi pada web server dan akan menampilkan hasil yang dapat dilihat oleh pengguna. PHP mempunyai kelebihan di antaranya : 1. Performa PHP sangat cepat, PHP dapat berjalan dengan lancar walaupun menggunakan server yang mempunyai spesifikasi rendah. 2. Skalabilitas PHP dapat mengimplementasikan horizontal scaling dengan efektif dan murah 3. Integrasi basis data PHP mempunyai koneksi yang dapat terhubung dengan banyak sistem basis data. 4. Built-in Libraries PHP mempunyai banyak libraries yang sangat berguna untuk mengerjakan berbagai macam tugas pada sebuah web. 5. Biaya PHP adalah sebuah aplikasi open source tidak dipungut biaya untuk menggunakan PHP. 6. Mudah Dipelajari Syntax pada PHP berdasarkan bahasa pemrograman lain, seperti C dan Perl. 7. Mendukung Object Oriented PHP versi 5 telah mendukung fitur object oriented. 8. Portable PHP dapat dijalankan pada berbagai macam sistem operasi.
9. Fleksibilitas PHP dapat mengimplementasikan sebuah tugas yang mudah dan simpel sampai implementasi aplikasi besar dengan menggunakan framework yang menggunakan design patterns seperti Model View Controller 10. Source Code PHP menyediakan source code lengkap yang dapat diakses oleh setiap orang. 11. Bantuan dan Dokumentasi PHP menyediakan bantuan dan dokumentasi yang lengkap.
2.7.4 MySQL MySQL adalah sebuah relational database management system (RDBMS) yang cepat dan kuat. Server MySQL akan mengontrol akses terhadap data yang disimpan dan memastikan data tersebut dapat dipakai oleh banyak pengguna. MySQL menggunakan SQL sebagai standar bahasa query dalam database.
2.7.5 JSON JSON ( JavaScipt Object Notation ) adalah sebuah format untuk pertukaran data yang sangat ringan. JSON dibuat berdasarkan bahasa javascipt yang merupakan sebuah bahasa yang sangat mudah untuk dibaca dan disimpan baik bagi pengguna maupun mesin. JSON dapat digunakan untuk berkomunikasi antara aplikasi pengguna (client) dengan server. JSON mempunyai dua struktur utama, struktur pertama disebut object yang ditandai oleh {} dan struktur kedua adalah field yang ditandai oleh []. Struktur pertama membuat sebuah objek dapat diberi data dengan tipe string, angka, sebuah objek, data kosong, true, false. Struktur kedua adalah field untuk mendapatkan daftar values data yang berurutan. Contoh sebuah data JSON sederhana : [ { "nama": "Dzulfiqar" },
{ "nama": "Malvintanto" }, { "nama": "Semmi" }, ]
2.7.6 Java Java
adalah
bahasa
pemrograman
yang
serbaguna
untuk
mengembangkan perangkat lunak yang berjalan pada perangkat mobile, komputer desktop dan server. Java dikembangkan oleh tim yang dipimpin oleh James Gosling dari Sun Microsystems. Java dirancang pada tahun 1991 yang saat itu masih bernama Oak. Pada saat itu Oak atau Java digunakan pada chip untuk ditanamkan ke dalam peralatan elektronik. Pada tahun 1995 Oak berganti nama menjadi Java yang dirancang untuk mengembangkan aplikasi web. Pada tahun 2010 Sun Microsystems dibeli oleh Oracle. (Y. Daniel Liang, 2015:10-12) Saat ini Java dapat digunakan dalam tiga cara, yaitu: 1. Java Standard Edition (Java SE) untuk mengembangkan aplikasi client-side. Aplikasi dapat berjalan mandiri atau sebagai applet berjalan dari browser web. 2. Java Enterprise Edition (Java EE) untuk mengembangkan aplikasi server-side, seperti servlets Java, JavaServer Pages (JSP) dan JavaServer Faces (JSF). 3. Java Micro Edition (Java ME) untuk mengembangkan aplikasi perangkat mobile. Sintaks Java didefinisikan dalam java language specification dan library java didefinisikan dalam API (application program interface) java. Java language specification dan API Java menjadi standar penulisan Java. Java
language
specification
adalah
definisi teknis
sintaks
bahasa
pemrograman Java dan semantik. API juga dikenal sebagai library berisi kelas yang telah ditetapkan dan interface untuk mengembangkan program Java.
JDK (Java Development Toolkit) adalah perangkat lunak untuk mengembangkan
dan
menjalankan
program
Java.
IDE
(integrated
development environment) adalah sebuah environment yang digunakan untuk pengembangan terintegrasi pada program. JDK terdiri dari satu kumpulan program yang terpisah, masingmasing dipanggil dari baris perintah untuk mengembangkan dan menguji program Java. Software dapat digunakan untuk pengembangan Java seperti NetBeans, Eclipse dan TextPad yang merupakan perangkat lunak yang menyediakan IDE untuk mengembangkan program Java dengan cepat. Pada software pengembangan tersebut para developer dapat melakukan editing, compiling, building, debugging dan bantuan online yang telah terintegrasi dalam satu antarmuka pengguna grafis. Contoh sebuah program Java sederhana : 1. public class Welcome { 2.
public static void main(String[] args){
3.
// Display message Welcome to Java! on the console
4.
System.out.println(“Welcome to Java”);
5.
}
6. } Baris
code
tersebut
adalah
program
Java
sederhana
yang
menampilkan pesan “Welcome to Java” pada console. Pada saat mengembangkan sebuah program Java, developer mungkin akan
menemui
beberapa
kesalahan
yang
dapat
terjadi.
Kesalahan
pemrograman dapat dikategorikan menjadi tiga jenis, yaitu : 1. Kesalahan sintaks Kesalahan yang terdeteksi oleh compiler disebut kesalahan sintaks atau kompilasi kesalahan. Kesalahan sintaks hasil dari kesalahan dalam konstruksi kode, seperti salah ketik kata kunci, menghilangkan beberapa tanda baca yang diperlukan atau menggunakan penjepit pembuka tanpa penjepit penutup yang sesuai. Kesalahan ini biasanya mudah untuk dideteksi karena compiler memberitahu di mana kesalahan berada dan apa yang menyebabkan kesalahan. 2. Runtime Errors Runtime errors adalah kesalahan yang menyebabkan program untuk
mengakhiri program secara tidak normal. Runtime errors terjadi ketika program sedang berjalan dan mendeteksi operasi yang tidak mungkin untuk menjalankannya. Hal ini tersebut terjadi biasanya karena kesalahan input yang dilakukan oleh pengguna. 3. Kesalahan logika Kesalahan logika terjadi ketika program tidak melakukan sesuai cara yang diharapkan. Kesalahan seperti ini banyak terjadi karena berbagai alasan yang berbeda.
2.7.7 XML XML (eXtensible Markup Language) merupakan bahasa yang dapat digunakan untuk menggambarkan data, menyimpan data yang dapat digunakan lebih dari satu aplikasi (Joe Fawcett, Liam R. E. Quin, Danny Ayers, 2012:xxvii). XML merupakan bagian dari SGLM
(Standard
Generalized Markup Language) yang dikembangkan pada pertengahan 1990an. Cara kerja XML diperkenalkan pertama kali pada tahun 1996 dan dua tahun kemudian The World Wide Web Consortium (W3C) menerbitkan hasil perbaikan pada tanggal 10 Febuari 1998 (Joe Fawcett, Liam R. E. Quin, Danny Ayers, 2012:6-7). XML merupakan bagian dari SGLM, sedangkan HTML adalah sebuah aplikasi dari SGML. XML tidak menentukan format keseluruhan file atau metadata apa yang dapat ditambahkan,. XML hanya berperan untuk menentukan beberapa aturan. Terdapat dua cara penyimpanan data pada XML, yaitu : 1. Binary Files Sebuah Binary files hanya terdiri dari aliran bit (1 dan 0). Hanya aplikasi atau software tertentu yang dapat mengetahui bit mana yang penting. Binary files hanya dapat dibaca dan diproduksi oleh program komputer tertentu yang telah dibuat untuk memahami atau membaca binary files (Joe Fawcett, Liam R. E. Quin, Danny Ayers, 2012:4-5). 2. Text Files Text files merupakan data yang dimengerti manusia yang membutuhkan aplikasi khusus untuk dapat memahami kelompok bit yang mewakili karakter. Pada sistem operasi windows standart telah
menyediakan program yang dapat digunakan untuk membaca text files seperti notepad, wordpad. Pada sistem operasi non-Windows juga telah menyediakan program untuk membaca text files, seperti Emacs dan Vim (Joe Fawcett, Liam R. E. Quin, Danny Ayers, 2012:5).
2.7.8 RESTful Web Services Representational State Transfer (REST) adalah sebuah gaya arsitektur client-server yang menyediakan model berperilaku untuk aplikasi client dan web services. REST mendeskripsikan beberapa prinsip desain dan constraint, seperti komunikasi tanpa state, penggunaan uniform interfaces yang harus diterapkan
pada
REST-based
services.
Servis
yang
dikembangkan
menggunakan gaya REST biasanya disebut RESTful web services. Ada empat tipe operasi utama dari RESTful web services yang disebut dengan operasi CRUD : 1. Create, digunakan untuk pembuatan resources baru pada server. 2. Read, digunakan untuk mengambil data yang berada pada server. 3. Update, digunakan untuk melakukan perubahan pada data yang sebelumnya sudah berada pada server. 4. Delete, digunakan untuk penghapusan data yang sebelumnya sudah berada pada server. Setelah operasi pada server telah di implementasikan, operasi tersebut harus di petakan secara eksplisit sesuai dengan method pada HTTP. Operasi Create, Read, Update, Delete akan di terapkan menjadi fungsi POST, Get, Put, Delete pada protokol HTTP.
2.8
Penelitian Sebelumnya Berikut adalah beberapa jurnal yang berisi materi penelitian sebelumnya
sebagai materi pendukung 1. Jurnal berjudul “Teknologi Location Based Service (Global Positioning System) pada Perangkat Mobile” dibuat oleh Budi Yulianto (2010). Penelitian membahas tentang bagaimana menentukan posisi seseorang dari perangkat mobile pada suatu waktu dan informasi berupa posisi ini dapat berkembang menjadi layanan pencari rute terpendek dari suatu posisi ke posisi lain.
Perpaduan antara posisi dan rute terpendek ini akan menjadi suatu aplikasi yang berguna dalam memenuhi kebutuhan akan informasi bagi masyarakat, khususnya bagi mereka yang banyak melakukan pekerjaan atau aktivitas dan menghabiskan waktu di luar bangunan. Perangkat pencarian tersebut menyediakan data dalam bentuk visual (grafik) yang dapat diakses secara cepat. Selain tempat wisata, informasi lokasi tersebut dapat pula berupa hotel, restoran, dan tempat berbelanja. Hasilnya adalah sebuah aplikasi Location Based yang dapat menampilkan rute terpendek dari suatu lokasi ke lokasi lainnya, Menyediakan peta lokasi wisata dan tempat umum yang berskala kecil ke pengguna. Manfaat dari penelitian tersebut adalah agar pengguna dapat mengetahui lokasi dimana dia berada, membantu pengguna mencari lokasi umum yang dibutuhkan dan memberikan jalur terpendek dari lokasi pengguna yang terlacak dengan lokasi umum yang dituju. 2. Jurnal berjudul “Aplikasi Location Based Service Pencarian Tempat di Kota Manado Berbasis Android” dibuat oleh Billy R. Rompas (2012) Penelitian membahas tentang masalah seseorang pergi ke suatu daerah yang tidak dikenalnya, dia akan kesulitan untuk mencari lokasi tempat dia berada saat itu dan tempat-tempat tertentu, seperti informasi lokasi hotel, rumah sakit, restoran, sekolah, dsb. Untuk mendapatkan informasi ini biasanya seseorang akan bertanya pada orang yang ada di sekitarnya dan informasi yang didapat dari orang tersebut tidak selalu bernar. Hasilnya adalah untuk mempermudah kodisi tersebut, maka diperlukan suatu aplikasi yang dapat mengetahui dan mencari jalur ke tempat-tempat tersebut. Untuk memudahkan seorang pengguna yang selalu bergerak, perangkat smartphone merupakan alat yang praktis digunakan. Salah satu sistem operasi untuk mobile smartphone yang ada saat ini yaitu sistem operasi Android. Android merupakan sistem operasi yang open source yang dibangun diatas Kernel Linux 2.6. Salah satu keuntungan dari sistem operasi open source ini yaitu aplikasi pihak ketiga (third-party application) dapat mengakses seluruh resource yang dimiliki oleh smartphone tersebut, tanpa membedakannya dengan aplikasi inti dari smartphone. Android juga memudahkan seorang developer dalam mengembangkan
aplikasi seperti aplikasi LBS ini, karena Android menyediakan akses dan integrasi dengan layanan GoogleMap. 3. Journal berjudul “Location Based Services using Android Mobile Operating System” dibuat oleh Amit Kushwaha & Vineet Kushwaha (2011) Penelitian membahas tentang bagaimana seseorang pergi ke suatu tempat tidak perlu membawa pemamdu wisata dengan dia dan hanya menggunakan perangkat mobile. Semua informasi harus tersedia pada perangkat mobile. Saat ini hanya mampu menciptakan sejumlah aplikasi yang berbeda di mana menyediakan informasi bagi pengguna mengenai sejumlah tempat yang ingin di kunjungi, tapi aplikasi ini terbatas pada desktop saja, jadi perlu untuk mengimport aplikasi tersebut pada suatu perangkat mobile. Hasilnya adalah dengan memanfaatkan Location Based Service (LBS) yang dapat diakses dengan perangkat mobile melalui jaringan selular dan memanfaatkan kemampuan untuk mendapatkan posisi geografis perangkat mobile. Sebuah layanan LBS dapat digunakan dalam berbagai konteks, seperti kesehatan, pekerjaan, kehidupan pribadi, dll. LBS mencakup layanan untuk mengidentifikasi lokasi seseorang atau objek, seperti menemukan mesin ATM perbankan terdekat, hotel terdekat, rumah sakit atau di mana posisi dari teman di sekitar. Sehingga setiap orang dapat berpergian dengan menggunakan perangkat mobile sebagai petunjuk jalan tanpa membawa pemandu wisata, karena semua informasi sudah ada didalam perangkat mobile yang memanfaatkan LBS.