• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI 2.1 Graph - Implementasi Metode Generate And Test Pada Pemilihan Angkutan Umum Bertrayek Dengan Jarak Terpendek

N/A
N/A
Protected

Academic year: 2019

Membagikan "BAB 2 LANDASAN TEORI 2.1 Graph - Implementasi Metode Generate And Test Pada Pemilihan Angkutan Umum Bertrayek Dengan Jarak Terpendek"

Copied!
17
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1Graph

Graf digunakan untuk merepresentasikan objek diskrit dan hubungan antara objek-objek tersebut. Gambar 2.1 merupakan sebuah graf yang menyatakan peta jaringan jalan raya yang menghubungkan sejumlah kota di Provinsi Jawa Tengah (Rinaldi Munir : 2007).

Gambar 2.1 Jaringan jalan raya di Provinsi Jawa Tengah

Sesungguhnya peta tersebut adalah sebuah graf, yang dalam hal ini kota dinyatakan sebagai bulatan (simpul) sedangkan jalan dinyatakan sabagai garis (sisi). Dengan diberikannya peta tersebut, kita dapat mengetahui apakah ada lintasan jalan antara dua buah kota.

2.1.1 Definisi Graph

Graf G didefinisikan sebagai pasangan himpunan (V, E), yang dalam hal ini V = himpunan tidak-kosong dari simpul-simpul (vertices) = { v1 , v2 , ... , vn } dan E = himpunan sisi (edges)

yang menghubungkan sepasang simpul = {e1 , e2 , ... , en }. Jadi, sebuah graf dimungkinkan

(2)

2.1.2 Jenis-jenis Graph

Pengelompokan graf dapat dipandang berdasarkan ada tidaknya sisi ganda, berdasarkan jumlah simpul atau berdasarkan orientasi arah pada sisi. Berdasarkan ada tidaknya gelang atau sisi ganda pada suatu graf, maka graf digolongkan menjadi dua jenis yaitu (Rinaldi Munir : 2007) :

1. Graf sederhana (simple graph).

Merupakan graf yang tidak mengandung gelang maupun sisi – ganda. Pada graf sederhana, sisi adalah pasangan tak-terurut ( unordered pairs ). Jadi, menuliskan sisi (u,v)

sama saja dengan (v,u)

Gambar 2.2 Graf sederhana

Gambar 2.2 adalah graf dengan himpunan simpul V dan himpunan sisi E adalah V = { 1,2,3,4 } dan E = { (1,2), (1,3), (2,3), (2,4), (3,4) }.

2. Graf tak - sederhana (unsimple-graph).

(3)

Gambar 2.3 Graf ganda

Gambar 2.3 merupakan graf ganda dengan V = { 1, 2, 3, 4 }, E = { (1, 2), (2, 3), (1, 3), (1, 3), (2, 4), (3, 4), (3, 4) } = { e1, e2, e3, e4, e5, e6, e7}. Sisi e3 = (1, 3) dan sisi e4 = (1, 3)

dinamakan sisi-ganda (multiple edges atau pararel edges) karena kedua sisi ini menghubungkan dua buah simpul yang sama, yaitu simpul 1 dan simpul 3.

Graf semu adalah graf yang mengandung gelang (loop). Graf semu lebih umum daripada graf ganda, karena sisi pada graf semu dapat terhubung ke dirinya sendiri.

Gambar 2.4 Graf semu

Gambar 2.4 adalah graf dengan V = { 1, 2, 3, 4 } E = { (1, 2), (2, 3), (1, 3), (1, 3), (2, 4), (3, 4), (3, 4), (3, 3) } = { e1, e2, e3, e4, e5, e6, e7, e8}. Pada sisi e8 = (3, 3) dinamakan gelang (loop) karena berawal dan berakhir pada simpul yang sama.

Berdasarkan jumlah simpul pada suatu graf, maka secara umum graf dapat digolongkan menjadi dua jenis:

1. Graf berhingga (limited graph).

