Anda di halaman 1dari 7

Penerapan Algoritma Greedy dan Simplified Memory-Bounded A* (SMA*)

dalam Implementasi Pencarian Lintasan Terpendek dan Efisien


berdasarkan Jalur dan Tarif Relatif Angkutan Kota (Angkot)
Andra Septian
Program Studi Ilmu Komputer, Fakultas Pendidikan Matematika dan Ilmu Pengetahuan Alam
Universitas Pendidikan Indonesia, Bandung
septian182@yahoo.com

Abstrak

Saat ini, di kota metropolitan khususnya, kebanyakan kota telah menyediakan sarana transportasi bagi
umum. Kita sebagai pengguna tentu saja selektif dalam memilih jalur yang pendek dan efisien, tidak
berliku-liku, menghemat waktu, dan menghemat ongkos tentunya. Algoritma Greedy dan SMA* ini
merupakan algoritma pencarian yang dapat digunakan untuk mencari solusi yang dapat mendekati
permasalahan tersebut, apalagi dengan banyaknya rute angkot yang berbeda-beda setiap jurusan angkot.
Akan banyak sekali alternatif jalan dari tempat asal (initial state) menuju tempat tujuan (goal state).
Ditambah dengan relatifnya ongkos pergi yang ditawarkan masing-masing-masing angkot
perjurusannya.

Algoritma Greedy, tepatnya Greedy Best-First Search dan SMA* merupakan bagian dari metode Heuristic
dalam algoritma pencarian. Karena dalam pengerjaannya, metode ini menggunakan suatu fungsi yang
dapat menghitung biaya perkiraan dari suatu simpul tertentu menuju simpul yang lain. Dalam bahasan
ini yang dijadikan variabel-variabel acuan diantaranya adalah jarak antar kota g(n) dan estimasi biaya
h(n). Oleh karena itu dalam proses pengerjaanya, analisis secara umum akan diterapkan mulai dari
skema umum algoritma, ilustrasi gambar dan mapping rute jalan kota yang akan dibahas, tepatnya yaitu
masing-masing daerah yang mewakili kota Bandung Timur sampai wilayah Utara tepatnya dari
Ujungberung sampai UPI.

Kata Kunci : Greedy, Simplified Memory-Bounded A*, Heuristic, Lintasan terpendek, Transportasi,
Angkot

1. Pendahuluan Penulis menggunakan motor untuk melakukan


perjalanan, perinciannya adalah sebagai berikut.
Informasi yang akurat dan realistis sangat
dibutuhkan saat ini. Beberapa tahun ini Penulis sering menggunakan jalur no. 4 (gambar 1.)
perkembangan teknologi berkembang sangat pesat, karena faktor kecepatan jalur cepat atau fly over, tapi
sehingga kebutuhan manusia akan informasi tersebut di bahasan kali ini kita akan mencari jalur terpendek
semakin meningkat. Oleh karena itu dibutuhkan berdasarkan efisiensi naik angkot sesuai dengan
waktu yang cepat untuk mencapai kebutuhan realita yang akhir-akhir ini sering diperbincangkan
tersebut. algoritma pencarian merupakan suatu oleh masyarakat pengguna jasa angkutan umum.
urutan langkah-langkah (program) yang tepat untuk
meningkatkan efisiensi waktu. Sayang sekali tidak ada jalur angkot dari fly over ke
Setiabudhi, oleh karena itu penulis akan asumsikan
Seperti yang dijelaskan tadi, yang dimaksud efisien ada angkot untuk jalur tersebut untuk memudahkan
dalam bahasan kali ini adalah mencari jalur angkot pengimplementasian dan pemahaman metode bagi
terpendek dari wilayah Ujungberung yaitu wilayah para pembaca umum.
penulis sendiri, sperti yang telah dialami langsung
dalam bepergiannya hampir setiap hari dari rumah Sebagai contoh, berikut adalah rincian pengeluaran
ke kampus yaitu ke daerah Setiabudhi kampus UPI motor berupa harga bensin juga jarak tempuh.
bandung. Rincian berikut ini adalah pengeluaran yang biasa
penulis lakukan ketika akan pergi ke kampus setiap
Untuk mengsinkronkan materi jurnal dengan harinya.
pengalaman pribadi penulis yang sangat berkaitan,
maka akan penulis asumsikan untuk keterangan Ujungberung ke UPI dapat ditempuh dengan jarak
gambar ilustrasi rute jalan dari Ujungberung ke UPI sekitar ± 20 km.
(gambar 1.).
20 km membutuhkan sekitar 1,3 liter bensin dengan yang tepat sehingga dapat menemukan solusi terbaik
harga bensin per liter adalah Rp. 4500 per liternya. dengan usaha yang minimal.

