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