BAB 2 TINJAUAN PUSTAKA - Penentuan Rute Terpendek Untuk Distribusi Paket Pos Menggunakan Algoritma Floyd Warshall

BAB 2 TINJAUAN PUSTAKA Bab ini akan membahas landasan teori, penelitian terdahulu, kerangka pikir dan

  hipotesis yang mendasari penyelesaian permasalahan dalam penentuan jarak terpendek untuk Pendistribusian paket Pos pada Kantor Pos Pusat Medan dengan pengimplementasian algoritma Floyd Warshall.

2.1 Graf

  Graf adalah kumpulan titik (vertex) yang dihubungkan satu sama lain melalui sisi/busur (edges). Suatu graf G terdiri dari dua himpunan yaitu himpunan V dan himpunan E. (Zakaria, 2005)

  a. Titik : V adalah himpunan titik yang terbatas dan tidak kosong

  b. Edge (sisi/busur): E adalah himpunan busur yang menghubungkan sepasang titik .

  Titik pada graf dapat merupakan obyek atau titik. Edge dapat menunjukkan hubungan (relasi). Notasi graf: G(V,E) artinya graf G memiliki V titik dan E edge.

  Dari penjelasan di atas graf adalah pasangan himpunan (V, E) yang dinotasikan dengan G = (V, E), V adalah himpunan titik, atau vertex dari G yaitu V= {v1 , v2 , v3

  

,…, vn} dan E adalah himpunan edges, atau sisi dari G, yaitu E= {e1 , e2 , e3 ,…,

em }.. Sebuah graf dimungkinkan tidak mempunyai edge satu buah pun, tetapi

vertex nya harus ada minimal satu. Graf yang hanya memiliki satu buah titik tanpa

sebuah edge pun dinamakan graf trivial (Munir,2004).

  Graph pertama kali ditemukan oleh Leonhard Euler, seorang matematikawan kebangsaan Swiss pada tahun 1736. Dimana saat itu Euler berhasil menulis upaya pemecahan Jembatan Koningsberg yang terkenal di Rusia. Graph merupakan sebuah kumpulan yang terdiri dari titik (vertex) dan garis dimana pasangan titik-titik tersebut dihubungkan dengan segmen garis. Vertex ini sering disebut sebagai titik dan segmen garis disebut dengan edge. Maka direpresentasikanlah dengan G=(V,E) (Lipschutz, 2002).

  Graph juga merupakan cabang ilmu yang memiliki banyak terapan dibanyak bagian. Beberapa masalah juga dapat diterapkan dengan graph, misalnya saja untuk jalan raya yang dimodelkan menjadi graf dengan kota sebagai simpul dan jalan sebagai edge yang nilai bobotnya adalah panjang dari jalan tersebut. Sebagai contoh bentuk graph dapat dilihat dari Gambar 2.1

  A B

C D E

Gambar 2.1 Graph dengan 5 vertex dan 7 edgeGambar 2.1 menggambarkan 5 titik yaitu A, B, C, D dan E serta7 edge yang menghubungkan antara titik lainnya seperti AB, AC dan seterusnya. Graph terbagi

  atas dua jenis yaitu Graph berarah (Directed Graph) dan Graph tidak berarah

  

(Undirected Graph) . Graph berarah adalah suatu graph yang mana garis-garisnya

  memiliki arah. Sedangkan graph tidak berarah adalah dimana garis-garis dalam graph tidak memiliki arah.

2.2 Matriks

  Matriks merupakan sekumpulan dari bilangan yang biasa dipakai untuk mengatur data dalam bentuk baris dan kolom (Suarga, 2012). Matriks banyak dimanfaatkan untuk menyelesaikan berbagai permasalahan matematika misalnya dalam menemukan solusi masalah persamaan linear, transformasi linear yakni bentuk umum dari fungsi linear contohnya rotasi dalam 3 dimensi. Matriks juga seperti variabel biasa, sehingga matrikspun dapat dimanipulasi misalnya dikalikan, dijumlah, dikurangkan, serta didekomposisikan. Menggunakan representasi matriks, perhitungan dapat dilakukan dengan lebih terstruktur. Sebuah matriks akan menggunakan fungsi i,j sebagai entri i untuk kolom dan j untuk baris. Sebuah contoh matriks dapat dilihat dari Gambar 2.2.

  A =

