• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 LANDASAN TEORI"

Copied!
33
0
0

Teks penuh

(1)

7

LANDASAN TEORI

2.1. Teori Graf

2.1.1. Definisi Graf

Menurut Joan. M. Aldous (2004: p6), graf adalah diagram yang terdiri dari beberapa titik yang disebut vertices, dihubungkan oleh garis yang disebut edges. Masing-masing edge menghubungkan tepat 2 buah vertices.

Gambar 2.1 Contoh Graf (Sumber: Joan. M. Aldous, p6)

2.1.2. Representasi Graf

• Matriks Kedekatan (Adjacency Matrices)

Untuk suatu graf dengan jumlah simpul sebanyak n, maka matriks kedekatan mempunyai ukuran n x n (n baris dan n kolom). Contoh matriks kedekatan dapat dilihat pada gambar berikut.

Gambar 2.2 Matriks Kedekatan (Sumber: Joan. M. Aldous, p115)

(2)

• Matriks Kesisian(Insidence Matrices)

Untuk suatu graf dengan jumlah simpul sebanyak n dan jumlah sisi sebanyak m, maka matriks kedekatan mempunyai ukuran n x m (n baris dan m kolom). Contoh matriks kesisian dapat dilihat pada gambar berikut.

Gambar 2.3 Matriks Kesisian (Sumber: Joan. M. Aldous, p123)

2.2. Vehicle Routing Problem

Vehicle Routing Problem atau yang biasa disingkat dengan VRP adalah permasalahan optimasi yang menekankan pada bagaimana menentukan rute-rute kendaraan yang digunakan untuk melayani sejumlah pelanggan (Golden, 2008: p3). Pelanggan tersebut tersebar secara geografis dan memiliki jarak yang berbeda-beda. Selanjutnya akan disusun rute kunjungan kendaraan yang berawal dari pabrik dan berakhir di pabrik tersebut juga. Tujuannya adalah untuk mengunjungi sejumlah pelanggan atau kota dengan sejumlah kendaraan dan batasan-batasan lain yang diperlukan dan diketahui sehingga rute tersebut mempunyai biaya perjalanan yang minimum.

Gambar 2.4 Ilustrasi dari Vehicle Routing Problem Sumber : http://neo.lcc.uma.es/vrp/wp-content/uploads/vrp.png

(3)

VRP pertama kali diformulasikan oleh Dantzig dan Ramser pada tahun 1959 sebagai masalah utama dalam bidang transportasi, distribusi dan logistik. Maka dikembangkan metode komputerisasi untuk transportasi yang menghasilkan penghematan yang signifikan dari total biaya.

Jika VRP direpresentasikan dalam sebuah graf G = (V,A). Notasi yang digunakan adalah (Golden, 2008: p4-5) :

• V= { , , ,..., } adalah himpunan verteks, di mana :  Asumsikan depot terletak di verteks

 Misalkan V’ = V tanpa elemen { } digunakan sebagai himpunan n kota

• A = {( , ) | , ∈ V ; i ≠ j} adalah himpunan edge

• C adalah matriks jarak atau biaya antara pelanggan dan yang bernilai non- negatif

• d adalah vektor dari permintaan / demand dari pelanggan • adalah rute dari kendaraan ke-i

• k adalah jumlah kendaraan (semua identik). Satu kendaraan untuk tiap rute.

Dengan setiap verteks dalam V’ diasosiasikan dengan sejumlah barang qi yang akan diantarkan oleh satu kendaraan. Maka VRP bertujuan untuk menentukan sejumlah k rute kendaraan dengan total biaya yang minimum, bermula dan berakhir di sebuah depot, yang setiap verteks dalam V’ dikunjungi tepat sekali oleh satu kendaraan.

2.3. Capacitated Vehicle Routing Problem

Salah satu jenis VRP adalah Capacitated Vehicle Routing Problem atau yang biasa disingkat menjadi CVRP. Dalam CVRP setiap kendaraan memiliki keterbatasan kapasitas angkut, sehingga kapasitas tersebut akan dimaksimalkan untuk memenuhi kebutuhan pelanggan.

Asumsikan depot sebagai node 0 dan pelanggan sejumlah N yang akan dilayani oleh kendaraan sejumlah K. Permintaan untuk pelanggan i adalah qi, kapasitas dari kendaraan k adalah Qk, dan jarak maksimum yang diperbolehkan dari kendaraan k adalah Dk. Maka model matematika dari

(4)

CVRP dideskripsikan sebagai berikut (Golden, 2008: p302-304).

= 1 jika kendaraan k datang dari pelanggan i ke j, (2) = 0 jika selain itu

(5)

Di mana N merepresentasikan jumlah pelanggan dan K sebagai jumlah kendaraan dan adalah jarak perjalanan dari pelanggan i ke pelanggan j oleh kendaraan k.

Tujuan dari persamaan fungsi (1) adalah untuk meminimalkan total biaya oleh semua kendaraan. Batasan fungsi (3) dan (4) memastikan bahwa setiap pelanggan dilayani hanya sekali. Batasan fungsi (5) memastikan kelanjutan dari rute. Batasan fungsi (6) menunjukkan bahwa jumlah jarak dari setiap rute mempunyai batas. Batasan fungsi (7) menunjukkan bahwa jumlah demand dari setiap rute tidak dapat melebihi kapasitas dari kendaraan. Batasan fungsi (8) dan (9) memastikan bahwa setiap kendaraan hanya digunakan sekali. Batasan fungsi (10) memastikan bahwa variabel yang dipakai hanya menggunakan integer 0 atau 1.

