BAB II KAJIAN PUSTAKA 2.1 Tinjauan Mutakhir II... · permasalahan tersebut, ... dari pengguna...

32
6 BAB II KAJIAN PUSTAKA 2.1 Tinjauan Mutakhir Adapun penelitian terkait tentang sistem informasi geografis yang telah beberapa kali dilakukan sebelumnya. Sistem Informasi Geografis Pariwisata Kota Semarang merupakan penelitian yang diakukan Ambrina (2013) yang menggunakan Google Maps API untuk mengetahui letak lokasi wisata, penginapan, restoran, tempat ibadah, pusat oleh-oleh dan event yang ada di wilayah kota Semarang. Sistem informasi goegrafis ini dirancang berbasis web, sehingga informasi mudah dicerna dan saling terintegrasi baik bagi masyarakat, investor yang ingin mengembangkan atau pemerintah daerah untuk melakukan pembangunan. Maulana (2013) dalam penelitiannya membahas perencanaan ruas jalan nasional dengan tujuan meningkatkan peranan jalan dan jembatan di wilayah metropolitan Bandung sesuai dengan pertumbuhan lalul intas. Penelitian ini mengunakan analisis terstruktur untuk membangun perangkat lunak dalam mengelola data ruas jalan, perencanaan ruas jalan, pelaksaan perancangan ruas jalan beserta lokasi pemetaannya. Analisis terstruktur bertujuan untuk mendapatkan kebutuhan sistem yang meliputi proses bisnis, data dan kebutuhan fungsional. Sistem informasi geografis ini dibangun berbasis web sehingga dapat memudahakan dalam mengolah data ruas jalan. Penelitian lainnya dilakukan Efendi (2013) yang membahas pemetaan fasilitas umum di Kabupaten Sumedang, Efendi menemukan bahwa pengelolaan fasilitas umum Kabupaten Sumedang belum berbasis database sehingga pengelolaan bersifat statis, kurang terpusat dan data tersebar dalam dokumen terpisah. Sistem informasi geografis pemetaan ini menjadi solusi dari permasalahan tersebut, dengan mengunakan bahasa pemrograman PHP dan database MySQL sehingga pengelolaan fasilitas umum berbasis database lebih maksimal serta bisa menampilkan status dan memberikan rekomendasi pembangunan yang tepat.

Transcript of BAB II KAJIAN PUSTAKA 2.1 Tinjauan Mutakhir II... · permasalahan tersebut, ... dari pengguna...

6

BAB II

KAJIAN PUSTAKA

2.1 Tinjauan Mutakhir

Adapun penelitian terkait tentang sistem informasi geografis yang telah

beberapa kali dilakukan sebelumnya.

Sistem Informasi Geografis Pariwisata Kota Semarang merupakan

penelitian yang diakukan Ambrina (2013) yang menggunakan Google Maps API

untuk mengetahui letak lokasi wisata, penginapan, restoran, tempat ibadah, pusat

oleh-oleh dan event yang ada di wilayah kota Semarang. Sistem informasi

goegrafis ini dirancang berbasis web, sehingga informasi mudah dicerna dan

saling terintegrasi baik bagi masyarakat, investor yang ingin mengembangkan

atau pemerintah daerah untuk melakukan pembangunan.

Maulana (2013) dalam penelitiannya membahas perencanaan ruas jalan

nasional dengan tujuan meningkatkan peranan jalan dan jembatan di wilayah

metropolitan Bandung sesuai dengan pertumbuhan lalul intas. Penelitian ini

mengunakan analisis terstruktur untuk membangun perangkat lunak dalam

mengelola data ruas jalan, perencanaan ruas jalan, pelaksaan perancangan ruas

jalan beserta lokasi pemetaannya. Analisis terstruktur bertujuan untuk

mendapatkan kebutuhan sistem yang meliputi proses bisnis, data dan kebutuhan

fungsional. Sistem informasi geografis ini dibangun berbasis web sehingga dapat

memudahakan dalam mengolah data ruas jalan.

Penelitian lainnya dilakukan Efendi (2013) yang membahas pemetaan

fasilitas umum di Kabupaten Sumedang, Efendi menemukan bahwa pengelolaan

fasilitas umum Kabupaten Sumedang belum berbasis database sehingga

pengelolaan bersifat statis, kurang terpusat dan data tersebar dalam dokumen

terpisah. Sistem informasi geografis pemetaan ini menjadi solusi dari

permasalahan tersebut, dengan mengunakan bahasa pemrograman PHP dan

database MySQL sehingga pengelolaan fasilitas umum berbasis database lebih

maksimal serta bisa menampilkan status dan memberikan rekomendasi

pembangunan yang tepat.

7

Adapun penelitian lainnya yang berjudul Sistem Informasi Geografis

Untuk Jaringan Jalan Raya dan Wilayah Administrasi dilakukan oleh Setyawati

(2007), penelitian ini membahas tentang pemetaan jaringan jalan raya dan

wilayah administrasi Kota Bandung. Dalam penelitiannya Setyawati menemukan

permasalahan bahwa pemerintahan daerah membutuhkan sistem untuk perencanan

tata ruang wilayah dan perencanaan pembangunan, terutama pembangunan

fasilitas jalan. Sistem informasi geografis yang dibangun mampu mengumpulkan,

mengelola, memanipulasi dan menyajikan informasi secara pasial beserta

atributnya sehingga dapat memudahkan para pengguna untuk memperoleh

informasi mengenai tata letak suatu wilayah.

Dari beberapa penelitian yang pernah dilakukan di atas, akan dibuat suatu

aplikasi yang memanfaatkan Google Maps API untuk mengetahui informasi

potensi-potensi daerah yang tersebar sepanjang ruas jalan dan detail informasi

jalan di wilayah Kabupaten Tabanan, agar user dapat mengetahui detail informasi

jalan yang meliputi lebar jalan, panjang jalan, tipe jalan, hambatan, kondisi jalan

dan mengetahui potensi-potensi yang tersebar meliputi potensi pertanian,

perkebunan dan potensi pariwisata. Aplikasi ini menggunakan overlay polyline

Google Maps API untuk menggambarkan garis pada peta sesuai koordinat dengan

suatu perintah yang berurut, sebagai pembeda antara penelitian ini dengan

penelitian sebelumnya.

2.2 Tinjauan Pustaka

2.2.1 Sistem Informasi Geografis

Definisi sistem informasi geografis selalu berkembang, bertambah dan

bervariasi. Hal ini dapat dilihat dari banyaknya definisi yang telah ada, berikut ini

beberapa definisi dari Sistem Informasi Geografis:

1. Sistem informasi geografis adalah sistem komputer yang digunakan untuk

memanipulasi data geografi. Sistem ini diimplementasikan dengan perangkat

keras dan perangkat lunak komputer yang berfungsi untuk akusisi dan

verifikasi data, kompilasi data, penyimpanan data, perubahan dan

8

pembaharuan data, manajemen dan pertukaran data, manipulasi data,

pemanggilan dan presentasi data serta analisa data (Bernhardsen, 2002).

2. Sistem informasi Geografis (SIG) adalah sistem berbasis komputer yang

digunakan untuk memasukan, menyimpan, mengelola, menganalisis dan