Gambar 2.2 Matriks A berukuran 3 x 3

  Dalam hal ini, matriks dimanfaatkan untuk membentuk nilai relasi antara titik yang berhubungan dengan titik lainnya. Sehingga nilai antara titik A dengan titik B dan seterusnya dapat dilihat dengan jelas.

  2.3 Algoritma Floyd Warshall Algoritma Floyd Warshall diciptakan oleh R. Floyd pada tahun 1962. Algoritma Floyd Warshall adalah salah satu pemrograman dinamis, yaitu suatu metode yang melakukan pemecahan masalah dengan memandang solusi yang akan diperoleh sebagai suatu keputusan yang saling terkait. Artinya solusi-solusi tersebut dibentuk dari solusi yang berasal dari tahap sebelumnya dan ada kemungkinan solusi lebih dari satu (Ramadhan, 2011). Floyd Warshall merupakan algoritma untuk pencarian lintasan terpendek pada suatu graf berbobot (weighted graph). Algoritma ini dapat melakukan analisis dan penyelesaian kerumitan suatu proses (Purwanto, 2005).

  Algoritma Floyd Warshall merupakan cabang dari ilmu matematika yang salah satu fungsinya untuk menyelesaikan masalah lintasan terpendek (Ardiansyah, 2012). Algoritma ini termasuk ke dalam pemrograman dinamis yang menyelesaikan permasalahan yang ada dengan memandang solusi lebih dari satu. Pemrograman dinamis merupakan optimalitas yaitu solusi yang diselesaikan sampai tahap optimal (Sani et al, 2013). Floyd Warshall menerapkan pencarian keseluruh titik yang ada. Dalam Algoritma Floyd Warshall terdapat fungsi yang dituliskan kedalam notasi matematika dapat dilihat pada persamaan (1):

  [ S(E) = S(r) + E(r) ] .....................(1) Penjelasan : S(E) = Nilai jarak yang sebenarnya. S(r) = Nilai titik awal. E(r) = Nilai titik akhir.

  Sebagai contoh adalah mencari rute terpendek dari titik A menuju titik C dari grafik berikut :

  

9

C A

  5

  3 B

  1

  1 D

Gambar 2.3 Grafik Lintasan

  

Langkah pertama kita jadikan grafik pada Gambar 2.3 menjadi sebuah tabel atau

matriks terlihat pada Gambar 2.4.

  A B C D A

  5

  9 ∞ 1 B

  5

  3

  1

  2 C

  9

  3

  1

  3 D ∞ 1 1 0 4

  1

  2

  3

  4 Gambar 2.4 Tabel Matriks Lintasan Kotak abjad berwarna merah disamping kiri adalah titik awal dan kotak abjad

berwarna biru yang ada di atas adalah titik tujuan-nya. Sedangkan kotak angka merah

dan biru berfungsi untuk menentukan sebuah index proses (R0 = 1, R1 = 2, R2 = 3, dan R3 = 4) dan memudahkan posisi angka-angka yang ada didalam tabel dengan mengkombinasikan-nya dengan kotak abjad yang sama dengan warnanya. Sebagai contoh dapat dilihat pada persamaan (2) :

  

A(3),B(2) (titik awal, titik tujuan) = 9,0.........(2)

Karena dalam grafik diatas terdapat 4 buah titik, yaitu A, B, C, D maka akan ada 5

proses yang akan dilewati yaitu R0, R1, R2, R3, dan R4 sebagai hasil akhir. perlu

diingat bahwa hasil dari sebuah proses akan digunakan untuk proses berikutnya.

Rumusnya adalah : r = Index proses. => R0 = 1, R1 = 2, R2 = 3, R3 = 4, R4 adalah hasil akhir. S = Titik awal. => A, B, C, dan D (kotak merah). E = Titik tujuan. => A, B, C, dan D (kotak biru).

  

jika hasil penjumlahan nilai titik awal S(r) dan nilai titik tujuan E(r) lebih kecil

daripada nilai jarak yang sebenarnya S(E), maka ganti nilai jarak sebenarnya dengan

