BAB 2 LANDASAN TEORI - Penentuan Rute Terpendek Untuk Order Picking Pada Hypermarket Menggunakan Algoritma A* (A Star)

BAB 2 LANDASAN TEORI Pada bab ini akan dibahas landasan teori, penelitian terdahulu, kerangka pikir dan

  hipotesis yang mendasari penyelesaian permasalahan dalam penentuan jarak terpendek untuk order picking pada hypermarket dengan pengimplementasian algoritma A* (A Star).

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. Vertex : V adalah himpunan vertex yang terbatas dan tidak kosong

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

  

Vertex -vertex pada graf dapat merupakan obyek atau titik. Edge dapat menunjukkan

hubungan (relasi). Notasi graf : G(V,E) artinya graf G memiliki V vertex 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 vertex tanpa

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

2.1.1 Jenis-jenis Graf

  Graf dikelompokkan menurut ada tidaknya edges-nya yang paralel atau loop, jumlah

  

vertex nya, berdasarkan ada tidaknya arah pada edges-nya, atau ada tidaknya bobot

pada edges-nya (Dina, 2012).

  Berikut ini adalah jenis graf berdasarkan ada tidaknya edge yang paralel atau

  loop : 1.

  Graf Sederhana Graf sederhana adalah graf yang tidak mempunyai edges ganda dan loop. Loop adalah edge yang menghubungkan sebuah vertex dengan dirinya sendiri. Berikut adalah contoh graf sederhana, dapat dilihat pada Gambar 2.1.

Gambar 2.1 Contoh Graf Sederhana 2.

  Graf Tak-Sederhana Graf tak-sederhana adalah graf yang memiliki edges ganda dan loop. Graf tak sederhana dapat dibagi dua yaitu: a.

  Graf ganda (multi graph) adalah graf yang mengandung edge ganda. Sisi ganda yang menghubungkan sepasang vertex bisa lebih dari dua buah, dapat dilihat pada Gambar 2.2.

Gambar 2.2 Contoh Graf Ganda b.

  Graf semu (pseudograph) adalah graf yang mempunyi loop, termasuk juga graf yang mempunyai loop dan edge ganda karena itu graf semu lebih umum daripada graf ganda, karena graf semu edge-nya dapat terhubung dengan dirinya sendiri, dapat dilihat pada Gambar 2.3.

Gambar 2.3 Contoh Graf Semu

  Selain berdasarkan ada tidaknya edge yang paralel atau loop, graf dapat juga dikelompokkan berdasarkan orientasi arah atau panah yaitu:

1. Graf Berarah (directed graph) Graf berarah adalah graf yang setiap edge-nya memiliki orientasi arah atau panah.

  Pada g raf berarah (vj, vk) ≠ (vk, vj). Dapat dilihat pada Gambar 2.4.

Gambar 2.4 Contoh Graf Berarah

  2. Graf Tidak Berarah (undirected graph) Graf tak berarah adalah graf yang edge-nya tidak mempunyai orientasi arah atau panah. Pada graf ini, urutan pasangan vertex yang dihubungkan oleh edge tidak diperhatikan. Jadi (vj, vk) = (vk, vj) adalah edge yang sama, dapat dilihat pada Gambar 2.5.

Gambar 2.5 Contoh Graf Tidak Berarah

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

  1. Graf Berhingga (limited graph) Graf berhingga adalah graf yang jumlah vertex-nya berhingga, n. Dapat dilihat pada Gambar 2.6.

Gambar 2.6 Contoh Graf Berhingga 2.

  Graf Tidak Berhingga (unlimited graph) Graf tak berhingga adalah graf yang jumlah vertex-nya, n tidak berhingga. Dapat dilihat pada Gambar 2.7.

Gambar 2.7 Contoh Graf Tidak Berhingga

  Graf juga ada yang mempunyai bobot atau nilai. Berdasarkan bobotnya, graf dibagi menjadi dua jenis, yaitu:

  1. Graf tidak berbobot (unweighted graph) adalah graf yang tidak mempunyai bobot atau nilai. Dapat dilihat pada Gambar 2.8.

Gambar 2.8 Contoh Graf Tidak Berbobot 2.

  Graf berbobot (weighted graph) adalah graf yang masing-masing busurnya mempunyai bobot atau nilai tertentu. Dapat dilihat pada Gambar 2.9.

Gambar 2.9 Contoh Graf Berbobot