Jadi untuk 1 liter didapatkan 1/1,3 x 20 = 15,38 km Ada dua metode yaitu :
atau dibulatkan menjadi 15 km. Jadi dengan Rp.
4500 didapatkan jarak tempuh motor 15 km. Dengan 1. Blind atau un-informed search (pencarian
demikian, maka 1 km dapat kita tempuh dengan buta atau tidak berbekal informasi)
jumlah uang Rp. 300. 2. Heuristic atau informed search (pencarian
dengan berbekal informasi).
Berdasarkan perincian tadi, jika hanya dengan cara
seperti ini (pencarian jarak terpendek saja) akan Metode yang akan diambil dalam bahasan kali ini
dengan cepat didapatkan bahwa yang terpendeklah adalah heuristic. Karena dalam bahasan kali ini kita
yang mempunyai harga terefisien. akan mendapatkan panduan lain yang bisa
diperkiraan yaitu biaya estimasi tarif angkot.
Oleh karena itu, pasti akan nada variabel lain yang
akan membuat masalah harus dipecahkan kembali 2.2 Metode Pencarian Heuristic
yaitu “tarif angkot” yang harganya selalu relatif
(harga jauh atau dekat bisa berbeda-beda) Fungsi ini dikenal dengan fungsi yang menghitung
berdasarkan jalur dan tarif angkotnya masing- biaya perkiraan dari suatu simpul tertentu menuju
masing. simpul tujuan.

Sebelum masuk ke pembahsan berikut adalah Kata Heuristic berasal dari sebuah kata kerja
mapping rute jalan dari Ujungberung ke UPI. Yunani, heuriskein, yang berarti ‘mencari’ atau
‘menemukan’. Dalam dunia pemrograman, sebagian
Jalur-jalur yang memungkinkan dan yang saat ini orang menggunakan kata heuristic sebgai lawan kata
sering digunakan : dari algoritmik, dimana kata heuristic ini diartikan
sebagai ‘suatu proses yang mungkin dapat
1. ABFGHJ/IKL menyelsaikan suatu masalah tetapi tidak ada jaminan
2. ACEGHJ/IKL bahwa solusi yang dicari selalu dapat ditemukan’. Di
3. ACEDHJ/IKL dalam mempelajari metode-metode pencarian ini,
4. ADHJ/IKL kata heuristic diartikan sebagai suatu fungsi yang
memberikan suatu nilai berupa biaya perkiraan
2. Pembahasan (estimasi) dari suatu solusi.
2.1 Pencarian (Searching)
Metode-metode yang termasuk ke dalam teknik
Pencarian merupakan kegiatan mendefinisikan ruang pencarian ini antara lain adalah Greedy Best-First
masalah untuk masalah yang dihadapai. Ruang Search dan Algoritma A* sebagai pembanding
masalah ini dapat digambarkan sebagai himpunan untuk mencari solusi.
keadaan (state) atau bisa juga sebagai himpunan rute
dari keadaan awal (initial state) menuju keadaan 3. Metodologi dan Hasil Pembahasan
tujuan (goal state). Langkah kedua adalah 3.1 Best-First Search
mendefinisikan aturan produksi yang digunakan
untuk mengubah suatu state ke state lainnya. Sesuai dengan namanya, Best-First Search
Langkah terakhir adalah memilih metode pencarian membangkitkan simpul berikutnya dari sebuah
simpul (yang sejauh ini terbaik diantara semua leaf sebagai simpul terbaik. Artinya, CLOSED berisi
nodes yang pernah dibangkitkan. Penentuan simpul simpul-simpul tidak mungkin terpilih sebagi simpul
teraik dapat dilakukan dengan menggunakan terbaik (peluang untuk terpilih sudah tertutup).
informasi berupa biaya perkiraan dari suatu simpul
menuju ke goal atau gabungan antara biaya 3.1.1 Greedy Best-First Search
sebenarnya dan biaya perkiraan tersebut. Biaya
perkiraan tersebut dapat diperoleh dengan Greedy menurut bahasa inggris adalah rakus, tamak.
menggunakan suatu fungsi yang disebut fungsi Prinsip greedy: “take what you can get now!”.
heuristic. Algoritma greedy membentuk solusi langkah per
langkah (step by step). Pada setiap langkah,
Dalam bahasan jalur angkot ini, penulis akan terdapat banyak pilihan yang perlu dieksplorasi.
menggunakan fungsi yaitu f(n) dengan biaya Oleh karena itu, pada setiap langkah harus dibuat
perkiraan adalah h(n) sebagai tarif angkot dari satu keputusan yang terbaik dalam menentukan pilihan.
simpul ke simpul lainnyadan biaya sebenarnya
adalah jarak dari stu simpul ke simpul lainnya g(n) Berikut adalah langkah-langkahnya dalam
seperti yang telah dituliskan dalam (gambar 1.). menyelesaikan masalah jalur angkot yang terdapat
pada gambar 1.
Terdapat dua jenis algoritma Best-First Search, yaitu
: 1) Greedy Best_-First Search yang hanya
memperhitungkan biaya perkiraan saja; dan 2)
algoritma A* yang memperhitungkan gabuangan
dua biaya, biaya sebenarnya dan biaya perkiraan.
Secara umum berikut adalah pseudocode algoritma
Best-First Search :