hasil penjumlahan nilai titik awal dan nilai titik tujuan [ S(E) = S(r) + E(r) ].

  2.4 Flowchart

  Flowchart merupakan suatu representasi grafis dan langkah-langkah yang harus diikuti dalam menyelesaikan suatu permasalahan yang disusun dari beberapa symbol yang masing-masing symbol memiliki kegiatan tertentu (Yatini B, 2010). Flowchart merupakan bagian yang menampilkan alur proses kerja yang terjadi ataupun sedang dikerjakan dalam keseluruhan sistem dengan meyusun urutan prosedur-prosedur yang akan dilakukan. Urutan dalam bentuk symbol gambar yang berupa aliran proses yang diawali dari penerimaan dan diakhiri dengan menampilkan output. Fungsi lain dari flowchart adalah agar pengembang aplikasi nantinya dapat melihat kembali tahap-tahap yang akan dilakukan jika terjadi kesalahan dalam perancangan sistem. Berikut in adalah bentuk-bentuk flowchart atau diagram alur yang menjelaskan alur proses dari aplikasi pencarian jalur terpendek dari awal hingga akhir, termasuk proses algoritma Floyd.

  2.5 Pemodelan dan Unified Modeling Language (UML)

  Pemodelan merupakan gambaran sederhana dalam bentuk pemetaan dengan berbagai aturan-aturan tertentu. Pemodelan perangkat lunak digunakan untuk mempermudah tahapan berikutnya sehingga pengembangan dilakukan dengan lebih terencana. Pada perkembangan teknik pemrograman berorientasi objek, muncullah sebuah standarisasi bahasa pemodelan untuk pembangunan perangkat lunak yang dibangun dengan menggunakan teknik pemrograman berorientasi objek, yaitu Unified Modeling

  

Languge (UML). UML muncul karena adanya kebutuhan pemodelan visual untuk

  menspesifikasikan, menggambarkan, membangun, dan dokumentasi dari sistem perangkat lunak. UML merupakan bahasa visual untuk pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teks-teks pendukung. UML hanya berfungsi untuk melakukan pemodelan. Jadi penggunaan UML tidak terbatas pada metodologi tertentu, meskipun pada kenyataannya UML paling banyak digunakan pada metodologi berorientasi objek (Rosa & Shalahuddin, 2011).

  UML terbaru adalah UML 2.3 dan pembagian kategorinya dapat diuraikan sebagai berikut:  Structure Diagrams, digunakan untuk menggambarkan suatu struktur statis dari sistem yang dimodelkan. Structure Diagrams terbagi atas: o Class Diagram, menggambarkan struktur sistem dari segi pendefenisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi. o Object Diagram, menggambarkan struktur sistem dari segi penamaan objek dan jalannya objek dalam sistem. Pada diagram objek harus dipastikan semua kelas yang sudah didefenisian pada diagram kelas harus dipakai objeknya, karena jika tidak, pendefinisian kelas itu tidak dapat dipertanggungjawabkan. o Component Diagram, menunjukkan organisasi dan ketergantungan di antara kumpulan komponen dalam sebuah sistem. Diagram komponen fokus pada komponen sistem yang dibutuhkan dan ada di dalam sistem. o Composite Structure Diagram, menggambarkan struktur dari bagian-bagian yang saling terhubung maupun mendeskripsikan struktur pada saat berjalan

  (runtime) dari instance yang saling terhubung. o Package Diagram, menyediakan cara mengumpulkan elemen-elemen yang saling terkait dalam diagram UML. Hampir semua diagram dalam UML dapat dikelompokkan menggunakan package diagram. o Deployment Diagram, menunjukkan konfigurasi komponen dalam proses eksekusi aplikasi. Deployment diagram juga dapat digunakan untuk memodelkan embedded system, sistem client/server, sistem terdistribusi murni dan rekayasa ulang aplikasi.

   Behavior Diagrams, digunakan untuk menggambarkan kelakukan sistem atau rangkaian perubahan yang terjadi pada sebuah sistem. Behavior Diagrams terbagi atas: o Use Case Diagram, pemodelan untuk kelakukan sistem informasi yang akan dibuat. Use Case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat. Secara kasar, use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem informasi dan siapa saja yang berhak mengunakan fungsi-fungsi itu. o Activity Diagram, menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis. Yang perlu diperhatikan adalah bahwa diagram aktivitas menggambarkan sistem bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem. o State Machine Diagram, menggambarkan perubahan status atau transisi status dari sebuah mesin atau sistem. Perubahan tersebut digambarkan dalam suatu graf berarah. State Machine Diagram merupakan pengembangan dari diagram Finite State Automata denan penambahan beberapa fitur dan konsep baru.  Interaction Diagrams, digunakan untuk menggambarkan interaksi sistem dengan sistem lain maupun interaksi antarsubsistem pada suatu sistem. Interaction

  Diagrams terbagi atas:

  o Sequence Diagram, menggambarkan kelakukan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antarobjek. Oleh karena itu, untuk menggambarkan diagram sekuen maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu. o Communication Diagram, menggambarkan interaksi antarobjek/bagian dalam bentuk urutan pengiriman pesan. Diagram komunikasi merepresentasikan informasi yang diperoleh dari diagram kelas, diagram sekuen dan diagram use case untuk mendeskripsikan gabungan antara struktur statis dan tingkah laku dinamis dari suatu sistem. o Timing Diagram, menggambarkan tingkah laku sistem dalam periode waktu tertentu. Timing Diagram biasanya digunakan untuk mendeskripsikan operasi alat digital karena penggambaran secara visual akan lebih mudah dipahami daripada dengan kata-kata. o Interaction Overview Diagram, menggambarkan sekumpulan urutan aktivitas. Interaction Overview Diagram adalah bentuk aktivitas diagram yang setiap titik merepresentasikan diagram interaksi. Interaksi diagram dapat meliputi diagram sekuen, diagram komunikasi, interaction overview

  diagram dan timing diagram.