2.4. Metode Cross Entropy

Metode Cross Entropy termasuk metode yang cukup baru. Awalnya metode Cross Entropy digunakan sebagai metode untuk mengestimasi probabilitas dari terjadinya suatu rare event dengan penerapan algoritma adaptif untuk peristiwa stokastik yang kompleks (Rubinstein, 1999:p127), dengan cara menimalkan variansi. Pada perkembangan selanjutnya ditemukan bahwa modifikasi sederhana pada metode cross entropy dapat digunakan tidak hanya untuk mengestimasi probabilitas dari rare event tetapi juga untuk menyelesaikan permasalahan optimasi kombinatorial yang kompleks dengan cara meminimalkan metode cross entropy. Hal ini dilakukan dengan menerjemahkan masalah optimasi deterministic menjadi stokastik, kemudian menggunakan teknik event simulation

(6)

Metode cross entropy melibatkan prosedur iterasi di mana setiap iterasi tersebut melibatkan dua fase sebagai berikut (Rubinstein, 2001:p128-190).: a. Melakukan pembangkitan sampel random (x) dengan menggunakan

mekanisme atau distribusi tertentu,

b. Memperbaharui parameter (v) atau (w) dari mekanisme random berdasarkan data sampel elit untuk menghasilkan sampel yang lebih baik pada iterasi berikutnya.

Sampel elit adalah beberapa persen dari sampel yang kita pilih untuk memperbaiki atau mengupdate parameter (v) atau (w) yang digunakan. Kedua fase di atas merupakan dua fase utama yang terdapat dalam metode cross entropy pada umumnya. Namun dalam penelitian kali ini, akan lebih banyak dibahas mengenai metode cross entropy untuk melakukan optimasi, terutama memecahkan Capacitated Vehicle Routing Problem (CVRP).

Metode cross entropy menyelesaikan suatu permasalahan dengan membangkitkan sejumlah N kandidat solusi yang dibangkitkan secara random dengan distribusi tertentu yang kemudian difitkan dengan fungsi tujuan. Kemudian dari sampel tersebut dipilih sejumlah n sampel terbaik yang kemudian dijadikan inputan untuk memperbaharui parameter yang digunakan sehingga kandidat solusi pada iterasi berikutnya berasal dari sampel terbaik pada iterasi sebelumnya.

Adapun pengembangan metode cross entropy dalam menyelesaikan CVRP dapat dilihat dari tahapan berikut:

a. Pendefinisian input dan output yang dilakukan untuk menentukan input apa saja yang akan diproses dalam algoritma metode cross entropy dan output apa saja yang akan ditampilkan sebagai hasil dari proses tersebut. Namun perlu diingat pada bab ini kita hanya akan membahas input dan output yang terlibat dalam algoritma metode cross entropy itu sendiri bukan input dan output dari program hasil implementasi algoritma metode cross entropy. Input dan output yang digunakan dalam metode algoritma cross entropy untuk memecahkan CVRP adalah sebagai berikut :

• Input : lokasi pabrik/depot dan lokasi semua pelanggan yang akan dilayani, jumlah permintaan tiap pelanggan, kapasitas angkut

(7)

masing-masing kendaraan, jumlah sampel yang akan dibangkitkan, parameter ρ, parameter smoothing α, toleransi pemberhentian β. • Output : Rute optimal, biaya perjalanan, jarak yang ditempuh, jumlah

iterasi yang dilakukan.

b. Menentukan nilai dari parameter penunjang seperti ρ, α dan β. Dan tentukan juga jumlah sampel rute yang akan dibangkitkan (N) pada setiap iterasi. Nilai α yang bagus adalah antara 0,7 dan 1. Sedangkan untuk N dan ρ ditentukan berdasarkan kasus yang diteliti. Hal ini dikarenakan ρ merupakan parameter yang digunakan untuk menentukan banyaknya sampel elit dari sampel yang dibangkitkan sejumlah N.

c. Menentukan initial value matriks transisi P yang nilai diagonalnya adalah 0. Matriks transisi awal dihitung dengan formula berikut :

d. Untuk permasalahan CVRP, node pertama atau titik awal dimulainya perjalanan harus sebuah pabrik/depot.

e. Pembangkitan N sampel rute berdasarkan pada peluang matriks transisi yang dihitung menggunakan roulette wheel selection. Jika kumulatif peluang matriks transisi merupakan node yang terpilih selanjutnya. Kemudian nilai setiap baris dari kolom node yang terpilih diganti menjadi 0 supaya tidak terpilih kembali dan dilakukan normalisasi supaya jumlah peluang setiap baris tetap bernilai 1.

f. Penentuan subrute berdasarkan kapasitas angkut kendaraan. Jika muatan suatu kendaraan yang akan disuplai melebihi kapasitas suatu kendaraan, maka untuk memenuhi kebutuhan pelanggan, selanjutnya kendaraan harus kembali ke depot untuk mengisi ulang muatan dan jika jumlah muatan kendaraan melebihi kapasitas depot sehingga depot tidak bisa menyuplai lagi dan diganti oleh depot lain.

(8)

g. Menghitung total biaya yaitu penjumlahan biaya perjalanan, Biaya perjalanan sebanding dengan total jarak dari setiap rute yang dibangkitkan.