1. OPEN berisi initial state dan CLOSED masih


kosong.
2. Ulang sampai goal ditemukan atau sampai tidak
ada nodes di dalam OPEN
a. Ambil simpul terbaik yang ada di OPEN
b. Jika simpul tersebut sama dengan goal,
maka sukses
c. Jika tidak, masukkan simpul tersebut ke
dalam CLOSED
d. Bangkitkan semua suksesor dari simpul
tersebut
e. Untuk setiap suksesor kerjakan :
i. Jika suksesor tersebut belum
pernah dibangkitkan, evaluasi
sukseso tersebut, tambahkan ke
OPEN, dan catat parent atau orang
tuanya.
ii. Jika suksesor tersebut sudah
pernah dibangkitkan, ubah parent-
nya jika jalur melalui parent ini
lebih baik daripada jalur melalui
parent yang sebelumnya.
Selanjutnya, perbarui biaya untuk
suksesor tersebut dan nodes lain
yang berada di level bawahnya.

Pada algoritma tersebut diatas, OPEN adalah senarai


(list) yang digunakan untuk menyimpan simpul-
simpul yang pernah dibangkitkan dan nilai
heuristiknya telah dihitung tapi belum terpilih
sebagai simpul terbaik (best node). Dengan kata lain,
OPEN berisi simpul-simpul yang masih memiliki
peluang (peluangnya masih terbuka) untuk terpilih
sebgai simpul terbaik. Sedangkan CLOSED adalah
senarai untuk menyimpan simpul-simpul yang sudah
pernah dibangkitkan dan sudah pernah terpilih
Rute f(n) dalam ribuan
ABFGHJ/IKL 2+3+1.5+1.5+1.5/1.5+1.5/2+2
=
ACEGHJ/IK 13/ 3.5
L 10.5 / 11
ADEGHJ/IK 10.5 / 11
L 9 / 9.5
ADHJ/IKL

Didapatkan hasil terbaik yaitu ADHJ


KL.

Tetapi hasil ini hanya berdasarkan biaya saja tidak


biaya perkiraan yang sebenarnya yaitu jarak antar
state.

Oleh karenanya, aka nada percobaan dengan


algoritma selanjutnya yaitu Algoritma A*.

3.1.2 Simplified Memory-Bounded A* (SMA*)

Algoritma ini merupakan variasi dari algoritma A*,