2.6 Google Map

  Google Map adalah layanan aplikasi dan teknologi peta berbasis web yang disediakan oleh Google secara gartis (bukan untuk kepentingan komersial), temasuk di dalamnya website Google Map (http://maps.google.com), Google Ride Finder, Google Transit, dan peta yang dapat disisipkan pada website lain melalui Google Maps API. Untuk mengaktifkan fitur API, kita hurus menyisipkan Key yang telah diperoleh dari pendaftaran account Goole Maps harus dimasukkan ke aplikasi. Key tersebut dimasukkan mengantikan variabel key. Berikut contoh penyisipan key pada Google Maps.

  <script

src="http://maps.google.com/maps?file=api&v=2&key=&sensor=true_or_false"type=

"text/javascript"> </script>

  URL http://maps.google.com/maps?file=api&v=2&key=abcdefg menunjukkan ke lokasi file JavaScript yang didalamnya termasuk semua simbol definisi yang diperlukan menggunakan Google Maps API. Dengan kata lain, Google Maps merupakan suatu peta yang dapat dilihat dengan menggunakan suatu browser yang akan ditampilkan secara digital. Sehingga, bagi mereka yang ingin mengetahui peta sebuah lokasi, cukup mengetikkan sebuah alamat. Maka, lokasi yang diinginkan akan segera ditampilkan.

  Pada penelitian ini Google Maps adalah digunakan sebagai peta dasar pada penentuan rute terpendek. Tampilan dasar pada Google Maps dapat dilihat pada Gambar 2.5.

Gambar 2.5 Google Maps

2.7 Penelitian Terdahulu

  Dalam melakukan penelitian, penulis membutuhkan beberapa bahan penelitian yang sudah pernah dilakukan peneliti-peneliti lainnya mengenai masalah penentuan jarak terpendek dan algoritma Floyd Warshall. Neny Wahyuningdiyah et al (2010) telah mencoba menggunakan pendekatan Ant

  

Colony Optimization dalam penelitian pada pencarian Pengiriman Barang Pada

Kantor Pos Jemur Sari .

  Richki Hardi et al (2012) telah mencoba menggunakan pendekatan Travelling Salesman Problem dalam perancangan Sistem Tracking Antaran Paket Pada unit pelayanan PT.Pos Indonesia. Untuk penelitian yang dilakukan oleh peneliti sebelumnya, dapat dilihat pada Tabel 2.1.

Table 2.1 Tabel penelitian terdahulu No Peneliti Judul Penelitian

  1 Neny Wahyuningdiyah et al (2010) Akses Informasi Pengiriman Barang Di Kantor Pos Jemur Sari Untuk Area Surabaya Timur Menggunakan Metode Ant Colony Optimization Berbasis J2ME

  2 Richki Hardi et al (2012) Sistem Tracking antaran Paket pada Unit Pelayanan PT. Pos Indonesia Menggunakan metode pendekatan Algoritma Graph Travelling Salesman Problem