h. Mengurutkan total biaya terbaik terlebih dahulu, kemudian mengambil ρ*N terbaik yang dijadikan sampel elit. Sampel elit tersebut kemudian diplot ke dalam matriks w dengan menggunakan node transition, di mana baris menyatakan node awal dan kolom menyatakan node tujuan.

i. Memperbaharui matriks transisi P berdasarkan pembangkitan lintasan yang

sesuai dengan rumus berikut : dengan w

adalah probabilitas transisi yang dihitung dari sampel elit dan adalah probabilitas transisi iterasi sebelumnya.

j. Jika syarat pemberhentian yang ditentukan telah tercapai, maka iterasi berhenti dan hasil optimasi bisa diketahui, jika belum tercapai maka proses b sampai j diulangi lagi. Syarat pemberhentian pada umumnya adalah maksimum selisih dengan < 0.005

2.5. Aplikasi Berbasis Web

Web adalah salah satu aplikasi yang berisikan dokumen-dokumen multimedia (teks, gambar, suara, animasi, video) di dalamnya yang menggunakan protokol HTTP (Hypertext Transfer Protocol) dan untuk mengaksesnya menggunakan perangkat lunak yang disebut browser. (Arief,2011:p7)

Aplikasi berbasis web adalah aplikasi yang berjalan di atas platform browser, meskipun mungkin dioptimasi untuk jenis browser tertentu. Berikut merupakan beberapa kelebihan dan kekurangan aplikasi berbasis web (Gunadi,2012).

Kelebihan aplikasi berbasis web :

1. Dapat diakses kapan pun dan dari mana pun selama ada internet. 2. Dapat diakses dengan hanya menggunakan web browser (umumnya

sudah tersedia di PC, PDA, dan handphone terbaru), tidak perlu menginstall aplikasi khusus.

(9)

1. Antar muka yang dapat dibuat terbatas sesuai spesifikasi standar untuk membuat dokumen web dan keterbatasan web browser untuk menampilkannya.

2. Terbatasnya kecepatan internet mungkin membuat respon aplikasi menjadi lambat.

2.5.1. HTML

Menurut West (2013: p7-8), Hyper Text Markup Language (HTML) adalah code dasar yang menjadi fondasi setiap website dalam World Wide Web (WWW). HTML digunakan untuk marking up teks dan konten halaman lainnya dan untuk mendefinisikan bagaimana halaman web terstruktur.

Halaman web dibangun dari banyak konten seperti teks, gambar dan video. Marking up setiap konten ini dilakukan dengan sintaks HTML. HTML juga digunakan untuk mendeskripsikan struktur halaman dan mendefinisikan setiap bagian yang berbeda (seperti header, area konten dan footer).

2.5.2. CSS

Menurut Pouncey dan York (2011: p3), Cascading Style Sheets (CSS) adalah bahasa yang didesain untuk menggambarkan tampilan dokumen yang ditulis dalam bahasa markup seperti HTML. Dengan CSS, pengguna dapat mengontrol warna teks, gaya huruf, jarak antar paragraph, ukuran kolom, gambar atau warna latar belakang yang digunakan dan berbagai efek visual lainnya. Keuntungan dari CSS adalah CSS yang sama dapat digunakan oleh lebih dari satu halaman, yang berarti bahwa style dari website secara keseluruhan dapat diatur tanpa harus mengubah setiap halaman secara individual.

2.5.3. Javascript

Menurut Negrino dan Smith (2012: p2), Javascript adalah bahasa pemrograman yang dapatdigunakan untuk menambahkan interaktivitas ke dalam suatu halaman web. Javascript juga disebut sebagai scripting

(10)

language, yang artinya Javascript ketika digunakan untuk scripting, dapat berupa sebuah program yang terdapat secara internal pada halaman HTML atau terdapat pada file terpisah (eksternal).

2.5.4. PHP

PHP adalah server-side scripting language yang didesain secara spesifik untuk web (Welling & Thomson, 2005: p2). Sedangkan menurut Nugroho (2009: p370), PHP merupakan singkatan dari Hypertext Preprocessor yang digunakan sebagai bahasa script server side dalam pengembangan web yang disisipkan pada dokumen HTML.

Pada awalnya PHP merupakan kependekan dari Personal Home Page (Situs personal). PHP pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada waktu itu PHP masih bernama Form Interpreted (FI), yang wujudnya berupa sekumpulan skrip yang digunakan untuk mengolah data formulir dari web. Pada Juni 1998, singkatan PHP diubah menjadi Hypertext Preprocessor.

PHP merupakan bahasa pemrograman server side yang di desain khusus untuk aplikasi web yang ditambahkan ke dalam HTML. Bahasa pemrograman PHP dapat digabungkan dengan HTML dengan terlebih dahulu memberikan tanda tag buka dilanjutkan tanda tanya ( <? ) kemudian ditutup dengan tanda tanya dilanjutkan tanda tag tutup ( ?> ). Sifat server side berarti pengerjaan skrip akan dilakukan di server, baru kemudian hasilnya dikirim ke browser.

Menurut Prasetyo (2008:p14), kelebihan PHP dari bahasa pemrograman lain adalah:

1. Web Server yang mendukung PHP dapat ditemukan di mana-mana dari mulai IIS sampai dengan Apache, dengan konfigurasi yang relatif mudah.

2. Dalam sisi pemahamanan, PHP adalah bahasa scripting yang paling mudah karena banyak referensinya.

3. PHP adalah bahasa open source yang dapat digunakan di berbagai mesin (Linux, Unix, Macintosh, Windows).

4. Dalam sisi pengembangan lebih mudah, karena banyaknya developer yang siap membantu.

