Penentuan Rute Terpendek Untuk Order Picking Pada Hypermarket Menggunakan Algoritma A* (A Star)

(1)

PENENTUAN RUTE TERPENDEK UNTUK

ORDER PICKING

PADA

HYPERMARKET

MENGGUNAKAN

ALGORITMA A* (A STAR)

SKRIPSI

DENNY PRATAMA

091402077

PROGRAM STUDI TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2014


(2)

PENENTUAN RUTE TERPENDEK UNTUK

ORDER PICKING

PADA

HYPERMARKET

MENGGUNAKAN

ALGORITMA A* (A STAR)

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi

DENNY PRATAMA 091402077

PROGRAM STUDI TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2014


(3)

PERSETUJUAN

Judul : PENENTUAN RUTE TERPENDEK UNTUK

ORDER PICKING PADA HYPERMARKET MENGGUNAKAN ALGORITMA A* (A STAR)

Kategori : SKRIPSI

Nama : DENNY PRATAMA

Nomor Induk Mahasiswa : 091402077

Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI

Departemen : TEKNOLOGI INFORMASI

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI

Diluluskan di Medan, Juli 2014

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

M. Anggia Muchtar, ST.,MM.IT NIP. 19800110 200801 1 010

Sajadin Sembiring, S.Si.,M.Comp.Sc NIP.

Diketahui/Disetujui oleh

Program Studi Teknologi Informasi Ketua,

M. Anggia Muchtar, ST.,MM.IT NIP. 19800110 200801 1 010


(4)

PERNYATAAN

PENENTUAN RUTE TERPENDEK UNTUK ORDER PICKING PADA HYPERMARKET MENGGUNAKAN ALGORITMA A* (A STAR)

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Juli 2014

DENNY PRATAMA 091402077


(5)

UCAPAN TERIMA KASIH

Puji dan syukur penulis panjatkan kepada Allah SWT Yang Maha Pengasih dan Maha Penyayang, dengan segala rahmat dan karuniaNya penulisan tugas akhir ini berhasil diselesaikan dalam waktu yang telah ditetapkan. Selama penyelesaian tugas akhir ini, banyak bantuan dan kerja sama serta doa dan dukungan dari berbagai pihak, oleh karena itu penulis sampaikan ucapan terima kasih sedalam-dalamnya dan penghargaan kepada :

1. Kedua orang tua dan sanak saudara penulis yang telah memberikan dukungan dan motivasi baik materil dan spiritual, Ayahanda H. Edi Saputra dan Ibunda Hj. Atminingsih yang selalu sabar dalam mendidik dan membesarkan penulis. Untuk adik penulis Indra Maulana dan Amelia S Utami yang selalu memberikan semangat kepada penulis.

2. Bapak Sajadin Sembiring, S.Si.,M.Comp.Sc dan Bapak M. Anggia Muchtar, ST.,MM.IT selaku pembimbing yang telah banyak meluangkan waktu dan pikirannya, memotivasi dan memberikan kritik dan saran kepada penulis.

3. Ibu Dr. Erna Budhiarti Nababan, M.IT dan Bapak Dani Gunawan, ST.,MT yang telah bersedia menjadi dosen pembanding yang telah memberikan kritik dan saran kepada penulis.

4. Ketua dan Sekretaris Program Studi Teknologi Informasi, Bapak M. Anggia Muchtar, ST.,MM.IT dan Bapak M. Fadly Syahputra, B.Sc.,M.Sc.IT.

5. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, semua dosen serta pegawai di Fakultas Ilmu Komputer dan Teknologi Informasi.

6. Carrefour Plaza Medan Fair telah membantu dan membimbing penulis dalam melakukan riset.

7. Seluruh sahabat terbaik penulis yang selalu memberikan dukungan, Ahmad Najam, Wildan Afifi, Satrya Prayudi, Mahathir Febrian, Darma Warista, Fachriza Fahmi, Andre H Lubis, M Taufiqul Hadi, Anthea Ria M, Reyza Mirwanda, Suhil, Boho, Yogi, Dedek, Razky, Ranap, Donny, Erfahd, Adha, Mulki, Yudhi, Muslim, Syarah, Mitha, Ari Rifki, Antoni, Lili, Bang Aulia, Bang Ridho, Bang Irwanta, Bang Bayu serta seluruh angkatan 09, teman-teman SRC, teman-teman GG, teman-teman Telkom, teman-teman PIM, serta teman-teman seluruh angkatan mahasiswa USU lainnya yang tidak dapat penulis sebutkan satu persatu.

Semoga segala kebaikan dan bantuannya dibalas oleh Allah SWT dan semoga tugas akhir ini dapat bermanfaat bagi semua pihak yang memerlukannya.


(6)

ABSTRAK

Efesiensi waktu sangat dibutuhkan dalam perjalan pengambilan barang yang berada didalam sebuah hypermarket. Banyak waktu yang terbuang dalam penenetuan arah pengambilan barang dan lamanya proses pelatihan kerja untuk pegawai tentang tata letak barang dalam proses order picking pada hypermarket menjadi hal yang harus diselesaikan. Untuk menyelesaikan permasalahan ini dapat diselesaikan dengan menerapkan pencarian lintasan terpendek dalam proses pencarian barang. Algoritma yang digunakan untuk menentukan jalur terpendek yang akan dilalui pada penelitian ini adalah algoritma A*. Algoritma ini mempunyai fungsi heuristik dalam membantu pencarian. Untuk mendapatkan nilai optimum global bergantung pada kinerja fungsi heuristik. Metode yang diperkenalkan sebagai langkah untuk mendapatkan nilai fungsi heuristik adalah dengan menggunakan jarak Manhattan. Berdasarkan pengujian yang telah dilakukan, algoritma A* dapat menghasilkan jalur yang memiliki bobot dengan jumlah terkecil yang merupakan hasil terpendek serta memiliki komputasi waktu yang cepat.


(7)

DETERMINATION OF SHORTEST ROUTE FOR ORDER PICKING IN HYPERMARKET BY USING A * (A STAR) ALGORITHM

ABSTRACT

Time eficiency is needed for getting several goods that placed in hypermarket. There are so many time have wasted to set the direction for getting several goods and also to train employee for taking a place in order picking process base on the layout of the goods in hypermarket be things to be resolved. To resolve this problem, it could be resolved by implementing the shortest path searching in goods search process. Algorithm that will be used to determine the shortest path to be traversed on this study is an A* Algorithm. This algorithm has a heuristic function in searching process. To obtain the global optimum value depends on the performance of the heuristic function. The method is introduced as a step to get the value of the heuristic function is to use the Manhattan distance. Based on the testing that has been done, the A * algorithm can produce a path that has a small amount of weight with the result of computing the shortest path and has a fast time.


(8)

DAFTAR ISI

Hal.

PERSETUJUAN ... ii

PERNYATAAN ... iii

UCAPAN TERIMA KASIH ... iv

ABSTRAK ... v

ABSTRACT ... vi

DAFTAR ISI ... vii

DAFTAR TABEL ... ix

DAFTAR GAMBAR ... x

BAB 1 PENDAHULUAN ... 1

1.1. Latar Belakang ... 1

1.2. Rumusan Masalah ... 2

1.3. Batasan Masalahs ... 2

1.4. Tujuan Penelitian ... 3

1.5. Manfaat Penelitian ... 3

1.6. Metodologi Penelitian ... 3

1.7. Sistematika Penulisan ... 4

BAB 2 LANDASAN TEORI... 5

2.1. Graf ... 5

2.2. Shortest Path... 10

2.3. Algoritma A* ... 10

2.4. PHP ... 12

2.5. JavaScript ... 12

2.6. MySQL ... 13

2.7. Pemodelan dan Unified Modeling Language (UML)... 13

2.8. Penelitian Terdahulu ... 16

BAB 3 ANALISIS DAN PERANCANGAN ... 17

3.1. Analisis Sistem ... 17

3.1.1 Analisis Masalah ... 17


(9)

viii

3.1.2.1 Kebutuhan Fungsional ... 18

3.1.2.2 Kebutuhan Nonfungsional ... 19

3.2. Penerapan Algoritma A* ... 19

3.3. Perancangan Graf ... 21

3.4. Use Case Diagram ... 24

3.5. Flowchart ... 26

3.5.1 Flowchart Sistem ... 26

3.5.2 Flowchart A* ... 28