Graf berhingga adalah graf yang jumlah simpulnya berhingga. 2. Graf tak-berhingga (unlimited graph)

(4)

Merupakan graf yang sisinya tidak mempunyai orientasi arah. Urutan pasangan simpul yang dihubungkan oleh sisi tidak diperhatikan. Jadi, (u , v) = (v , u) adalah sisi yang sama.

2. Graf berarah (directed graph atau digraph).

Graf yang setiap sisinya diberikan orientasi arah disebut sebagai graf berarah. Pada graf berarah, (u , v) dan (v , u) menyatakan dua buah busur yang berbeda, dengan kata lain (u , v) ≠ (v , u). Simpul (u) dinamakan simpul asal dan simpul (v) dinamakan simpul terminal. Pada graf berarah, gelang diperbolehkan, tetapi sisi ganda tidak.

Gambar 2.5 Graf berarah

Definisi graf dapat diperluas sehingga mencakup graf-ganda berarah (directed multigraph). Pada graf-ganda berarah, gelang dan sisi ganda diperbolehkan ada.

Gambar 2.6 Graf-ganda berarah

2.2Metode Pencarian

(5)

buta/tanpa informasi (blind atau un-informed search) dan pencarian heuristik/dengan informasi (heuristic atau informed search) (Dewi Yusra Aini : 2010).

2.2.1 Pencarian Heuristik

Heuristik adalah teknik yang digunakan untuk meningkatkan efisiensi dari proses pencarian. Teknik ini baik diterapkan dalam tujuan yang umum, tapi tidak untuk tujuan yang khusus.Heuristik yang baik, dapat memecahkan permasalahan yang berat, seperti pada masalah perjalanan salesman. Sebuah fungsi heuristik mengevaluasi keadaan permasalahan tersendiri dan menentukan bagaimana diperlukan fungsi ini dalam memecahkan suatu permasalahan. Sebuah fungsi heuristik adalah sebuah fungsi yang memetakan keadaan permasalaan, yang mendeskripsikan daya tarik dan digambarkan dalam sebuah angka (Andri Kristanto : 2004).

Beberapa metode pencarian yang menggunakan fungsi heuristik dalam mencari solusi, yaitu Generate and test, Hill climbing, dan Best First Search (greedy best first search dan A*) (Dewi Yusra Aini : 2010).

2.2.1.1Generate and Test (Bangkitkan dan Uji)

Generate and Test merupakan penggabungan antara Depth - First Search dengan

backtracking. Metode ini hanya melibatkan setiap node dalam ruang pencarian dan pengujian untuk melihat apakah itu simpul tujuan atau bukan. Jika ya, pencarian telah berhasil dan tidak perlu dilanjutkan, jika tidak pindah ke node berikutnya. Metode ini merupakan bentuk sederhana dari brute force search (pencarian lengkap), disebut demikian karena pecarian dilakukan dengan cara hanya melintasi pohon pencarian dan

bagaimana mengidentifikasi node awal dan node tujuan, dan pada akhirnya akan memeriksa setiap node di pohon sampai menemukan tujuan (Coppin Ben : 2004 ).

(6)

karena ketika tidak ada lagi simpul yang bisa dibangkitkan pada satu lintasan maka dilakukan

backtracking terhadap simpul terdekatnya.

Generate and Test memiliki tiga sifat :

1. Bangkitkan suatu solusi yang mungkin. Untuk beberapa permasalahan, pembangkitan ini berarti membangkitkan suatu simpul tertentu atau lintasan tertentu dari keadaan awal.

2. Uji untuk melihat apakah simpul tersebut benar-benar merupakan solusinya dengan cara membandingkan simpul yang dipilih atau simpul akhir suatu lintasan yang dipilih dengan kumpulan tujuan yang dapat diterima atau diharapkan.

3. Jika solusi telah diperoleh maka keluar. Jika tidak maka ulangi kembali langkah pertama.