(11)

2.6. Google Maps API 2.6.1. Pengertian API

API atau Application Programming Interface bukan hanya satu set class dan method atau fungsi dan signature yang sederhana (Tulach, 2008:p1-14),. Akan tetapi API, yang bertujuan utama untuk mengatasi “clueless” dalam membangun software yang berukuran besar, berawal dari sesuatu yang sederhana sampai ke yang kompleks dan merupakan perilaku komponen yang sulit dipahami. Secara sederhana dapat dipahami dengan membayangkan kekacauan yang akan timbul bila mengubah database atau skema XML. Perubahan ini dapat dipermudah dengan bantuan API.

Dari beberapa sumber yang didapat, dapat disimpulkan bahwa API adalah sekumpulan perintah, fungsi, class dan protocol yang memungkinkan suatu software berhubungan dengan software lainnya. Tujuan dari API adalah untuk menghilangkan “clueless” dari sistem dengan cara membuat sebuah blok besar yang terdiri dari software di seluruh dunia dan menggunakan kembali perintah, fungsi, class atau protokol yang mereka atau API miliki. Dengan cara ini, programmer tidak perlu lagi membuang waktu untuk membuat dan menulis infrastruktur sehingga akan menghemat waktu kerja dan lebih efisien.

2.6.2. Pengertian Google Maps API

Seperti yang tercatat oleh Svennerberg (Beginning Google Maps API 3, p1), Google Maps API adalah API yang paling populer di internet. Pencatatan yang dilakukan pada bulan Mei tahun 2010 ini menyatakan bahwa 43% mashup (aplikasi dan situs web yang menggabungkan dua atau lebih sumber data) menggunakan Google Maps API. Beberapa tujuan dari penggunaan Google Maps API adalah untuk melihat lokasi, mencari alamat, mendapatkan petunjuk mengemudi dan lain sebagainya. Hampir semua hal yang berhubungan dengan peta dapat memanfaatkan Google Maps.

(12)

merupakan revolusi bagaimana peta di dalam halaman web, yaitu dengan membiarkan user untuk menarik peta sehingga dapat menavigasinya. Solusi peta ini pada saat itu masih baru dan membutuhkan server khusus. Beberapa saat setelahnya, ada yang berhasil men-hack Google Maps untuk digunakan di dalam webnya sendiri. Hal ini membuat Google Maps mengambil kesimpulan bahwa mereka membutuhkan API dan pada Juni 2005, Google Maps API dirilis secara publik.

2.5.3. Syntax Google Maps API a. google.maps.LatLng

Merupakan sintaks yang digunakan untuk menunjuk pada lokasi di peta. LatLng memiliki banyak kegunaan pada GoogleMaps API. Contohnya : google.maps. Marker menggunakan LatLng dalam constructor dan meletakkan marker penanda pada lokasi geografis di peta.

var my Latlng = new google. maps.LatLng(my Latitude,my Longitude)

b. google.maps.Map

Merupakan class JavaScript yang merepresentasikan sebuah peta. Object pada class didefinisikan dalam sebuah peta di halaman website. Secara sederhana dapat dikatakan bahwa Map() membuat sebuah objek peta dan memasukkannya ke dalam map Div.

var map =new google.maps.Ma p (document.getElementBy Id ("map _canvas"), my Options);

c. google.maps.Marker

Membuat sebuah marker atau penanda pada pilihan tertentu. Bila sebuah peta spesifik, penanda diletakkan pada peta pada saat construction. Perhatikan bahwa penanda harus diatur agar pinpoint dapat ditam pilkan.

(13)

var marker = new goo gle.map s.M arker(op ts?:MarkerOptions);

d. google.maps.event.addListener

Setiap objek Google Maps API membuat sejumlah nama event. Program yang ingin menggunakan event tertentu akan memanggil event listener untuk event tersebut dan menjalankan kode ketika event diterima dengan mendaftarkannya melalui addListener(). Secara sederhana, addListener() memanggil nama – nama suatu objek dan menjalankannya ketika suatu kejadian terjadi.

