Upload
duongcong
View
228
Download
1
Embed Size (px)
Citation preview
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-