3.6. Perancangan Aplikasi dan Antarmuka Pemakai ... 30

3.6.1 Perancangan Database ... 30

3.6.2 Perancangan Relasi Antar Tabel ... 32

3.6.3 Rancangan Home ... 33

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM... 35

4.1. Spesifikasi Perangkat Keras dan Perangkat Lunak ... 35

4.2. Antarmuka Pengguna (User Interface) ... 36

4.3. Pengujian Sistem Secara Menyeluruh ... 40

BAB 5 KESIMPULAN DAN SARAN ... 45

5.1. Kesimpulan ... 45

5.2. Saran ... 45

DAFTAR PUSTAKA ... 46

LAMPIRAN KODE PROGRAM ... 550 49 LAMPIRAN SAMPEL DAFTAR PRODUK ... 53


(10)

DAFTAR TABEL

Hal.

Tabel 2.1 Tabel Penelitian Terdahulu 16

Tabel 3.1 Tabel tbl_path 30

Tabel 3.2 Tabel tbl_perjalanan 31

Tabel 3.3 Tabel tbl_posisi 31

Tabel 3.4 Tabel tbl_produk 32

Tabel 3.5 Tabel tbl_rak 32

Tabel 4.1 Tabel Rencana Pengujian 36

Tabel 4.2 Tabel Hasil Evaluasi pada Tampilan Halaman Home 38 Tabel 4.3 Tabel Hasil Evaluasi pada Tampilan Halaman Output 40 Tabel 4.4 Tabel Pengujian Waktu Pencarian Berdasarkan Jumlah Barang 44


(11)

DAFTAR GAMBAR

Hal.

Gambar 2.1 Contoh Graf Sederhana 6

Gambar 2.2 Contoh Graf Ganda 6

Gambar 2.3 Contoh Graf Semu 7

Gambar 2.4 Contoh Graf Berarah 7

Gambar 2.5 Contoh Graf Tidak Berarah 8

Gambar 2.6 Contoh Graf Berhingga 8

Gambar 2.7 Contoh Graf Tidak Berhingga 9

Gambar 2.8 Contoh Graf Tidak Berbobot 9

Gambar 2.9 Contoh Graf Berbobot 9

Gambar 3.1 Diagram Fishbone 18

Gambar 3.2 Proses Pencarian Algoritma A* 20

Gambar 3.3 Potongan dari Bidang Peta yang diperoleh dari Carrefour 22

Gambar 3.4 Lintasan dan Koordinat Peta 22

Gambar 3.5 Peta yang telah dilakukan Proses Remapping 23

Gambar 3.6 Legenda Peta 23

Gambar 3.7 Diagram Use Case untuk Pencarian Posisi Barang 25

Gambar 3.8 Flowchart Sistem 27

Gambar 3.9 Flowchart A* 29

Gambar 3.10 Relasi Database 33

Gambar 3.11 Rancangan Home 34

Gambar 4.1 Tampilan Halaman Home Sebelum dilakukan Pencarian 37

Gambar 4.2 Tampilan Kolom Input 37

Gambar 4.3 Tampilan Kolom Keterangan Hasil Pencarian 38 Gambar 4.4 Tampilan Halaman Home Sesudah dilakukan Pencarian 39

Gambar 4.5 Tampilan Menu Print 39

Gambar 4.6 Sampel Data Produk 41

Gambar 4.7 Sampel Relasi vertex (path) dalam Database 41


(12)

Gambar 4.9 Hasil Pencarian untuk Sampel 1 43


(13)

ABSTRAK

Efesiensi waktu sangat dibutuhkan dalam perjalan pengambilan barang yang berada didalam sebuah hypermarket. Banyak waktu yang terbuang dalam penenetuan arah pengambilan barang dan lamanya proses pelatihan kerja untuk pegawai tentang tata letak barang dalam proses order picking pada hypermarket menjadi hal yang harus diselesaikan. Untuk menyelesaikan permasalahan ini dapat diselesaikan dengan menerapkan pencarian lintasan terpendek dalam proses pencarian barang. Algoritma yang digunakan untuk menentukan jalur terpendek yang akan dilalui pada penelitian ini adalah algoritma A*. Algoritma ini mempunyai fungsi heuristik dalam membantu pencarian. Untuk mendapatkan nilai optimum global bergantung pada kinerja fungsi heuristik. Metode yang diperkenalkan sebagai langkah untuk mendapatkan nilai fungsi heuristik adalah dengan menggunakan jarak Manhattan. Berdasarkan pengujian yang telah dilakukan, algoritma A* dapat menghasilkan jalur yang memiliki bobot dengan jumlah terkecil yang merupakan hasil terpendek serta memiliki komputasi waktu yang cepat.


(14)

DETERMINATION OF SHORTEST ROUTE FOR ORDER PICKING IN HYPERMARKET BY USING A * (A STAR) ALGORITHM

ABSTRACT

Time eficiency is needed for getting several goods that placed in hypermarket. There are so many time have wasted to set the direction for getting several goods and also to train employee for taking a place in order picking process base on the layout of the goods in hypermarket be things to be resolved. To resolve this problem, it could be resolved by implementing the shortest path searching in goods search process. Algorithm that will be used to determine the shortest path to be traversed on this study is an A* Algorithm. This algorithm has a heuristic function in searching process. To obtain the global optimum value depends on the performance of the heuristic function. The method is introduced as a step to get the value of the heuristic function is to use the Manhattan distance. Based on the testing that has been done, the A * algorithm can produce a path that has a small amount of weight with the result of computing the shortest path and has a fast time.


(15)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Dunia teknologi informasi pada saat ini berkembang dengan sangat cepat, sejalan dengan cepatnya perkembangan teknologi informasi kebutuhan akan efisiensi waktu menjadi isu yang sangat penting saat ini. Dalam mencapai kualitas waktu yang optimal diperlukan manajemen yang baik dengan menerapkan konsep-konsep yang terarah.

Banyak hal yang memerlukan manajemen untuk efesiensi waktu, seperti efesiensi waktu dalam pengambilan permintaan akan barang yang berada didalam sebuah hypermarket. Order picking adalah sebuah fungsi utama pada setiap hypermarket dalam merespon kebutuhan display barang (Petersen & Schmenner, 1999). Order picking merupakan kegiatan pengambilan atau pendistribusian barang berdasarkan pesanan, dimana pada proses ini terjadi pengunjungan lokasi yang terdaftar pada pesanan (Daniels, 1998).

Umumnya pada pengoperasian hypermarket, proses pengambilan barang dianggap paling banyak memerlukan waktu dan biaya tambahan, seperti kurang efisiennya waktu yang diambil operator dan troll boys dalam melakukan perjalan untuk pengambilan barang yang masa berlakunya telah habis (expired) atau barang-barang yang telah habis masa display dan pelatihan kerja bagi operator dan troll boys tentang informasi tata letak barang dalam membantu penyelesaian proses order picking pada hypermarket. Pada tahun 2002, 50% total biaya operasional perusahaan untuk membayar orang-orang yang bekerja untuk menyusun dan mengambil pesanan barang (Frazelle, 2002). Dari persentase tersebut tentu ini tidak baik dalam efektifitas


(16)

pengelolaan hypermarket. Untuk itu harus ada pemecahan masalah untuk meningkatkan kecepatan dan ketepatan pelayanan, khususnya alat bantu pemilihan jalur perjalanan pada order picking berbasis teknologi informasi.

Algoritma A* (A star) adalah algoritma pencarian pada graf yang mencari jalur dari suatu vertex awal ke akhir yang telah ditentukan. A* (A star) sangat populer dikalangan developer sebagai algoritma shortest path yang baik (Aini, 2010). Tentu algoritma ini menjadi alternatif dalam mempercepat proses pencarian jarak terpendek dalam penanganan kebutuhan informasi manajemen pengambilan barang yang berada di dalam hypermarket lewat pencarian posisi user dan rak penyimpanan barang.

1.2 Rumusan Masalah

Banyaknya waktu yang terbuang dalam penenetuan arah pengambilan barang dan lamanya proses pelatihan kerja untuk pegawai baru tentang tata letak barang dalam proses order picking pada hypermarket.

1.3 Batasan Masalah

Untuk mengurangi ruang lingkup terjemahan yang terlalu besar, maka batasan masalah dalam penelitian ini, yaitu:

1. Rak promosi tidak dimasukkan.