var handle = google.maps.event.addListener(Object, UserEvent, function(event) {

// Do something });

e. getZoom() dan setZoom()

getZoom() mengembalikan sebuah nilai yang mengidentifikasikan nilai dari zoom level yang sekarang. setZoom(zomLevel:number) mengatur tingkat zoom peta.

var zoomLevel = map.getZoom(); map .setZoom(12);

2.7. Flowchart

Flowchart adalah bagan-bagan yang mempunyai arus yang menggambarkan langkah-langkah penyelesaian suatu masalah (Nilawati, 2009). Flowchart merupakan cara penyajian dari suatu algoritma.

Tujuan membuat flowchart :

1. Menggambarkan suatu tahapan penyelesaian masalah secara sederhana, terurai, rapi, dan jelas.

(14)

Berikut adalah tabel notasi yang digunakan dalam menggambarkan flowchart :

Tabel 2.1 Notasi Flowchart I

(15)
(16)
(17)
(18)

2.8.1. Pengertian DFD

Data Flow Diagram (DFD) merepresentasikan aliran data dan perubahan data dalam sebuah sistem (Pressman, 2010: p311). DFD menggunakan pandangan masukan-proses-keluaran (input-process-output) dari sistem artinya, objek data mengalir ke dalam perangkat lunak (software), diubah oleh proses pengolahan dan menghasilkan hasil proses tersebut.

2.8.2. Simbol dalam DFD

DFD memiliki tiga buah simbol dan satu koneksi antara lain:

a. Lingkaran, merepresentasikan proses atau pekerjaan yang harus dikerjakan.

Gambar 2.5 Simbol Proses

b. Persegi, merepresentasikan external agents (agen eksternal) yaitu batas dari sistem yang berjalan.

Gambar 2.6 Simbol External Agent

c. Dua garis sejajar, merepresentasikan tempat penyimpanan data (Data Store). Kadang disebut sebagai basis data (database) atau file.

Gambar 2.7 Simbol Data Store

d. Panah, merepresentasikan aliran data (Data Flow), atau input (masukan) dan output (keluaran), dari dan ke proses.

(19)

Gambar 2.8 Simbol Data Flow

2.8.3. Tingkatan dalam DFD

Dalam pembuatan DFD terdapat beberapa tingkatan antara lain: a. DFD Level 0 (Diagram Konteks)

Merupakan diagram yang menggambarkan keseluruhan sistem yang memiliki sebuah proses tanpa tempat penyimpanan data (Data Store).

Gambar 2.9 Contoh DFD Level 0 (Sumber: Pressman, p322)

b. DFD Level 1

Merupakan pengembangan mendetail diagram konteks dimana proses pada diagram konteks dipecah menjadi beberapa proses dan informasi serta memiliki tempat penyimpanan data (Data Store).

(20)

Gambar 2.10 Contoh DFD Level 1 (Sumber: Pressman, p323)

c. DFD Level 2

Merupakan diagram yang lebih mendetail dari DFD Level 1 dimana proses pada diagram nol dipecah menjadi lebih rinci.

Gambar 2.11 Contoh DFD Level 2 Monitor Sensors Process (Sumber: Pressman, p324)

(21)

2.9.1. Pengertian STD

State Transition Diagram merupakan diagram yang digunakan untuk menggambarkan sifat sistem informasi, menjelaskan cara sistem melakukan suatu respon untuk setiap kejadian dan cara kejadian merubah state suatu sistem (Pressman:2010, p326).

Gambar 2.12 Contoh STD (Sumber: Pressman,2010:p326)

2.9.2. Komponen STD

State Transition Diagram memiliki dua komponen, yaitu: a. State

State merupakan sekumpulan keadaan atau atribut sebuah sistem. State digambarkan dengan simbol persegi panjang.

Gambar 2.13 Simbol State b. Arrow

Arrow merupakan penanda perubahan dari suatu state ke state yang lain. Arrow digambarkan dengan simbol panah.

(22)

Gambar 2.14 Simbol Arrow

Setiap arrow dalam state transition diagram memiliki aksi dan kondisi untuk menunjukkan perubahan yang terjadi.

Kondisi Aksi

Gambar 2.15 Aksi pada Arrow

2.10. Sistem Basis Data (Database)

2.10.1. Pengertian Sistem Basis Data (Database)

Basis data (database) merupakan kumpulan data yang saling berhubungan secara logika, dan deskripsi data, yang di desain untuk menghasilkan informasi yang dibutuhkan oleh organisasi (Connolly, 2010:p15). Suatu basis data merepresentasikan entitas (entity), atribut (attribute) dan relasi (relationship).

Entitas adalah objek nyata (orang, tempat, benda, konsep, dan peristiwa) dalam sebuah organisasi yang dapat direpresentasikan dalam basis data. Atribut adalah properti yang mendeskripsikan beberapa aspek dari objek yang ingin disimpan. Relasi adalah hubungan asosiasi antar entitas (Connolly, 2010:15).

Basis data merupakan suatu tempat penyimpanan data skala besar yang dapat digunakan banyak orang secara bersamaan sehingga memudahkan dan mempercepat pengambilan data yang dibutuhkan.

2.10.2. Relational Data Structure 2.10.2.1. Relation (Table / File)

Relation adalah suatu relasi data yang digambarkan dalam bentuk tabel yang memiliki kolom dan baris (Connolly, 2010:p72). Relasi sering juga disebut sebagai tabel atau file. 2.10.2.2. Attribute (Field)

(23)

Attribute merupakan nama kolom dari sebuah relasi atau tabel (Connolly, 2010:p72). Attribute sering juga disebut sebagai Field.

2.10.2.3. Tuple (Record)

Tuple adalah suatu baris data dari sebuah relasi atau tabel (Connolly, 2010:p73). Tuple sering juga disebut sebagai Record.

2.10.3. Relational Keys 2.10.3.1. Superkey

Superkey merupakan atribut ataupun kumpulan atribut yang secara unik mengidentifikasikan tuple dalam sebuah relasi (Connolly, 2010:p78).

2.10.3.2. Candidate Key

Candidate Key merupakan sebuah superkey sehingga tidak ada bagian yang tepat adalah superkey dalam relasi (Connolly, 2010:p78).

2.10.3.3. Composite Key

Composite Key merupakan Candidate Key yang memiliki lebih dari satu atribut (Connolly, 2010:p78).

2.10.3.4. Primary Key

Primary Key merupakan Candidate Key yang terpilih untuk mengidentifikasikan tuple dalam relasi yang bersifat unik (Connolly, 2010:p79).

2.10.3.5. Alternate Key

Alternate Key merupakan Candidate Key yang tidak terpilih sebagai Primary Key (Connolly, 2010:p79).

(24)

2.10.3.6. Foreign Key

Foreign Key adalah sebuah atribut atau kumpulan atribut dalam suatu relasi yang menunjuk pada Candidate Key yang terdapat pada relasi lain (Connolly, 2010:p79). Foreign Key berfungsi untuk menunjukkan hubungan antara relasi.

2.11. Entity Relationship Diagram (ERD)

Entity Relationship Diagram adalah pendekatan top-down untuk mendesain basis data yang dimulai dengan identifikasi data yang penting, yang disebut sebagai entities (entitas) dan relationship (relasi) antara data harus direpresentasikan dalam model (Connolly, 2010:p342).

Gambar 2.16 Contoh ERD (Sumber: Connolly, p344)

Multiplicity adalah angka kejadian yang mungkin muncul dari suatu entitas yang mungkin berhubungan dengan kejadian entitas lain yang saling berasosiasi melalui hubungan khusus (Conolly, 2010:p356).

(25)

Relasi dalam ERD adalah sebagai berikut: 1. One-to-one (1:1) Relationships

Merupakan relasi dimana sebuah entitas di A hanya dapat diasosiasikan dengan paling banyak satu entitas di B.

Gambar 2.17 Contoh Relasi One-to-one (Sumber: Connolly, p357)

2. One-to-many (1:*) Relationships

Merupakan relasi dimana sebuah entitas di A dapat diasosiasikan dengan satu atau lebih entitas di B, namun entitas di B hanya dapat diasosiasikan dengan paling banyak satu entitas di A.

Gambar 2.18 Contoh Relasi One-to-many (Sumber: Connolly, p358)

(26)

3. Many-to-many (*:*) Relationships

Sebuah entitas di A dapat diasosiasikan dengan nol atau lebih entitas di B dan sebuah entitas di B dapat diasosiasikan dengan nol atau lebih entitas di A.

Gambar 2.19 Contoh Relasi Many-to-many (Sumber: Connolly, p360)

2.12. Database Management System (DBMS)

2.12.1. Pengertian DBMS

DBMS adalah sistem perangkat lunak yang memungkinkan pengguna untuk mendefinisikan, membuat, merawat, dan mengendalikan akses ke basis data (Connolly, 2010:p16).

Fasilitas yang disediakan oleh DBMS adalah sebagai berikut:

a. Data Definiton Language (DDL), dimana pengguna dapat membuat tipe data, struktur data dan batasan – batasan (constraints) terhadap data yang disimpan dalam basis data.

b. Data Manipulation Language (DML), dimana pengguna dapat memasukan, mengubah, menghapus dan memanggil kembali data dari basis data.

c. Pengendalian akses terhadap basis data yang terdiri atas: sistem keamanan, integrasi sistem, pengendalian sistem secara bersamaan, penyembuhan pengendalian sistem, dan katalog yang dapat diakses oleh pengguna.

(27)

Komponen yang digunakan dalam lingkungan DBMS:

Gambar 2.20 Bagan komponen DBMS (Sumber: Connolly, p19)

a. Hardware: perangkat keras komputer yang digunakan untuk pengelolaan sistem basis data agar DBMS dan aplikasi lainnya dapat dijalankan. Perangkat keras ini dapat berkisar dari suatu komputer personal ke suatu mainframe ke jaringan komputer.

b. Software: perangkat lunak yang digunakan yaitu DBMS, program aplikasi, sistem operasi, termasuk juga perangkat jaringan jika DBMS digunakan melalui jaringan komputer.

c. Data: tabel atau file yang dimiliki atau digunakan oleh organisasi. Struktur dari basis data disebut sebagai schema. Data digunakan sebagai jembatan antara komponen mesin dan komponen manusia. d. Prosedur: instruksi dan aturan yang diaplikasikan dalam desain dan

menggunakan basis data. Pengguna sistem membutuhkan dokumen prosedur tentang cara penggunaan sistem.

e. Pengguna: orang yang menggunakan dan terlibat dalam sistem.

2.12.3. Keuntungan DBMS

Keuntungan penggunaan DBMS adalah sebagai berikut: a. Pengontrolan data yang berulang

b. Konsistensi data

c. Informasi lebih dari data yang sama besarnya d. Pembagian data (sharing)

e. Peningkatan integritas data f. Peningkatan keamanan g. Penegakan standar h. Skala Ekonomi

(28)

i. Keseimbangan kebutuhan yang saling bertentangan j. Peningkatan aksesibilitas dan daya tangkap

k. Peningkatan produktivitas

l. Peningkatan pemeliharaan melalui independensi data m. Peningkatan konkurensi

n. Peningkatan data cadangan dan layanan pemulihan

2.12.4. Kekurangan DBMS

Kekurangan penggunaan DBMS adalah sebagai berikut: a. Kompleksitas

b. Ukuran file (size) c. Harga DBMS

d. Harga perangkat keras tambahan e. Harga konversi

f. Performa

g. Dampak tinggi terhadap kegagalan

2.13. MySQL

MySQL adalah relational database management system (RDBMS) yang sangat cepat dan kuat (Welling & Thomson, 2005:p3),. Basis data memungkinkan pengguna untuk menyimpan, mencari, mengurutkan dan mengambil data secara efisien. Server MySQL mengontrol akses pada data untuk memastikan bahwa beberapa pengguna dapat bekerja secara bersamaan, mendapatkan akses yang cepat dan memastikan bahwa hanya user yang berwenang yang dapat memperoleh akses. MySQL menggunakan Structured Query Language (SQL), bahasa query basis data standar yang digunakan di seluruh dunia.

MySQL didistribusikan secara gratis dibawah lisensi GPL (General Public License). Setiap pengguna dapat secara bebas menggunakan MySQL, namun dengan batasan perangkat lunak tersebut tidak boleh dijadikan produk turunan yang bersifat komersial. SQL adalah sebuah konsep pengoperasian basis data, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis.

(29)

Kehandalan suatu sistem basis data (DBMS) dapat diketahui dari cara kerja pengoptimasi-nya dalam melakukan proses perintah-perintah SQL yang dibuat oleh pengguna maupun program-program aplikasi yang memanfaatkannya. Sebagai peladen basis data, MySQL mendukung operasi basis data transaksional maupun operasi basisdata non-transaksional. Pada modus operasi non-transaksional, MySQL dapat dikatakan unggul dalam hal unjuk kerja dibandingkan perangkat lunak peladen basisdata kompetitor lainnya. Namun pada modus non-transaksional tidak ada jaminan atas reliabilitas terhadap data yang tersimpan, karenanya modus non-transaksional hanya cocok untuk jenis aplikasi yang tidak membutuhkan reliabilitas data seperti aplikasi blogging berbasis web (wordpress), CMS, dan sejenisnya. Untuk kebutuhan sistem yang ditujukan untuk bisnis sangat disarankan untuk menggunakan modus basisdata transaksional, hanya saja sebagai konsekuensinya unjuk kerja MySQL pada modus transaksional tidak secepat unjuk kerja pada modus non-transaksional.

MySQL pada awalnya diciptakan pada tahun 1979, oleh Michael "Monty" Widenius, seorang programmer komputer asal Swedia. Monty mengembangkan sebuah sistem database sederhana yang dinamakan UNIREG yang menggunakan koneksi low-level ISAM database engine dengan indexing. Pada saat itu Monty bekerja pada perusahaan bernama TcX di Swedia.

TcX pada tahun 1994 mulai mengembangkan aplikasi berbasis web, dan berencana menggunakan UNIREG sebagai sistem database. Namun sayangnya, UNIREG dianggagap tidak cocok untuk database yang dinamis seperti web.

TcX kemudian mencoba mencari alternatif sistem database lainnya, salah satunya adalah mSQL (miniSQL). Namun mSQL versi 1 ini juga memiliki kekurangan, yaitu tidak mendukung indexing, sehingga performanya tidak terlalu bagus.

Dengan tujuan memperbaiki performa mSQL, Monty mencoba menghubungi David Hughes (programmer yang mengembangkan mSQL) untuk menanyakan apakah ia tertarik mengembangkan sebuah konektor di mSQL yang dapat dihubungkan dengan UNIREG ISAM sehingga mendukung indexing. Namun saat itu Hughes menolak, dengan alasan sedang mengembangkan teknologi indexing yang independen untuk mSQL versi 2.

(30)

Dikarenakan penolakan tersebut, David Hughes, TcX (dan juga Monty) akhirnya memutuskan untuk merancang dan mengembangkan sendiri konsep sistem database baru. Sistem ini merupakan gabungan dari UNIREG dan mSQL (yang source codenya dapat bebas digunakan). Sehingga pada May 1995, sebuah RDBMS baru, yang dinamakan MySQL dirilis.

David Axmark dari Detron HB, rekanan TcX mengusulkan agar MySQL di ‘jual’ dengan model bisnis baru. Ia mengusulkan agar MySQL dikembangkan dan dirilis dengan gratis. Pendapatan perusahaan selanjutnya di dapat dari menjual jasa “support” untuk perusahaan yang ingin mengimplementasikan MySQL. Konsep bisnis ini sekarang dikenal dengan istilah Open Source.

Pada tahun 1995 itu juga, TcX berubah nama menjadi MySQL AB, dengan Michael Widenius, David Axmark dan Allan Larsson sebagai pendirinya. Titel “AB” dibelakang MySQL, adalah singkatan dari “Aktiebolag”, istilah PT (Perseroan Terbatas) bagi perusahaan Swedia.

MySQL memiliki beberapa keistimewaan, antara lain :

a. Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.

b. Perangkat lunak sumber terbuka. MySQL didistribusikan sebagai perangkat lunak sumber terbuka, dibawah lisensi GPL sehingga dapat digunakan secara gratis.

c. Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.

d. 'Performance tuning', MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.

e. Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.

f. Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query).

(31)

g. Keamanan. MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi.

h. 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 indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.

i. Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).

j. Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya.

k. Antar Muka. MySQL memiliki antar muka (interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).

l. Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool)yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online.

m. Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle.

2.14. Interaksi Manusia Komputer

Interaksi manusia komputer adalah disiplin ilmu yang mempelajari hubungan antara manusia dan komputer yang meliputi perancangan, evaluasi, dan implementasi antarmuka pengguna komputer agar mudah digunakan oleh manusia. Sebuah sistem dapat disebut interaktif apabila sistem tersebut dapat berkomunikasi dengan pengguna, dengan tujuan agar sistem dapat berguna bagi pengguna.(Shneiderman & Plaisant, 2010:p4-5)

(32)

Dalam perancangan desain antarmuka (interface) terdapat delapan aturan emas yang perlu diperhatikan (Shneiderman & Plaisant, 2010:p88-89) :

1. Berusaha untuk konsisten.

Diperlukan urutan aksi yang konsisten pada situasi yang sama. Konsistensi juga harus diterapkan pada prompts, menus, dan layar bantu. 2. Memungkinkan penggunaan yang universal.

Mengenali kebutuhan pengguna yang beragam dari pengguna pemula (novice) sampai pengguna ahli (expert) dengan merancang konten yang beragam, misal: penjelasan untuk pengguna pemula sampai shortcut untuk pengguna yang sudah ahli.

