BAB 2 LANDASAN TEORI
2.1 Teori Umum 2.1.1 Metodologi Waterfall Menurut Pressman (2010, p.39) Waterfall memberikan sebuah pendekatan yang sistematis dan sekuensial untuk pengembangan peranti lunak yang dimulai pada sistem dan perkembangan peranti lunak dengan melalui beberapa tahapan : communication , planning , modeling , construction , dan deployment. Model Waterfall sering dianggap sebagai pendekatan klasik dalam siklus hidup pengembangan sistem (classic life cycle).
Gambar 2.1
Waterfall Model (Pressman, R. S.)
Tahapan-tahapan model Waterfall yaitu : 1. Communication Pada tahap ini dilakukan pengumpulan kebutuhan yang khusus dan difokuskan pada pembuatan peranti lunak. 2. Planning Pada tahap perencanaan dilakukan penjadwalan pengembangan dan estimasi penyelesaian project. 3. Modeling
8
9
Ditahap modeling ini dirancang design yang diperlukan untuk membangun peranti lunak. 4. Construction Pada tahap construction dilakukan coding dan testing aplikasi. 5. Deployment Pada tahap deployment dilakukan feedback terhadap sistem yang dibangun. 2.1.2 Interaksi Manusia dan Komputer Definisi dari Interaksi Manusia Komputer : 1. Sekumpulan proses, dialog dan kegiatan di mana melaluinya pengguna memanfaatkan dan berinteraksi dengan komputer. (Shneiderman 2010, p.8). 2. Suatu disiplin ilmu yang menekankan pada aspek desain, evaluasi, dan implementasi dari sistem komputer interaktif untuk kegunaan manusia dengan mempertimbangkan fenomena - fenomena di sekitar manusia itu sendiri. (Shneiderman 2010, p.74). Fokus pada IMK adalah perancangan dan evaluasi user interface. User Interface adalah sistem komputer yang membuat user bisa berinteraksi dengan komputer. Teori tentang 5 faktor manusia terukur IMK adalah sebagai berikut : 1. Waktu belajar: berapa lama orang biasa mempelajari cara relevan untuk melakukan suatu tugas? 2. Kecepatan kinerja: berapa lama suatu tugas dilakukan? 3. Tingkat kesalahan: berapa banyak kesalahan dan kesalahan-kesalahan apa saja yang dibuat pemakai? 4. Daya ingat: bagaimana kemampuan pemakai mempertahankan pengetahuannya setelah jangka waktu tertentu?
10
5. Kepuasan subjektif: bagaimana kesukaan pemakai terhadap berbagai aspek sistem? Menurut Shneiderman (2010, p.88), 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: 1. Konsistensi Konsistensi dilakukan pada urutan tindakan, perintah, dan istilah yang digunakan pada prompt, menu, serta layar bantuan. 2. Memungkinkan tampilan yang universal usability. Ada kebutuhan dari pengguna yang sudah ahli untuk meningkatkan kecepatan interaksi, sehingga diperlukan singkatan, tombol fungsi, perintah tersembunyi, dan fasilitas makro. 3. Memberikan umpan balik yang informative. 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. 4. 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.
11
5. 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. 6. 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. 7. 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. 8. 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. Peran Utama Interaksi Manusia dan Komputer menghasilkan sebuah sistem yang mudah digunakan, aman, efektif dan efisien. Model IMK melibatkan 3 komponen : 1. Pengguna. 2. Interaksi. 3. Sistem.
12
Kunci utama IMK adalah daya guna (usability) : 1. Sistem harus mudah digunakan. 2. Memberi keamanan kepada pengguna. 3. Mudah dipelajari. 2.1.3 Rekayasa Perangkat Lunak Menurut Pressman (2010, p.79), perangkat lunak dapat diartikan sebagai berikut : 1. Perintah – perintah dalam suatu program komputer yang jika dijalankan akan memberikan fungsi dan hasil yang diinginkan. 2. Struktur – struktur data yang membuat program dapat memanipulasi data. 3. Dokumen yang menggambarkan operasi dan penggunaan program. Dari pengertian diatas maka dapat diambil kesimpulan bahwa perangkat lunak atau sering disebut software adalah sekumpulan data elektronik yang disimpan oleh komputer, dapat berupa program atau instruksi untuk menjalankan suatu perintah. Perangkat lunak ini dibagi menjadi 3 tingkatan, yaitu : tingkatan program aplikasi, tingkatan sistem operasi, dan tingkatan bahasa pemrograman. Software atau perangkat lunak komputer berdasarkan distribusinya dibedakan menjadi beberapa macam, yaitu perangkat lunak berbayar, perangkat lunak gratis atau free ( Freeware, free software, shareware, adware) . Pada perangkat lunak berbayar kita harus membayar untuk dapat menggunakan perangkat lunak tersebut. System operasional restoran merupakan contoh dari penggunaan aplikasi berbayar, karena restoran perlu membayar pengembang aplikasi untuk dapat menggunakan aplikasi tersebut.
13
Menurut Pressman (2010, p.20), rekayasa perangkat lunak merupakan penerapan dan pemakaian prinsip rekayasa dalam rangka mendapatkan perangkat lunak ekonomis yang terpercaya dan bekerja secara efisien pada mesin komputer. Berdasarkan kutipan oleh Pressman (2010, p.13-14), rekayasa software adalah sebuah teknologi yang ber-layer. Layer dari rekayasa software adalah : 1. A Quality Focus Dalam setiap rekayasa software harus dimulai dengan mengorganisir komitmen kualitas. Pijakan dasar yang mendukung dalam rekayasa software adalah pemfokusan kualitas. 2. Process Fondasi untuk rekayasa software adalah layer proses. Proses mendefinisikan sebuah framework yang harus didahulukan agar dapat mendukung pengiriman yang lebih efektif dalam rekayasa software. Proses software meliputi manajemen kontrol dari proyek dan konteks dimana segala metode teknis digunakan, hasil diproduksi, milestones ditentukan, kualitas dipastikan, dan perubahan ditangani dengan baik. 3. Methods Metode menjelaskan bagaimana cara membangun sebuah rekayasa software. Metode mencakup beberapa tugas mencakup komunikasi (communication), analisis kebutuhan (requirements analysis), desain model (design modeling), pembuatan program (program construction), testing, dan support. 4. Tools Perlengkapan dalam rekayasa software memberikan dukungan secara otomatis atau semi-otomatis dalam menjalankan proses dan metode yang ada. Suatu
14
perlengkapan yang berisi informasi yang diciptakan oleh satu bagian dan dapat digunakan oleh yang lain, merupakan sebuah sistem yang dirancang untuk mendukung
pengembangan
program,
disebut
computer-aided
software
engineering. Menurut Pressman (2010, p.26) software process merupakan gambaran dari suatu proses rekayasa software yang terdiri dari aktifitas, tindakan, tugas, tujuan, dan hasil kerja yang dibutuhkan untuk menghasilkan software yang berkualitas. Software process merupakan pendekatan yang diambil ketika merekayasa suatu software. Menurut Pressman (2010, p.15), beberapa kegiatan umum yang penting dalam proses rekayasa software adalah sebagai berikut : 1. Communication Penjelasan-penjelasan tentang fungsionalitas dan batas-batas dalam pengembangan suatu software yang didiskusikan dengan para stakeholder. 2. Planning Software yang mendukung spesifikasi harus dibuat dan direncanakan serta mendeskripsikan fungsi software, resiko yang mungkin terjadi, dan sumber daya yang dibutuhkan. 3. Modeling Pembuatan rancangan awal dalam pembuatan suatu software sesuai dengan batasbatas kebutuhan dan perencanaan. 4. Construction Pembuatan software (coding) berdasarkan rancangan yang telah dibuat serta melakukan uji coba (testing) untuk menemukan error yang terjadi dalam software tersebut.
15
5. Deployment Software yang telah dikembangkan diberikan kepada customer dan memberikan feedback berdasarkan evaluasi yang ada. 2.1.4 Database Database adalah kumpulan informasi dari data yang berhubungan secara logical dan secara deskripsi, dibuat untuk memenuhi kebutuhan dari organisasi, oleh Connoly (2010, p.15). Perangkat lunak yang digunakan untuk mendefinisikan, membuat, merawat dan mengontrol akses ke database disebut database management system (DBMS) 2.1.4.1 Pengertian Database Konsep dasar dari basis data adalah kumpulan dari catatan-catatan, atau potongan dari pengetahuan. Sebuah basis data memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya: penjelasan ini disebut skema. Skema menggambarkan obyek yang diwakili suatu basis data, dan hubungan di antara obyek tersebut. Ada banyak cara untuk mengorganisasi skema, atau memodelkan struktur basis data: ini dikenal sebagai model basis data atau model data. Model yang umum digunakan sekarang adalah model relasional, yang menurut istilah layman mewakili semua informasi dalam bentuk tabel-tabel yang saling berhubungan dimana setiap tabel terdiri dari baris dan kolom (definisi yang sebenarnya menggunakan terminologi matematika). Dalam model ini, hubungan antar tabel diwakili dengan menggunakan nilai yang sama antar tabel. Model yang lain seperti model hierarkis dan model jaringan menggunakan cara yang lebih eksplisit untuk mewakili hubungan antar tabel. Istilah basis data mengacu pada koleksi dari data-data yang saling berhubungan, dan perangkat lunaknya seharusnya mengacu sebagai sistem manajemen basis data
16
(database management system/DBMS). Jika konteksnya sudah jelas, banyak administrator dan programer menggunakan istilah basis data untuk kedua arti tersebut. 2.1.4.2 Database Management System (DBMS) DBMS adalah sebuah sistem perangkat lunak yang membuat pengguna dapat mendefinisikan, membuat, mengatur, dan mengontrol akses ke basis data (Connolly, 2010, p.31). Fasilitas-fasilitas yang disediakan oleh DBMS sebagai berikut: 1. Data Definition Language (DDL) Bahasa yang digunakan dalam mendefinisikan struktur atau kerangka dari basis data, di dalamnya termasuk record, elemen data, kunci elemen, dan relasinya. Perintahperintah DDL adalah: 1. Create Table Create Table digunakan untuk membuat sebuah table di dalam database dengan mengidentifikasikan tipe data untuk setiap kolom 2. Alter Table Alter table digunakan untuk menambah atau membuang kolom dari konstrain 3. Drop Table Drop table digunakan untuk membuang atau menghapus tabel berserta semua data yang terkait didalamnya 2. Data Manipulation Language (DML) Bahasa yang digunakan untuk menjabarkan pemrosesan dari basis data, fasilitas ini diperlukan untuk memasukkan, mengambil, mengubah data. DML dipakai untuk operasi terhadap isi basis data. DML dibedakan menjadi 2 jenis, yaitu: 1) Procedural
17
Procedural digunakan untuk mendefinisikan data yang diolah dan perintah yang akan dilaksanakan. 2) Non Procedural Non Procedural
digunakan untuk menjabarkan data yang diinginkan tanpa
menyebutkan bagaimana cara pengambilannya. Perintah-perintah DML: 1) Penambahan data baru ke dalam basis data (Insert) 2) Modifikasi data yang disimpan dalam basis data (Update) 3) Pengambilan data yang terdapat dalam basis data (Select) 4) Penghapusan data dari basis data (Delete) Menyediakan kontrol akses ke dalam database: 1. Katalog yang dapat diakses pemakai Menyediakan sebuah katalog yang berisi deskripsi item data yang disimpan dan diakses oleh pemakai. 2. Melayani recovery Menyediakan mekanisme untuk mengembalikan basis data ke keadaan sebelum terjadinya kerusakan pada basis data tersebut. 3. Melayani autorisasi Sebuah DBMS harus menyediakan mekanisme untuk menjamin bahwa hanya pemakai yang berwenang saja yang dapat mengakses basis data. 4. Melayani kontrol concurrency Sebuah DBMS harus menyediakan mekanisme yang menjamin basis data terupdate secara benar pada saat beberapa pemakai melakukan perubahan terhadap basis data yang sama secara bersamaan.
18
5. Melayani integrity Sebuah DBMS bertujuan untuk menjamin semua data dalam basis data dan setiap terjadi perubahan data harus sesuai dengan aturan yang berlaku. 2.1.5 Jaringan Komputer Jaringan komputer (network) adalah sebuah sistem yang terdiri atas komputerkomputer yang didesain untuk dapat berbagi sumber daya (printer, CPU), berkomunikasi (email, pesan instan), dan dapat mengakses informasi(pengunjung web). Tujuan dari jaringan komputer adalah agar dapat mencapai tujuannya, setiap bagian dari jaringan komputer
dapat
meminta
dan
memberikan
layanan
(service).
Pihak
yang
meminta/menerima layanan disebut klien (client) dan yang memberikan/mengirim layanan disebut peladen (server). Desain ini disebut dengan sistem client-server, dan digunakan pada hampir seluruh aplikasi jaringan komputer. Dua buah komputer yang masing-masing memiliki sebuah kartu jaringan, kemudian dihubungkan melalui kabel maupun nirkabel sebagai medium transmisi data, dan terdapat perangkat lunak sistem operasi jaringan akan membentuk sebuah jaringan komputer yang sederhana.: Apabila ingin membuat jaringan komputer yang lebih luas lagi jangkauannya, maka diperlukan peralatan tambahan seperti Hub, Bridge, Switch, Router, Gateway sebagai peralatan interkoneksinya. Setiap jaringan komputer yang ada memilikki topologi, salah satu di antaranya adalah topologi star, topologi ini menjelaskan bahwa setiap client terhubung kepada sebuah central node. Biasanya yang menjadi central node tersebut ialah hub ataupun switch.. Klasifikasi jaringan komputer terbagi menjadi :
19
1. Berdasarkan geografisnya, jaringan komputer terbagi menjadi Jaringan wilayah lokal atau Local Area Network (LAN), Jaringan wilayah metropolitan atau Metropolitan Area Network (MAN), dan Jaringan wilayah luas atau Wide Area Network (WAN). Jaringan wilayah lokal merupakan jaringan milik pribadi di dalam sebuah gedung atau tempat yang berukuran sampai beberapa 1 - 10 kilometer. LAN seringkali digunakan untuk menghubungkan komputerkomputer pribadi dan stasiun kerja (workstation) dalam kantor suatu perusahaan atau pabrik-pabrik untuk memakai bersama sumberdaya (misalnya pencetak (printer) dan
saling
bertukar informasi.
Sedangkan
Jaringan
wilayah
metropolitan merupakan perluasan jaringan LAN sehingga mencakup satu kota yang cukup luas, terdiri atas puluhan gedung yang berjarak 10 - 50 kilometer. Kabel transmisi yang digunakan adalah kabel serat optik (Coaxial Cable). Jaringan wilayah luas Merupakan jaringan antarkota, antar propinsi, antar negara, bahkan antar benua. Jaraknya bisa mencakup seluruh dunia, misalnya jaringan yang menghubungkan semua bank di Indonesia, atau jaringan yang menghubungkan semua kantor Perwakilan Indonesia di seluruh dunia. Media transmisi utama adalah komunikasi lewat satelit, tetapi banyak yang mengandalkan koneksi serat optik antar negara. 2. berdasarkan fungsi, terbagi menjadi Jaringan Klien-server (Client-server) dan Jaringan Ujung ke ujung (Peer-to-peer). Jaringan klien-server pada dasarnya ada satu komputer yang disiapkan menjadi peladen (server) dari komputer lainnya yang sebagai klien (client). Semua permintaan layanan sumber daya dari komputer klien harus dilewatkan ke komputer peladen, komputer peladen ini yang akan mengatur pelayanannya. Apabila komunikasi permintaan layanan
20
sangat sibuk bahkan bisa disiapkan lebih dari satu komputer menjadi peladen, sehingga ada pembagian tugas, misalnya file-server, print-server, database server dan sebagainya. Tentu saja konfigurasi komputer peladen biasanya lebih dari konfigurasi komputer klien baik dari segi kapasitas memori, kapasitas perangkat keras (harddisk), maupun kecepatan prosessornya. Sedangkan jaringan ujung ke ujung itu ditunjukkan dengan komputer-komputer saling mendukung, sehingga setiap komputer dapat meminta pemakaian bersama sumber daya dari komputer lainnya, demikian pula harus siap melayani permintaan dari komputer lainnya. Model jaringan ini biasanya hanya bisa diterapkan pada jumlah komputer yang tidak terlalu banyak, maksimum 25, karena komunikasi akan menjadi rumit dan macet bilamana komputer terlalu banyak. 2.1.5.1 Teknologi Jaringan Teknologi jaringan menurut CNAP Bina Nusantara (2008) terbagi menjadi beberapa macam, berikut adalah sebagian dari teknologi jaringan yang ada : 1. Ethernet Ethernet dikenal dengan IEEE 802.3 adalah Teknologi kabel yang menggunakan teknologi CSMA/CD. Ethernet dapat mencapai kecepatan hingga 10 Mbps. 2. Wireless Wireless dikenal dengan IEEE 802.11 adalah Teknologi yang membuat sebuah komunikasi tidak membutuhkan konektivitas fisik. contoh dari teknologi wireless adalah teknologi telepon gengam, PDA, wireless access point dan Wireless Network Interface Card ( NIC ). Wireless terbagi menjadi beberapa tipe, yaitu :
21
a) 802.11a 802.11a diperkenalkan pada tahun 1999, wireless ini memiliki jangkauan hingga 35m dan bekerja pada frekuensi 5,7 Ghz. Dengan frekuensi tersebut , 802.11a kecepatan data hingga 54Mbps.Salah satu kelemahan dari 802.11a adalah mudahnya terkena hambatan.802.11a menggunakan teknik modulasi OFDM. b) 802.11b 802.11b diperkenalan pada tahun 1999, wireless
ini memiliki
jangkauan hingga 35m dan bekerja pada frekuensi 2,4Ghz. Dengan frekuensi tersebut 802.11b memiliki kecepatan data hingga 11Mbps. Berbeda
dengan
802.11a
,
802.11b
lebih
tahan
terhadap
rambatan.802.11b menggunakan teknik modulasi DSSS. c) 802.11g 802.11g diperkenalkan pada tahun 2003, menggunakan teknik modulasi DSSS dan OFDM, sehingga dapat beroperasi dengan kecepatan data 11Mbps untuk DSSS dan 54Mbps untuk OFDM. 2.1.5.2 Perangkat Jaringan Dalam jaringan, terdapat beberapa perangkat-perangkat seperti : a) Router : Menurut Stallings, Router adalah sebuah alat yang digunakan untuk menghubungkan jaringan. Berdasarkan fungsinya , router bekerja di layer 3 pada model OSI. Salah satu fungsi router selain menghubungkan jaringan adalah menentukan jalur yang akan ditempuh oleh packet. Proses tersebut dinamakan dengan Routing. Routing terbagi menjadi 2 macam, yaitu :
22
a. Static Routing Static Routing adalah Routing tanpa menggunakan Routing Protocol, sehingga kita perlu memasukkan sendiri network yang kita ingin gunakan ke dalam Routing Table. b. Dynamic Routing Dynamic Routing adalah Routing yang menggunakan Routing protocol, sehingga Router akan mendapatkan informasi network yang dia tidak miliki dari router yang terhubung dan menjalankan routing protocol yang sama. b) Switch Sebuah alat jaringan yang menyaring, mengforward dan membanjiri frame berdasarkan alamat tujuan dari setiap frame. Switch bekerja pada data link layer dalam model OSI ( Open System Interconnection ). 2.1.5.3 Pengalamatan Jaringan Pengalamatan dalam jaringan terbagi menjadi beberapa macam pada umumnya ,berikut adalah cara2 pengalamatan yang ada : a) MAC Address Standarisasi alamat pada data link layer, yang dibutuhkan pada setiap port atau device yang terhubung pada LAN. Alat lain yang terhubung pada jaringan menggunakan alamat ini untuk menentukan port tertentu pada jaringan, dan digunakan untuk membuat dan
23
mengupdate routing tables dan struktur data. Alamat ini terdiri dari 12 byte Hexadesimal. b) IP Address 32 bit alamat yang diberikan ke setiap pengguna TCP/IP. IP Address IP Address ditulis dengan 4 oktet yang dipisahi dengan tanda titik. c) Port Address : Dipakai untuk mengidentifikasikan sebuah proses atau service pada sebuah komputer.Contohnya, Pada saat client ingin mengakses sebuah service pada server, maka client akan mengakses port tertentu yang menentukan service apakah yang ingin digunakan. 2.2 Teori Khusus 2.2.1 Java Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling saat masih bergabung di Sun Microsistems saat ini merupakan bagian dari Oracle dan dirilis tahun 1995. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam pcode (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose), dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java
24
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. Versi awal Java ditahun 1996 sudah merupakan versi release sehingga dinamakan Java Versi 1.0. Java versi ini menyertakan banyak paket standar awal yang terus dikembangkan pada versi selanjutnya: 1. java.lang: Peruntukan kelas elemen-elemen dasar. 2. java.io: Peruntukan kelas input dan output, termasuk penggunaan berkas. 3. java.util: Peruntukan kelas pelengkap seperti kelas struktur data dan kelas kelas penanggalan. 4. java.net: Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan komputer lain menggunakan jaringan TCP/IP. 5. java.awt: Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI) 6. java.applet: Kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah web. 2.2.1.1 Sejarah Pemrograman Java Bahasa pemrograman Java pertama kali dibuat pada tahun 1991, oleh sekelompok insinyur SUN yang dipimpin oleh Patrick Naughton dan James Gosling. Awalnya mereka merancang bahasa pemrograman untuk perangkat seperti cable TV yang tidak memiliki banyak memori, bahasa harus berukuran kecil dan mengandung kode yang liat. Proyek ini disebut “Green” dan mulanya bahasa itu diberi nama “Oak”, namun “Oak” sendiri merupakan nama bahasa pemrograman yang sudah ada sebelumnya, kemudian SUN menggantinya dengan nama “Java”.
25
Nama “Java” terinspirasi saat mereka sedang menikmati kopi di kedai kopi, kemudian salah satu dari mereka menyebut kata “Java” yang artinya biji kopi. Sehingga akhirnya mereka sepakat untuk memberikan bahasa pemrograman tersebut dengan nama “Java”. Semenjak itu bahasa pemrograman Java langsung terkenal, pada saat yang sama implementasi WWW dan Internet sedang berkembang pesat. Dan anggota dari Green juga menyadari bahwa Java dapat digunakan pada pemrograman Internet, sehingga penerapan selanjutnya mengarah menjadi teknologi yang berperan di web.
Gambar 2.2
Tabel Penerapan Java
2.2.1.2 Pengertian Java Menurut Gosling et al. (2005, p1), Java adalah bahasa yang konkuren, berbasis kelas, dan bahasa yang berorientasi objek, yang dirancang sederhana yang banyak programmer dapat mencapai kefasihan dalam bahasa. Sebagai sebuah bahasa pemrograman, Java dapat membuat seluruh bentuk aplikasi seperti desktop, web, dan sebagainya. Aplikasi dengan teknologi Java secara umum adalah aplikasi serba guna yang dapat dijalankan pada seluruh mesin yang memiliki Java Runtime Environment (JRE). 2.2.1.3 Kelebihan dan Kekurangan Java Kelebihan dari bahasa pemrogramman Java adalah :
26
1. Multiplatform, kelebihan utama dari Java ialah dapat dijalankan di beberapa platform / sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di mana saja. Dengan kelebihan ini pemrogram cukup menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin / bytecode) sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan diatas operating sistem Linux tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris. Penyebabnya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk menginterpretasikan bytecode tersebut. 2. OOP (Object Oriented Programming - Pemrogram Berorientasi Objek) 3. Perpustakaan Kelas Yang Lengkap, Java terkenal dengan kelengkapan library/perpustakaan (kumpulan program program yang disertakan dalam pemrograman java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas Java yang besar yang terus menerus membuat perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan aplikasi. 4. Bergaya C++, memiliki sintaks seperti bahasa pemrograman C++ sehingga menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java. Universitas-universitas di Amerika Serikat juga mulai berpindah dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami
27
oleh murid dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer. 5. Pengumpulan sampah otomatis, memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas). Kekurangan dari bahasa pemrogramman Java adalah : 1. Tulis sekali, jalankan di mana saja - Masih ada beberapa hal yang tidak kompatibel antara platform satu dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge yang sampai sekarang tidak berfungsi pada Mac OS X. 2. Mudah didekompilasi. Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena kode jadi Java merupakan bytecode yang menyimpan banyak atribut bahasa tingkat tinggi, seperti namanama kelas, metode, dan tipe data. Hal yang sama juga terjadi pada Microsoft .NET Platform. Dengan demikian, algoritma yang digunakan program akan lebih sulit disembunyikan dan mudah dibajak/direverse-engineer. 3. Penggunaan memori yang banyak. Penggunaan memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih spesifik lagi, Delphi dan Object Pascal). Biasanya ini bukan merupakan masalah bagi pihak yang menggunakan teknologi terbaru (karena trend memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih harus berkutat dengan mesin komputer berumur lebih dari 4 tahun.
28
2.2.2 Android Android menurut DiMarzio (2008, p.6) , sebagai sebuah sistem, adalah sebuah operating sistem yang berbasis java yang beroperasi pada kernel Linux 2.6. Sistem android sangat ringan dan penuh fitur-fitur. Android sendiri bukanlah sebuah bahasa pemrograman , tetapi android merupakan sebuah environment untuk menjalankan aplikasi. 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 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
29
atas berbagai lapisan perangkat lunak. Pada Gambar 2.3 berikut akan digambarkan lapisan sistem perangkat lunak Android.
Gambar 2.3
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.4
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 sistem. Selain itu, Android tidak menyertakan semua utilitas standar di Linux. Pada Gambar 2.4 di atas ditampilkan semua pustaka yang ada pada lapisan kernel Linux pada Android.
30
Gambar 2.5
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.5 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.
Gambar 2.6
Lapisan Android Runtime
Komponen kunci dari Android terletak pada bagian runtime yang disebut Dalvik Virtual Machine (VM). Untuk melihat skema lapisan Runtime, dapat dilihat pada Gambar 2.6
Gambar 2.7
Lapisan Android Framework
31
Bagian Application Framework menyediakan banyak layanan lapisan atas dalam bentuk class Java.
Gambar 2.8
Lapisan Android Application
Lapisan teratas dari perangkat lunak Android adalah lapisan Application. Seperti yang terlihat pada Gambar 2.8 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. Android terdiri dari 3 elemen utama yaitu Operating System, Middleware, dan Key Application.. Pada tahun 2005, google mengakuisisi android inc., android inc. adalah sebuah perusahaan kecil yang mengembangkan sistem operasi perangkat mobile yang berbasiskan Linux. Pada November 2007 Open Handset Alliance terbentuk, Open Handset Alliance ini mempunyai sebuah tujuan untuk mengembangkan standar perangkat-perangkat mobile dan akhirnya menghasilkan android Platform. Open Handset Alliance terdiri dari beberapa perusahaan seperti Quallcomm, Google, Nvidia, HTC, T-Mobile, Vodafone, dan lain lain. Sistem operasi Android diperkenalkan pada bulan September tahun 2008 diperusahaan T-Mobile G1 sebagai smart phone pertama yang berbasis android platform dan pada tahun yang sama Google mengumumkan Android SDK RC 1.0 dibawah lisensi open source Apache. Aplikasi Android dikembangkan dengan menggunakan java dan dapat di-porting dengan lebih mudah ke platform yang baru. Andorid, selama mengenali dan mengijinkan untuk pemgembangan program UI, juga mendukung XML-Based UI Layout
32
yang terbaru. XML UI Layout adalah konsep baru untuk pengembangan desktop. Salah satu fitur yang paling menarik dari android adalah arsitekturnya. Arsitektur android terdiri dari aplikasi Third Party termasuk “home grown” yang dieksekusi dengan prioritas sistem yang sama seperti aplikasi-aplikasi yang terikat dengan pusat sistem. Ini adalah permulaan utama dari sebagian besar sistem yang memberikan sistem aplikasi yang disisipkan sebuah prioritas pengeksekusian yang lebih besar daripada prioritas thread untuk aplikasi yang dibuat oleh Third-Party Developers. Begitu juga untuk masing-masing aplikasi dieksekusi oleh thread-nya sendiri dengan menggunakan sebuah virtual machine yang sangat ringan. Selain dari Android SDK yang berbentuk zipped package yang sederhana yang terdiri dari dokumentasi dengan programming APIs, tools dan sampel-sampel dan well-form libraries yang ada bagi pengembang untuk dikembangkan, fitur yang paling menarik untuk para pengembang android adalah pengembang bisa mengakses segala sesuatu yang diakses oleh operating system sehingga potensi pengembang untuk membuat aplikasi yang dinamis dan menarik sekarang ini terbuka lebar. Berikut ini adalah sejumlah tools yang kuat dan berguna yang disediakan oleh android SDK untuk para pengembang : 1. Emulator.exe Salah satu tools terpenting yang ada pada android SDK adalah emulator.exe. Emulator.exe menjalankan emulator android. Emulator Android digunakan untuk menjalankan aplikasi dalam sebuah environment pseudo-android. Emulator.exe juga digunakan sebagai sebuah tool untuk menguji aplikasi pada “native” platform. 2. Adb.exe
33
Tools lain yang akan menjadi sangat berguna ketika akan menggunakan command-line programming adalah Android Debug Bridge atau adb (adb.exe). Tool ini mengijinkan anda untuk memberikan perintah ke tool Emulator.exe. Ketika anda menggunakan command-line environment , tool adb bisa melakukan hal-hal berikut : 1) Start dan stop server 2) Menginstalasi dan Menghapus aplikasi 3) Memindahkan file ke emulator dan memindahkan file dari emulator. 3. MKSDCARD.exe MKSDCARD.exe adalah sebuah tool yang sangat berguna jika anda menguji aplikasi yang memerlukan read atau write pada SD Memory Card yang dimasukkan pada perangkat selular. MKSDCARD.exe membuat sebuah partisi drive yang kecil pada drive yang ada dan menyimpan file yang diuji. Emulator akan menganggap partisi ini seperti sebuah SD Memory Card. 4. DX.exe DX.exe adalah compiler pada Android SDK.
Ketika menjalankan file-file java,
DX.exe akan membuat sebuah file dengan format .dex extenstions-Dalvik executable. File-file ini adalah format yang benar untuk dimengerti dan dijalankan pada perangkat android. 5. ActivityCreator (.bat atau .pn) Activitycreator adalah sebuah tool command-line yang sederhana yang digunakan untuk mengatur perkembangan environment dasar. Activitycreator akan mengatur file-file Shell yang diperlukan untuk membuat sebuah aplikasi dasar Android. Keuntungan dari Android adalah :
34
1. Android platform adalah Open Source , memberikan kesempatan kepada para developers yang tertarik dalam mengembangkan aplikasi pada android untuk mengembangkan aplikasi baru android yang berkualitas tinggi, kreatif dan inovatif. 2. Karena android platform adalah open source maka pertumbuhan jumlah aplikasi juga sangat cepat untuk memenuhi kebutuhan konsumen. 3. Open Cloud Computing, android bisa mengalokasi dan mengakses data darimana saja, maka data flow pada android lebih cepat. 4. Mendukung Multitasking, banyak aplikasi bisa dijalankan secara bersamaan sehingga android lebih mudah, cepat dan tepat untuk digunakan. 5. Android platform tidak hanya terikat pada satu perusahaan aja, sehingga siapa saja yang ingin memproduksi android phone mereka sendiri bisa mulai untuk membuatnya. Basis data adalah sekumpulan data yang saling berhubungan secara logical, dan keterangan dari data-data ini dibuat untuk memenuhi kebutuhan perusahaan (Connolly, 2005, p.17). 2.2.3 Eclipse Eclipse adalah multi-bahasa perangkat lunak lingkungan pengembangan yang terdiri dari lingkungan pengembangan terintegrasi (IDE) dan extensible plug-in sistem. Hal ini ditulis terutama di Jawa . Hal ini dapat digunakan untuk mengembangkan aplikasi di Java dan, melalui berbagai plug-in, lain bahasa pemrograman termasuk Ada , C , C + + , COBOL , Haskell , Perl , PHP , Python , R , Ruby (termasuk Ruby on Rails kerangka), Scala ,Clojure ,Groovy dan Skema. Hal ini juga dapat digunakan untuk mengembangkan paket untuk perangkat lunak Mathematica . Lingkungan pengembangan Eclipse termasuk pengembangan Java
35
alat (JDT) untuk Java, Eclipse CDT untuk C / C + +, dan Eclipse PDT untuk PHP, antara lain. Awal basis kode berasal dari VisualAge . SDK Eclipse (yang meliputi Jawa alat pengembangan) dimaksudkan untuk pengembang Java. Pengguna dapat memperluas kemampuannya dengan menginstal plug-in ditulis untuk Eclipse Platform, seperti toolkit pengembangan untuk bahasa pemrograman lain, dan dapat menulis dan memberikan kontribusi mereka sendiri plug-in modul. Dirilis di bawah persyaratan Lisensi Publik Eclipse , Eclipse SDK adalah perangkat lunak bebas dan open source . Itu adalah salah satu IDE pertama yang berjalan di bawah GNU Classpath dan berjalan tanpa masalah di bawah IcedTea. 2.2.4 UML Menurut Whitten dan Bentley, unified modeling language (UML) merupakan sekumpulan konvensi tentang pemodelan yang digunakan untuk menspesifikasi atau menggambarkan sistem software di dalam hal-hal tentang objek.(Whitten & Bentley, 2007, p. 371) UML memiliki beberapa jenis diagram yang dapat digunakan, antara lain: 1.
Use Case Diagram.
(p246)Use-case diagram adalah diagram yang menggambarkan interaksi antara system dan external system dan users. Diagram ini akan menunjukkan fungsi dari setiap sistem atau business event yang harus diproses oleh sistem. Use case narrative adalah deskripsi dari sebuah business event dan bagaimana user akan berinteraksi dengan system untuk menyelesaikan tugas. Bagian –bagian dari sebuah use-case adalah :
36
Gambar 2.9
Use-cases
Use-cases adalah gambaran dari sebuah tujuan dari sistem dan dideskripsikan pada sebuah urutan aktivitas dan interaksi user dalam mencapai tujuan.
Gambar 2.10 Actor Actors, adalah semua yang butuh untuk berinteraksi dengan system untuk bertukar informasi. (p247) Seorang actor akan menjalankan aktivitas dalam system, yaitu sebuah use-cases, betujuan untuk memenuhi sebuah tugas yang menghasilkan nilai yang dapat diukur.
Gambar 2.11 Relationship
37
1.
Relationship
Adalah sebuah hubungan yang digambarka dengan garis yang menghubungkan dua buah diagram usecase. Arti dari setiap hubungan mungkin berbeda berdasarkan bagaimana garis tersebut digambar dan tipe simbol apa yang digunakan. a.
Association
Hubungan antara actor dan usecase selalu digambarkan dengan association, dimana setiap actor yang terhubung dengan usecase dapat dikatakan berkomunikasi dengan usecase. Association mungkin bersifat bidirectional atau undirectional. b.
Extends
Hubungan antara usecase dengan usecase dimana jika terdapat proses yang rumit, dapat digunakan hubungan extends yang menggambarkan bahwa sebuah usecase dapat terhubung dengan usecase lainnya. c.
Uses (or includes)
Hubungan untuk dua buah usecase yang melakukan dua buah operasi yang hampir sama. Digunakan untuk mengurangi redudansi dari dua buah atau lebih usecase dengan cara mengkombinasikan langkah-langkah dari case tersebut. d.
Depends on
Adalah hubungan antara dua buah use case dimana satu usecase tidak dapat dijalankan sebelum usecase yang lain dijalankan. e.
Inheritance
Inheritance adalah hubungan antara actor yang dibuat untuk mempermudah gambaran dari sebuah actor yang memiliki inheritance peran dari beberapa aktor. Proses pembuatan model use-case diagram : 1.
Identify business actors
38
Dengan mengidentifikasi aktor, pengembangan dapat berfokus pada bagaimana sistem akan digunakan bukan bagaimana sistem dibuat, sehingga dapat membantu dalam proses verifikasi dan validasi use cases. 2.
Identify business requirements use cases
Sebuah use case yang dibuat selama analisis requirement untuk menangkap adanya interaksi antara user dan system. 3.
Construct use-case model diagram
Setelah aktor dan use-cases telah diidentifikasi, use-case model diagram dapat digunakan untuk menggambarkan lingkup system dan ikatan diantara mereka. 4.
Document business requirements use-case narrative
Setelah use-cases dan aktor yang berinteraksi selesai didefinisikan maka dibuat use-case narrative, sebuah deskripsi tekstual yang memberi detail bagaimana sebuah use-cases dapat dijalankan. 1.
Precondition, adalah keadaan dari system sebelum use-case dapat
diekseskusi, biasanya untuk usecase lain yang harus diekseskusi sebelumnya. 2.
Events, adalah sebuah urutas aktivitas yang dilakukan oleh actor dan
system dalam mencapai tujuan dari usecase. Termasuk di dalamnya interaksi antara system, actor dan aktivitas yang dilakukan oleh sistem untuk merespon interaksi. 3.
Postcondition, adalah keadaan dari system setelah usecase berhasil
dieksekusi. Dapat berupa data yang disimpan di database atau bukti yang dikirimkan ke customer. 2.
ClassDiagram.
Menurut Whitten (2007, p405), class diagram adalah sebuah gambaran dari objek tetap yang merupakan objek pada sistem yang dibentuk serta hubungan antara
39
objeknya. Pada class diagram terdapat hubungan antara objeknya, yang dapat dikelompokkan menjadi :
Gambar 2.12 Association a.
Association, yaitu adanya hubungan dari kedua buah objek dimana
sebuah objek berhubungan dengan objek yang lainnya. Ketika sebuah hubungan association dibuat maka harus juga ditentukan multiplicity yang akan menggambarkan tingkat jumlah dari kedua objek yang terasosiasi.
Gambar 2.13 Generalization b.
Generalization dan specialization, yaitu dimana terdapat sebuah objek
yang merupakan child atau parent dari objek lainnya karena kesamaan attribute. Dimana ketika ada beberapa objek dengan karakteristik yang sama akan dibuat hubungan generalization atau specialization.
40
Gambar 2.14 Composition & Aggregation
c.
Aggregation dan composition, yaitu hubungan dari dua objek yang lebih
mengikat dibandingkan generalization, dimana objek yang satu tidak akan ada tanpa adanya objek yang lainnya ada terlebih dahulu. 3.
Activity Diagram.
Activity diagram (2007, p390) adalah sebuah diagram yang dapat digunakan untuk menggambarkan secara grafis alur dari proses bisnis yang terjadi, tahapan dari usecase atau logika dari sebuah objek. Bagian dari activity diagram antara lain :
Gambar 2.15 Initial node 1.
Initial node, adalah lingkar yang menyatakan awal dari proses.
Gambar 2.16 Actions
41
2.
Actions, adalah persegi tanpa siku yang menggambarkan langkah
individual.
Gambar 2.17 Flow 3.
Flow, panah dari diagram yang menggambarkan proses dari sebuah
aktivitas. Sebagian besar tidak perlu kata, kecuali keluar dari sebuah decision.
Gambar 2.18 Decision 4.
Decision adalah bentuk diamond yang menggambarkan sebuah masukkan
dengan keluaran dua atau lebih. Flow yang keluar menggambarkan kondisi. 5.
Merge adalah dengan dua atau lebih masukkan dan sebuah keluaran yang
menggambarkan proses yang membutuhkan input lebih dari satu untuk dapat menjalankan proses tersebut.
42
Gambar 2.19 Fork & Join 6.
Fork, yaitu proses paralel yang berjalan dari sebuah kondisi.
7.
Join, yaitu tanda berakhirnya proses yang concurrent.
Gambar 2.20 Activity Final 8.
Activity final, adalah lingkaran dengan cincin di bagian luar yang
menandakan akhir dari proses. 4.
Sequence Diagram.
Sequence diagram adalah UML diagram yang akan membuat model dari usecase yang menggambarkan interaksi antara data dengan objek dalam urutan waktu (2007, p659).
43
Gambar 2.21 Actor 1.
Actor, menggambarkan actor yang melakukan usecase, terkadang
notasinya disederhanakan menjadi <
>.
Gambar 2.22 Class 2.
Interface class adalah class layar yang digunakan untuk menggambarkan
layar yang digunakan pada saat actor menjalankan sebuah proses. 3.
Controller adalah class yang digunakan sebagai jembatan antara actor
dan interface, dimana ketika seorang actor menjalankan tugas dia tidak langsung berkomunikasi dengan interface melainkan melalui controller terlebih dahulu. 4.
Entity class, adalah class yang biasanya berisi data-data yang secara
proses akan disimpan pada database.
44
Gambar 2.23 Message 5.
Message, yaitu pesan yang disampaikan antara objek-objek sequence
yang menggambarkan proses apa yang dilakukan atau eksekusi serta data apa yang digunakan.
Gambar 2.24 Activation bar 6.
Activation bar, menyatakan tingkat sebuah actor, interface, controller
pada sebuah sequence aktif. Selama masih dalam activation bar maka dianggap aktif.
45
Menurut Whitten (2007, p271), ERD adalah data model yang menggambarkan data di dalam entity dan hubungan yang dideskripsikan oleh data. Di bawah ini dijelaskan bagian dari entity relationship diagram : 1.
Entities Entitas adalah segala sesuatu yang ingin disimpan sebagai data, baik
berupa orang, tempat, objek, event, konsep, atau sebagainya. Terdapat 2 buah hal penting yang harus diperhatikan untuk membuat entitas, yaitu : 1)
Setiap entitas harus dapat dibedakan dari entitas lainnya dengan sebuah
set karakter identitas atau atribut. 2)
Setiap entitas mempresentasikan sebuah class yang dapat terjadi lebih
dari satu kali. 2.
Attributes Atribut adalah deskripsi karakteristik dari
sebuah entitas atau
relationship, atau dapat diartikan atribut mengacu pada data, element atau field yang ingin disimpan pada setiap instance. Setiap entitas dapat memiliki banyak atribut, misalnya entitas Murid memiliki atribut Nama, Alamat, Nomor Induk, Bidang Studi, Etnis, Nomor Telepon, dan sebagainya. 3.
Key Attribute Key attribute adalah sebuah atribut yang diasumsikan memiliki nilai unik
dalam satu entitas tersebut. sebagai contoh dalam satu entitas Product memiliki nilai unik yang digambarkan melalui key ProductID, sehingga dapat dipastikan tidak ada 2 produk atau lebih yang memiliki 1 ProductID sama. i.
Candidate key, satu dari sejumlah key yang mungkin digunakan sebagai
primary key dari entity, juga dikenal dengan candidate key.
46
ii.
Primary key, candidate key yang dapat digunakan secara unik
mengidentifikasi setiap entity instance. iii.
Foreign key, adalah primary key dari entity yang digunakan dalam entity
lain untuk mengidentifikasi relationship antar instances. 4.
Relationship Relationship adalah asosiasi atau relasi antara satu atau lebih entitas yang
mengindikasikan sebuah event yang terjadi di kedua atau lebih entitas tersebut. Misal relasi antara entitas Student dengan Course, setiap murid dapat mengambil 0, 1, atau lebih mata kuliah. Sedangkan setiap mata kuliah dapat diambil oleh 0, 1, atau lebih murid. Dengan kata lain, setiap relasi dalam ERD diasumsikan sebagai 2 arah (bidirectional), yang berarti harus didefinisikan dari kedua sisi. Relationship dapat diidentifikasi berdasarkan 3 kompleksitas, yaitu :
Gambar 2.25 Cardinality 1)
Cardinality, yaitu nilai minimum dan maximum dari sebuah entity yang
mungkin berkaitan dengan satu entity lain. Dimana sebuah relationship adalah bidirectional, cardinality harus dibuat pada kedua arah untuk setiap relationship. Contoh cardinality yaitu exactly-one, one-or-more, zero-or-one, dan zero-one-or-many.
47
2)
Degree, yaitu indikasi jumlah entitas yang terlibat dalam satu relasi
tersebut. Secara umum, terdapat 3 bentuk degree yang sering ditemukan dalam ERD yaitu : a)
Unary relationship : Satu entitas terlibat.
b)
Binary relationship : Dua entitas terlibat.
c)
Ternary relationship : Tiga entitas terlibat.
2.2.5 OOAD Menurut Satzinger, J. W. et al, object oriented analysis (OOA) mendefinisikan semua jenis objek yang melakukan pekerjaan dalam sistem dan menunjukan interaksi pengguna yang diperlukan untuk menyelesaikan tugas. Sedangkan object oriented design (OOD) mendefinisikan semua jenis objek yang diperlukan untuk berkomunikasi dengan orang dan perangkat dalam sistem menunjukan bagaimana objek berinteraksi untuk menyelesaikan tugas. (Satzinger, 2009) Sedangkan menurut Whitten et al. (2007, p25) object-oriented analysis and design (OOAD) merupakan suatu kumpulan alat dan teknik untuk mengembangkan suatu sistem yang akan menggunakan teknologi objek untuk membangun sebuah sistem dan piranti lunak. Menurut Satzinger, J. W. et al, object oriented analysis (OOA) mendefinisikan semua jenis objek yang melakukan pekerjaan dalam sistem dan menunjukan interaksi pengguna yang diperlukan untuk menyelesaikan tugas. Sedangkan object oriented design (OOD) mendefinisikan semua jenis objek yang diperlukan untuk berkomunikasi dengan orang dan perangkat dalam sistem menunjukan bagaimana objek berinteraksi untuk menyelesaikan tugas. (Satzinger, 2009)
48
Sedangkan menurut Whitten et al. (2007, p31) object-oriented analysis and design (OOAD) merupakan suatu kumpulan alat dan teknik untuk mengembangkan suatu sistem yang akan menggunakan teknologi objek untuk membangun sebuah sistem dan piranti lunak. To create an object database schema from a class diagram, follow these steps: Untuk membuat skema database objek dari sebuah class diagram, ikuti langkahlangkah : 1.
Determine which classes require persistent storage.
Tentukan data dari class mana yang perlu untuk disimpan ke dalam database, biasanya data yang akan disimpan disesuaikan dengan kebutuhan dari restoran. 2.
Define persistent classes.
Tentukan class mana yang merupakan persistant classes dari antara class yang ada. Class interface dan controller bukan merupakan persistant class. Ada dua buah jenis kelas berdasarkan kebutuhan untuk disimpan ke dalam database, yaitu : a. persistent class adalah class yang harus disimpan satu atau lebih nilai attributnya ke dalam database b. transient class adalah class yang attributnya tidak perlu disimpan dalam penggunaannya 3.
Represent relationships among persistent classes.
Dari antara class yang persistant tentukan hubungan antar class yang ada. 4.
Choose appropriate data types and value restrictions (if necessary) for
each field.
49
Gunakan tipe data yang sesuai dengan kebutuhan, contohnya adalah untuk nama digunakan tipe data VARCHAR dan tentukan aturan yang dibutuhkan seperti nama employee harus lebih dari 3 karakter.
2.2.6 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).
50
2.2.6.1 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 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 Sistem Web Server). Sejak April 1996 Apache menjadi web server terpopuler di Internet. Pada
51
Mei 1999, Apache digunakan di 57% dari semua web server di dunia. Pada November 2005 persentase ini naik menjadi 71% (Netcraft Ltd, 2005). 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.2.6.2 MySQL SQL (Structured Query Language) adalah bahasa standar yang digunakan untuk mengakses server database. Semenjak 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 (kirakira 100 gigabyte data). Database ini dibuat untuk sistem keperluan database yang cepat, andal, dan mudah digunakan. Walaupun memiliki kemampuan yang cukup baik, MySQL untuk
52
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.2.6.3 PHP (PHP Hypertext Preprocessor) Menurut Luke Welling dan Laura Thompson, PHP adalah sebuah scripting oleh server-side yang dirancang khusus untuk web. Kode PHP dapat ditanamkan ke dalam page HTML, yang kemudian akan dieksekusi setiap page HTML tersebut dikunjungi. PHP adalah sebuah produk open source. Maksud dari open source adalah kita dapat menggunakannya, mengubahnya, dan menyebarkannya tanpa dikenakan biaya.(Welling & Thompson, 2003, p. 2) PHP memiliki kelebihan-kelebihan sebagai berikut: 1.
Performa yang baik.
2.
Interface dapat digunakan pada berbagai sistem database.
3.
Terdapat library untuk tugas web umum.
4.
Biayanya lebih murah.
5.
Kemudahan dalam mempelajari dan menggunakannya.
6.
Portabilitas.
7.
Ketersediaan source code.
2.2.6.4 phpMyAdmin Menurut Luke Welling dan Laura Thompson, MySQL merupakan Relational Database Management System (RDBMS) yang sangat cepat dan kuat.Sebuah database yang memungkinkan kita untuk menyimpan, mencari, mengurutkan, dan menerima data. MySQL server akan mengontrol akses ke dalam data untuk memastikan banyak User yang dapat menggunakan secara bersamaan,
53
menyediakan akses yang cepat, dan memastikan hanya User yang berwenang untuk mengakses database. Oleh sebab itu, MySQL merupakan multi-User dan multi-threadedserver.(Welling & Thompson, 2003, p. 3) Kelebihan dengan menggunakan MySQL adalah: 1. Performa yang baik. 2. Biayanya murah. 3. Mudah untuk diatur dan dipelajari. 4. Portabilitas. 5. Ketersediaan source code. Adapun fitur-fitur dari MySQL yakni: 1. Didukung oleh bahasa pemrograman C, C++, java, Eiffel, Perl, PHP, Phyton, dan Tel untuk mengakses MySQL. 2. Dapat bekerja pada banyak platform yang berbeda, termasuk windows. 3. Mempunyai beragam tipe kolom : signed/unsigned integer 1,2,3,4 dan 8 bytes, FLOAT, DOUBLE, CHAR VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET, dan tipe ENUM. 4. Mendukung parameter SQL GROUP BY dan ORDER BY. Fungsi-fungsi yang
dapat
dipakai
dalam
group
query
:
{COUNT(),
COUNT(DISTINCT), AVG(), STD(), SUM(), MAX(), dan MIN()}. 5. Sistem privilege dan password dapat terjaga kerahasiannya, dan dapat diverifikasi berdasarkan nama host-nya.
2.2.7 Web Browser
54
Sebuah web browser adalah aplikasi perangkat lunak untuk mengambil, penyajian, dan melintasi sumber informasi di World Wide Web . Sebuah sumber informasi diidentifikasi dengan Uniform Resource Identifier (URI) dan mungkin menjadi halaman web , gambar, video, atau bagian lain dari konten. Hyperlinks hadir dalam sumber daya memungkinkan pengguna untuk menavigasi dengan mudah mereka browser ke sumber daya terkait. Sebuah web browser juga dapat didefinisikan sebagai perangkat lunak aplikasi atau program yang dirancang untuk memungkinkan pengguna untuk mengakses, mengambil dan melihat dokumen dan sumber daya lain di internet . Meskipun browser terutama ditujukan untuk mengakses World Wide Web, mereka juga dapat digunakan untuk mengakses informasi yang diberikan oleh web server dalam jaringan pribadi atau file dalam sistem file . Web browser utama adalah Firefox , Google Chrome , Internet Explorer , Opera , dan Safari . Tujuan utama dari web browser adalah untuk membawa sumber informasi kepada pengguna. Proses ini dimulai ketika masukan pengguna sebuah Uniform Resource Locator (URL), misalnya http://en.wikipedia.org/~~V, ke browser. Awalan dari URL, Uniform Resource Identifier atau URI , menentukan bagaimana URL akan ditafsirkan. Jenis yang paling umum digunakan URI dimulai dengan http:and mengidentifikasi sumber daya yang akan diambil alih Hypertext Transfer Protocol (HTTP). Banyak browser juga mendukung berbagai prefiks lainnya, seperti https:untuk HTTPS , ftp:for yang File Transfer Protocol , dan file: untuk file lokal . Awalan bahwa web browser tidak dapat secara langsung menangani sering diserahkan ke aplikasi lain sama sekali. Sebagai contoh, mailto: URI biasanya dilewatkan ke aplikasi e-mail default pengguna, dan berita: URI dilewatkan ke pembaca newsgroup pengguna default.
55
Dalam kasus http, https, file, dan lain-lain, sekali sumber daya telah diambil web browser akan menampilkannya. HTML akan diteruskan ke browser layout engine untuk diubah dari markup untuk dokumen interaktif. Selain dari HTML, web browser umumnya dapat menampilkan berbagai jenis konten yang dapat menjadi bagian dari suatu halaman web. Kebanyakan browser dapat menampilkan gambar, audio, video, dan XML file, dan sering memiliki plug-in untuk mendukung flash aplikasi dan applet Java . Setelah menemui file dari jenis yang tidak didukung atau file yang telah diatur untuk di-download daripada ditampilkan, browser meminta pengguna untuk menyimpan file ke disk. Sumber daya informasi dapat berisi hyperlink ke sumber informasi lain. Setiap link berisi URI dari sumber daya untuk pergi ke file. Ketika link diklik, browser menavigasi ke sumber ditunjukkan oleh URI target link, dan proses membawa konten ke pengguna dimulai lagi. 2.2.8 URL (Uniform Resource Locator) URL (Uniform Resource Locator dahulu disebut Universal Resource Locator) merupakan standar alamat dan protokol yang digunakan untuk mengambil sumber daya dan dokumen yang ada di jaringan internet. URL juga dapat mengandung tambahan informasi seperti query. Contohnya : http://www.google.co.id/search?sourceid=chrome&ie=UTF-8&q=URL Selain itu URL juga dapat mengandung informasi tambahan, untuk keperluan internal, biasanya dipisahkan oleh tanda penghubung titikkoma (;) , contohnya : http://www.iicm.edu/;internal&action=options.action (http://www.iicm.tugraz.at/0x811bc82b_0x000031db) 2.2.8.1 HTML (Hypertext Markup Language)
56
Hypertext Markup Language (HTML) adalah bahasa pemrograman yang digunakan di web, yang memformat dokumen yang memadukan link hypertext dinamis ke dokumen-dokumen lainya yang disimpan didalam komputer. HTML berasal dari Standart Generalized Markup Language (SGML) yang lebih rumit, bahasa berbasis teks untuk mendeskripsikan isi dan struktur dari dokumen digital. HTML adalah subset yang lebih sederhana dari SGML dan mecakup tabel, applet, aliran teks dalam gambar, superskrip, dan subskrip. 2.2.8.2 CSS (Cascading Style Sheets) Cascading Style Sheets atau yang disebut juga CSS adalah sebuah mekanisme penambahan gaya (contohnya: jenis huruf, warna, jarak, bentuk ikon, garis) pada suatu dokumen web. (http://www.w3.org/Style/CSS) Menurut Olsson dan O’Brien (2008:2) CSS adalah metode yang di rekomendasikan untuk mengontrol presentation layer pada sebuah dokumen web. Keuntungan terbesar dalam CSS di penggunaannya adalah gaya yang di representasikan dapat dipisahkan seutuhnya dari konten dokumen. Dalam artinya, sebuah CSS dapat mengontrol gaya penulisan untuk 10.000 halaman web. Hal ini sangat membantu pengembang web memotong waktu dalam pembuatan sebuah web. 2.2.9 XML (Extensible Markup Language) XML adalah bahasa yang didesain khusus untuk penyimpanan data dan transportasi. XML terlihat seperti HTML, lengkap dengan tag, atribut, dan nilai-nilai. XML juga dapat digunakan untuk berbagi data antara sistem yang berbeda dan organisasi. Hal ini disebabkan XML hanyalah sebuah sebuah file teks dan tidak lebih. XML juga terstruktur, mudah dimengerti, mudah untuk mengurai, mudah untuk memanipulasi, dan mudah dibaca.
57
Menurut Kevin Howard Goldberg, XML adalah spesifikasi untuk menyimpan informasi dan juga merupakan spesifikasi untuk menggambarkan struktur informasi tersebut. XML adalah bahasa markup (seperti HTML), XML tidak memiliki label sendiri. Hal ini memungkinkan orang menulis XML untuk menciptakan apapun tag yang dibutuhkan. Spesifikasi XML memungkinkan orang untuk mendefinisikan bahasa markup mereka sendiri.(Goldberg, 2009, p.12) XML memiliki struktur yang sangat teratur dan dapat diperkirakan. Jika file memenuhi
aturan-aturan
ini
maka
dianggap
well-formed.
Aturan-aturan
itu
mengandung antara lain: 1.
Elemen root, Setup File XML harus berisi salah satu dan hanya satu
elemen root. Elemen root ini berisi semua elemen lain dalam dokumen. 2.
Tag penutup, Setiap elemen harus memiliki tag penutup.
3.
Elemen harus benar dan tepat, Jika memulai elemen A, kemudian mulai
elemen B, maka terlebih dahulu menutup B sebelum menutup elemen A. 4.
Case Sensitive, XML merupakan case sensitive.
Menurut Kevin Howard Goldberg, keunggulan dari bahasa XML adalah sebagai berikut: 1.
XML adalah bahasa yang mudah dipelajari dan di adaptasi.
2.
Menggunakan XML untuk mendesain kesesuaian bahasa markup dan
kemudian menggunakan bahasa tersebut untuk menyimpan informasi. 3.
XML dapat digunakan untuk mengirimkan data antara sistem yang
berbeda. Karena itulah penyebab dokumen XML merupakan dokumen teks yang
58
sederhana, terstruktur, mudah di mengerti, mudah di parse, mudah untuk memanipulasi data, dan mudah untuk dibaca manusia. 4.
XML tidak mengkhususkan jenis user untuk menggunakannya.Sehingga bebas digunakan oleh siapa saja.
2.2.10 JavaScript Object Notation (JSON) JavaScript Object Notation (JSON) merupakan format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia. Format teks penulisan bahasanya tidak bergantung pada bahasa pemrogaman apapun karena menggunakan gaya bahasa yang umum digunakan oleh programmer diantaranya C, C++, Java, JavaScript, Perl, Python, dan lain-lain. Oleh karena sifat yang tidak bergantung itu yang menyebabkan JSON menjadi bahasa ideal yang digunakan dalam pertukaran data (http://www.json.org). JSON terdiri dari 2 struktur, yaitu: 1.
Kumpulan pasangan nama/nilai. Pada beberapa bahasa, hal ini dinyatakan
sebagai objek (object), rekaman (record), struktur (structure), kamus (dictionary), hash table, keyed list, atau associative array. 2.
Daftar nilai terurut (an ordered list of values). Pada kebanyakan bahasa
dinyatakan sebagai array, vector, list, atau sequence.