mengaktifkan kembali data yang mempunyai referensi keruangan untuk

berbagai tujuan yang berkaitan dengan pemetaan dan perencanaan.

(Burrough, 1986)

Sistem informasi geografis dapat diuraikan menjadi beberapa subsistem

sebagai berikut:

1. Data Input

Subsistem ini bertugas untuk mengumpulkan dan mempersiapkan data spasial

dan atribut dari berbagai sumbernya.

2. Data Output

Subsistem ini menampilkan atau menghasilkan keluaran seluruh atau

sebagian basis data baik dalam bentuk softcopy maupun hardcopy.

3. Data Management

Subsistem ini mengorganisasikan baik data spasial maupun atribut ke dalam

sebuah basis data sedemikian rupa sehingga mudah dipanggil, diperbaharui

dan diedit.

4. Data Manipulation & Analysis

Subsistem ini menentukan informasi-informasi yang dapat dihasilkan oleh

SIG.

2.2.1.1 Komponen Sistem Informasi Geografis

Menurut John E. Harmon (2003), secara rinci GIS dapat beroperasi dengan

komponen- komponen sebagai berikut :

1. Orang yang menjalankan sistem meliputi orang yang mengoperasikan,

mengembangkan bahkan memperoleh manfaat dari sistem. Kategori orang

yang menjadi bagian dari GIS beragam, misalnya operator, analis,

programmer, database administratoristrator bahkan stakeholder.

9

2. Aplikasi merupakan prosedur yang digunakan untuk mengolah data menjadi

informasi. Misalnya penjumlahan, klasifikasi, rotasi, koreksi geometri, query,

overlay, buffer dan jointable.

3. Data yang digunakan dalam GIS dapat berupa data grafis dan data atribut.

a. Data posisi/koordinat/grafis/ruang/spasial, merupakan data yang

merupakan representasi fenomena permukaan bumi/keruangan yang

memiliki referensi (koordinat) lazim berupa peta, foto udara, citra satelit

dan sebagainya atau hasil dari interpretasi data tersebut.

b. Data atribut/non-spasial, data yang merepresentasikan aspek-aspek

deskriptif dari fenomena yang dimodelkannya. Misalnya data sensus

penduduk, catatan survei, data statistik lainnya.

4. Software adalah perangkat lunak GIS berupa program aplikasi yang memiliki

kemampuan pengelolaan, penyimpanan, pemrosesan, analisis dan penayangan

data spasial.

5. Hardware, perangkat keras yang dibutuhkan untuk menjalankan sistem berupa

perangkat komputer, printer, scanner, digitizer, plotter dan perangkat

pendukung lainnya.

2.2.1.2 Model Data Sistem Informasi Geografis

Adapun model data yang diolah atau diproses pada Sistem Informasi

Geografis ini antara lain:

1. Data Spasial

Data spasial adalah data yang bereferensi geografis atas representasi obyek

di bumi. Data spasial pada umumnya berdasarkan peta yang berisikan interprestasi

dan proyeksi seluruh fenomena yang berada di bumi. Fenomena tersebut berupa

fenomena alamiah dan buatan manusia. Pada awalnya, semua data dan informasi

yang ada di peta merupakan representasi dari obyek di muka bumi. Sesuai dengan

perkembangan, peta tidak hanya merepresentasikan obyek-obyek yang ada di

muka bumi, tetapi berkembang menjadi representasi obyek diatas muka bumi

(diudara) dan dibawah permukaan bumi. Data spasial memiliki dua jenis tipe yaitu

vektor dan raster. Model data vektor menampilkan, menempatkan, dan

10

menyimpan data spasial dengan menggunakan titik-titik, garis-garis atau kurva,

atau poligon beserta atribut-atributnya. Model data Raster menampilkan, dan

menyimpan data spasial dengan menggunakan struktur matriks atau piksel-piksel

yang membentuk grid. Pemanfaatan kedua model data spasial ini menyesuaikan

dengan peruntukan dan kebutuhannya. (Prahasta, 2001)

2. Data Vektor

Model data vektor adalah yang dapat menampilkan, menempatkan, dan

menyimpan data spasial dengan menggunakan titik-titik, garis atau kurva dan

polygon beserta atribut-atributnya (Prahasta, 2001). Bentuk-bentuk dasar

representasi data spasial ini, di dalam sistem model data vektor, didefinisikan oleh

sistem koordinat kartesian dua dimensi (x, y). Di dalam model data spasial vektor,

garis-garis atau kurva (busur atau arcs) merupakan sekumpulan titik-titik terurut

yang dihubungkan (Prahasta, 2001). Poligon akan terbentuk penuh jika titik awal

dan titik akhir poligon memiliki nilai koordinat yang sama dengan titik awal.

Sedangkan bentuk poligon disimpan sebagai suatu kumpulan list yang saling

terkait secara dinamis dengan menggunakan titik.

3. Data Raster

Objek di permukaan bumi disajikan sebagai elemen matriks atau sel-sel grid

yang homogen. Model data Raster menampilkan, menempatkan dan menyimpan

data spasial dengan menggunakan struktur matriks atau piksel-piksel yang

membentuk grid (Prahasta, 2001) Tingkat ketelitian model data raster sangat

bergantung pada resolusi atau ukuran pikselnya terhadap obyek di permukaan

bumi. Entity spasial raster disimpan di dalam layers yang secara fungsionalitas di

relasikan dengan unsur-unsur petanya (Prahasta, 2001). Meninjau struktur model

data raster identik dengan bentuk matriks. Pada model data raster, matriks atau

array diurutkan menurut koordinat kolom (x) dan barisnya (y) (Prahasta, 2001).

4. Data Non Spasial

Data non-spasial adalah data yang merepresentasikan aspek deskripsi dari

fenomena yang dimodelkan yang mencakup items dan properti, sehingga

informasi yang disampaikan akan semakin beragam. Contoh data non-spasial

adalah: Nama Kabupaten, Jumlah penduduk, Jumlah penduduk laki-laki, Jumlah

11

penduduk perempuan, Nama bupati, Alamat kantor pemerintahan, Alamat Mobile

site, Nama gunung.

2.2.2 Google Maps

Google Maps adalah layanan mapping online yang disediakan oleh

Google. Layanan ini dapat diakses melalui situs http://maps.google.com. Pada

situs tersebut, pengguna dapat melihat informasi geografis pada hampir semua

wilayah di bumi. Layanan ini interaktif, karena di dalamnya peta dapat digeser

sesuai keinginan pengguna, mengubah tingkat zoom, serta mengubah tampilan

peta (Anonim, 2014d).

2.2.2.1 Cara Kerja Google Maps

Google Maps dibuat dengan menggunakan kombinasi dari gambar peta,

database, serta obyek-obyek yang interaktif yang dibuat dengan bahasa

pemrograman HTML, Javascript dan AJAX, dan beberapa bahasa pemrograman

lainnya.

Gambar-gambar peta yang muncul pada layar merupakan hasil komunikasi

dari pengguna dengan database pada web server Google untuk menampilkan

gabungan dari potongan-potongan gambar yang diminta. Keseluruhan citra yang

ada diintegrasikan ke dalam suatu database pada Google Server, yang nantinya

akan dapat dipanggil sesuai kebutuhan permintaan. Bagian-bagian gambar map