2. Representasi grafis aplikasi adalah 2-Dimensi, objek adalah rak display pada Carrefour Medan Fair berupa peta koordinat.

3. Kapasitas alat angkut dan desain rak diabaikan.

4. Tidak menggunakan data spasial lainnya, kecuali data spasial berupa peta hypermarket Carrefour Lantai I Medan Fair Jl. Jend. Gatot Subroto No 30 Medan, Indonesia 20118.

5. Tidak menggunakan data-non spasial lainnya, kecuali data non-spasial berupa informasi barang pada rak yang direpresentasikan kedalam vertex.


(17)

3

1.4 Tujuan Penelitian

Penelitian ini memiliki tujuan yaitu membantu perusahaan, khususnya operator dan troll boys dalam manajemen pegambilan barang pada hypermarket yang telah expired atau barang yang telah habis masa dislplay. Dan terutama untuk pelatihan kerja operator gudang dan troll boys.

1.5 Manfaat Penelitian

Memberikan kemudahan pada operator dan troll boys hypermarket dalam mempercepat waktu dalam proses pengambilan barang, dengan merepresentasikan penunjuk arah yang efektif lewat penentuan jarak terpendek.

1.6 Metodologi Penelitian

Metodologi penelitian yang digunakan pada penelitian ini adalah: a. Studi Literatur

Pada tahap ini dilakukan studi kepustakaan yaitu proses pengumpulan bahan-bahan referensi yang berkaitan dengan jalur terpendek, optimasi dan algoritma A* (A Star) dari buku, artikel, paper, jurnal, makalah ataupun sumber lainnya. b. Analisis

Pada tahap ini dilakukan analisis penggunaan algoritma A* (A Star) pada penentuan jalur terpendek.

c. Perancangan

Pada tahap ini dilakukan perancangan proses jalur terpendek yang akan dilalui, seperti diagram sistem dan flowchart.

d. Implementasi

Pada tahap ini dilakukan implementasi analisis yang telah dilakukan ke dalam kode program.

e. Pengujian

Pada tahap ini dilakukan pengujian kemampuan algoritma A* (A Star) dalam menentukan jalur terpendek.


(18)

f. Penyusunan Laporan

Pada tahap ini dilakukan penulisan laporan mengenai seluruh penelitian yang telah dilakukan.

1.7 Sistematika Penulisan

Tugas akhir ini disusun dalam lima bab dengan sistematika penulisan sebagai berikut:

Bab I : Pendahuluan

Pada bab ini pendahuluan berisi tentang hal-hal yang mendasari dilakukannya penelitian serta pengidentifikasian masalah penelitian. Bagian-bagian yang terdapat dalam bab pendahuluan ini terdiri atas latar belakang masalah, perumusan masalah, batasan masalah, tujuan penelitian, dan manfaat penelitian.

Bab II : Landasan Teori

Pada bab ini berisi landasan teori, penelitian terdahulu, kerangka pikir dan hipotesis yang diperoleh dari acuan yang mendasari dalam melakukan penelitian ini.

Bab III : Analisis dan Perancangan

Pada bab ini analisis dan perancangan berisi metodologi penelitian yang dilakukan dalam pengimplementasian algoritma A* (A Star) untuk permasalahan dalam penentuan jarak terpendek untuk order picking pada hypermarket.

Bab IV : Implementasi dan Pengujian Sistem

Pada bab ini berisi penjelasan hasil dari pengujian algoritma A* (A Star) yang telah dilakukan dalam menyelesaikan permasalahan dalam penentuan jarak terpendek untuk order picking pada hypermarket

Bab V : Kesimpulan dan Saran

Pada bab ini kesimpulan dan saran berisi kesimpulan dari hasil penelitian dan saran-saran yang berkaitan dengan penelitian yang selanjutnya.


(19)

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 vertexnya harus ada minimal satu. Graf yang hanya memiliki satu buah vertex tanpa sebuah edge pun dinamakan graf trivial (Munir,2004).


(20)

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.


(21)

7

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.


(22)

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.


(23)

9

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.


(24)

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.


(25)

11

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 mencari ke arah vertex awal sampai dapat ditemukan vertex yang lebih baik kemudian untuk dibandingkan dengan suksesornya (Phaneendhar R V, 2011).


(26)

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


(27)

13

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


(28)

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.


(29)

15

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.


(30)

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)


(31)

BAB 3

ANALISIS DAN PERANCANGAN

Dalam bab ini berisi beberapa hal diantaranya seperti data yang digunakan, penerapan algoritma dan analisis perancangan sistem dalam mengimplementasikan algoritma A* (A Star) untuk permasalahan dalam penentuan jalur terpendek untuk order picking pada hypermarket.

3.1 Analisis Sistem

Pada sistem ini akan dilakukan analisis terhadap sistem untuk melakukan penentuan jalur terpendek untuk mencari barang pada rak hypermarket Carrefour dengan menggunakan algoritma A* (A star).

3.1.1 Analisis Masalah

Dari beberapa kasus yang ditemui pada manajemen hypermarket, dimana masih banyak pegawai yang tidak mengetahui posisi barang pada rak sehingga menimbulkan terlalu lama waktu pencarian dan rute yang ingin dilalui. Jika pegawai diberikan kemudahan untuk mengetahui posisi dan jalur terpendek maka dia tidak harus mencari dengan waktu yang lama. Untuk itulah, digambarkan diagram permasalahan dalam bentuk diagram fishbone. Dengan menggunakan diagram fishbone, maka akan diketahui penyebab permasalahan yang saling berkaitan. Diagram ini membantu untuk mengetahui masalah dan penyelesaian yang akan dilakukan, sehingga akan lebih mudah dalam memahami masalah yang akan di analisis terhadap sistem. Diagram tersebut dapat kita lihat pada Gambar 3.1.


(32)

Material Method

Machine Man

Menentukan jalur terpendek / rute

optimum pada pencarian barang (order picking) Tidak mengetahui posisi barang pada rak Tidak memperhitungkan seberapa panjang perjalanan Belum ada metode untuk mencari jalur terpendek untuk pencarian barang

(order picking) Bahan atau informasi

yang kurang untuk mencari barang dan

jalur

Belum ada aplikasi yang bisa digunakan

Gambar 3.1 Diagram Fishbone

3.1.2 Analisis Kebutuhan

Kebutuhan merupakan suatu keinginan yang akan dicapai dalam melakukan perancangan. Kebutuhan menggambarkan fungsi dan batasan untuk aplikasi. Adapun analisis kebutuhan dibagi menjadi dua, antara lain adalah kebutuhan fungsional dan kebutuhan nonfungsional.

3.1.2.1 Kebutuhan Fungsional

Kebutuhan fungsional merupakan kebutuhan yang fungsi-fungsinya harus dipenuhi pada rancangan aplikasi. Kebutuhan fungsional yang harus dipenuhi pada aplikasi yang akan dirancang adalah :

1. Aplikasi harus mampu menentukan titik awal dan titik akhir dari pencarian. 2. Aplikasi harus mampu menentukan jalur terpendek yang akan dilalui.


(33)

19

3.1.2.2 Kebutuhan Nonfungsional

Kebutuhan nonfungsional terdiri dari beberapa macam karakteristik, antara lain : 1. Performa

Aplikasi yang akan dibangun dapat menampilkan hasil dari fungsi sistem untuk jalur terpendek yang akan dilalui.

2. Efisiensi

Aplikasi yang akan dibangun diharuskan sederhana, agar memudahkan pengguna untuk memakainya.

3. Ekonomi

Aplikasi yang akan dibangun tanpa mengeluarkan biaya tambahan dalam penggunaannya.

3.2 Penerapan Algoritma A*

Algoritma A* direpresentasikan menggunakan graf untuk menyelesaikan permasalahan rute terpendek. Dengan graf, arah dan perhitungan dapat diselesaikan dengan mudah karena tampilan lebih atraktif. Pada algoritma A* pencarian jarak menggunakan strategi pencarian heuristik dimana jarak yang diperhitungkan didapat dari jarak sebenarnya ditambah dengan jarak perkiraan. Dengan menggunakan fungsi heuristik algoritma ini hanya akan menguji vertex yang mendekati vertex tujuan. 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.


(34)