Generate and Test dapat diterapkan pada sejumlah masalah di mana orang memecahkan masalah ketika tidak ada informasi tambahan untuk mencapai solusi. Generate and test juga sering disebut sebagai teknik pencarian buta (Coppin Ben : 2004).

Contoh kasus penyelesaian dengan menggunakan Generate and Test yaitu seorang salesman ingin mengunjungi sejumlah n kota. Akan dicari rute terpendek di mana setiap kota

hanya boleh dikunjungi tepat 1 kali dan jarak setiap kota sudah diketahui. Misalkan ada 4 kota dengan jarak antara setiap kota seperti terlihat pada gambar berikut:

(7)

Penyelesaian dengan menggunakan Generate and Test dilakukan dengan membangkitkan solusi-solusi yang mungkin dengan menyusun kota-kota dalam urutan abjad dan membuat pohon pencarian :

1. A-B-C-D 2. A-B-D-C 3. A-C-B-D

4. A-C-D-B , dan seterusnya.

Gambar 2.8 Pohon pencarian Generate and Test

Misalkan kita mulai dari node A. Kita pilih sebagai keadaan awal adalah lintasan ABCD dengan panjang lintasan = 18. Kemudian kita lakukan backtracking untuk mendapatkan lintasan ABDC dengan panjang lintasan = 19. Lintasan ini kita bandingkan dengan lintasan ABCD, ternyata ABDC > ABCD, sehingga lintasan terpilih adalah ABCD. Kita lakukan lagi backtracking untuk mendapatkan lintasan ACBD =16, ternyata ACBD < ABCD, maka lintasan terpilih sekarang adalah ACBD. Demikian seterusnya hingga ditemukan solusi yang sebenarnya.

2.2.2 Pencarian Buta (Blind Search/Un-informed Search)

Dikatakan pencarian buta, karena pada pencarian ini tidak ada informasi awal. Disini hanya akan dibahas dua metode pencarian, yaitu Breadth First Search dan Depth First Search

(8)

2.2.2.1 Breadth First Search (BFS)

Dalam hal ini, simpul – simpul yang terdekat dengan simpul awal ( start node ) akan dicari paling awal sehingga urutan pencarianya mempunyai sifat yang horizontal. Algoritma ini tidak akan terperangkap untuk menksplorasi sebuah jalan yang salah. Hal ini berlawanan dengan algoritma depth first search yang mungkin mengikuti jalan tunggal yaitu jalan yang salah dan waktu yang lama (Andri Kristanto : 2004).

Gambar 2.9 Tree untuk Breadth First Search

2.2.2.2Depth First Search (DFS)

Depth – First Search (DFS) menggunakan struktur data Stack untuk mengingat kemana seharusnya DFS pergi saat ia mencapai suatu simpul tertentu. DFS memiliki aturan tertentu, aturan untuk DFS adalah (Nugroho Adi. 2009).:

1. Jika mungkin, lakukan kunjungan pada simpul-simpul pendamping (adjacent vertex) yang belum pernah dikunjungi, tandai dan masukkan (push) ke Stack. Ketika tidak ada lagi simpul pendamping yang belum dikunjungi. Masuk ke aturan 2.

2. Jika saat melakukan aturan diatas mengalami kesulitan, keluarkan (popped off) simpul dari Stack maka akan sampai ke simpul di bawahnya. Jika simpul dibawahnya bukan simpul pendamping yang belum dikunjungi, keluarkan lagi. Demikian selanjutnya hingga tidak dapat melakukannya lagi dan masuk ke aturan 3.

(9)

3. Jika tidak dapat lagi mengikuti aturan 1 dan aturan 2, berarti algoritma DFS telah selesai

Gambar 2.10 Lintasan Depth First Seacrh

(10)

Pop E A

Pop A -

FINISH

2.2.3 Backtracking

Backtracking adalah cara yang metodologis mencoba beberapa sekuens keputusan, sampai menemukan sekuens yang bekerja. Algoritma backtracking banyak diterapkan untuk program

games seperti permainan tic-tac-toe, menemukan jalan keluar dalam sebuah labirin, catur,