merupakan gabungan dari gambar-gambar yang berukuran 256 x 256 pixel.

Tiap-tiap 256 x 256 tile mewakili gambar tertentu dalam longitude,

latitude dan zoom level tertentu. Informasi-informasi tersebut dirangkum dalam

alamat URL dari tile. Sehingga untuk menampilkan peta suatu daerah tertentu,

dapat dilakukan dengan mengirimkan URL tile yang diinginkan (Anonim, 2014d).

2.2.2.2 Google Maps API

Google meluncurkan Google Maps API pada bulan Juni 2005 untuk

memungkinkan pengembang untuk mengintegrasikan Google Maps. Google

adalah layanan gratis, dan saat ini tidak berisi iklan, namun Google menyatakan

12

dalam istilah mereka penggunaan bahwa mereka berhak untuk menampilkan iklan

di masa depan. Dengan menggunakan Google Maps API, para developer

memungkinkan untuk menanamkan Google Maps situs ke situs eksternal, dimana

data situs tertentu dapat menambahkan overlay sesuai dengan yang mereka

inginkan. Meskipun awalnya hanya sebuah API JavaScript, API Maps telah

diperluas untuk mencakup sebuah API untuk aplikasi Adobe Flash, sebuah

layanan untuk mengambil gambar peta statis, dan layanan web untuk melakukan

geocoding, menghasilkan arah mengemudi, dan mendapatkan profil ketinggian.

Lebih dari 350.000 situs web menggunakan Google Maps API, sehingga web

yang paling banyak digunakan pengembangan aplikasi API dari Google Maps. Di

bawah ini contoh cara untuk menampilkan map pada sebuah website.

<!DOCTYPE html>

<html>

<head>

<title>Simple Map</title>

<meta name="viewport" content="initial-scale=1.0, user-

scalable=no">

<meta charset="utf-8">

<style>

html, body, #map-canvas {

margin: 0;

padding: 0;

height: 100%;

}

</style>

<script

src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=fal

se"></script>

<script>

var map;