3. Memberikan umpan balik yang informatif.

Untuk setiap tindakan yang dilakukan user, diharapkan adanya umpan balik dari sistem. Untuk tindakan yang sering terjadi dan tidak membutuhkan banyak aksi, umpan balik dapat dibuat sederhana, sedangkan tindakan yang jarang dilakukan dan memerlukan banyak aksi harus lebih ditonjolkan.

4. Merancang dialog yang memberikan penutupan (keadaan akhir).

Urutan aksi yang harus disusun ke dalam kelompok awal, tengah, dan akhir. Suatu umpan balik yang informatif pada akhir pekerjaan sebaiknya dibuat untuk mengindikasikan bahwa pekerjaan tersebut telah selesai dan siap melanjutkan ke aksi berikutnya.

5. Memberikan pencegahan kesalahan dan penanganan kesalahan sederhana.

Sistem yang dibuat diharapkan tidak memungkinkan user membuat kesalahan serius. Jika terjadi kesalahan, sistem harus dapat mendeteksi kesalahan tersebut dan menawarkan penanganan kesalahan yang sederhana.

6. Memungkinkan pengembalian aksi yang sebelumnya.

Fitur untuk mengurangi kekhawatiran user karena user tahu bahwa jika ada kesalahan yang dibuat dapat dikembalikan lagi ke aksi sebelumnya. 7. Mendukung pusat kendali internal.

