BAB II LANDASAN TEORI
2.1
Anjungan Tunai Mandiri ( ATM ) Anjungan Tunai Mandiri yang biasanya disingkat ATM merupakan mesin
otomasi yang dimiliki bank untuk melayani nasabah dalam hal mengecek rekening tabungan, mengambil uang, kirim uang, bayar tagihan seperti listrik dan telepon ataupun membeli pulsa tanpa bantuan seorang teller.[27]
2.2
Global Positioning System ( GPS ) Global Positioning System adalah sistem navigasi berbasis satelit untuk
mengetahui posisi atau lokasi suatu tempat atau di dunia, biasanya posisi geografi di gambarkan dengan dua dimensi yaitu garis lintang ( latitude ) dan garis bujur ( longitude ).[2][6] Garis lintang adalah garis – garis yang melintang dari arah barat ke timur yang sejajar dengan garis khatulistiwa ( lintang 0o ), garis lintang dimulai dari 0o di kota Greenwich hingga 180o pada Selat Bering di Samudra Pasifik. Garis bujur adalah garis – garis yang membujur dari arah utara ke selatan yang dimulai dari Kutub Utara hingga Kutub Selatan.[9]
2.3
IBM MobileFirst IBM MobileFirst adalah sebuah framework dapat digunakan untuk membangun
aplikasi berbagai jenis platform seperti seperti iPhone apps, Android apps, Windows Phone apps, Blackberry apps dan sebagainya hanya dengan menggunakan HTML5, CSS3, dan JavaScript. IBM MobileFirst menyediakan platform aplikasi mobile secara terbuka, komprehensif, dan canggih untuk smartphone dan tablet yang dapat membantu menghubungkan, menjalankan, mengelola dan mengembangkan aplikasi mobile secara efisien. Aplikasi yang telah dibuat dapat diubah menjadi source code
5
6
pada platform smartphone yang diinginkan, dimana proses deploy aplikasi dilakukan ke server IBM.[17]
2.4
JQuery Mobile JQuery Mobile adalah HTML 5 yang bersifat responsive yang digunakan untuk
interface sebuah aplikasi mobile. JQuery Mobile support segala platform contohnya android, iphone, windows phone. Tidak hanya platform mobile, JQuery Mobile juga support pada semua jenis browser, contohnya Firefox, chrome, opera.[18]
2.5 JAVA Java adalah bahasa pemrograman yang banyak mengadopsi syntac C dan C++ namun dengan syntac model objek yang lebih sederhana. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik, dan secara khusus didisain untuk memanfaatkan dependensi
implementasi
seminimal
mungkin.
Karena
fungsinya
yang
memungkinkan aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda, java dikenal pula dengan slogannya, "Tulis sekali, jalankan di mana pun". Saat ini java merupakan bahasa pemrograman yang paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi berbasis web.[19]
2.6
MySQL MySQL merupakan suatu Relational Database Management System (RDBMS)
yang cepat dan kuat . (Welling & Thomson, PHP and MYSQL Web Development, 2008). MySQL memungkinkan secara efisien menyimpan, mencari, mengurutkan dan mendapatkan data. MySQL menggunakan Structured Query Language (SQL) sebagai
7
standar query basis data.[14] Keistimewaan MySQL dari aplikasi basis data lainnya adalah : [4] 1. Portabilitas : MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi. 2. Open Source : MySQL adalaha aplikasi open source, berlisensi GPL sehingga dapat digunakan secara gratis. 3. Multiuser : MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami masalah atau konflik. 4. Security : MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi. 5. Scalability dan limits : MySQL mampu menangani basis data dalam skala yang besar, dengan jumlah records yang lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang bisa ditampung mencapai 32 indeks per tabel. 2.7
Spring framework Spring Framework adalah lightweight solution dan sebuah potential one-stop-
shop untuk membangun sebuah aplikasi. Spring bersifat modular, sehingga memungkinkan untuk menggunakan bagian-bagian yang dibutuhkan saja. Spring Framework mendukung manajemen deklaratif transaksi, akses remote ke logika melalui RMI atau web services, dan berbagai pilihan untuk mempertahankan data. Spring
menawarkan
konsep
pemrograman
berorientasi
objek
MVC,
dan
memungkinkan Anda untuk mengintegrasikan AOP secara transparan ke dalam aplikasi Anda. Spring juga memiliki modul ORM ( Object Relation Mapping ) yang bisa di intergrasikan dengan API seperti Hibernate dan JPA. Hibernate adalah solusi untuk mempetakan objek atau relasional pada bahasa pemrograman Java. Hibernate digunakan untuk komunikasi antara Java Class model dengan database ( basis data ).
8
Hibernate memiliki query sendiri untuk berinteraksi dengan database yang biasanya disebut dengan HQL ( Hibernate Query Language ). Hampir sama seperti Hibernate, JPA ( Java Persistence API ) adalah solusi standar untuk menjembatani atau mempetakan sebuah jarak antara Java Class model dengan database. JPA juga memiliki query sendiri untuk berinteraksi dengan database yaitu JPQL ( Java Persistence Query Language ).[8]
2.8
Konsep MVC Model View Controller atau yang lebih dikenal dengan MVC adalah sebuah
konsep pemrograman berorientasi objek yang memusahkan business logic ( logika bisnis ), data logic ( logika data ) dan interface logic ( logika tampilan ).
Pengguna
View
Controller Model
Database Gambar 2.1. Desain konsep MVC
Model adalah bagian dari konsep MVC yang digunakan untuk mengambil data dan memasukkan data ke dalam database. Komunikasi Model dengan database menggunakan query SQL lalu hasilnya dikirimkan ke Controller. View adalah bagian dari konsep MVC yang berfungsi sebagai alat interaksi dengan pengguna, View biasanya berisi form input, gambar, animasi, dan lainnya. Semua yang ditampilkan pada layer View di atur pada layer Controller. Data yang di
9
isi pada layer View tidak langsung di interaksikan dengan Model, melainkan dengan Controller terlebih dahulu setelah itu baru di kirim ke Model. Controller bisa diartikan sebagai jembatan antara View dan Model. Controller membantu menampilkan data yang di kirim layer Model untuk di tampilkan di layer View dan juga membantu mengirim data ke Model yang di isi oleh pengguna di layer View untuk disimpan di database.[16]
2.9
MAVEN Maven adalah alat untuk membangun ( tools builder ) yang sangat bagus untuk
manajemen project. Konsep dari Maven adalah POM ( Project Objek Model ), dimana fungsi POM adalah untuk pengaturan sebuah project dan juga bisa untuk mengambil sebuah JAR ( Java Archive ) dari library maven itu sendiri.[21]
2.10 HTML HTML adalah singkatan dari HyperText Markup Language yang merupakan sebuah bahasa markup yang berfungsi untuk membuat sebuah website, menampilkan berbagai informasi di dalam sebuah penjelajah web Internet dan formating hypertext sederhana yang ditulis kedalam berkas format ASCII (American Standard Code For Information
Interchange)
agar
dapat
menghasilkan
tampilan
wujud
yang
terintegerasi.[5] HTML merupakan bahasa pemrograman yang dikenali web browser yang berfungsi untuk menampilkan suatu informasi dengan lebih menarik dibandingkan dengan hanya menampilkan plainteks.[11]
2.11 CSS Cascading Style Sheets yang biasa disingkat CSS merupakan bahasa stylesheet yang digunakan untuk mengatur style dokumen. CSS biasanya digunakan untuk
10
mengatur desain sebuah website yang dibuat dengan bahasa pemrograman HTML agar terlihat lebih menarik.[12]
2.12 Javascript Javascript adalah scripting yang di fungsikan untuk menambah interaktif suatu website, javascript biasanya disisipkan pada suatu halaman HTML website, javascript sangat ringan dan tidak memerlukan proses kompilasi.[15]
2.13 JSON JSON adalah kependekan dari Javascript Object Notation yang merupakan format pertukaran data yang ringan dan mudah dimengerti dan diimplementasikan oleh manusia serta mudah diterjemahkan dan dibuat ( generate ) oleh komputer. JSON merupakan format teks tidak bergantung pada bahasa pemrograman apapaun, oleh sebab itu JSON merupakan pilihan yang bagus untuk pertukaran data.[23] JSON memiliki beberapa bentuk, berikut contoh bentuk – bentuk tersebut : 2.13.1 Object Object merupakan sepasang nilai yang tidak terurut. Dibuka dengan “ { “ kurawal buka dan diakhiri dengan “ } ” kurawal tutup. Setiap nilai disertakan dengan “ : “ titik dua dan nilai lainnya dipisahkan dengan “ , ” koma. [23]
Gambar 2.2. Ilustrasi bentuk Objek JSON 2.13.2 Array Array merupakan kumpulan dari nilai – nilai. Dibuka dengan “ [ “ kurung kotak buka dan ditutup dengan “ ] “ kurung kotak tutup. Antar nilai dipisahkan dengan “ , ” koma. [23]
11
Gambar 2.3. Ilustrasi bentuk Array JSON
2.14 JSTL JSTL ( JavaServerPages Standard Tag Library ) adalah tag diluar HTML yang digunakan untuk membangun sebuah JSP ( Java Server Pages ). JSTL bisa digunakan untuk membangun sebuah kondisi. JSTL juga berisikan tag untuk memanipulasi XML dan tag SQL.[22]
2.15 Bootstrap Bootstrap adalah framework dari HTML ( HyperText Markup Language ) dan CSS ( Cascading Style Sheets ) yang berfungsi untuk memudahkan programmer dalam membanguan sebuah website, bootstrap menyediakan komponen untuk pembuatan website seperti form, button, alert, dan komponen lainnya.[29]
2.16 Topolog Web 2.16.1 Struktur Web Investigasi topologi dilakukan untuk memahami bentuk dasar dari arsitektur dan relasi diantara keduanya. Struktur dapat memberi kita banyak informasi. Penyelidikan struktur dari web selalu tergantung dari level pemisahan dari pendeskripsian struktur web. Seperti contohnya saja ukuran web yang mungkin memiliki perbedaan sangat kecil dalam kinerja dari komponennya mampu memberikan perbedaan besar di level makro.
12
Pemahaman struktur sangat penting untuk sejumlah aplikasi, seperti navigasi, pencarian, menyediakan sumber daya untuk mendukung komunitas online, atau efek dari perubahan mendadak dalam permintaan informasi. Topologi Web berisi kompleksitas dari rantai linear sederhana. Pada bagian ini, kita akan membahas upaya untukmengukur struktur global dari Web, dan bagaimana halaman web individu dapat masuk ke dalam konteks itu.[25] 2.16.2 Penelitian teoritis graph Mungkin paradigma yang paling terkenal untuk mempelajari Web adalah teori grafik. Web dapat dilihat sebagaigrafik yang besar pada tengah halaman dan bagian tepinya adalah link. Karena weblinks sangat sedikitberantakan, jelas bahwa tepi grafik mengkodekan banyak struktur yang terlihat oleh desainer dan penulis konten yang bagi mereka adalah sama pentingnya. Konektivitas webgraph telah dianalisis secara rinci, menggunakan struktural seperti indikator seperti bagaimananode yang terhubung. Berbagai makro struktur scopic telah dilihat dan diukur, misalnya satu merangkak dari lebihdari 200 juta halaman menemukan bahwa 90% dari Web sebenarnya tersambung. Struktur berikutnya seringdisebut sebagai bentuk bowtie, seperti yang ditunjukkan pada Gambar di bawah. Simpul dasi sangat berhubungancluster (SCC) dari webgraph di mana terdapat jalur antara setiap pasangan node. SCC ini diapit oleh dua setcluster, mereka yang dihubungkan (link) ke SCC tetapi dari yang tidak ada backlink (ditandai sebagai DI dalam gambar), dan mereka yang terkait dari SCC tetapi tidak link kembali (OUT). Hubungan antara SCC, IN dan OUTmemberikan bentuk bowtie. Implikasi dari penemuan ini masih topologi perlu dipahami. Meskipun beberapa telahmengusulkan perubahan terhadap algoritma PageRank untuk mengambil keuntungan dari topologi dasar, masih ada banyak pekerjaan yang harus dilakukan untuk mengeksploitasi struktur terlihat.
13
Gambar 2.4. Struktur Bowtie
Struktur bowtie lazim di berbagai skala. Dill di al telah menemukan bahwa himpunan bagian yang lebih kecil dari Web juga memiliki bentuk bowtie, sebuah petunjuk bahwa Web mempunyai sifat fractal yang menarik karakteristiksebagai Web pada umumnya.
Memang, pertanyaan skala dipotong dua arah. Ada yang lain, lebih kecil dari Web sekitar, dan web itu sendiridatang sebagai sesuatu dari kejutan bagi matematikawan dan ilmuwan komputer pada saat itu dimulai, sekarangstudi Web cenderung melihat Web. Struktur tersebut sebagai Intranets mempunyai sifat yang sangat berbeda,dalam hal ukuran, konektivitas, koherensi dan pencarian sifat; beberapa sifat terbawa dari Internet secara keseluruhan, sementara yang lainnya tidak. Telah ada sedikit pekerjaan atas struktur kontras, meskipun melihat untuk investigasi Intranet, dan subgraphs sesuai dengan topik scientific tertentu . Web cukup jarang tersambung,berarti bahwa subgraph disebabkan oleh satu set acak node akan hampir kosong, tetapi jika kita mencarikelompok non-acak (cluster tematis-bersatu atau TUCs) yang jauh lebih dihubungkan, maka kita melihat bentukbowtie muncul lagi. Setiap TUC akan memiliki SCC sendiri, dan sendiri IN dan OUT sisi, termuat di dalam SCCyang lebih luas. SCC skala yang lebih besar, karena sangat berhubungan, kemudian dapat bertindak sebagaitulang punggung navigasi antara TUCs.[25]
14
2.16.3 Cara kerja www
Gambar 2.5. Cara kerja www
Cara kerja pertama kali adalah seseorang menggunakan suatu komputer atau pun perangkat terbaru seperti Tablet atau Android dan selainnya yang terkoneksi dengan internet, kemudian ia menggunakan salah satu aplikasi browser seperti mozilla firefox atau google chrome, lalu mengetikkan suatu alamat website dengan menggunakan www, misalnya www.google.com, maka selanjutnya tugas registarlah yang bekerja memerintahkan DNS server untuk menemukan alamat situs www.google.com. Cara kerja selanjutnya adalah setelah DNS server menemukan alamat situs yang dicari, selanjutnya ia meminta kepada hosting server untuk menampilkan file-file yang diminta oleh pengguna internet tersebut. Dan terakhir, adalah tugas dari browser untuk menerima dan menampilakan file file yang diminta yang terlebih dahulu diterjemahkan kode-kodenya agar tapilan filenya sesuai dengan yang diinginkan dan diharapkan oleh pengguna internet.[26]
2.17 Rekayasa Perangkat Lunak Rekayasa perangkat lunak adalah teknologi berlapis. Hal itu dapat ditunjukan dengan gambar sebagai berikut :
15
Gambar 2.6. Teknologi Rekayasa Perangkat Lunak Dari gambar di atas dapat diartikan bahwa setiap pendekatan rekayasa (termasuk rekayasa perangkat lunak) harus menekankan pada kualitas. Dasar untuk rekayasa perangkat lunak adalah lapisan proses. Proses rekayasa perangkat lunak adalah proses yang terus berulang, karena karakteristik perangkat lunak yang membutuhkan pemeliharaan dan pengembangan berkelanjutan agar perangkat lunak tidak kadarluasa. Dalam proses pemeliharaan dilakukan koreksi kesalahan, adaptasi kebutuhan, peningkatan kemampuan atau fungsi dan bentuk pencegahan lainnya agar perangkat lunak tersebut tidak kadarluasa. Metode rekayasa perangkat lunak menyediakan teknis untuk membangun perangkat lunak dan mengandalkan seperangkat prinsip-prinsip dasar yang mengatur setiap bidang teknologi dan mencakup kegiatan pemodelan dan teknik deskriptif lainnya. Alat rekayasa perangkat lunak merupakan unsur yang mendukung proses dan metode. Ketika alat-alat yang terhubung satu sama lain dan memberi informasi, serta informasi yang dibuat oleh salah satu alat dapat digunakan oleh yang lain, sistem untuk mendukung pengembangan perangkat lunak dapat dibangun dengan menggunakan bantuan komputer.[24] Pekerjaan yang berhubungan dengan rekayasa perangkat lunak dapat dikategorikan ke dalam tiga fase generik, yaitu:
16
1. Tahap definisi berfokus pada what. Pada fase ini mengidentifikasi informasi apa yang akan diproses, apa fungsi dan kinerja yang diinginkan, perilaku system apa yang dapat diharapkan, apa antarmuka yang akan didirikan, apa desain kendala yang ada, dan apa kriteria validasi yang diperlukan untuk menentukan sistem yang sukses. Persyaratan utama dari sistem dan perangkat lunak diidentifikasi. Meskipun metode yang diterapkan selama fase definisi akan bervariasi tergantung pada paradigma rekayasa perangkat lunak (atau kombinasi paradigma) yang diterapkan, tiga tugas utama akan terjadi dalam beberapa bentuk: sistem atau teknik informasi, perencanaan proyek perangkat lunak, dan analisis kebutuhan. 2. Tahap pengembangan berfokus pada how. Selama pengembangan perangkat lunak didefinisikan bagaimana data harus terstruktur, bagaimana fungsi diimplementasikan dalam arsitektur perangkat lunak, bagaimana detail prosedural untuk dilaksanakan, bagaimana interface yang akan ditandai, bagaimana desain akan diterjemahkan ke dalam bahasa pemrograman (atau bahasa nonprocedural), dan bagaimana pengujian akan dilakukan. Metode yang diterapkan dalam tahap pengembangan akan bervariasi, tetapi tiga tugas teknis tertentu harus selalu terjadi: desain perangkat lunak generasi kode, dan pengujian perangkat lunak. 3. Fase dukungan berfokus pada perubahan yang terkait dengan koreksi kesalahan. 2.18 ERD Entity Relationship Diagram adalah alat untuk merancang dan menganalisis database yang khususnya untuk menerapkan teknik yang disebut entity-relationship model untuk proses perancangan database. ( Allan, Business Intelligence Journal, 2005 ).[1] ERD ( Entity Relationship Diagram ) menggambarkan struktur dan keterkaitan dari table – table yang ada didalam database. Desain ERD merepresentasikan data ke dalam entitas, atribut, dan relasi.
17
Entitas biasanya digambarkan dengan kotak segi-empat, entitas merupakan sebuah kumpulan data yang dapat berdiri sendiri tanpa memerlukan suatu relasi. Atribut merupakan bagian – bagian kecil dari Entitas yang digambarkan dengan lingkaran[10], misalkan entitas-nya adalah mahasiswa maka contoh atributnya merupakan NIM dan nama.
Nama
Mahasiswa
NIM
Gambar 2.7. Entitas dan Atribut
Relasi dibedakan menjadi tiga jenis, yaitu hubungan Satu-ke-Satu ( one-to-one relationship ), hubungan Satu-ke-Banyak ( one-to-many relationsip ) dan Banyak-keBanyak ( many-to-many relationship ). 2.18.1 One-to-one Relationship One-to-one relationship adalah relasi yang terjadi jika satu entitas hanya berhubungan dengan satu entitas lain, atau sebaliknya.
Gambar 2.8. One-to-one Relationship 2.18.2 One-to-many Relationship One-to-many relationship adalah relasi yang terjadi jika suatu entitas berhubungan dengan beberapa entitas lain, namun tidak sebaliknya.
18
Gambar 2.9. One-to-many Relationship 2.18.3 Many-to-many Relationship Many-to-many relationship adalah relasi yang terjadi jika beberapa entitas berhubungan dengan beberapa entitas lain, atau sebaliknya.
Gambar 2.10. Many-to-many Relationship
2.19 UML UML ( Unified Modelling Language ) adalah sebuah teknik desain perancangan atau blueprint perangkat lunak yang berorientasi objek ( OOP ) sebelum melakukan pembuatan aplikasi ( coding ).[7] UML adalah keluarga notasi grafis yang didukung oleh meta-model tunggal, yang membantu pendeskripsian dan desain sistem perangkat lunak, khususnya system yang dibangun menggunakan pemrograman berorientasi objek (Fowler, 2005).[3] 2.19.1 Use Case Diagram Use case merupakan salah satu diagram UML yang menggambarkan fungsional dari sebuah sistem. Use case adalah gambaran dari apa saja yang bisa dilakukan oleh siapa ( actor ) di dalam suatu sistem. Use case bisa mewakili kebiasaan dari si pengguna dan sejauh mana yang bisa di lakukan sistem.[20]
19
Gambar 2.11. Simbol Use Case Diagram 2.19.2 Activity Diagram Activity diagram adalah sebuah diagram alur kerja yang menjelaskan berbagai kegiatan pengguna atau sistem, orang yang melakukan masing – masing aktivitas dan aliran sekuensian dari aktivitas – aktivitas tersebut. ( John Satzinger, System Analysis and Design in a Changing World: 2010 ). Activity diagram lebih diperuntukan sebagai gambaran business process suatu sistem dimulai dari awal sampai akhir. Activity diagram hampir sama seperti flowchart hanya saja activity bisa bersifat paralel.[13]
Gambar 2.12. Simbol Activity Diagram
20
2.19.3 Sequence Diagram Sequence diagram adalah diagram yang memperlihatkan interaksi antar objek dan mengindikasikan komunikasi di dalam suatu sistem yang disusun pada sebuah urutan. Interaksi antar objek tersebut termasuk pengguna, tampilan ( interface ) dan pesannya. Sequence Diagram digunakan untuk menggambarkan skenario atau rangkaian urutan yang dilakukan sebagai sebuah respon dari suatu proses untuk menghasilkan output tertentu.[20]
Gambar 2.13. Simbol Sequence Diagram
2.20 Metode Waterfall Metode waterfall adalah metode yang digunakan dalam pengembangan aplikasi perangkat lunak. Berikut tahapan metode waterfall.[28]
21
Analisa Kebutuhan Desain Sistem Penulisan Kode Pengujian Penerapan & Pemeliharaa n Gambar 2.14. Metode Waterfall 2.20.1 Analisa Kebutuhan Pada tahapan ini dilakukan analisa kebutuhan yang diperlukan dalam pembuatan aplikasi yang akan dibuat. Serta mencari tahu business process dari sistem yang akan dibuat. 2.20.2 Desain Sistem Pada tahap ini, melakukan perancangan sistem yang akan dibuat mulai dari proses, desain aplikasi, hardware yang dibutuhkan hingga arsitektur secara keseluruhan. 2.20.3 Penulisan Kode Tahap ini adalah tahapan pembuatan program atau mengimplementasikan perancangan desain ke dalam script atau coding. 2.20.4 Pengujian Pada tahap ini, melakukan pengujian terhadap aplikasi yang telah dibuat apakah aplikasi bisa berjalan dengan baik serta sesuai desain yang dibuat sebelumnya dan tidak adanya kesalahan – kesalahan saat digunakan oleh pengguna.
22
2.20.5 Penerapan dan pemeliharaan Pada tahap ini, melakukan penerapan dan pemeliharaan pada aplikasi yang telah dibuat, serta melakukan perbaikan – perbaikan yang tidak ditemukan pada tahap pengujian.