function initialize() {

var mapOptions = {

zoom: 8,

center: new google.maps.LatLng(-34.397, 150.644),

mapTypeId: google.maps.MapTypeId.ROADMAP

};

map = new google.maps.Map(document.getElementById('map-

canvas'),

mapOptions);

}

google.maps.event.addDomListener(window, 'load', initialize);

13

</script>

</head>

<body>

<div id="map-canvas"></div>

</body>

</html>

Berdasarkan Kode Program di atas, ada beberapa hal yang harus diketahui,

yaitu:

1. Pengguna mendeklarasikan aplikasi menggunakan HTML 5 menggunakan

deklarasi kode <!DOCTYPE html>.

2. Pengguna memasukkan javascript Google Maps API menggunakan sebuah

script tag.

3. Pengguna membuat sebuah elemen div diberi nama “map_canvas” untuk

memasukan peta.

4. Pengguna membuat sebuah literal objek javascipt untuk menampung data

properti peta.

5. Pengguna menulis fungsi javascrip untuk membuat sebuah objek “map”.

6. Pengguna bisa menginisialisasikan objek peta dari body tag's onload event.

Google Maps API memiliki beberapa pembagian jenis API berdasarkan

fungsi seperti Map, Control, Overlay, Services, Map Types, Layers, Street View,

Events, Base, MVC, Geometry Library, AdSesnse Library, Panoramio Library,

Places Library, Drawing Library, Weather Library (Anonim, 2014d).

2.2.2.3 Google Maps API Drawing on Map

Google Maps API drawing on map atau menggambar pada peta

merupakan salah satu layanan yang disediakan oleh Google Maps untuk para

developer yang ingin mengembangkan Google Maps menjadi sebuah aplikasi.

Drawing on map ini merupakan layanan Google Maps yang digunakan untuk

menambahkan objek dalam peta yang berupa titik, garis, bidang, atpeu benda –

benda. Google Maps JavaScript API menyebut objek ini sebagai overlay, overlay

merupakan suatu objek yang terikat dengan lintang atau bujur, sehingga saat objek

dapat ikut bergerak saat di drag atau di zoom sesuai posisi pada peta.

14

Google Maps API memiliki beberapa jenis overlay yang dapat digunakan

untuk membantu para developer mengembangkan Google Maps menjadi sebuah

aplikasi. Polyline adalah salah satu overlay yang dapat digunakan untuk

menggambar garis pada peta. polyline mendefinisikan overlay linear dari segmen

garis yang terhubung pada peta. Sebuah objek polyline terdiri dari array lokasi

latitude, longitude (koordinat), dan menciptakan serangkaian segmen garis yang

didapat dari menghubungkan titik - titik koordinat dalam suatu perintah yang

berurutan. (Anonim, 2014e)

2.2.2.4 Menambahkan dan Menyesuaikan Polyline

Untuk menambahkan polyline pada peta, suatu objeck polyline haurs

dibuat terlebih dahulu dengan mengambil satu set PolylineOptions dan

menentukan koordinat LatLng dan baris dan menyesuaikan visual polyline itu

pada peta. Objek polyline diambil sebagai suatu rangkaian segmen lurus yang

terdiri dari titik – titik kordinat berurutan pada peta. Kita dapat menentukan

warna, bobot, dan kekeruhan untuk stroke dari suatu line dalam PolylineOptions

ketika membuat suatu polyline, atau kita dapat mengubah properti-properti yang

setelah pembuatan polyline tersebut.

Menyesuaikan suatu objek polyline dapat kita lakukan dengan

menambahkan gambar berbasis vector ke polyline dalam bentuk simbol.

Menggunakan kombinasi simbol dan kelas pada PolylineOptions, kita memiliki

banyak kontrol atas tampilan dan nuansa dari polyline yang telah kita buat pada

peta. Lihat Simbol untuk informasi tentang panah, garis putus-putus, simbol adat

dan simbol animasi. (Anonim, 2014e)

Sebuah polyline didalam pembuatannya didukung beberapa style

diantaranya:

1. StrokeColor digunakan untuk menentukan warna HTML heksadesimal

dengan format "# FFFFFF", karena polyline tidak didukung dalam penamaan

warna.

15

2. StrokeOpacity digunakan untuk menetapkan nilai numerik antara 0,0 dan 1,0

dalam menentukan opacity warna garis itu. Standarnya adalah 1,0.

3. StrokeWeight digunakan untuk menentukan lebar garis dalam pixel.

Berikut adalah contoh kode program dalam menambahkan polyline dari

Drawing on map Google Maps API :

function initialize() {

var mapOptions = {

zoom: 3,

center: new google.maps.LatLng(0, -180),

mapTypeId: google.maps.MapTypeId.TERRAIN

};

var map = new google.maps.Map(document.getElementById('map-

canvas'),

mapOptions);

var flightPlanCoordinates = [

new google.maps.LatLng(37.772323, -122.214897),

new google.maps.LatLng(21.291982, -157.821856),

new google.maps.LatLng(-18.142599, 178.431),

new google.maps.LatLng(-27.46758, 153.027892)

];

var flightPath = new google.maps.Polyline({

path: flightPlanCoordinates,

geodesic: true,

strokeColor: '#FF0000',

strokeOpacity: 1.0,

strokeWeight: 2

});

flightPath.setMap(map);

}

2.2.2.5 Menghapus Polyline

Dalam menggunakan layanan polyline kita harus mengetahui bagaimana

menghapus polyline tersebut. Untuk menghapus polyline dari peta, kita

menggunakan kode program “setMap ()” dan kode program “null” sebagai

argumen. Dalam contoh berikut, Flightpath adalah suatu objek polyline yang akan

dihapus. ( Anonim, 2014e)

16

Berikut adalah contoh kode program dalam menghapus polyline dari

Drawing on map Google Maps API :

FlightPath.setMap(null);

Dalam menghapus suatu polyline, pertama kita harus menghapusnya dari

peta, dan kemudian mengatur kondisi polyline itu sendiri ke null .

2.2.3 Data Flow Diagram (DFD)

Data Flow Diagram ( DFD ) adalah diagram yang menggunakan notasi-

notasi untuk menggambarkan arus dari sistem. DFD sering digunakan untuk

menggambarkan suatu sistem yang telah ada atau sistem baru yang akan

dikembangkan secara logika tanpa mempertimbangkan lingkungan fisik dimana

data tersebut mengalir misalnya lewat telepon, surat, dan sebagainya atau

lingkungan fisik dimana data tersebut akan disimpan misalnya file kartu, hardisk,

tape, diskette, dan lain sebagainya. Simbol- simbol yang digunakan dalam DFD

mewakili maksud tertentu yaitu (Ardhiansyah, 2010):

1. External entity (kesatuan luar) atau boundary (batas sistem)

Setiap sistem pasti memiliki batas sistem (boundary) yang memisahkan

suatu sistem dengan dengan lingkungan luarnya. Kesatuan luar (external

entity) merupakan kesatuan di lingkungan luar sistem yang dapat berupa

orang, organisasi atau sistem lainnya yang berada di lingkungan luarnya yang

memberikan input atau menerima output dari sistem.

2. Data flow (arus data)

Arus data di DFD diberi simbol panah, Arus data ini mengalir diantara

proses, simpangan, dan kesatuan luar.

3. Process (proses)

Suatu proses adalah kegiatan atau kerja yang dilakukan oleh orang, mesin

atau komputer dari hasil suatu arus data yang masuk ke dalam proses untuk

dihasilkan arus data yang akan keluar dari proses.

4. Data store (simpanan data)

17

Simpanan data (data store) merupakan simpanan dari data yang dapat

berupa suatu file atau database di komputer, suatu arsip atau catatan manual

dan lain sebagainya.

Tabel 2.1. Komponen DFD

Notasi

Yourdon/DeMarco

Notasi

Gane&Sarson

Keterangan

Entitas

Aliran data

Proses

Database

(Sumber: Ardhiansyah, 2010)

2.2.4 Basis Data

Data adalah fakta mengenai objek, orang, dan lain-lain. Data dinyatakan

dengan nilai (angka, deretan karakter, atau simbol). Pengguna sistem basis data

bisa melakukan berbagai operasi, antara lain (Kadir, 2009):

1. Menambahkan file baru ke sistem basis data.

2. Mengosongkan berkas.

3. Menyisipkan data ke suatu berkas.

4. Mengambil data yang ada pada suatu berkas.

5. Mengubah data pada suatu berkas.

6. Menghapus data pada suatu berkas.

7. Menyajikan suatu informasi yang diambil dari sejumlah berkas.

18

2.2.4.1 Model Basis Data

Model basis data menyatakan hubungan antar rekanan yang tersimpan

dalam basis data. Beberapa literatur menggunakan istilah struktur data logis untuk

menyatakan keadaan ini. Model dasar yang paling umum ada 3 macam, yaitu

(Kadir, 2009):

1. Model hirarkis

Model hirarkis biasa disebut dengan model pohon, karena menyerupai

pohon yang dibali. Model ini menggunakan pola hubungan orangtua-anak.

Contoh di bawah ini memperlihatkan hubungan dosen dan kelas yang

dipimpinnya, serta mahasiswa yang mengikuti masing-masing (Kadir, 2009).

2. Model jaringan

Model ini menyerupai model hirarkis, dengan perbedaan suatu simpul

anak bisa memiliki satu orang tua. Oleh karena sifatnya yang demikian, model ini

bisa menyatakan hubungan 1:1 (satu orangtua punya satu anak), 1:M (satu

orangtua punya banyak anak), maupun N:M (Beberapa anak bisa mempunyai

beberapa orangtua) (Kadir, 2009).

3. Model Relasional

Model relasional merupakan model yang paling sederhana sehingga

mudah digunakan dan dipahami oleh pengguna, serta merupakan yang paling

populer saat ini. Model ini menggunakan sekumpulan tabel berdimensi dua (yang

disebut relasi atau tabel), dengan masing-masing relasi tersusun atas baris atau

atribut. Tabel-tabel berikut akan menggambarkan konsep dari relasional (Kadir,

2009).

2.2.4.2 Entity Relationship Diagram (ERD)

Entity Relationship Diagram (ERD) adalah sekumpulan cara atau

peralatan untuk mendeskripsikan data-data atau objek-objek yang dibuat

berdasarkan dan berasal dari dunia nyata yang disebut entitas (entity) serta

hubungan (relationship) antar entitas-entitas tersebut dengan menggunakan

beberapa notasi.

19

Entitas digambarkan dalam basis data dengan kumpulan atribut. Misalnya:

nim, nama, alamat, dan kota. Relasi adalah hubungan antara beberapa entitas.

Misalnya: relasi menghubungkan mahasiswa dengan mata kuliah yang

diambilnya. Struktur logis (skema database) dapat ditunjukkan secara grafis

dengan diagram ER yang dibentuk dari komponen-komponen berikut Komponen-

komponen pembentuk ERD dapat di lihat pada tabel 2.1.

Tabel 2.2 Komponen ERD

(Sumber: Edi, 2009)

Pemetaan kardinalitas menyatakan jumlah entitas di mana entitas lain

dapat dihubungkan ke entitas tersebut melalui sebuah himpunan relasi. Hubungan

relasi dibagi sebagai berikut (Edi, 2009):

1. One to One

Sebuah entitas pada A berhubungan dengan paling banyak satu entitas

pada B dan sebuah entitas pada B berhubungan dengan paling banyak satu entitas

pada A. Contoh : Pada les privat, satu guru satu siswa. Seorang guru mengajar

seorang siswa, seorang siswa diajar oleh seorang guru.

2. One to Many/ Many to One

Sebuah entitas pada A berhubungan dengan lebih dari satu entitas pada B

dan sebuah entitas pada B berhubungan dengan paling banyak satu entitas pada A,

atau sebaliknya (Many to One). Contoh : Dalam satu restoran, satu bagian

mempekerjakan banyak pegawai. Satu bagian mempekerjakan banyak pegawai,

satu pegawai kerja dalam satu bagian.

Notasi Komponen

Entitas

Atribut

Relasi

_______________ Penghubung antar entitas,

atribut, dengan relasi

20

3. Many To Many

Sebuah entitas pada A berhubungan dengan lebih dari satu entitas pada B

dan sebuah entitas pada B berhubungan dengan lebih dari satu entitas pada A.

Contoh: Dalam universitas, seorang mahasiswa dapat mengambil banyak mata

kuliah. Satu mahasiswa mengambil banyak mata kuliah dan satu mata kuliah

diambil banyak mahasiswa.

2.2.4.3 MySQL

MySQL database server RDBMS (Relation Database Management

System) yang dapat menangani data yang bervolume besar. Meskipun begitu,

tidak menutut resource yang besar. MySQL adalah pemrograman database yang

mampu mengirim dan menerima data dengan sangat cepat dan multi user.

Kelebihan dan keuntungan dibanding database lain, di antaranya adalah

(Anonim,2010):

1. Banyak ahli berpendapat MySQL merupakan server tercepat.

2. MySQL merupakan sistem manajemen database yang terbuka.

3. Memiliki perforrma yang tinggi tapi sederhana.

4. Database mengerti bahasa SQL.

5. Dapat diakses melalui protocol ODBC (Open Database Connectivity).

6. Semua Clien dapat mengakses server dalam satu waktu tanpa harus menunggu

yang lain untuk mengakses database.

7. Database MySQL dapat diakases dari semua tempat di internet dengan hak

akses tertentu.

8. MySQL merupakan database yang mampu menyimpan data berkapasistas

besar, sampai berukuran Gigabyte.

9. MySQL dapat berjalan di berbagai operating system seperti linux, windows,

solaris, dan lain-lain.

Sebagai perangkat lunak manajemen basis data, MySQL memiliki beberapa

keistimewaan antara lain:

1. Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi

seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan

masih banyak lagi.

21

2. Perangkat lunak sumber terbuka. MySQL didistribusikan sebagai perangkat

lunak sumber terbuka, di bawah lisensi GPL sehingga dapat digunakan secara

gratis.

3. Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam waktu

yang bersamaan tanpa mengalami masalah atau konflik.

4. Performance tuning, MySQL memiliki kecepatan yang menakjubkan dalam

menangani query sederhana, dengan kata lain dapat memproses lebih banyak

SQL per satuan waktu.

5. Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya, seperti

signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-

lain.

6. Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh

yang mendukung perintah Select dan Where dalam perintah (query).

7. Keamanan. MySQL memiliki beberapa lapisan keamanan seperti

level subnetmask, nama host, dan izin akses user dengan sistem perizinan

yang mendetail serta sandi terenkripsi.

8. Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam

skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu

tabel serta 5 miliar baris. Selain itu batas index yang dapat ditampung

mencapai 32 index pada tiap tabelnya.

9. Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan

protocol TCP/IP, Unix soket (UNIX), atau Named Pipes (NP).

10. Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada clien dengan

menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa

Indonesia belum termasuk di dalamnya.

11. Antar Muka. MySQL memiliki antar muka (interface) terhadap berbagai

aplikasi dan bahasa pemrograman dengan menggunakan fungsi API

(Application Programming Interface).

12. Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tools)

yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan

yang ada disertakan petunjuk online.

22

13. Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam

menangani ALTER TABLE, dibandingkan basis data lainnya semacam

PostgreSQL ataupun Oracle.

2.2.4.4 Tipe Data MySQL

Untuk tipe data dari MySQL itu sendiri dapat dibedakan menjadi tiga jenis

tipe data yaitu :

1. Tipe data untuk bilangan

Tipe data bilangan digunakan untuk menyimpan data berupa bilangan atau

numeric (angka) seperti bilangan bulat dan bilangan pecahan. Berikut ini tabel

tipe data bilangan.

Tabel 2.3 Tipe Data Bilangan

No Tipe Data Keterangan

1. TINYINT Ukuran 1 byte. Bilangan bulat terkecil, dengan

jangkauan untuk bilangan bertanda -128 sampai

dengan 127 dan untuk yang tidak bertanda 0

sampai dengan 255. Bilangan tak bertanda ditandai

dengan kata UNSIGNED

2. SMALLINT Ukuran 2 byte. Bilangan bulat dengan jangkauan

untuk bilangan bertanda -32768 sampai dengan

32767 dan untuk yang tidak bertanda 0 sampai

dengan 65535

3. MEDIUMINT Ukuran 3 byte. Bilangan bulat dengan jangkauan

untuk bilangan bertanda -8388608 sampai dengan

8388607 dan untuk yang tidak bertanda 0 sampai

dengan 16777215

4. INT Ukuran 4 byte. Bilangan bulat dengan jangkauan

untuk bilangan bertanda -2147483648 sampai

23

dengan 2147483647 dan untuk yang tidak

bertanda 0 sampai dengan 4294967295

5. INTEGER Sama dengan INT.

6. BIGINT Ukuran 8 byte. Bilangan bulat dengan jangkauan

untuk bilangan bertanda -9223372036854775808

sampai dengan 9223372036854775807 dan untuk

yang tidak bertanda 0 sampai dengan

184467440737079551615

7. FLOAT Ukuran 4 byte. Bilangan pecahan.

8. DOUBLE Ukuran 8 byte. Bilangan pecahan.

9. DOUBLE

PRECISION

Ukuran 8 byte. Bilangan

pecahan berpresisi ganda.

10. REAL Ukuran 8 byte. Sinonim dari DOUBLE.

11. DECIMAL(M,D) Ukuran M byte. Bilangan pecahan. Misalnya

DECIMAL(5,2) dapat digunakan untuk

menyimpan bilangan -99,99 sampai dengan 99,99

12. NUMERIC(M,D) Ukuran M byte. Sama dengan Decimal.

sumber: Anonim, 2010

2. Tipe waktu

Tipe data ini digunakan untuk menyimpan data tanggal dan waktu. Berikut

merupakan tabel tipe data tanggal dan waktu.

Tabel 2.4 Tipe Data Waktu

No Tipe Data Keterangan

1. DATETIME Ukuran 8 byte. Kombinasi tanggal dan jam dengan

jangkauan dari „1000-01-01 00:00:00‟ sampai dengan

„9999-12-31‟

23:59:59‟

24

2. DATE Ukuran 8 byte. Kombinasi tanggal dan jam dengan

jangkauan dari „1000-01-01‟ sampai dengan „9999-12-

31‟

3. TIMESTAMP Ukuran 4 byte. Kombinasi tanggal dan jam dengan

jangkauan dari „1970-01-01‟ sampai dengan „2037 ‟

4. TIME Ukuran 3 byte.waktu dengan jangkauan dari-838:59:59

sampai dengan 838:59:59

5. YEAR Ukuran 1 byte. Data tahun antara 901

sampai dengan 2155

sumber: Anonim, 2010

3. Tipe data untuk karakter dan lain-lain

Tipe data ini digunakan untuk menyimpan semua karakter (teks) yang

penulisannya selalu diapit oleh tanda kutip baik kutip tunggal („) maupun kutip

ganda (“). Berikut merupakan tabel dari tipe data karakter dan lain-lain.

Tabel 2.5 Tipe Data Karakter

No Tipe Data Keterangan

1. CHAR(M) Ukuran M byte, 1<=M<=255. Data string

dengan panjang yang tetap. CHAR(1) cukup

ditulis dengan CHAR.

2. VARCHAR(M) Ukuran L+1 byte dengan L<=M dan

1<=M<=255. Data string dengan panjang

bervariasi tergantung datanya.

3. TINYBLOB,

TINYTEXT

L+1 byte, dengan L<28 . Tipe TEXT atau

BLOB dengan panjang maksimum 255

karakter.

25

4. BLOB, TEXT L+2 byte, dengan L<216 . Tipe TEXT atau

BLOB dengan panjang maksimum 65535

karakter.

5. MEDIUMBLOB,

MEDIUMTEXT

L+3 byte, dengan L<224. Tipe TEXT atau

BLOB dengan panjang maksimum 1677215

karakter.

6. LONGBLOB,

LONGTEXT

L+4 byte, dengan L<232. Tipe TEXT atau

BLOB dengan panjang maksimum

4294967295 karakter.

7. ENUM(‟nilai1‟,‟nilai2‟,..) Ukuran 1 atau 2 byte tergantung nilai

numerasinya maks 65535 nilai

8. SET(‟nilai1‟,‟nilai2‟,..) Ukuran 1,2,3,4 atau 8 byte tergantung jumlah

anggota himpunan maksimal 64 anggota.

sumber: Anonim, 2010

2.2.5 Pemrograman Berbasis Web

Perkembangan internet tidak terlepas dari web atau World Wide Web,

disingkat WWW. Web sebagai sumber informasi yang terdapat dalam diri internet

memiliki kemudahan bagi pencari informasi untuk mengaksesnya, tanpa dibatasi

oleh ruang dan waktu. Namun yang perlu diingat adalah bahwa World Wide Web

bukanlah internet, demikian pula sebaliknya, internet bukanlah web. Web terdiri

dari dokumen cross-linked yang disebut page, yang dikelola oleh internet

(Charter, 2004).

Banyak keuntungan yang diberikan oleh Aplikasi berbasis Web dari pada

aplikasi berbasis desktop, sehingga aplikasi berbasis web telah diadopsi oleh

perusahaan sebagai bagian dari strategi teknologi informasinya, karena beberapa

alasan:

1) Akses informasi mudah.