Menjadikan user sebagai yang mengendalikan sistem, bukan yang dikendalikan oleh sistem.

(33)

Mengingat keterbatasan manusia dalam pemrosesan informasi dalam jangka pendek, sebuah sistem diharapkan dibuat dengan tampilan sesederhana mungkin, beberapa halaman dijadikan satu, frekuensi pergerakan window dikurangi dan harus ada waktu yang cukup bagi user untuk mempelajari kode-kode, singkatan, serta urutan aksi. Informasi seperti singkatan atau kode sebaliknya tersedia.

Selain delapan aturan emas, dalam perancangan desain antarmuka terdapat juga lima faktor manusia terukur yang digunakan untuk mengevaluasi perancangan desain antarmuka, yaitu (Shneiderman & Plaisant, 2010:p32) : 1. Waktu pembelajaran (time to learn)

Berapa lama waktu yang dibutuhkan oleh anggota dari sekelompok komunitas pengguna untuk mempelajari cara menggunakan perintah-perintah yang digunakan untuk menyelesaikan sebuah tugas.

2. Kecepatan kinerja (speed of performance)

Berapa lama waktu yang diperlukan untuk menyelesaikan suatu tugas. 3. Tingkat kesalahan pengguna (rate of errors by users)

Mengukur berapa banyak kesalahan yang terjadi saat aplikasi menyelesaikan suatu tugas. Penanganan kesalahan merupakan hal yang penting dalam penggunaan antarmuka dan membutuhkan pembelajaran yang luas.

4. Daya ingat jangka panjang (retention over time)

Bagaimana pengguna menjaga pengetahuan mereka setelah beberapa jam, hari, atau minggu. Daya ingat sering dikaitkan dengan waktu pembelajaran dan biasanya frekuensi penggunaan juga memainkan peran penting.

5. Kepuasan subjektif (subjective satisfication)

Mengukur sebarapa jauh pengguna menyukai berbagai aspek dari antarmuka pengguna.

Gambar

Gambar 2.1 Contoh Graf   (Sumber: Joan. M. Aldous, p6)
Gambar 2.4 Ilustrasi dari Vehicle Routing Problem  Sumber : http://neo.lcc.uma.es/vrp/wp-content/uploads/vrp.png
Tabel 2.1 Notasi Flowchart I
Tabel 2.3 Notasi Flowchart III
+7

Referensi

Dokumen terkait

Gejala kurang minat peserta didik tampak pada sikap meragukan baik kepada diri sendiri maupun orang lain ditunjukkan oleh peserta didik yang tergolong cerdas (hasil tes

Penelitian ini bertujuan untuk menggali lebih lanjut dan memberikan informasi secara empirik tentang perbedaan stres kerja dan work life balance ditinjau dari

(3) Apabila jangka waktu sebagaimana dimaksud pada ayat (2) dilampaui Kepala Daerah atau Pejabat tidak memberikan keputusan, permohonan pengembalian kelebihan

Memberikan petunjuk bagi dosen dan mahasiswa tentang pelaksanaan ujian tengah semester dan ujian akhir pada Program Studi Pendidikan Kimia, Fakultas Keguruan dan

Secara tabulasi perlakuan interaksi antara pemberian air leri 60 ml/l air dengan varietas jamur tiram putih berpengaruh yang baik terhadap semua peubah yang

flavicarva dengan AgNO 3 dan waktu reaksinya.NPP yang dihasilkan dalam kondisi optimumlah yang akan diuji selektivitasnya terhadap beberapa logam yang sering terdapat di

1. Intensitas santri mengikuti pengajian Kitab Sulamuttaufiq Bab Shalat adalah cukup. Hal ini dapat dibuktikan dengan dengan hasil yang diperoleh adalah mencapai

Hasil-hasil riset dan observasi tersebut sangat berguna bagi seluruh pihak yang berkepentingan di bidang kelautan (stakeholders). Untuk meningkatkan promosi dan