2.2 Shortest Path

  Lintasan Terpendek (Shortest Path) merupakan pencarian jarak minimum untuk mencapai suatu titik (node akhir) dari titik tertentu (node awal). Dalam pencarian jarak terpendek masalah yang dihadapi adalah mancari lintasan mana yang akan dilalui sehingga didapat lintasan yang paling pendek dari satu vertex ke vertex yang lain (Dina, 2012).

  Ada beberapa macam persoalan lintasan terpendek, antara lain : 1.

  Lintasan terpendek antara dua buah vertex.

  2. Lintasan terpendek antara semua pasangan vertex.

  3. Lintasan terpendek dari vertex tertentu ke semua vertex yang lain 4.

  Lintasan terpendek antara dua buah vertex yang melalui beberapa vertex tertentu. Pada tugas akhir ini persoalan lintasan terpendek yang menjadi masalah adalah lintasan terpendek antara dua buah atau lebih vertex dimana bobot pada setiap edge digunakan untuk menyatakan jarak antar rak display barang pada sebuah hypermarket dalam satuan meter (m) dan vertex mewakili koordinat dan informasi barang diletakkan. Algoritma yang digunakan adalah algoritma A* (A Star) dalam menentukan lintasan terpendek.

2.3 Algoritma A*

  A* (A Star) adalah algoritma komputer untuk pencarian jarak terdekat dan penelusuran rute, dan dipublikasikan pada tahun 1968 oleh Peter Hart, Nils Nilsson dan Bertram Raphael (RSA) di Stanford Research Institute (sekarang SRI International).

  Algoritma ini menggunakan fungsi distance

  • – plus –cost (dinotasikan dengan

  f(x)) untuk menentukan urutan kunjungan pencarian titik pada graf. f(x) merupakan penjumlahan dari dua fungsi path

  • – cost (dinotasikan dengan g(x)), dan perkiraan

  heuristik arak ke titik tujuan (dinotasikan dengan h(x)). h(x) mungkin mewakili garis lurus jarak ke titik tujuan, karena itu mungkin ada jarak terpendek antara dua titik.

  Fungsi heuristik pada A* digunakan untuk memperhitungkan jarak yang didapat dari jarak sebenarnya ditambah jarak perkiraaan. Dalam notasi matematika dituliskan sebagai berikut : f(x) = g(x) + h(x) Keterangan :  g (x) = total jarak didapat dari vertex awal ke vertex sekarang.

   h (x) = jarak estimasi vertex tujuan, sebuah fungsi heuristik utuk membuat perkiraan seberapa jauh lintasan yang akan diambil ke vertex tujuan.  f (x) = jumlah dari g(x) dan h(x).

  Heuristik yang digunakan pada tulisan ini yaitu Manhattan Distance. Fungsi heuristik ini akan menjumlahkan selisih nilai x dan nilai y dari dua buah titik. Perhitungan dapat ditulis sebagai berikut: h(x) = abs(n.x-tujuan.x) + abs(n.y-tujuan.y) Keterangan : = perkiraan jarak dari vertex sekarang ke vertex tujuan.

   h(x) = koordinat x dari vertex n.  n.x = koordinat x dari vertex tujuan.  tujuan.x = koordinat y dari vertex n.  n.y = koordinat y dari vertex tujuan.  tujuan.y

  Pada Algortima ini pencarian vertex yang paling mendekati solusi nantinya akan disimpan suksesornya kedalam list sesuai dengan ranking yang paling mendekati hasil terbaik. Algoritma ini akan mengunjungi setiap vertex selama vertex itu adalah yang terbaik. Bila vertex yang dikunjungi ternyata tidak mengarah ke hasil yang diinginkan, maka akan melakukan penelusuran balik ke arah vertex yang terakhir dikunjungi. Apabila tidak dapat ditemukan juga, maka akan terus menelusuri ulang mencari ke arah vertex awal sampai dapat ditemukan vertex yang lebih baik kemudian untuk dibandingkan dengan suksesornya (Phaneendhar R V, 2011).

  2.4 PHP

  PHP (Hypertext Preprocessor) merupakan skrip yang bersifat server-side yang ditambahkan ke dalam skrip HTML. PHP sendiri merupakan singkatan dari Personal

  