2) Setup server lebih mudah.

26

3) Informasi mudah didistribusikan.

4) Bebas platform, informasi dapat disajikan oleh browser web pada sistem

operasi mana saja karena adanya standar dokumen berbagai tipe data dapat

disajikan.

Pemrograman berbasis web menggunakan beberapa bahasa yang berbeda

yang saling mendukung antara yang satu dengan yang lainnya. Beberapa bahasa

tersebut diantaranya:

2.2.6 HyperText Markup Language (HTML)

HyperText Markup Language (HTML) adalah sebuah bahasa markup yang

digunakan untuk membuat sebuah halaman web dan menampilkan berbagai

informasi di dalam sebuah browser Internet (Kadir, 2002). Bermula dari sebuah

bahasa yang sebelumnya banyak digunakan di dunia penerbitan dan percetakan

yang disebut dengan SGML (Standard Generalized Markup Language), HTML

adalah sebuah standar yang digunakan secara luas untuk menampilkan halaman

web. HTML saat ini merupakan standar Internet yang didefinisikan dan

dikendalikan penggunaannya oleh World Wide Web Consortium (W3C).

HTML berupa kode-kode tag yang menginstruksikan browser untuk

menghasilkan tampilan sesuai dengan yang diinginkan. Sebuah file yang

merupakan file HTML dapat dibuka dengan menggunakan browser web seperti

