• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2019

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

Copied!
12
0
0

Teks penuh

(1)

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.1Graf

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

(2)

2.1.1 Jenis-jenis Graf

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

vertexnya, 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.

(3)

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 graf berarah (vj, vk) ≠ (vk, vj). Dapat dilihat pada Gambar 2.4.

(4)

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)

(5)

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.

(6)

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

(7)

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 :

 h(x) = perkiraan jarak dari vertex sekarang ke vertex tujuan.  n.x = koordinat x dari vertex n.

 tujuan.x = koordinat x dari vertex tujuan.  n.y = koordinat y dari vertex n.  tujuan.y = koordinat y dari vertex tujuan.

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

(8)

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

(9)

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:

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

(10)

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

(11)

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

(12)

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

(2011)

Order Batching in Order Picking Warehouse : A Survey of Solution Approach

2 Christophe et al (2009)

Gambar

Gambar 2.1 Contoh Graf Sederhana
Gambar 2.3 Contoh Graf Semu
Gambar 2.5.
Gambar 2.7 Contoh Graf Tidak Berhingga

Referensi

Dokumen terkait

Penggunaan rute pengangkutan sampah di Kecamatan Medan Baru dengan menggunakan Algoritma Dijkstra tidak selamanya dapat dijadikan sebagai acuan untuk penentuan rute karena