crossword puzzle, sudoku¸dan masalah – masalah pada bidang kecerdasan buatan (artificial intelligence).

Penyelesaian dengan backtracking :

1. Solusi dicari dengan membentuk lintasan dari akar ke daun. Aturan yang dipakai adalah mengikuti Depth - First Search. Simpul – simpul yang sudah dilahirkan dinamakan simpul hidup dan simpul hidup yang sedang diperluas dinamakan simpul-E. Simpul dinomori dari atas kebawah sesuai dengan kelahirannya.

2. Jika lintasan yang diperluas yang sedang dibentuk tidak mengarah ke solusi, maka simpul-E tersebut dibunuh sehingga menjadi simpul mati (dead node). Simpul yang sudah mati ini tidak akan diperluas lagi.

3. Jika pembentukan lintasan berakhir dengan simpul mati, maka proses pencarian diteruskan dengan membangkitkan simpul anak lainnya. Bila tidak ada lagi simpul anak yang dibangkitkan, maka pencarian solusi dilanjutkan dengan melakukan

backtracking ke simpul hidup terdekat. Selanjutnya simpul ini menjadi simpul-E yang terbaru.

(11)

2.3 Lintasan Terpendek (Shortest Path)

Lintasan terpendek (Shortest Path) merupakan lintasan minimum yang diperlukan untuk mencapai suatu titik dari titik tertentu. Dalam pencarian lintasan terpendek, masalah yang dihadapi adalah mancari lintasan mana yang akan dilalui, sehingga didapat lintasan yang paling pendek dari satu verteks ke verteks yang lain.

Ada beberapa macam persoalan lintasan terpendek, antara lain: 1. Lintasan terpendek antara dua buah verteks.

2. Lintasan terpendek antara semua pasangan verteks.

3. Lintasan terpendek dari verteks tertentu ke semua verteks yang lain

4. Lintasan terpendek antara dua buah verteks yang melalui beberapa verteks tertentu.

Pada persoalan lintasan terpendek, yang menjadi masalah adalah lintasan terpendek antara dua buah verteks, dimana bobot pada setiap edge graph digunakan untuk menyatakan jarak antar kota dalam satuan kilometer (km) (Dewi Yusra Aini : 2010).

2.4 Pengertian Database

Kumpulan file – file yang mempunyai kaitan antara satu file dengan file yang lain sehingga membentuk satu bangunan data untuk menginformasikan satu perusahaan, instansi dalam batasan terntentu. Bila terdapat file yang tidak dapat dipadukan atau diubungkan dengan file

yang lainnya berarti file tersebut bukanla kelompok dari satu database, ia akan dapat membentuk satu database sendiri (Ir. Harianto Kristanto).

Beberapa istilah yang digunakan dalam Sistem Basis Data (Database):

1. Entity : merupakan orang,tempat, kejadian tau konsep yang informasinya direkam. Pada bidang Administrasi Siswa misalnya, entity adalah siswa, buku, pembayaran, nilai test. Pada bidang kesehatan, entity adalah pasien,dokter,obat,kamar,diet.

(12)

nama orang tua, hobby. Atribute juga disebut sebagai data elemen, data field, data item.

3. Data value (nilai atau isi data) : merupakan data aktual atau informasi yang disimpan pada tiap data elemen atau atribute. Atribute nama karyawan menunjukan tempat dimana informasi nama karyawan disimpan, sedangkan data valuenya adalah Sutrisno, Budiman, merupakan isi data nama karyawan tersebut

4. Record / Tuple : merupakan kumpulan elemen - elemen yang saling berkaitan menginformasikan tentang suatu entity secara lengkap. Satu record mewakili satu data atau informasi tentang seseorang misalnya, nomor karyawan, nama karyawan, alamat, kota, tanggal masuk.

5. File : merupakan kumpulan record-record sejenis yang mempunyai panjang elemen yang sama, atribut yang sama, namun berbeda-beda data valuenya.