Google Chrome, Mozilla Firefox, Opera, Safari atau Microsoft Internet Explorer.

HTML juga dapat dikenali oleh aplikasi pembuka email ataupun dari PDA dan

program lain yang memiliki kemampuan browser. (Kadir, 2002) Secara garis

besar, terdapat empat jenis elemen dari HTML:

1) Structural. Tanda yang menentukan level atau tingkatan dari sebuah teks

(contoh akan memerintahkan browser untuk menampilkan "Golf" sebagai

teks tebal besar yang menunjukkan sebagai Heading 1.

2) Presentational. Tanda yang menentukan tampilan dari sebuah teks tidak

peduli dengan level dari teks tersebut (contoh, boldface akan menampilkan

bold. Tanda presentational saat ini sudah mulai digantikan oleh CSS dan

tidak direkomendasikan untuk mengatur tampilan teks.

27

3) Hypertext. Tanda yang menunjukkan pranala ke bagian dari dokumen

tersebut atau pranala ke dokumen lain (contoh, Harga Laptop akan

menampilkan "Harga Laptop" sebagai sebuah hyperlink ke URL tertentu).

4) Elemen widge yang membuat objek-objek lain seperti tombol (<button>), list

(<li>), dan garis horizontal (<hr>).

Selain Markup Presentational, Markup yang lain tidak menentukan

bagaimana tampilan dari sebuah teks. Namun untuk saat ini, penggunaan tag

HTML untuk menentukan tampilan telah dianjurkan untuk mulai ditinggalkan dan

sebagai gantinya digunakan Cascading Style Sheets.

2.2.7 JavaScript

JavaScript merupakan bahasa yang berbentuk kumpulan skrip yang

berfungsi untuk memberikan tampilan yang tampak lebih interaktif pada dokumen

web. Bahasa ini berisi skrip yang pemasangannya terselip di sebuah dokumen

HTML, sehingga bahasa ini tidaklah memerlukan sebuah kompilator atau

penerjemah khusus untuk mengeksekusinya. JavaScript bukan bahasa berorientasi

objek, melainkan bahasa berbasis objek. Bahasa berorientasi objek harus

mendukung tiga konsep dasar, yaitu pemasukan, pewarisan dan polimorfisme

(Kadir, 2002). Dalam penulisan bahasa pemrograman, tentu memiliki kelebihan

dan kekurangan, begitu pula dengan program bahasa JavaScript. Adapun

kelebihan dari penggunaan JavaScript adalah sebagai berikut:

1. Lebih Praktis dan mudah sebab bahasa pemrograman JavaScript memiliki

sedikit sintaks.

2. Koneksi cepat sebab peletakan program terdapat di sisi client, ukuran file

sangat kecil, dan dapat langsung dijalankan di browser.

Sedangkan kekurangan dari bahasa pemrograman JavaScript antara lain :

1. Pengelolaan objek dalam JavaScript sangan berbatas.

2. Penggunaan Script dapat di copy langsung melalui sebuah web browser,

sehingga user dapat menggunakan program JavaScript yang telah di buat.

28

2.2.8 AJAX

AJAX atau yang memiliki kepanjangan Asynchronous JavaScript and

XMLHTTP adalah suatu teknik pemrograman berbasis web untuk menciptakan

aplikasi web interaktif. AJAX mampu meningkatkan interaktivitas, kecepatan, dan

usability, dengan proses memindahkan sebagian besar interaksi pada komputer

web surfer, melakukan pertukaran datadengan server di belakang layar, sehingga

halaman web tidak harus dibaca ulang secara keseluruhan setiap kali seorang

pengguna melakukan perubahan. AJAX merupakan kombinasi dari beberapa

struktur (Anonim, 2014a):

1. DOM yang diakses dengan client side scripting language, seperti VBScript

dan implementasi ECMAScript seperti JavaScript dan JScript, untuk

menampilkan secara dinamis dan berinteraksi dengan informasi yang

ditampilkan.