A * dapat juga dapat diimplementasikan, jika kebutuhan akan pencarian yang membutuhkan perulangan. Prinsip algoritma A* yaitu, akan melintasi semua graf yang berhubungan dengan starting point, mengurutkan cost terkecil dengan memperhatikan cost (f) kedalam antrian graf yang dilalui. Jika, pada titik tertentu segmen jalan yang dilalui memiliki biaya yang lebih tinggi dari segmen jalan yang lain yang sedang dihadapi, maka A* akan meninggalkan jalan dengan cost yang lebih tinggi.

Algoritma ini menggunakan dua antrian, yaitu OPEN dan CLOSED. Dimulai dengan titik awal dijadikan antrian prioritas titik untuk dilalui, dikenal sebagai OPEN SET. Semakin rendah cost untuk suatu simpul x, semakin tinggi prioritas. Pada setiap langkah dari algoritma A* simpul dengan cost tertinggi maka akan dihapus dari antrian, f dan h nilai-nilai tetangganya diperbarui sesuai dengan relasi pada graf dan tetangga ini ditambahkan ke antrian .

Algoritma A* akan terus mencari sampai titik tujuan yang memiliki nilai f lebih rendah dengan menggunakan nilai heuristik untuk mempersempit ruang pencarian yaitu dengan membatasi vertex yang akan diuji pada setiap percabangan. Jika sudah sampai ke titik tujuan maka A* akan menjumlahkan panjang path yang sebenarnya (Coppin, 2004)

.

Gambar 3.2 Proses Pencarian Algoritma A* Sumber : (Millington et al., 2009)


(35)

21

Pada Gambar 3.2 akan dilakukan pencarian rute dari A ke G, pada saat posisi berada di A vertex pilihan adalah B dan C. B dianggap lebih baik karena total cost berbobot 4.5, sedangkan C mempunyai total cost berbobot 4.8. Pada saat posisi di B, E akan diasumsikan lebih baik karena total cost berbobot 4.6 sedangkan D mempunyai total cost berbobot 5.6. Akan tetapi jika dibandingkan dengan kunjungan sebelumnya yaitu AC, vertex E melalui AC mempunyai total cost terbaik yaitu 4.2. Pada saat posisi di E, vertex tujuan sudah di temukan yaitu EG, sehingga rutenya menjadi A-C-E-G dengan total cost berbobot 4.4.

Berikut terminologi daasar yang terdapat pada algoritma A* (Andysah, 2012): 1. Starting point sebagai posisi awal sebuah benda.

2. Current adalah simpul yang sedang dijalankan pada algoritma pencarian jarak terpendek.

3. Simpul adalah petak kecil atau pixel sebagai representasi dari arah path finding. Bentuknya dapat berupa persegi, lingkaran, maupun segitiga.

4. Open list adalah tempat menyimpan data simpul yang mungkin diakses dari starting point maupun simpul yang sedang dijalankan.

5. Closed list adalah tempat penyimpanan data simpul sebelum Current yang juga merupakan bagian dari jalur terpendek yang telah berhasil diciptakan. 6. “f” adalah nilai yang diperoleh dari penjumlahan. ”g” merupakan jumlah nilai

tiap simpul dalam jalur terpendek dari titik awal ke Current dan “h” merupakan jumlah nilai perkiraan dari sebuah simpul ke simpul tujuan. Sehingga dapat diformulasikan dengan f(x) = g(x) + h(x).

7. Simpul tujuan adalah simpul yang dituju.

8. Halangan adalah sebuah atribut yang menyatakan bahwa sebuah simpul tidak dapat dilalui oleh Current.

3.3 Perancangan Graf

Graf yang digunakan pada penelitian ini diperoleh dengan mengambil sebuah bidang potong dari digital map yang diperoleh dari Carrefour tepatnya berada pada lantai I Carrefour Plaza Medan Fair. Lintasan pada peta dibentuk menjadi graf secara manual dengan menarik garis lurus pada jalur-jalurnya (remapping) Gambar 3.3.


(36)

Gambar 3.3 Potongan dari Bidang Peta yang diperoleh dari Carrefour

Setelah diperoleh bentuk dasar dari peta, dapat dilihat tampilan bentuk rak yang dilihat dari atas. Pada tahap berikutnya peta akan diberikan lintasan dan koordinat dengan menggunakan alat bantu gambar. Tampilan lintasan dan koordinatnya dapat dilihat pada Gambar 3.4

Gambar 3.4 Lintasan dan koordinat peta

Kemudian lintasan yang telah dibuat disatukan kedalam potongan peta digital yang dapat dilihat pada Gambar 3.5.


(37)

23

Gambar 3.5 Peta yang telah dilakukan Proses Remapping

Pada Gambar 3.5 dapat dilihat peta telah memiliki jalur yang dapat dilalui dan titik koordinat sebagai titik yang merepresentasikan rak dan titik perpotongan antar lintasan. Terdapat total 109 titik (vertex) yang merepresentasikan rak dan 162 titik (verteks) yang merepresentasikan titik perpotongan antar lintasan. Total lintasan (path) berjumlah 331 lintasan. Untuk setiap keterangan pada peta dapat dilihat pada legenda peta pada Gambar 3.6 berikut :


(38)

Berdasarkan Gambar 3.6 penempatan barang yang terdaftar pada setiap rak dijelaskan seperti berikut :

1. Rak Sayur dan Buah : Bumbu Tradisional, Buah Import, Buahl Lokal, Sayuran Import, Sayuran Lokal, Buah dan Sayuran Kaleng.

2. Rak Tumpukan : Segala jenis beras ukuran 30 kg dan Mie Instan dus

3. Rak Bertingkat : Menu Sarapan, Krimer & Gula, Selai, Sereal, Makanan Diet, Perlengkapan Kue, Mie & Pasta, Makanan Kaleng, Seafood Kering, Makanan Binatang, Snacks, Makanan Manis, Hard Candies, Permen Cokelat, Cokelat Blok, Susu Bubuk, Bir, Makanan Kering, Daging kering & Asin, Kacang-kacangan, Biskuit, Biskuit Krakers, Kue, Kue Kering, Wafer, Rolls, Sandwiches, Saus & Kecap, Dressing.

4. Rak Berpendingin : Cola dan soda, Functional driks, Air mineral, Minuman energi, Susu Cair, Minuman kemasan lainnya.

5. Rak Makanan dan Minuman Basah : Seafood, Daging, Salad Buah dan Sayur, Ikan, Gorengan, Yogurt.

6. Rak Dinding Bertingkat : Perlengkapan Bayi, Camilan Tradisional, Cake dan Roti, Beras, Minyak Sawit dan Vinegar, Mie Instan.

3.4 Use Case Diagram

Perancangan sistem digambarkan dengan menggunakan pemodelan use case. Untuk pengidentifikasian aktor berdasarkan pada tahap analisis pengguna, aktor yang berperan dalam aplikasi ini hanya satu aktor yaitu pengguna yang akan menggunakan sistem untuk melakukan pencarian posisi barang.

Use case yang terjadi adalah use case melakukan pencarian posisi barang. Diagram use case dapat memberikan gambaran interaksi yang terjadi antara aktor dengan use case di dalam sistem. Berdasarkan pengidentifikasian aktor dan use case, scenario use case yang terjadi dapat digambarkan dengan diagram use case pada Gambar 3.7


(39)

25

Pegawai

Pencarian Barang

Gambar 3.7 Diagram use case untuk pencarian posisi barang

Use Case Specification untuk Gambar 3.7 adalah sebagai berikut:

1. Brief Description

Use case ini digunakan oleh pengguna untuk melakukan pencarian posisi barang. 2. Pre Condition

Pengguna harus mengisi kolom id barang untuk diproses oleh sistem. 3. Characteristic of activation

Eksekusi hanya bisa dilakukan oleh pengguna. 4. Flow of Events

a. Basic Flow

- Use caseini akan dimulai jika pengguna menekan tombol “Search”.

- Kemudian sistem menampilkan halaman output pada peta dan kolom hasil.

- Use case ini berakhir ketika sistem menampilkan halaman output. b. Alternative Flow

- Jika user ingin menghasilkan output berupa hard copy, maka user dapat menekan tombol “Print”.

5. Post Condition

Untuk melakukan pencarian lagi, pengguna harus membuka menekan tombol

“Clear”. 6. Limitation

Untuk mendapatkan hasil yang tepat, id barang yang di input harus jelas dan terhindar dari kesalahan pengetikan kata.


(40)