6. Database Management System (DBMS) : merupakan kumpulan file yang saling berkaitan bersama dengan program untuk pengelolaannya. Database adalah kumpulan datanya, sedang program pengelolaannya berdiri sendiri dalam satu paket program yang komersial untuk membaca data, mengisi data, menghapus data, melaporkan data dalam database.

2.5 Flow Chart

Flowchart adalah bagan yang menggambarkan urutan logika dari suatu prosedur pemecaan masalah. Simbol yang digunkan pada flowcart dapat dilihat pada tabel berikut (Heri Sismoro : 2005).

Tabel 2.2 Simbol-simbol Flowchart Program

Simbol Fungsi

Terminator

Menunjukkan awal dan akhir suatu proses.

Preparation

(13)

Processing

Menunjukan pengolahan aritmatika dan pemindahan data

Input/output

Menunjukan proses input dan output Decision

Mewakili operasi perbandingan logika

Predefined Process

Proses yang ditulis sebagai subprogram, yaitu prosedur / fungsi

2.6 UML (Unified Modeling Language)

Unified Modeling Language adalah sebuah bahasa graphis yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak. UML merupakan dasar fundamental dari teknik analisis berorientasi objek, berbentuk diagram-diagram yang digunakan untuk menampilkan konstruksi dari sistem berorientasi objek, seperti cetak biru (blue print) suatu pembangunan gedung yang menggambarkan konstruksi bangunan tersebut (Mardiansyah Matondang : 2012).

2.6.1 Use-case Diagram

Use-case diagram menggambarkan secara graphis perilaku perangkat lunak. Diagram ini memberikan gambaran menurut perspektif pengguna perangkat lunak. Sebuah use-case

(14)

2.6.1.1Actor

Actor merupakan segala sesuatu yang perlu berinteraksi dengan sistem untuk pertukaran informasi. Actor memberikan suatu gambaran jelas tentang apa yang harus dilakukan perangkat lunak. Actor dinotasikan seperti pada Gambar 2.11.

Gambar 2.11 Actor

2.6.1.2Use case

Use case merupakan hasil penyusunan kembali lingkup fungsionalitas sistem menjadi banyak pernyataaan fungsionalitas sistem yang lebih kecil. Sebuah use case merepresentasikan satu tujuan tunggal dari sistem dan menggambarkan satu rangkaian kegiatan dan interaksi pengguna untuk mencapai tujuan. Use case menggambarkan fungsi-fungsi sistem dari sudut pandang pengguna eksternal. Diagram ini juga dapat diartikan sebagai urutan transaksi berkaitan yang dilakukan satu actor dengan perangkat lunak.Use case dinotasikan seperti pada Gambar 2.12 berikut:

Gambar 2.12 Use case

2.6.1.3 Interaksi Actor dengan Use-case

(15)

Gambar 2.13 Use-case Diagram

2.6.2 Activity Diagram

Activity diagram memodelkan alur kerja (workflow) sebuah proses bisnis dan urutan aktifitas dalam suatu proses. Diagram ini sangat mirip dengan sebuah flowchart karena kita dapat memodelkan sebuah alur kerja dari satu aktifitas ke aktifitas lainnya atau dari satu aktifitas ke dalam keadaan sesaat (state).

Activity diagram menggambarkan aliran aktifitas dari sistem yang sedang dirancang, bagaimana masing-masing aliran berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Diagram ini juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Contoh activity diagram diperlihatkan pada Gambar 2.14.

Gambar 2.14 Activity Diagram

Gambar 2.14 Activity Diagram

User Memilih tombol Menu Sistem Menampilkan sub Menu

User dapat memilih sub Menu

User Memilih sub Menu Peta

User dapat melihat peta

(16)

2.6.3Sequence Diagram

Sequence diagram menjelaskan interaksi objek yang disusun dalam suatu urutan waktu. Diagram ini memperlihatkan tahap demi tahap apa yang harus terjadi untuk menghasilkan sesuatu di dalam use-case. Sequence diagram secara khusus berinteraksi dengan use-case (Mardiansyah Matondang : 2012).