Home Page Tools . Skrip ini yang akan membuat suatu aplikasi website dapat

  diintegrasikan ke dalam HTML sehingga website tersebut tidak lagi bersifat statis, namun menjadi bersifat dinamis. Maksud dari bersifat server-side itu sendiri adalah pengerjaan skrip di lakukan di server, baru kemudian hasilnya dikirim ke browser (Prasetyo, 2008). Cara penulisan script PHP terbagi atas empat style, yaitu: 1.

  Standard Style, dengan format: <?php … ?> 2. Short Style, dengan format:

  <? … ?> 3.

  Javascript Style, dengan format: <script language=’PHP’> …

  </script> 4.

  ASP Style, dengan format: <% … %>

  2.5 JavaScript

  JavaScript adalah bahasa pemrograman Web. Sebagian besar situs web modern menggunakan JavaScript , dan semua web browser moderen-on desktop, konsol game, tablet, dan smartphone juga menggunakan JavaScript, Hal tersebut membuat JavaScript menjadi bahasa pemrograman yang paling banyak digunakan dimana-mana dalam sejarah perkembangannya. JavaScript adalah bagian dari berkembangan teknologi yang semua pengembang web harus mempelajarinya. HTML untuk menentukan isi web halaman, CSS untuk menentukan presentasi dari halaman tersebut, dan JavaScript untuk menentukan perilaku mereka (Flanagan, 2012).

  Program JavaScript yang ditulis menggunakan karakter Unicode yang ditetapkan. Unicode merupakan superset dari ASCII dan Latin - 1 dan mendukung hampir pada setiap bahasa yang ditulis di planet ini. JavaScript adalah bahasa case-

  

sensitive . Ini berarti bahwa bahasa kata kunci, variabel, nama fungsi, dan pengenal

  lainnya harus selalu diketik dengan kapitalisasi konsisten. Sementara kata kunci, misalnya, harus diketik "while" tidak "While" atau "WHILE". Demikian pula “online”, OnLine , dan ONLINE merupakan empat nama variabel yang berbeda .

  2.6 MySQL

  MySQL merupakan server database yang mendukung perintah SQL (Structured

  

Query Language ). Perintah dalam MySQL disebut dengan pernyataan (statement)

  dengan ciri khas pengakhirannya yang di tutup dengan tanda titik koma (;). Prinsip kerja dari MySQL yaitu dengan mengetikkan sejumlah pernyataan dan di akhiri dengan titik koma, maka program klien MySQL akan segera mengirim perintah tersebut ke server database MySQL dan kemudian memberikan respon yang sesuai dengan pernyataan yang diberikan (Rozy, 2014).

  Pernyataan-pernyataan umum yang sering digunakan dalam MySQL adalah sebagai berikut:

  1.

  “SELECT” digunakan untuk menampilkan informasi dari sebuah table pada database .

  2.

  “UPDATE” digunakan untuk mengubah informasi dari sebuah table pada database .

  3.

  “DELETE” digunakan untuk menghapus informasi dari sebuah table pada database .

  4.

  “INSERT” digunakan untuk menambah informasi baru kedalam table pada database .

  2.7 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:

  1. Structure Diagrams, digunakan untuk menggambarkan suatu struktur statis dari sistem yang dimodelkan. Structure Diagrams terbagi atas: a.

  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.

  b.

  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.

  c.

  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.

  d.

  Composite Structure Diagram, menggambarkan struktur dari bagian- bagian yang saling terhubung maupun mendeskripsikan struktur pada saat berjalan (runtime) dari instance yang saling terhubung.

  e.

  Package Diagram, menyediakan cara mengumpulkan elemen-elemen yang saling terkait dalam diagram UML. Hampir semua diagram dalam UML dapat dikelompokkan menggunakan package diagram.

  f.

  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.

  2. Behavior Diagrams, digunakan untuk menggambarkan kelakukan sistem atau rangkaian perubahan yang terjadi pada sebuah sistem. Behavior Diagrams terbagi atas: a.

  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.

  b.

  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.

  c.

  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.

3. Interaction Diagrams, digunakan untuk menggambarkan interaksi sistem dengan sistem lain maupun interaksi antarsubsistem pada suatu sistem.

  Interaction Diagrams terbagi atas: a.

  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.

  b.

  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. c.

  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.

  d.

  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.8 Penelitian Terdahulu

  Dalam melakukan penelitian, penulis membutuhkan beberapa bahan penelitian yang sudah pernah dilakukan peneliti-peneliti lainnya mengenai masalah penentuan jarak terpendek dan algoritma A* (A Star).

  Christophe et al (2009) telah mencoba menggunakan pendekatan Travelling

Salesman Problem (TSP) dalam penelitian pada pencarian order picking pada gudang.

Wäscher (2011) telah mencoba menggunakan perpaduan beberapa algoritma optimasi seperti tabu search dan lainnya dalam perancangan order batching dan order picking untuk gudang. Untuk penelitian yang dilakukan oleh peneliti sebelumnya, dapat dilihat pada Tabel 2.1.

Table 2.1 Tabel Penelitian Terdahulu No Peneliti Judul Penelitian

  1 Wäscher et al Order Batching in Order Picking Warehouse : A Survey of (2011) Solution Approach

  2 Christophe et Using a TSP heuristic for routing order pickers in warehouses

  al (2009)