2. Objek XMLHTTP dari Microsoft atau XMLHttpRequest yang lebih umum di-

implementasikan pada beberapa browser. Objek ini berguna sebagai

kendaraan pertukaran data asinkronus dengan web server. Pada beberapa

framework AJAX, element HTML IFrame lebih dipilih daripada XMLHTTP

atau XMLHttpRequest untuk melakukan pertukaran data dengan web server.

3. XML umumnya digunakan sebagai dokumen transfer, walaupun format lain

juga memungkinkan, seperti HTML, plain text. XML dianjurkan dalam

pemakaian teknik AJAX karena kemudahan akses penanganannya dengan

memakai DOM.

4. JSON dapat menjadi pilihan alternatif sebagai dokumen transfer, mengingat

JSON adalah JavaScript itu sendiri sehingga penanganannya lebih mudah.

Seperti halnya DHTML, LAMP, atau SPA, AJAX bukanlah teknologi

spesifik, melainkan merupakan gabungan dari teknologi yang dipakai

bersamaan. Bahkan, teknologi turunan atau komposit yang berdasarkan

AJAX, seperti AFLAX sudah mulai bermunculan.

29

2.2.9 JSON

JavaScript Object Notation yang lebih dikenal dengan sebutan JSON

adalah format pertukaran data yang ringan, mudah dibaca dan ditulis oleh

manusia, serta mudah diterjemahkan dan dibuat (generate) oleh komputer. Format

ini dibuat berdasarkan bagian dari Bahasa Pemrograman JavaScript, Standar

ECMA-262 Edisi ke-3 - Desember 1999. JSON merupakan format teks yang tidak

bergantung pada bahasa pemrograman apapun karena menggunakan gaya bahasa

yang umum digunakan oleh programmer keluarga C termasuk C, C++, C#, Java,

JavaScript, Perl, Python dan lain sebagainya. Oleh karena sifat-sifat tersebut,

menjadikan JSON ideal sebagai bahasa pertukaran-data. JSON terbuat dari dua

struktur yaitu (Anonim, 2014b).

1. Kumpulan pasangan nama/nilai. Pada beberapa bahasa, hal ini dinyatakan

sebagai objek (object), rekaman (record), struktur (struct), kamus

(dictionary), tabel hash (hash table), daftar berkunci (keyed list), atau

associative array.

2. Daftar nilai terurutkan (an ordered list of values). Pada kebanyakan bahasa,

hal ini dinyatakan sebagai larik (array), vektor (vector), daftar (list), atau

urutan (sequence).

Struktur-struktur data ini disebut sebagai struktur data universal. Pada

dasarnya, semua bahasa pemrograman modern mendukung struktur data ini dalam

bentuk yang sama maupun berlainan. Hal ini pantas disebut demikian karena

format data mudah dipertukarkan dengan bahasa-bahasa pemrograman yang juga

berdasarkan pada struktur data ini. JSON menggunakan bentuk sebagai berikut:

Objek adalah sepasang nama/nilai yang tidak terurutkan. Objek dimulai

dengan { (kurung kurawal buka) dan diakhiri dengan } (kurung kurawal tutup).

Setiap nama diikuti dengan : (titik dua) dan setiap pasangan nama/nilai

dipisahkan oleh, (koma).

30

Gambar 2.1 Gambaran JSON dalam bentuk Objek

(Sumber: Anonim, 2014b)

Larik adalah kumpulan nilai yang terurutkan. Larik dimulai dengan [

(kurung kotak buka) dan diakhiri dengan ] (kurung tutup kotak). Setiap nilai

dipisahkan oleh (koma).

Gambar 2.2 Gambaran JSON dalam bentuk Array

(Sumber: Anonim, 2014b)

Nilai (value) dapat berupa string dalam tanda kutip ganda, atau angka, atau

true atau false atau null atau sebuah objek atau sebuah larik. Struktur-struktur

tersebut dapat disusun bertingkat.

31

Gambar 2.3 Gambaran JSON dalam bentuk Value

(Sumber: Anonim, 2014b)

String adalah kumpulan dari nol atau lebih karakter Unicode, yang berada

di dalam tanda kutip ganda. Di dalam String dapat menggunakan backslash

escapes “\” untuk membentuk karakter khusus. Sebuah karakter mewakili karakter

tunggal pada string.

Gambar 2.4 Gambaran JSON dalam bentuk String

(Sumber: Anonim, 2014b)

Number sangat mirip dengan angka di C atau Java, kecuali apabila format oktal

dan heksa desimal tidak digunakan.

32

Gambar 2.5 Gambaran JSON dalam bentuk Number

( Sumber: Anonim, 2014b )

2.2.10 Ruby on Rails

Ruby memiliki berapa kelebihan sehingga sering digunakan untuk

membuat suatu program. Ruby itu sendiri adalah bahasa pemrograman yang

bersifat dinamis berbasis skrip, yang berorientasi objek. Tujuan dari Ruby adalah

menggabungkan kelebihan dari semua bahasa-bahasa pemrograman skrip yang

ada di dunia. Ruby ditulis dengan bahasa pemrograman C dengan kemampuan

seperti Pearl dan Phyton. (Anonim, 2014c)

Kelebihan Ruby:

1. Sintaks sederhana.

2. Memiliki exception handling yang baik.

3. Bahasa Pemrograman Berorientasi Objek.

4. Mengusung konsep single inheritance.

5. Open source, siapa saja dapat menggunakannya dengan cuma-cuma dan dapat

ikut berpartisipasi mengembangkannya.

6. Memiliki garbage collector yang secara otomatis akan menghapus informasi

tak terpakai dari memori.

2.2.10.1 Gambaran Teknis Ruby on Rails

Ruby on Rails menggunakan arsitektur Model/View/Controller (MVC)

untuk mengorganisasikan program sebuah aplikasi. Pengaturan awal pada sebuah

model di framework Ruby on Rail yaitu memetakan sebuah tabel dalam sebuah

33

database. Dengan konvensi, sebuah model yang diberi nama User akan dipetakan

ke tabel-tabel lain yang dibuat ke di dalam database, dan model tersebut akan

memiliki nama sesuai dengan nama yang diinputkan dalam app/models.

Sementara pengembang dapat memilih untuk menggunakan, apapun nama model

dan nama tabel database yang mereka inginkan, ini pada umumnya lebih susah

karena filsafat rails adalah dengan menggunakan konvensi di atas konfigurasi.

Sebuah controller adalah komponen Rails yang merespon permintaan eksternal

dari server web ke aplikasi tersebut, dan menanggapi permintaan eksternal dengan

menentukan file tampilan untuk dirender. Controller juga memungkinkan untuk

query langsung ke model untuk memberikan informasi kepada tampilan (view).

Sebuah controller dapat memberikan satu atau lebih tindakan (actions).

Ruby on Rails, action biasanya sebuah unit dasar yang menggambarkan

aturan tunggal tentang cara untuk menanggapi permintaan eksternal yang spesifik

pada web browser. Dengan catatan lain jika sebuah controller/action tidak

dikonfigurasi atau dipetakan di router pada rails, controller/actions tidak dapat di

akses dari web request. Rails mendorong para pengembang untuk menggunakan

route RESTful, di mana di dalamnya terdapat action seperti create, new, edit,