3.5 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 (Indra 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.

Berikut in adalah bentuk-bentuk flowchart yang menjelaskan alur proses dari aplikasi pencarian jalur terpendek dari awal hingga akhir, termasuk proses algoritma A* (A Star).

3.5.1 Flowchart Sistem

Berikut ini adalah gambaran dari flowchart sistem untuk sistem penentuan rute terpendek yang dapat di lihat pada Gambar 3.8


(41)

27

Mulai

Tampilkan Halaman openning

screen

Tampilkan Halaman Home

(peta dan input field)

Input Kode Barang

Pencarian dengan A* berhasil

tidak

Selesai Tampilkan

Rute Terpendek

ya Sorting Hasil

tidak Select * from tbl_posisi where id_produk = ‘”.id_barang.”’

Print

Hard copy

Gambar 3.8 Flowchart Sistem

Penjelasan dari Gambar 3.8 adalah :


(42)

User akan diarahkan menuju halaman home

 Pada halaman home, user akan diberikan tampilan peta dan kolom input untuk melakukan pencarian barang

 Pada kolom input, user akan memasukkan kode barang yang dicari, misalkan : 1, 40, 5, 3,10

 Sistem akan melakukan query pada database untuk melakukan cek ketersedian barang pada rak.

 Kemudian sistem akan mencari koordinat posisi rak yang telah dilakukan query.

 Koordinat pertama akan dijadikan tujuan awal dan akan dilakukan pencarian jarak dengan fungsi A*.

 Setelah hasil jarak antara titik awal dan titik tujuan pertama di dapatkan. Maka proses pencarian kembali dilanjutkan ke titik tujuan selanjutnya.

 Setiap jarak akan dibandingkan, jarak terpendek adalah jarak yang menjadi prioritas utama untuk dilalui.

 Tampilkan jalur kedalam peta dan keterangan hasil pada kolom hasil.

 Disediakan fungsi print untuk menghasilkan hard copy.

3.5.2 Flowchart A*

Berikut ini adalah gambaran dari flowchart algoritma A* untuk sistem pencarian jalur terpendek yang dapat di lihat pada Gambar 3.9


(43)

29

Mulai

Input, Goal X1, Y1, X2,Y2

ProsesManhattan H(x) = abs ((X2-X1)+(Y2-Y1))

Kirim H ke Proses A*

Proses Routing A* F(X) = G(X) + H(X)

Tampilkan Rute Terpendek

Selesai

Gambar 3.9 Flowchart A*

Penjelasan dari Gambar 3.9 adalah :

 Dimasukkan input awal dan akhir berupa koordinat (x1,y1) (x2,y2).

 Koordinat dilakukakan pendekatan heuristik dengan menggunakan fungsi Manhattan Distance.

 Kirim nilai heuristikke proses A*.

 Lalu akan dilakukan proses pencarian jalur terdekat dengan fungsi A*.


(44)

3.6 Perancangan Aplikasi dan Antarmuka Pemakai

Perancangan perangkat lunak sistem penentuan rute terpendek untuk order picking pada hypermarket terdiri dari penggambaran atau perencanaan dari beberapa elemen dalam pengembangan aplikasi. Rancangan aplikasi yang akan di buat adalah aplikasi pencarian jalur terpendek yang dapat dijalankan oleh pegawai. Aplikasi ini digunakan untuk menentukan titik barang yang dicari, kamudian akan dicari posisi barang dan rute terpendeknya. Aplikasi ini menerapkan algoritma A* (A Star) sebagai pencarian solusi terbaik.

3.6.1 Perancangan Database

Database pada aplikasi ini berfungsi untuk tempat penyimpanan data-data antara lain tabel tbl_path, tbl_perjalanan, tbl_posisi, tbl_produk serta tbl_rak.

a. Tabel tbl_path

Tabel ini berfungsi sebagai relasi antar titik yang terdaftar. Struktur tabel ini dapat dilihat pada Tabel 3.1

Table 3.1 Tabel tbl_path

No Nama Field Tipe Ukuran Keterangan

1. Id Int 5 Nomor Id Path (primary key)

2. Asal Varchar 4 Titik awal

3. Tujuan Varchar 4 Titik akhir

b. Tabel tbl_perjalanan

Tabel ini berfungsi sebagai tempat penyimpanan hasil pencarian rute. Struktur tabel ini dapat dilihat pada Tabel 3.2


(45)

31

Table 3.2 Tabel tbl_perjalanan

No Nama Field Tipe Ukuran Keterangan

1. id_perjalanan Int 11 Nomor ID Perjalanan

(primary key)

2. id_produk Int 11 Nomor ID Produk

3. id_rak_awal Int 11 Nomor ID Rak Awal (start) 4. id_rak_tujuan Int 11 Nomor ID Rak Awal (end) 5. panjang_perjalanan Int 11 Jarak

6. simpang_dilewati Varchar 100 Rute Pencarian Jarak

c. Tabel tbl_posisi

Tabel ini berfungsi sebagai tempat penyimpanan relasi antar produk dan rak. Struktur tabel ini dapat dilihat pada Tabel 3.3

Table 3.3 Tabel tbl_posisi

No Nama Field Tipe Ukuran Keterangan

1.

No Int 5 Nomor ID Posisi(primary

key)

2. id_produk Int 5 Nomor ID Produk

3. id_rak Int 11 Nomor ID Rak Penyimpanan

Produk

d. Tabel tbl_produk

Tabel ini berfungsi sebagai tempat penyimpanan daftar produk yang disimpan dalam suatu rak. Struktur tabel ini dapat dilihat pada Tabel 3.4


(46)

Table 3.4 Tabel tbl_produk

No Nama Field Tipe Ukuran Keterangan

1. id_produk Int 5 Nomor ID Posisi(primary

key)

2. nama_produk Int 5 Nomor ID Produk

3. Jenis Int 11 Nomor ID Rak Penyimpanan

Produk

e. Tabel tbl_rak

Tabel ini berfungsi sebagai tempat penyimpanan koordinat x dan y dari setiap rak dan titik bantu pada path. Struktur tabel ini dapat dilihat pada Tabel 3.5

Table 3.5 Tabel tbl_rak

No Nama Field Tipe Ukuran Keterangan

1. id_rak Int 5 Nomor ID Rak Penyimpanan

Produk

2. nama_titik varchar 4 Titik Rak dan Titik Bantu

3. pos_x Int 5 Koordinat sumbu X

4. pos_y Int 5 Koordinat sumbu Y

3.6.2 Perancangan Relasi Antar Tabel

Rancangan relasi antar tabel berfungsi untuk menampilakn informasi relasi (dependence) antara tabel pada database. Rancangan relasi antar tabel dapat dilihat seperti Gambar 3.10


(47)

33 tbl_path PK id asal tujuan FK1 id_rak tbl_perjalanan PK id_perjalanan id_barang id_rak_awal id_rak_tujuan panjang_perjalanan simpang_dilewati FK1 id tbl_posisi PK no id_produk id_rak tbl_produk PK id_produk nama_produk jenis FK1 no tbl_rak PK id_rak nama_titik pos_x pos_y FK1 no

Gambar 3.10 Relasi Database

3.6.3 Rancangan Home

Rancangan home berfungsi untuk menampilkan informasi gambar peta hypermarket serta tempat menu keberadaan program-program pendukung sistem penentuan jarak terdekat yang terdiri dari “Kolom Pencarian” dan “Keterangan Hasil”. Bentuk rancangan home terlihat seperti pada Gambar 3.11.

Rancangan halaman home pada Gambar 3.11 terdapat delapan komponen penting pada antarmuka, yaitu header(1) yang menggambarkan aplikasi penelitian ini, peta(2) yang menunjukkan gambaran peta hypermart Carrefour lantai I, text input(3) yang berisi id barang yang dimasukkan oleh pengguna, tombol “Search”(4) untuk

melakukan proses pencarian, tombol “Clear”(5) untuk melakukan proses pencarian

ulang, tombol “Print”(6) untuk melakukan proses cetak output, text output (7) yang menampilkan hasil pencarian dari input dan footer(8) tambahan untuk copyright dan.


(48)

Gambar 3.11 Rancangan Home

Header

2. Gambar Peta Carrefour Lantai 1

8. Footer

3. Input Pencarian

7. Hasil Pencarian 4. search 5. clear

6. print


(49)

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

Pada bab ini akan diuraikan tahapan selanjutnya dalam pengembangan sistem yaitu tahap implementasi dan pengujian sistem. Di sini akan dijelaskan tentang proses pengimplementasian algoritma ke dalam sistem dan melakukan pengujian dari sistem yang dikembangkan.

4.1. Spesifikasi Perangkat Keras dan Perangkat Lunak

Spesifikasi perangkat lunak yang digunakan selama pembangunan sistem adalah sebagai berikut:

1. Operating System Windows 7 32-bit, 2. Web Server Apache 2.2.14,

3. PHP 5.3.1, 4. MySQL 5.1.41.

Agar perangkat lunak dapat berjalan dengan baik untuk para pengguna, maka spesifikasi yang dibutuhkan oleh sistem baik dari sisi perangkat keras (hardware) maupun perangkat lunak (software) dapat diuraikan sebagai berikut.

Untuk perangkat keras, yang direkomendasikan adalah sebagai berikut: 1. Processor dengan kecepatan minimal 1 GHZ,

2. Hardisk minimal 80 GB, 3. RAM minimal 1 MB,

4. Monitor 14,1” dengan resolusi layar minimum 800 x 600 pixel, 5. Mouse dan Keyboard.


(50)

Untuk perangkat lunak, yang dapat mendukung agar sistem dapat berjalan adalah sebagai berikut:

1. Operating system Microsoft Windows 7, Windows 8,

2. Browser, seperti Mozilla Firefox, Google Chrome, dan lain-lain, 3. PHP 5.3.1,

4. MySQL 5.1.41,

5. Web Server Apache 2.2.14.

4.2. Antarmuka Pengguna (User Interface)

Setelah melewati tahap analisis perancangan antarmuka pengguna, rancangan digunakan sebagai acuan untuk proses pengkodean halaman-halaman pada perangkat lunak. Rencana pengujian sistem yang akan diuji dapat dilihat pada Tabel 4.1 berikut.

Tabel 4.1 Tabel Rencana Pengujian

No. Komponen Sistem yang Diuji Butir Uji

1 Halaman Home Mencoba menu yang ada pada halaman Home, yaitu : Kolom Input, Tombol

“Search”, “Clear”, “Print” dan Kolom Output

4.2.1 Tampilan Halaman Home

Halaman home berisi tampilan peta, data input yang telah diberikan pengguna berupa id barang serta keterangan hasil (output) pencarian yang dilakukan berdasarkan pengecekan pada database. Pada halaman ini juga disediakan tombol “Print” untuk mencetak hardcopy dari hasil pencarian. Halaman home yang telah dilakukan pengkodean ditunjukkan pada Gambar 4.1.


(51)

37

Gambar 4.1 Tampilan halaman home sebelum dilakukan pencarian

Pada halaman ini disediakan kolom input untuk memasukkan id barang yang akan dilakukan pencarian. Kolom tersebut disediakan sebanyak 5 kolom, dapat dilihat pada Gambar 4.2


(52)

Pada Halaman ini juga disediakan kolom keterangan hasil pencarian yang menampilkan keterangan hasil pencarian. Kolom tersebut dapat dilihat pada Gambar 4.3

Gambar 4.3 Tampilan kolom keterangan hasil pencarian

Setelah pengkodean telah selesai dilakukan, maka selanjutnya dilakukanlah evaluasi terhadap tampilan halaman home. Hasil proses evaluasi dapat dilihat pada Tabel 4.2 berikut.

Tabel 4.2 Tabel Hasil Evaluasi pada Tampilan Halaman Home No. Sasaran Pengujian Hasil yang

Diharapkan

Hasil Pengujian

Status

1 Uji tampilan halaman home

Menampilkan Peta, kolom input, kolom keterangan hasil pencarian, button “Search”,

“Clear” dan “Print”

Menampilkan Peta, kolom input, kolom keterangan hasil pencarian,

button “Search”, “Clear” dan “Print”

Berhasil

2 Uji pemilihan Tombol

Proses button

“Search”, “Clear” dan “Print”

Proses button

“Search”, “Clear” dan “Print”


(53)

39

Gambar 4.4 Tampilan halaman home sesudah dilakukan pencarian

Halaman home seperti yang ditunjukkan pada Gambar 4.4, pada sisi kiri nantinya akan berisi tampilan peta dan lintasan yang dilalui, pada sisi kanan bawah akan menampilkan keterangan hasil dari pencarian. Keterangan tersebut berupa id barang, posisi barang yang dituju, titik asal, titik tujuan, panjang perjalanan, total waktu pencarian dan total waktu perjalanan.

User juga diberikan kemudahan untuk menghasilkan hard copy berupa hasil print yang dapat dilihat pada Gambar 4.5


(54)

Setelah proses pengkodean telah selesai dilakukan, maka selanjutnya dilakukanlah evaluasi terhadap tampilan halaman home setelah melakukan proses pencarian. Hasil proses evaluasi dapat dilihat pada Tabel 4.3. Evaluasi ditujukan untuk mengetahui apakah setiap menu pada halaman output telah berhasil diimplementasi dan digunakan saat sistem telah selesai dilakukan pengkodean.

Tabel 4.3 Tabel Hasil Evaluasi pada Tampilan Halaman Output No. Sasaran Pengujian Hasil yang

Diharapkan

Hasil Pengujian

Status

1 Uji tampilan halaman home setelah dilakukan pencarian

Menampilkan Peta, lintasan, kolom input, kolom

keterangan hasil pencarian, button

“Search”, “Clear” dan “Print

Menampilkan Peta, lintasan, kolom input, kolom

keterangan hasil pencarian, button

“Search”, “Clear” dan “Print

Berhasil

2 Uji pemilihan Tombol print

Output print Output print Berhasil

4.3. Pengujian Sistem Secara Menyeluruh

Untuk pengujian sistem data barang yang telah di input ke dalam sistem berjumlah 545 barang. Data tersebut meliputi 5 nama produk dengan jenis yang berbeda pada setiap rak yang direpresentasikan kedalam vertex. Data tersebut didapat dari divisi Supply and ChainManagement Carrefour Plaza Medan Fair.

Data juga meliputi vertex-vertex dan relasi antar vertex contoh data yang produk telah di input ke dalam database pada Gambar 4.6 berikut.


(55)

41

Gambar 4.6 Sampel data produk

Contoh data relasi antar vertex yang telah di input ke dalam database dapat di lihat pada Gambar 4.7.


(56)

Pengujian pencarian dilakukan dengan menggunakan contoh sebagai berikut: Dilakukan pencarian barang dengan melakukan input kode barang, diberikan contoh : 1, 40, 5, 3, 10 seperti yang terlihat pada Gambar 4.8 berikut.

Gambar 4.8 Sampel 1 input kode barang

Berdasarkan sampel pengujian, output yang dihasilkan sesuai dengan analisis dan perancangan yang dilakukan sebelumnya dapat dilihat pada Gambar 4.9 berikut.


(57)

43

Gambar 4.9 Hasil pencarian untuk sampel 1

ID Barang : 1 Posisi Barang : A1 Titik Asal : A Titik Tujuan : A1

Panjang Perjalanan : (11.4 m)

ID Barang : 5 Posisi Barang : A1 Titik Asal : A1 Titik Tujuan : A1

Panjang Perjalanan : (0 m)

ID Barang : 3 Posisi Barang : A1 Titik Asal : A1 Titik Tujuan : A1

Panjang Perjalanan : (0 m)

ID Barang : 10 Posisi Barang : A2 Titik Asal : A1 Titik Tujuan : A2

Panjang Perjalanan : (18.1 m)

ID Barang : 40 Posisi Barang : A8 Titik Asal : A2 Titik Tujuan : A8

Panjang Perjalanan : (89.1 m)

ID Barang : 0 Posisi Barang : A Titik Asal : A8 Titik Tujuan : A

Panjang Perjalanan : (67.6 m)

Total Waktu Pencarian 3.7023890018463 detik

Total Perjalanan 1186 meter

Kecepatan Rata-rata perjalanan 5 km/jam


(58)

Untuk menganalisis berapa lama sistem mencari barang berdasarkan banyaknya barang yang ingin dicari dapat dilihat pada Tabel 4.4.

Tabel 4.4 Tabel Pengujian Waktu Pencarian Berdasarkan Jumlah Barang

No Jumlah Input barang Waktu Pengujian

1. 1 2.41 detik

2. 2 2.83 detik

3. 3 2.99 detik

4. 4 3.34 detik


(59)

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan analisis dari sistem dan pengujian sistem secara menyeluruh yang telah dilakukan pada bab sebelumnya, maka ada beberapa hal yang dapat dijadikan kesimpulan pada penelitian ini antara lain:

1. Algoritma A* (A Star) dengan modifikasi mampu menyelesaikan permasalahan dalam penentuan jarak terdekat.

2. Sistem penentuan jalur terpendek dengan menggunakan algoritma A* (A Star) mampu mempercepat pencarian barang pada kegiatan order picking pada hypermarket Carrefour.

5.2. Saran

Penulis menyarankan dalam pengembangan penelitian lebih lanjut untuk sistem penentuan rute terpendek sebagai berikut:

1. Sistem ini selanjutnya diharapkan dapat memberikan informasi terperinnci tentang penentuan yang lebih tepat dengan adanya aturan-aturan yang menjadi parameter dalam pencarian barang, seperti desain rak, maximum beban alat angkut (trolley) dan lain-lain.

2. Sistem ini dapat mendukung pencarian jarak dengan merepresentasikan grafis 3-Dimensi.


(60)

DAFTAR PUSTAKA

Aini, Dewi Yusra. 2012. Analisis Algoritma A Star (A*) dan Implementasinya dalam Pencarian Jalur Terpendek pada Jalur Lintas Sumatera di provinsi Sumatera Utara. Universitas Sumatera Utara. Medan.

Andysah, Putera Utama Siahaan. 2012. Pengaruh Fungsi Heuristik Terhadap Nilai Optimum Global Pada Pencarian Jalur Terpendek. Universitas Sumatera Utara. Medan.

Christophe, Theys, Olli, Braysy, Wout, Dullaert, Birger, Raa. 2009. Using a TSP heuristic for routing order pickers in warehouses. European Journal of Operational Research 200 (2010) 755–763

Coppin, Ben. 2004. Artificial Intelligent Illuminated. Jones and Bartlett Publishers.

Daniels, Richard L, Christophe, Jeffrey L, Robert, Schantz. 1998. A Model For Warehouse Order Picking. European Journal of Operational Research 105 (1998) 1–17

Dina, Syahfitri. 2010. Simulasi Pencarian Jarak Terdekat (Shortest Path) dengan Menggunakan Algoritma A* (Studi Kasus pada Perpustakaan Politeknik Negeri Medan). Universitas Sumatera Utara. Medan.

Flanagan, David. 2012. JavaScript Pocket Reference Third Edition. Published by

O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA

95472. ISBN: 978-1-449-31685-3

Frazelle, E. 2002. World-Class Warehousing and Material Handling. McGraw_Hill : New York.


(61)

47

Hart, P. E, Nilsson, N. J, Raphael, B. 1968. A Formal Basis for the Heuristic Determination of Minimum Cost Paths. IEEE Transactions on Systems Science and Cybernetics SSC4 4 (2): 100–107. doi:10.1109/TSSC.1968.300136

Indra, Yatini B. 201. Flowchart, Algoritma dan Pemrograman menggunakan Bahasa C++ Bulider. Jakarta : Graha Ilmu.

Millington, Ian, Jhon Funge. 2009. Artificial Intelligence For Games. Morgan Kaufmann Publisher.

Munir, Rinaldi. 2004. Matematika Diskrit. Departemen Teknik Informatika Bandung.

Petersen, C.G, Schmenner, R.W. 1999. An Evaluation of Routing and Volume-based Storage Policies in an Order Picking Operation. Decision Sciences 30(2), 481-501

Phaneendhar, Reddy Vanam. 2011. Shortest path using A_Algorithm. Computer Science, Indiana State University, Terre Haute. USA

Prasetyo, E. 2008. Pemrograman Web PHP & MySQL untuk Sistem Informasi Perpustakaan. Yogyakarta: Graha Ilmu.

Rosa, A.S. & Shalahuddin, M. 2011. Modul Pembelajaran Rekayasa Perangkat Lunak (Terstruktur dan Berorientasi Objek). Bandung: Penerbit Modula.

Rozy, Muhammad Lubis. 2014. Implementasi Algoritma Brute Force Untuk Permasalahan Dalam Penerjemahan Idiom Bahasa Inggris. Universitas Sumatera Utara. Medan.

Wäscher, G, Henn, S, Koch, S. Order Batching in Order Picking Warehouse : A Survey of Solution Approach. Working Paper. 01/2011


(62)

Zakaria, Teddy Marcus. 2005. Konsep dan Implementasi Struktur Data. Bandung : Informatika.


(63)

LAMPIRAN I LISTING PROGRAM

//proses query barang dan pencarian a* <?php

include '../../include/sqldb.php'; include '../astar/a-star.php';

// mencari posisi rak untuk masing-masing barang $barang = array();

foreach($_POST["input1"] as $key => $id_barang) {

if(!empty($id_barang)) {

// lakukan query utk mencari rak barang tsb

$query = mysql_query("select * from tbl_posisi where id_produk = '".$id_barang."'") or die(mysql_error());

if(mysql_num_rows($query)) {

$fetch = mysql_fetch_assoc($query); $barang[$id_barang] = $fetch["id_rak"]; }

} }

// setelah rak utk msg2 barang ditemukan, implementasi algoritma A* // Proses perjalanan dimulai dari sini

$width = 750; $height = 350;


(64)

$total_jarak = 0;

mysql_query("truncate tbl_perjalanan"); $map = bentuk_map($width, $height); $titik_awal = 1; // titik A sebagai start awal while(!empty($barang))

{

$rak_terdekat = 0; $barang_terdekat = 0;

$jarak_terdekat = 999999999999; $path_terdekat = array();

foreach($barang as $id_barang => $id_rak) {

$path = pencarian_terpendek($titik_awal, $id_rak); // pencarian_terpendek(id_rak_awal, id_rak_tujuan)

$pjg_path = panjang_path($path); if($pjg_path<$jarak_terdekat) {

$rak_terdekat = $id_rak;

$barang_terdekat = $id_barang; $jarak_terdekat = $pjg_path; $path_terdekat = $path; }

}

$simpang_dilalui = simpang_dilalui($path_terdekat); $simpang_dilalui_teks = "";

foreach($simpang_dilalui as $key => $id_simpang) $simpang_dilalui_teks .= $id_simpang.","; $simpang_dilalui_teks = substr($simpang_dilalui_teks, 0, strlen($simpang_dilalui_teks)-1);

$perjalanan[] = array($barang_terdekat, $titik_awal, $rak_terdekat, $jarak_terdekat, $simpang_dilalui_teks);


(65)

51

$query = mysql_query("insert into tbl_perjalanan values(null, '$barang_terdekat', '$titik_awal', '$rak_terdekat', '$jarak_terdekat',

'$simpang_dilalui_teks')") or die(mysql_error());

$titik_awal = $rak_terdekat; // titik awal = rak terdekat yg baru saja ditemukan

unset($barang[$barang_terdekat]); // membuang titik awal dari array

$total_jarak += $jarak_terdekat; }

$path = pencarian_terpendek($titik_awal, 1); $pjg_path = panjang_path($path);

$simpang_dilalui = simpang_dilalui($path); $simpang_dilalui_teks = "";

foreach($simpang_dilalui as $key => $id_simpang) $simpang_dilalui_teks .= $id_simpang.","; $simpang_dilalui_teks = substr($simpang_dilalui_teks, 0, strlen($simpang_dilalui_teks)-1);

$query = mysql_query("insert into tbl_perjalanan values(null, '', '$titik_awal', '1', '$pjg_path', '$simpang_dilalui_teks')") or die(mysql_error());

?>

//proses menamilkan keterangan hasil <?php

//Menampilkan Keterangan Hasil

$query = mysql_query("select * from tbl_perjalanan"); if(mysql_num_rows($query)){


(66)

{

$fetch_rak_awal = mysql_fetch_assoc(mysql_query("select * from tbl_rak where id_rak = '".$fetch["id_rak_awal"]."'"));

$fetch_rak_tujuan = mysql_fetch_assoc(mysql_query("select * from tbl_rak where id_rak = '".$fetch["id_rak_tujuan"]."'"));

echo "

ID Barang : ".$fetch["id_barang"]."<br>

Posisi Barang : ".$fetch_rak_tujuan["nama_titik"]."<br> Titik Asal : ".$fetch_rak_awal["nama_titik"]."<br> Titik Tujuan : ".$fetch_rak_tujuan["nama_titik"]."<br> Panjang Perjalanan : (".($fetch["panjang_perjalanan"]*0.1)." m)<br><br>";

//Simpang Dilalui : ".$fetch["simpang_dilewati"]."<br><br> }

echo "Total Waktu Pencarian ".$_GET["time"]." detik <br>"; echo "Total Perjalanan ".$_GET["total_jarak"]." meter <br>";

echo "Kecepatan Rata-rata perjalanan ".$_GET["kecepatan"]." km/jam <br>";

$kecepatan_ms = $_GET["kecepatan"]*1000/3600;

$waktu = $_GET["total_jarak"]/$kecepatan_ms; //satuan second echo "Waktu Perjalanan : ".$waktu." detik<br>";

} ?>


(67)

LAMPIRAN II

SAMPEL DAFTAR PRODUK

id_produk nama_produk Jenis

1. Mamypoko perlengkapan bayi

2. Dryhumps perlengkapan bayi

3. Pampers perlengkapan bayi

4. Sweety perlengkapan bayi

5. cfd diapers baby perlenkapan bayi

6. Picnic Dodol K 500 Gr camilan tradisional

7. Golden Sail Sha Ho Fun 280g camilan tradisional

8. Kabita Pisang Sale Keju Bag 170 Gr camilan tradisional

9. Cf Kacang Telor Medan Bag 230gr camilan tradisional

10. Cf Keripik Pisang Bag 250gr camilan tradisional

11. Del Monte Fruit Cocktail makanan kaleng

12. Dm Fiesta Tropical Fruit makanan kaleng


(68)

14. Maling Green Peas 397gr makanan kaleng

15. Sozzis Sapi Siap Makan 450gr makanan kaleng

16. Daging Ayam Daging

17. Daging Bebek Daging

18. Daging Sapi Lokal Daging

19. Daging Sapi Wagiyu Daging

20. Daging Ham Daging

21. Ikan Salmon 500gr Ikan

22. Ikan Asin Cakallang 500gr Ikan

23. Ikan Pari 500gr Ikan

24. Ikan Teri Medan Ikan

25. Ikan Tongkol Fillet 500gr Ikan

26. Bolu Gulung Coklat Keju Cake dan Roti

27. Pastel Ayam Cake dan Roti

28. Mini Tart Strawberry Cake dan Roti

29. Roti Klatak Cake dan Roti


(69)

55

31. Mama Rice Vermicelli 400 Gr Mie dan Pasta

32. San Remo Elbow 500gr Mie dan Pasta

33. La Fonte Sp Fusilli 500gr Mie dan Pasta

34. Pilihan Bunda Bihun 500gr Mie dan Pasta

35. Ayam 2 Telor Mie Telor 200gr Mie dan Pasta

36. Sipulen Pandan Wangi 10 Kg Beras

37. Muria Beras Merah 500g* Beras Merah Beras

38. Topi Koki Pandan Wangi 5kg Beras

39. Murai Indah Harum 5 kg Beras

40. Beras Cap Guci Emas 5 kg Beras

41. Tropical Jerigen 5000 Ml Minyak Sawit

42. Filma Minyak Goreng 5 Lt Minyak Sawit

43. Bimoli Special 5 lt Minyak Sawit

44. Fortune 5 lt Minyak Sawit

45. Cfd Minyak Goreng 5 lt Minyak Sawit

46. Kikkoman Premium Soy Sauce Saus dan kecap


(70)

48. Tabasco Sauce 60ml Saus dan kecap

49. Sasa Sambal Asli Saus dan kecap


(1)

$query = mysql_query("insert into tbl_perjalanan values(null, '$barang_terdekat', '$titik_awal', '$rak_terdekat', '$jarak_terdekat',

'$simpang_dilalui_teks')") or die(mysql_error());

$titik_awal = $rak_terdekat; // titik awal = rak terdekat yg baru saja ditemukan

unset($barang[$barang_terdekat]); // membuang titik awal dari array

$total_jarak += $jarak_terdekat; }

$path = pencarian_terpendek($titik_awal, 1); $pjg_path = panjang_path($path);

$simpang_dilalui = simpang_dilalui($path); $simpang_dilalui_teks = "";

foreach($simpang_dilalui as $key => $id_simpang) $simpang_dilalui_teks .= $id_simpang.","; $simpang_dilalui_teks = substr($simpang_dilalui_teks, 0, strlen($simpang_dilalui_teks)-1);

$query = mysql_query("insert into tbl_perjalanan values(null, '', '$titik_awal', '1', '$pjg_path', '$simpang_dilalui_teks')") or die(mysql_error());

?>


(2)

52

{

$fetch_rak_awal = mysql_fetch_assoc(mysql_query("select * from tbl_rak where id_rak = '".$fetch["id_rak_awal"]."'"));

$fetch_rak_tujuan = mysql_fetch_assoc(mysql_query("select * from tbl_rak where id_rak = '".$fetch["id_rak_tujuan"]."'"));

echo "

ID Barang : ".$fetch["id_barang"]."<br>

Posisi Barang : ".$fetch_rak_tujuan["nama_titik"]."<br> Titik Asal : ".$fetch_rak_awal["nama_titik"]."<br> Titik Tujuan : ".$fetch_rak_tujuan["nama_titik"]."<br> Panjang Perjalanan : (".($fetch["panjang_perjalanan"]*0.1)." m)<br><br>";

//Simpang Dilalui : ".$fetch["simpang_dilewati"]."<br><br> }

echo "Total Waktu Pencarian ".$_GET["time"]." detik <br>"; echo "Total Perjalanan ".$_GET["total_jarak"]." meter <br>";

echo "Kecepatan Rata-rata perjalanan ".$_GET["kecepatan"]." km/jam <br>";

$kecepatan_ms = $_GET["kecepatan"]*1000/3600;

$waktu = $_GET["total_jarak"]/$kecepatan_ms; //satuan second echo "Waktu Perjalanan : ".$waktu." detik<br>";

} ?>


(3)

LAMPIRAN II

SAMPEL DAFTAR PRODUK

id_produk

nama_produk

Jenis

1.

Mamypoko

perlengkapan bayi

2.

Dryhumps

perlengkapan bayi

3.

Pampers

perlengkapan bayi

4.

Sweety

perlengkapan bayi

5.

cfd diapers baby

perlenkapan bayi

6.

Picnic Dodol K 500 Gr

camilan tradisional

7.

Golden Sail Sha Ho Fun 280g

camilan tradisional

8.

Kabita Pisang Sale Keju Bag 170 Gr

camilan tradisional


(4)

54

14.

Maling Green Peas 397gr

makanan kaleng

15.

Sozzis Sapi Siap Makan 450gr

makanan kaleng

16.

Daging Ayam

Daging

17.

Daging Bebek

Daging

18.

Daging Sapi Lokal

Daging

19.

Daging Sapi Wagiyu

Daging

20.

Daging Ham

Daging

21.

Ikan Salmon 500gr

Ikan

22.

Ikan Asin Cakallang 500gr

Ikan

23.

Ikan Pari 500gr

Ikan

24.

Ikan Teri Medan

Ikan

25.

Ikan Tongkol Fillet 500gr

Ikan

26.

Bolu Gulung Coklat Keju

Cake dan Roti

27.

Pastel Ayam

Cake dan Roti

28.

Mini Tart Strawberry

Cake dan Roti

29.

Roti Klatak

Cake dan Roti


(5)

31.

Mama Rice Vermicelli 400 Gr

Mie dan Pasta

32.

San Remo Elbow 500gr

Mie dan Pasta

33.

La Fonte Sp Fusilli 500gr

Mie dan Pasta

34.

Pilihan Bunda Bihun 500gr

Mie dan Pasta

35.

Ayam 2 Telor Mie Telor 200gr

Mie dan Pasta

36.

Sipulen Pandan Wangi 10 Kg

Beras

37.

Muria Beras Merah 500g* Beras Merah

Beras

38.

Topi Koki Pandan Wangi 5kg

Beras

39.

Murai Indah Harum 5 kg

Beras

40.

Beras Cap Guci Emas 5 kg

Beras

41.

Tropical Jerigen 5000 Ml

Minyak Sawit

42.

Filma Minyak Goreng 5 Lt

Minyak Sawit

43.

Bimoli Special 5 lt

Minyak Sawit


(6)

56

48.

Tabasco Sauce 60ml

Saus dan kecap

49.

Sasa Sambal Asli

Saus dan kecap