yaitu algoritma pengembangan dari Best-First
Search. Dengan algoritma ini, biaya yang
diperhitungkan didapat dari biaya sebenarnya
ditambah dengan biaya perkiraan. Dalam notasi
matematika situliskan sebgai : f(n) = g(n) + h(n).
Dengan demikian, perhitungan pun akan semakin
Pada graph di atas simpul hitam merupakan simpul jelas.
yang telah berada di CLOSED.
Dalam algoritma ini terdapt sebuah senarai Queue
Pada langkah ke-3, D mempunyai 2 simpul, untuk yang digunakan untuk memanipulasi antrian simpul
langkahnya yang pertama maka greedy akan yang terurut berdsarkan f-cost. Disini yang dimaksud
memulainya dengan C dulu, karena nilai h(n) nya f-cost adalah gabungan biaya sebenarnya dan biaya
pun sama, oleh karena itu C terlebih dahulu yang perkiraan, yang secara matematika dinyatakan
akan masuk ke dalam CLOSED. seperti notasi pada A* tetapi mengalami sedikit
modifikasi yaitu f-cost=g(n) + h(n).
Pada langkah ke-5, sampai sini algoritma harus
mengecek kembali karena F dan H di OPEN Dan yang membuat penulis menggunkan algoritma
sebelumnya, untuk melanjutkannya kembali harus ini adalah karena dalam perhitungan biaya akhirnya
dicek kembali apakah parent dari F dan H harus (di state akhir) akan selalu disertakan biaya
diganti untuk mencapai simpul yang efisien. sebenarnya mulai dari awal state, yaitu ∑ g(n) dari
awal state sampai state tersebut menuju goal state
Tetapi kemungkinan besar algoritma tidak akan
hingga akhirnya menambah dengan biaya
berjalan lancar mulai dari state ini, kemungkinan
esimasinya (tarif terakhir angkot).
goal state tidak akan tercapai karena algoritma akan
berjalan ke state yang mempunyai nilai f-cost yang Berikut adalah langkah-langkahnya :
terkecil saja sesuai dengan karakteristik greedy.

Dalam graph seperti ini, untuk menuju goal state


perlu dilakukan langkah dan pengecekan dan
langkah yang berulang –ulang yang mengakibatkan
greedy menjadi tidak efektif. Untuk melakukannya
dengan greedy, diperlukan strategy greedy :

Lintasan dibentuk satu per satu. Lintasan berikutnya


yang dibentuk ialah lintasan yang meminimumkan
jumlah jaraknya.

Berikut adalah simpul-simpul yang memungkinkan


untuk menuju goal state :
simpul tersebut akan dipakai dulu oleh simpul
yang lain.
- Jika hasil f-cost dari suksesor bau yang telah
dibangkitkan hasilnya lebih kecil, maka
suksesor-suksesor sebelumnya dihapus. Tetapi
jika lebih besar, maka lanjutkan dulu pencarian
ke suksesor yang lebih kecil, sebelum
menghapus suksesor yang lebih besar tersebut.
- Jka menemukan state di level yang lebih
dangkal, dan mmpunyai f-cost lebih besar, maka
state tersebut juga harus dihapus.

Ketrerangan :

Pada langkah ke-3, sesuai dengan aturannya state di


level yang lebih dangkal dan mempunyai f-cost lebih
besar harus dihapus. tetapi C tidak langsung dihapus,
karena akan dipakai dulu oleh E, karena pada state
itu E mempunyai 2 simpul. Jika ada 2 simplu maka
diambil simpul yang mempunyai nilai f-cost lebih
kecil.

Pada langkah ke-4, E dihapus karena mmpunyai


lebih dari satu simpul, maka harus dipilih f-cost yang
lebih kecil.

Setelah suksesor baru dibangkitkan, ternyata F


menjadi lebih besar dari suksesor bau tersebut, maka
F harus dihapus.

Penghapusan maksudnya adalah penghapusan dari


queue tetapi tidak secara fisik dari memori (artinya
masih ada dalam memori). Penghapusan simpul
akan dilalukan sampai senarai penuh (f-cost(n-1)),
misalkan memori komputer mampu menyimpan
sampai 100 maka senarai akan menyimpannya
sampai 99.

Aturan-aturan SMA* :

- Jika mempunyai lebih dari satu simpul, maka


pilih salah satu yang mempunyai f-cost terkecil.
Jangan hapus dulu simpul tersebut sebelum
mengeceknya terlebih dahulu, karena bisa jadi
menyelesaikan solusi sesuai dengan solusi yang
telah ada.

Sedangkan Greedy, selain tidak bisa diperhitungkan


kebenaran biayanya, secara optimality greedy tidak
dapat menemukan solusi yang terbaik. Karena
memerlukan pengecekan langkah-langkah algoritma
yang berulang-ulang, sehingga tidak menghemat
waktu untuk menemukan solusi yang terbaik dari
beberapa solusi berbeda yang telah terbentuk.