Masing-masing sequence diagram menggambarkan aliran pada suatu use case.

Sequence diagram dapat dibaca dengan melihat pada objek-objek dan pesan-pesan (message). Objek-objek yang berperan dalam aliran diperlihatkan pada kotak empat persegi panjang yang melintas pada bagian atas diagram. Setiap objek memiliki garis hidup (lifeline), yang digambarkan sebagai garis vertikal di bawah nama suatu objek.Notasi sequence diagram dijelaskan seperti Gambar 2.15.

Gambar 2.15 Sequence Diagram

2.6.4 Analisis Persyaratan dengan UML

(17)

dilakukan untuk mendapatkan informasi atau persyaratan cukup untuk mempersiapkan model yang menggambarkan apa yang diperlukan dari perspektif pengguna (Mardiansyah

Matondang : 2012).

Diagram yang digunakan dalam analisis persyaratan yaitu:

1. Use case diagram yang digunakan untuk menunjukkan fungsionalitas suatu sistem dan bagaimana sistem berinterakasi dengan dunia luar.

2. Activity diagram yang menunjukkan alur kerja (work flow) sebuah proses bisnis dan urutan aktivitas dalam suatu proses.

3. Class diagram yang membantu dalam visualisasi struktur sistem yang mendeskripsikan jenis-jenis objek dalam suatu sistem dan hubungan yang terdapat diantara objek tersebut.

4. Package diagram yang digunakan untuk mengelompokkan elemen-elemen model atau kelas.

2.6.5 Desain dengan UML

Saat membuat desain adalah saat untuk berpikir secara teknis dalam menggambarkan diagram-diagram UML. Diagram yang digunakan dalam mendesain sistem yaitu:

1. Class diagram dalam sudut pandang perangkat lunak, untuk menunjukkan class yang terdapat di dalam perangkat lunak dan bagaimana mereka saling berhubungan.

2. Sequence diagram untuk menjelaskan interaksi objek yang disusun dalam suatu urutan waktu.

3. Package diagram yang digunakan untuk mengelompokkan elemen-elemen model atau kelas.

Gambar

Gambar 2.1 Jaringan jalan raya di Provinsi Jawa Tengah
Gambar 2.2 Graf sederhana
Gambar 2.3 Graf ganda
Gambar 2.5 Graf berarah
+7

Referensi

Dokumen terkait

Dengan ini saya menyatakan bahwa tesis Analisis Komunikasi Partisipatif dalam Program Pemberdayaan Masyarakat (Studi Kasus pada Implementasi Musyawarah dalam PNPM

Data tentang hubungan Self Efficacy terhadap Kemandirian Santri Ponpes Modern Darul Hikmah Tulungagungdiperoleh dari pengolahan angket yang terkumpul.. Angket berisi

Pada kasus bayi Ny “W” dengan asfiksia sedang, setelah dilakukan  pengkajian dan pemeriksaan diketahui penyebab utama terjadinya asfiksia adalah cairan ketuban

Winarno dan Jenie (1982) mengemukakan faktor-faktor yang mempengaruhi kerusakan sehubungan dengan kemasan yang digunakan dapat dibagi dalam dua golongan utama yaitu ;

Karakter meristik yang diamati meliputi struktur sisik, jumlah rigi pada bagian belakang duri terakhir sirip dorsal, jumlah jari - jari pada sirip punggung (dorsal),

Patikan kebo ( Euphorbia hirta L.) merupakan salah satu tanaman yang memiliki aktivitas antibakteri terhadap bakteri Staphylococcus epidermidis , yang merupakan

Menurut Pradopo (2005: 271) untuk dapat menangkap makna karya sastra secara keseluruhan, lebih dahulu harap diterangkan gaya bahasa dalam wujud kalimat atau

result shows that adding activated zeolite increased specific pore size of the adsorbent average size of pores, the activated sludge.. are very important to adsorb ions