update, destroy, show dan index.

Sebuah "view" pada konfigurasi default Rails berbentuk file ERB. Hal ini

biasanya dikonversi ke output html pada saat run-time, meskipun, secara teori,

format apapun dapat digunakan sebagai tampilan. Tools yang dimiliki Ruby on

Rails pada umumnya membuat para pengembang software lebih mudah dalam

pengerjaan seperti scaffolding yang dapat secara otomatis membuat model

controller dan view untuk sebuah web dasar. Dan juga Ruby on Rails terdapat

WEBrick, sebuah web server ruby yang sederhana yang didistibusikan oleh Ruby,

dan Rake, sebuah pembuatan sistem, didistribusikan seperti sebuah gem. Bersama

dengan menggunakan Ruby on Rails, alat ini menyediakan lingkungan

pengembangan dasar. (Anonim, 2014c)

Ruby on Rails juga penting untuk penggunaan aplikasi yang luas dari

Library Prototipe. JavaScript dan Script.aculo.us untuk Ruby on Rails SOAP

34

AJAX agar lebih ringan untuk digunakan untuk layanan web. Ruby on Rails 3.0

menggunakan teknik yang disebut Unobtructive JavaScript untuk memisahkan

fungsi (atau logika) dari struktur dari halaman web. jQuery mendukung penuh

sebagai pengganti Prototipe dan, di Rails 3.1 merupakan dasar JavaScript

library, yang mencerminkan industri bergerak lebar ke arah menggunakan jQuery.

2.2.10.2 Framework Structure

Ruby on Rails dipisahkan menjadi berbagai paket, yaitu ActiveRecord

(sistem object-relational mapping untuk akses database), ActiveResource

(menyediakan layanan web), ActionPack, ActiveSupport dan ActionMailer.

Sebelum versi 2.0, Ruby on Rails juga memasukan Web Service package yang

sekarang digantikan oleh Active Resource. Selain paket standar, pengembang

dapat membuat plugin untuk menambahkan paket yang ada. (Anonim, 2014c)

2.2.10.3 Deployment

Ruby on Rails sering diinstal menggunakan rubygems, sebuah manajer

paket yang disertakan dengan versi terbaru dari Ruby. Banyak distribusi Linux

juga mendukung instalasi Ruby on Rails dan dependensinya melalui sistem

manajemen denga paket asli yang mereka miliki Ruby on Rails biasanya

dikembangkan dengan server database seperti MySQL atau PostgreSQL, dan web

server seperti Apache menjalankan modul Phusion Passenger. Ada banyak

layanan hosting Ruby on Rails seperti Heroku, Engine Yard, dan Rails

Playground. (Anonim, 2014c)

2.2.10.4 Philosophy and Design

Ruby on Rails dimaksudkan untuk menekankan Convention over

Configuration (CoC), dan prinsip pengembangan yang cepat Don't Repeat

Yourself (DRY). "Convention over Configuration" berarti pengembang hanya

perlu menentukan aspek konvensional dari aplikasi. Sebagai contoh, jika ada class

Sales dalam model, tabel terkait dalam database akan diberi nama Sales secara

default. Akan ada suatu penyimpangan dari konvensi ini, seperti memanggil tabel

35

“products sold”. Para pengembang memerlukan untuk menulis kode mengenai

nama-nama. Secara umum Ruby on Rails memberikan asumsi pengkonvensian

yang baik untuk pengcodingan yang sedikit dan sedikit pengulangan atau looping.

“Don’t repeat yourself” atau “jangan anda melakukan hal yang sama” maksudnya

informasi tersebut dilokasikan dalam satu tempat yang jelas. Sebagai contoh

menggunakan model Active Record dalam rails, para pengembang software tidak

perlu menentukan nama database kolom dalam definisi kelas. (Anonim, 2014c)

2.2.11 Pengujian Perangkat Lunak

Pengujian perangkat lunak adalah elemen kritis dari jaminan kualitas

perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi, desain dan

pengkodean. Pengujian menyajikan anomali yang menarik bagi perekayasa

perangkat lunak. Perekayasa pertama-tama berusaha membangun perangkat lunak

dari konsep abstrak ke implementasi yang dapat dilihat, baru dilakukan pengujian.

Perekayasa menciptakan sederetan test case yang dimaksudkan untuk

“membongkar” perangkat lunak yang sudah dibangun. Pada dasarnya, pengujian

merupakan satu langkah dalam proses rekayasa perangkat lunak yang dapat

dianggap (paling tidak secara psikologis) sebagai hal yang destruktif daripada

konstruktif. (Anonim, 2014f)

Beberapa metode yang mungkin digunakan dalam sebuah pengujian

perangkat lunak, yaitu :

1. Pengujian Black Box merupakan Teknik pengujian tanpa memiliki

pengetahuan tentang cara kerja dalam aplikasi. Tester mempunyai arsitektur

sistem dan tidak memiliki akses ke kode sumber. Saat melakukan pengujian

black box, tester akan berinteraksi dengan user interface sistem dengan

memberikan masukan dan memeriksa keluaran tanpa mengetahui bagaimana

dan dimana masukan bekerja.

2. Pengujian White Box adalah penyelidikan rinci dari logika internal dan

struktur kode. Pengujian white box disebut juga pengujian kaca atau pengujian

kotak terbuka.

36

3. Pengujian Grey Box merupakan teknik untuk menguji aplikasi dengan

pengetahuan yang terbatas tentang cara kerja aplikasi internal.

Tabel 2.6 Perbandingan Metode Pengujijan

Black Box Grey Box White Box

Cara kerja internal

aplikasi tidak perlu

diketahui

Pengetahuan tentang

cara kerja internal

dikenal

Tester memiliki

pengetahuan tentang cara

kerja internal dari aplikasi

Juga dikenal sebagai

pengujian kotak

tertutup, didorong oleh

data pengujian dan

pengujian fungsional

Istilah lain untuk

pengujian grey box

adalah pengujian

tembus yang memiliki

pengetahuan terbatas

dalam bagian aplikasi

Juga dikenal sebagai

pengujian kotak yang

jelas, pengujian

struktural atau terstruktur

Dilakukan oleh

pengguna akhir dan

juga oleh penguji serta

pengembang

Dilakukan oleh

pengguna akhir dan

juga oleh penguji serta

pengembang

Biasanya dilakukan oleh

penguji dan pengembang

Pengujian didasarkan

pada eksternal, internal

aplikasi tidak diketahui

Pengujian dilakukan

atas dasar data diagram

basis tingkat tinggi dan

data diagram alur

Kerja internal sepenuhnya

diketahui dan tester dapat

merancang data pengujian

dengan benar

Cara kerjanya memakan

dan waktu dan

menyeluruh

Sebagian memakan

waktu dan menyeluruh

Sangat menyeluruh dan

membutuhkan waktu pada

jenis pengujian ini

Tidak cocok untuk

pengujian algoritma

Tidak cocok untuk

pengujian algoritma

Cocok untuk pengujian

algoritma

Hanya dapat dilakukan Domain data dan Domain data dan batas-

37

dengan metode trial

dan error

batas-batas internal

dapat diuji, jika

diketahui

batas internal dapat diuji

lebih baik lagi

sumber: Anonim, 2014f