Berbeda dengan A*, hasil akhir dapat didapatkan


dengan perhitungan secara matematis yang terurut.

Jadi, meskipun greedy sudah terkenal dan favorit


juga dapat dipercaya kemangkusan dalam beberapa
Dengan demikian, maka ditemukanlah jalur kasus optimasi pencarian, tetapi dalam kasus ini
alternatif yang hemat dan efisien, yaitu : yaitu permasalahan graph dua arah dengan
probabilitas goal state yang banyak, greedy dengan
ADHIKL atau Greedy Best-First Search masih kurang efektif
dibanding dengan Simplified-Memory A*.
Ujungberung  Terminal Cicaheum  Gasibu 
Siliwangi / Sabuga ITB Setiabudhi / Rumah Mode Algoritma hanyalah algoritma, yaitu hanyalah
FO  Universitas Pendidikan Indonesia (UPI) sebuah proses yang ‘mungkin’ dapat menyelesaikan
sebuah masalah. Seperti pengertian heuristik yang
Dengan estimasi biaya sebagai berikut : telah dijelaskan sebelumnya. Mungkin jika itu
masalah perhitungan soal dapat diselesaikan. Tetapi
Rp. 9000 untuk jarak 20,5 km. jika itu masalah dunia nyata yang tidak akan lepas
dari perubahan secara dinamis, solusi pun akan cepat
Karena yang dijadikan variabel utama adalah jarak bergantian.
sebgai biaya sebenarnya, maka goal state pun akan
memprioritaskan jarak terlebih dahulu yang harus Misalnya saja, mtentang mengapa dalam jurnal ini
menjadi sebgai lintasan terpendek. penulis memilih jalur fly over, padahal solusi efisien
adalah lewat Siliwangi. Sebenarnya masih banyak
Jika ingin melihat estimasi tarif angkot, dengan bahasan dari kemungkinan-kemungkinan yang
metode ini data masih terurut sehingga bisa kita split terjadi di lapangan yang nantinya akan menjadi
jalur yang sudah terbentuk,hasil yang mendekati variabl penghitung baru dalam penyelesaian masalah
diantaranya adalah : ini, misalnya saja jenis kendaraan, dengan motor
atau mobil, kecepatan bepergian juga akan
Rp. 8500 untuk jarak 21 km.
berpengaruh. Selain itu hal lain yaitu gangguan-
Sesuai dengan fungsi awal, nilai yang akan gangguan teknis yang terjadi di lapangan misalnya
diutamakan yaitu jarak. saja macet, dengan macet waktu tempuh bepergian
pun akan berubah.
4. Kesimpulan dan Saran
Oleh karena itu, pengembangan dan modifikasi
Untuk mengukur performansi metode pencarian, algoritma dalam beberapa kasus sangatlah penting,,
terdapat empat kriteria yang dapat digunakan, yaitu : dan patut untuk dicoba.

- Completeness : Apakah metode tersebut


menjamin penemuan solusi jika solusinya
memang ada?
- Time Complexity : Berapa lama waktu yang
diperlukan?
- Space complexity : Berapa banyak memori yang
diperlukan?
- Optimality : Apakah metode tersebut menjamin
menemukan solusi yang terbaik jika terdapat
beberapa solusi berbeda?

Berdasarkan ukuran performansi tersebut Algoritma


A* bisa mengoptimalkan pencarian. Karena A* telah
Daftar Pustaka

[1] Suyanto, ST, Msc. Artificial Intelligence.


Informatika, Bandung.

[2] Rinaldi Munir, Slide Presentation Algoritma


Greedy. Bandung, 2008.

[3] S. Novelianty P, Amelia Puspita, Akhmad


Deniar, Solusi Travelling Salesmen Problem
menggunakan Algoritma Greedy. Jurusan Teknik
Informatika, STT Telkom

[4] Taufiq Reza Ariyanto, Siwi Anggoro,


Rakhmawati, Strategi Greedy pada Kasus
Pencarian Lintasan Terpendek. Jurusan Teknik
Informatika, STT Telkom

[5] Yeni Kurniasari, Christina Rahmadhani, Firdah


Tia Yuliana, Penerapan Algoritma Greedy. Jurusan
Teknik Informatika, STT Telkom.