Untitled - Jurnal Online UM

advertisement
1
ALGORITMA GENETKA PADA MULTI DEPOT VEHICLE ROUTING
PROBLEM (MDVRP)
Igusta Wibis Vidi Akbar1
Purwanto2
FMIPA Universitas Negeri Malang
E-mail: [email protected]
Abstrak: Multi Depot Vehicle Routing Problem (MDVRP)adalah perluasan dari
Vehicle Routing Problem (VRP)Multiple Depot Vehicle routing problem ini
berkembang ketika sejumlah kendaraan dari beberapa depot (lebih dari satu) akan
melakukan pendistribusian ke beberapa customer dan kembali ke depot yang sama
dengan jarak pendistribusian yang minimum tanpa melanggar kendala kapasitas dari
kendaraan. Algoritma Genetika pada MDVRP dibagi menjadi tiga tahap, yaitu
grouping, routing dan scheduling. Pada tahap grouping, customer-customer
dikelompokkan ke depot terdekat, pada tahap ini dapat digunakan algoritma pada
Shortest Path. Kemudian pada tahap Grouping, customer-customer dikelompokkan ke
sejumlah rute. Selanjutnya pada tahap Scheduling dilakukan proses genetika,
diantaranya seleksi dengan metode Roulette, pindah silang dengan Order
Crossover(OX) dan mutasi dengan Inversion Mutation. Pada contoh 1diperoleh solusi
dengan total jarak 1285 km, dan dengan Algoritma Clark and Wright diperoleh solusi
dengan total jarak 1115km. Sedangkan pada contoh 2 diperoleh 4 rute sebagai solusi
dengan total jarak yang sama dengan Algoritma Clark and Wright, yaitu 797 km. Jadi,
pada Algoritma Genetika dimungkinkan diperoleh lebih dari satu solusi dengan fitness
yang sama, sehingga diperoleh alternatif solusi.
Kata kunci: algoritma genetika, Multi Depot Vehicle Routing Problem(MDVRP),
Order Crossover(OX).
Pada sebagian besar industri, biaya pendistribusian hasil produksi
memegang proporsi yang besar dari rata-rata nilai penjualan. Perancangan sistem
distribusi yang efektif dapat menghasilkan penghematan biaya distribusi yang
cukup signifikan bagi perusahaan. Potensi peghematan biaya dapat dihasilkan dari
distribusi produk ke beberapa customer yang dikombinasikan ke dalam beberapa
rute sehingga diperoleh jalur pendistribusian yang optimal. Salah satu cabang
ilmu matematika yang dapat digunakan untuk menyelesaikan permasalahan
tersebut adalah teori graph.
Salah satu terapan dari teori graph yang banyak digunakan untuk
menyelesaikan permasalahan adalah Multi Depot Vehicle Routing Problem
(MDVRP) yang merupakan perluasan dari Vehicle Routing Problem (VRP). Multi
Depot Vehicle routing problem (MDVRP) ini berkembang ketika sejumlah
kendaraan dari beberapa depot (lebih dari satu) akan melakukan pendistribusian
ke beberapa customer dan kembali ke depot yang sama dengan jarak
pendistribusian yang minimum tanpa melanggar kendala kapasitas dari kendaraan
(Surekha dan Sumathi, 2011).
Salah satu algoritma yang dapat digunakan untuk menyelesaikan Multi
Depot Vehicle Routing Problem (MDVRP) adalah Algoritma Genetika. Surekha
dan Sumanthi (2011) dalam jurnal “Solution to Multi Depot Vehicle Routing
Problem Using Genetic Algorithms” menuliskan bahwa Algoritma Genetika pada
Multi Depot Vehicle Routing Problem (MDVRP) dibagi ke dalam 3 tahap, yaitu
grouping, raouting, scheduling. Dalam tahap grouping, customer dikelompokkan
ke depot terdekat berdasarkan jarak antara customer dan depot. Kemudian
1. Igusta Wibis Vidi Akbar adalah mahasiswa jurusan Matematika FMIPA Universitas Negeri Malang
2. Purwanto adalah dosen jurusan Matematika FMIPA Universitas Negeri Malang
2
customer-customer pada depot yang sama dikelompokkan ke sejumlah rute pada
tahap routing dan rute tersebut dievaluasi pada tahap scheduling.
Tulisan ini membahas bagaimana Algoritma Genetika menyelesaikan
MDVRP dengan menggunakan Order Crossover sebagi metode pindah silang dan
inversion mutation sebagai metode mutasi. Dan kemudian solusi dari algoritna
Genetika tersebut dibandingkan dengan solusi dengan Algoritma Clark and
Wright.
HASIL DAN PEMBAHASAN
Aldous dan Wilson (2000: 6) mengungkapkan gagasan tentang graph,
yaitu diagram yang merepresentasikan titik yang disebut verteks sebagai objek
dan garis yang disebut sisi merepresentasikan hubungan antar objek. Graph yang
digunakan untuk masalah pencarian rute kendaraan adalah graph komplit yang
telah diberi bobot yaitu bilangan yang berasosiasi pada setiap sisi. Graph komplit
adalah graph yang setiap dua titik yang berbeda dihubungkan oleh satu sisi. Graph
komplit berbobot digunakan sebagai model dalam Multi Depot Vehicle Routing
Problem (MDVRP).
Multi Depot Vehicle Routing Problem (MDVRP)
Multi Depot Vehicle Routing Problem (MDVRP) adalah suatu perluasan
dari VRP yang merupakan permasalahan menentukan semua rute untuk sejumlah
kendaraan dari depot-depot(lebih dari satu) untuk himpunan customer dan
kembali ke depot yang sama.
Langkah-langkah pada MDVRP dapat dikelompokkan menjadi
Grouping, Routing dan Scheduling. Dalam Grouping, customer dikelompokkanke
depot terdekat berdasarkan jarak antara customer dan depot. Selanjutnya
dilakukan tahap Routing, yaitu customer-customer pada depot yang sama
dikelompokkan untuk sejumlah rute. Tujuan dari Routing adalah untuk
meminimalisasi jumlah rute tanpa melanggar batas kapasitas. Dan kemudian ruterute diurutkan dalam tahap Scheduling sehingga diperoleh rute dengan jarak yang
minimum.
Surekha dan Sumathi(2011) menuliskan bahwa:
𝐷 = adalah himpunan semua depot
𝐼 = adalah himpunan semua customer
𝐾 = adalah himpunan semua kendaraan
𝑉 = adalah jumlah kendaraan
𝑑 = adalah indeks depot
𝑖 = adalah indeks customer
π‘˜ = adalah indeks kendaraan/rute
𝐢𝑖𝑑 = adalah jarak antara titik 𝑖 dan 𝑑, 𝑖, 𝑑 πœ– 𝐼 ∪ 𝐷
𝑄𝑑 = adalah kapasitas maksimum depot 𝑑
π‘žπ‘– = adalah permintaan dari customer 𝑖
π‘„π‘˜ = adalah kapasitas kendaraan π‘˜
Fungsi tujuan
π‘˜
𝐢𝑖𝑑 𝑋𝑖𝑑
𝑀𝑖𝑛
π‘–πœ–πΌ ∪𝐷 π‘‘πœ–πΌ ∪𝐷 π‘˜πœ–πΎ
3
Dengan
1, jika kendaraan dijalankan dari titik 𝑖 ke 𝑑
=
0, untuk yang lain
1, jika customer 𝑖 dialokasikan untuk depot 𝑑
𝑍𝑖𝑑 =
0, untuk yang lain
π‘ˆπ‘™π‘˜ adalah batasan untuk eliminasi sub-tour
Dengan batasan-batasan sebagai berikut:
π‘˜
𝑋𝑖𝑑
Batasan 1: Setiap customer hanya dikunjungi satu kali dan hanya oleh satu
kendaraan
π‘˜
𝑋𝑖𝑑
= 1, ∀𝑖 ∈ 𝑁/{𝑑}
π‘˜πœ–πΎ π‘–πœ–πΌ ∪𝐷
Batasan 2: Total permintaan dari setiap customer dalam satu rute tidak boleh
melebihi kapasitas kendaraan
π‘˜
𝑋𝑖𝑑
≤ π‘„π‘˜ , ∀π‘˜ ∈ 𝐾
π‘žπ‘–
𝑖∈𝐼
𝑑∈𝐼∪𝐷
Batasan 3: sub-tour eliminasi yang baru
π‘˜
π‘ˆπ‘™ − π‘ˆπ‘–π‘˜ + 𝑉𝑋𝑖𝑑
≤ 𝑉 − 1, 𝑙, 𝑖 ∈ 𝐼, π‘˜ ∈ 𝐾
Batasan 4: setiap kendaraan harus meninggalkan customer yang telah dikunjungi.
π‘˜
𝑋𝑖𝑑
−
𝑖∈𝐼∪𝐷
π‘˜
𝑋𝑑𝑖
= 0 , 𝑖 ∈ 𝐼 ∪ 𝐷, ∀π‘˜ ∈ 𝐾
𝑖∈𝐼∪𝐷
Batasan 5: Setiap rute dilayani satu kali.
π‘˜
𝑋𝑖𝑑
≤ 1, ∀π‘˜ ∈ 𝐾
π‘‘πœ–π· π‘–πœ–πΌ
Batasan 6: Batasan kapasitas untuk depot yang diberikan
π‘žπ‘– 𝑍𝑖𝑑 ≤ 𝑄𝑑 , 𝑑 ∈ 𝐷
𝑖∈𝐼
Batasan 7: Sebuah customer dapat ditempatkan pada suatu depot jika terdapat rute
dari depot dan melalui customer tersebut.
π‘˜
π‘˜
(𝑋𝑒𝑑
+ 𝑋𝑖𝑑
) ≤ 1,
−𝑍𝑖𝑑 +
𝑑 ∈ 𝐷, 𝑖, 𝑒 ∈ 𝐼 ∪ 𝐷, π‘˜ ∈ 𝐾
𝑒 ∈𝐼∪𝐷
Batasan 8: Nilai positif untuk variabel bantu
π‘ˆπ‘™π‘˜ ≥ 0, 𝑙 ∈ 𝐼, π‘˜ ∈ 𝐾
Algoritma Genetika pada Multi Depot Vehicle Routing Problem (MDVRP)
Algoritma sebagai cabang dari Algoritma Evolusi merupakan metode
adaptive yang biasa digunakan untuk memecahkan suatu pencarian nilai dalam
4
suatu masalah optimasi. Algoritma ini didasarkan pada proses genetic yang ada
dalam makhluk hidup, yaitu prkembangan generasi dalam sebuah populasi yang
alami, secara lambat laun mengikuti prinsip seleksi alam atau”siapa yang kuat, dia
yang bertahan (survivve)”. Dengan meniru teori evolusi ini, Algoritma Genetika
dapat digunakan untuk mencari solusi permasalahan-permasalahan dalam dunia
nyata(Basuki, Achmad, 2003)
Pada proses algoritma genetika terdapat beberapa hal yang harus
dilakukan, yaitu pengkodean (encoding), mendefinisikan nilai fitness,
pembangkitan populasi awal, seleksi (selection), persilangan (crossover), mutasi
(mutation). Pertama-tama, proses encoding adalah suatu proses kodifikasi atas
solusi dari permasalahannya, prose ini juga bias disebut sebagai endefinisian
individu. Hasil encoding adalah berbentuk string yang merupakan representasi
dari suatu kromosom atau individu. Proses selection menentukan kromosom mana
yang tetap tinggal pada generasi berikutnya. Proses crossover akan menghasilkan
kromosom baru yang merupakan pengganti dari kromosom yang hilang sehinga
total kromosom pada satu generasi berjumlah tetap. Proses mutation
memungkinkan terjadinya kromosom baru secara unpredictable. Keseluruhan
proses tersebut akan menghasilkan populasi baru, yang kemudian akan digunakan
sebagai populasi awal pada proses iterasi selanjutnya.
1.
Pendefinisian individu(Encoding)
Teknik encoding yang digunakan pada Multi Depot Vehicle Routing
Problem adalah permutation encoding. Pada permutation encoding, kromosomkromosom adalah kumpulan angka yang mewakili posisi customer atau depot
pada suatu rute.
2.
Pendefinisian Nilai Finess
Pada evolusi di dunia nyata, individu bernilai fitness tinggi akan bertahan
hidup, sedangkan individu bernilai fitness rendah akan mati. Pada Algoritma
Genetika, suatu individu dievaluasi berdasarkan suatu fungsi tertentu sebagai
ukuran nilai fitness-nya. Pada masalah optimasi, jika masalahnya adalah
1
meminimalkan fungsi β„Ž(masalah minimasi), maka fungsinya adalah 𝑓 = β„Ž ,
artinya semakin kecil nilai β„Ž semakin besar nilai 𝑓. Oleh karena itu digunakan
1
fungsi fitness 𝑓 =
.
π‘‘π‘œπ‘‘π‘Žπ‘™ π‘—π‘Žπ‘Ÿπ‘Žπ‘˜
3.
Pembentukan populasi
Salah satu cara dalam menghasilkan poulasi awal adalah dengan
menggunakan Permutasi Josephus. Misalkan ada kota dari 1 sampai 9. Permutasi
dari lintasan dapat dilakukan dengan menentukan titik awal dan selang. Misalnya
titik awal adalah 6 dan selang adalah 5. Maka lintasan berangkat dari kota 6,
selang 5 dari kota 6 adalah kota 2 (dengan asumsi kota 1 sampai 9 membentuk
circular list). Kota 2 dihapus dari list. Selang 5 kemudian adalah kota 7. Proses ini
diulang hingga semua kota terpilih. Hasil dari permutasi ini adalah 2 – 7 – 3 – 8 –
4 – 9 – 5 – 1 – 6.
5
4.
Seleksi
Pada tahap seleksi digunakan metode roulette whell selection. Cara kerja
metode ini adalah sebagai berikut:
a)
Menghitung nilai fitness dari masing-masing individu (𝑓𝑖 dimana 𝑖
adalah individu ke-1 sampai dengan ke-𝑛).
b)
Menghitung total fitness semua individu.
c)
Menghitung probabilitas masing-masing individu.
d)
Dari probabilitas tersebut, dihitung jatah masing-masing individu
pada angka 0 sampai 1.
e)
Bangkitkan bilangan random antara 0 sampai 1.
Dari bilangan random yang dihasilkan, ditentukan individu mana yang
akan terpilih dalam proses seleksi.
5.
Crossover
Pada tahap pindah silang(crossover) digunakan metode Order
Crossover(OX). Pada proses crossover terlebih dahulu membangkitkan bilangan
acak antara 0 dan 1 sebanyak kromosom dalam populasi. Jika nilai bilangan acak
kromosom lebih kecil atau sama dengan probabilitas crossover 𝑝𝑐 , maka
kromosom tersebut akan mengalami proses crossover. Selanjutnya kromosom
terpilih akan mengalami proses crossover dengan langkah sebagai berikut.
1. Menentukan dua posisi secara random pada kromosom sebagai substring.
2. Menyalin gen yang berada diantara substring tersebut ke keturunan dengan
posisi yang sama.
3. Mengurutkan gen yang berada pada parent kedua dengan urutan gen yang
berada setelah posisi random kedua diikuti dengan gen yang berada pada
sebelum posisi random pertama dan diakhiri dengan gen yang berada pada
posisi diantara substring.
4. Kemudian gen yang telah diurutkan tersebut dibandingkan dengan parent
pertama. Apabila gen tersebut ada pada parent pertama maka abaikan gen
tersebut dari urutan itu.
5. Kemudian memasukkan urutan yang baru saja didapat pada keturunan
dengan cara memasukkan urutan gen pada posisi setelah posisi random
kedua terlebih dahulu dan sisanya dimasukkan pada posisi sebelum posisi
random pertama.
Mengulangi langkah 3 sampai 5 untuk menghasilkan keturunan kedua.
6.
Mutasi
Metode mutasi yang digunakan adalah Inversion Mutation, yaitu memilih
dua posisi dalam kromosom secara random, kemudian menginversikan substring
diantara dua posisi tersebut.
Contoh Multi Depot Vehicle Routing Problem (MDVRP) dengan Algoritma
Genetika
Suatu perusahaan akan melakukan pengiriman barang kepada customer
yang tersebar di berbagai daerah. Perusahaan tersebut memiliki 2 depot yang
terletak diantara customer-customer, yaitu depot 0 dan depot 1. Adapun daftar
permintaan tiap customer seperti pada Tabel 1 berikut:
6
Tabel 1 Jumlah permintaan tiap customer
Customer
permintaan
2
15
3
20
4
10
5
25
6
15
7
25
8
20
9
30
10
25
dan jarak depot ke customer dan antar customer dapat dilihat pada Tabel 2
berikut:
0
1
2
3
4
5
6
7
8
9
10
Tabel 2 Jarak depot ke customer dan antar customer
0
1
2
3
4
5
6
0
160
0
50
185
0
70
157
38
0
80
87
110
75
0
165
100
160
125
51
0
143
60
150
115
36
36
0
154
75
193
176
119
140
100
93
90
137
130
97
140
100
60
195
10
48
120
170
160
185
120
180
145
71
20
56
7
8
9
10
0
58
203
160
0
147
160
0
55
0
Dengan jumlah populasi adalah 6, probabilitas crossover (𝑝𝑐 = 0,65),
probabilitas mutasi (π‘π‘š = 0,3) dan maksimum generasi adalah 2, diperoleh hasil
sebagai berikut :
Rute untuk depot 0 adalah
0 – 9 – 2 – 3 – 0 dan 0 – 4 – 0 dengan total jarak 338 km. Atau
0 – 2 – 9 – 3 – 0 dan 0 – 4 – 0 dengan total jarak 338 km.
Rute untuk depot 1 adalah
1 – 10 – 5 – 6 – 1 dan 1 – 7 – 8 – 1 dengan total jarak 459 km. Atau
1 – 5 – 10 – 6 – 1 dan 1 – 7 – 8 – 1 dengan total jarak 459 km.
Selain contoh diatas, telah diselesaikan contoh lain dengan 3 depot dan 18
customer. Dan solusi dari masing-masing contoh dibandingkan dengan solusi
menggunakan Algoritma Clark and Wright(Masruroh, Annisa, 2012). Solusi yang
diperoleh dari masing-masing contoh disajikan dalam Tabel 3 berikut:
7
Tabel 3 Perbandingan solusi dengan Algoritma Genetika dan Algoritma Clark and Wright
Contoh
Algoritma
depot
0
Genetika
1
1
Clark and
Wright
0
1
0
Genetika
1
2
2
0
Clark and
Wright
1
2
Rute
0–9–2–3–0
Atau
0–2–9–3–0
0–4–0
1 – 10 – 5 – 6 – 1
Atau
1 – 5 – 10 – 6 – 1
1–7–8–1
0–2–9–3–0
0–4–0
1 – 6 – 5 – 10 – 1
1–7–8–1
0 – 16 – 13 – 15 – 0
0 – 7 – 10 – 0
1 – 4 – 11 – 17 – 1
1 – 6 – 20 – 12 – 5 – 14 – 1
2 – 19 – 18 – 3 – 2
2–8–2
0 – 9 – 15 – 13 – 16 – 0
0 – 10 – 7 – 0
1 – 4 – 5 – 12 – 20 – 14 – 17 – 6 – 1
1 – 11 – 1
2 – 8 – 18 – 19 – 2
jarak
Total
jarak
338
797
459
338
797
459
405
448
1285
432
395
396
1115
324
Terlihat bahwa dengan Algoritma Genetika dimungkinkan diperoleh beberapa
solusi dengan total jarak yang sama-sama minimum, seperti solusi pada contoh 1,
diperoleh 4 rute dengan total jarak yang sama. Namun solusi pada Algoritma
Genetika tidak selalu merupakan solusi yang terbaik, karena solusi diperoleh dari
solusi terbaik pada iterasi terakhir, seperti terlihat pada contoh 2, solusi pada
Algoritma Genetika kurang optimum jika dibandingkan dengan solusi
menggunakan Algoritma Clark and Wright. Dan untuk contoh dengan banyak
titik akan diperlukan jumlah iterasi atau maksimum generasi yang banyak pula,
hal ini akan membutuhkan waktu pengerjaan yang lebih lama.
PENUTUP
Kesimpulan
Berdasarkan pembahasan diperoleh kesimpulan sebagai berikut:
1. Model permasalahan yang akan diselesaikan menggunakanMDVRP dengan
Algoritma Genetika digambarkan sebagai Graph komplit 𝐾𝑛 , dengan 𝑛 adalah
jumlah depot dan customer.Algoritma Genetika pada MDVRP dapat dibagi
ke dalam 3 tahap, yaitu Grouping, Routing, dan Scheduling. Pada tahap
Grouping, customer-customer dikelompokkan ke depot dengan jarak
terdekat. Kemudian pada tahap Grouping, dibangun sejumlah rute dengan
Permutasi Josephus untuk customer-customer pada depot yang sama,
8
sehingga sejumlah rute tersebut akan menjadi populasi awal. Selanjutnya,
pada tahap Scheduling dilakukan proses-proses genetika, diantaranya seleksi
dengan metode roulette berdasarkan nilai finess dari masing-masing
kromosom, kemudian pindah silang (crossover) dengan metode Order
Crossover(OX) dan mutasi dengan metode Inversion Mutation. Setelah itu,
kromosom-kromosom awal dan kromosom hasil pindah silang maupun
mutasi dikumpulkan dan dipilih sejumlah kromosom terbaik sebagai hasil
dari iterasi, dan nantinya akan digunakan sebagai populasi awal pada iterasi
berikutnya. Proses ini akan dilakukan berulang-ulang sampai batas
maksimum iterasi telah tercapai, sehingga kromosom dengan fitness
terbaik(dengan jarak minimum) pada iterasi terakhir akan menjadi solusi dari
Algoritma Genetika pada MDVRP.
2.
Jika dibandingkan dengan Algoritma Clark and Wright, solusi pada
Algoritma Genetika pada MDVRP tidak selalu merupakan solusi yang
terbaik, karena pencarian dilakukan dengan cara random, namun hasil yang
diperoleh pada algoritma Genetika bisa lebih dari satu solusi atau beragam,
sehinngga diperoleh alternatif solusi. Seperti pada contoh 2 diperoleh
alternatif solusi dengan total jarak yang sama, yaitu
0 – 9 – 2 – 3 – 0 dan 1 – 10 – 5 – 6 – 1, 0 – 9 – 2 – 3 – 0 dan 1 – 5 – 10 – 6 –
1, 0 – 2 – 9 – 3 – 0 dan 1 – 10 – 5 – 6 – 1, 0 – 2 – 9 – 3 – 0 dan 1 – 5 – 10 – 6
– 1, dengan total jarak yang sama yaitu 797 km.
Saran
Dalam tulisan ini, metode pindah silang yang digunakan adalah OX dan
metode mutasi yang digunakan adalah Inversion Mutation, dimungkinkan bagi
pembaca untuk menganalisa hasil penyelesaian menggunakan metode pindah
silang dan metode mutasi yang lain. Dan belum dikaji bagaimana Implementasi
Algoritma Genetika pada suatu program tertentu, dimungkinkan bagi pembaca
untuk mengkaji Implementasi Algoritma Genetika pada Bahasa pemrograman
tertentu.
DAFTAR PUSTAKA
Aldous, Joan M. and Wilson, Robin J. 2004. Graphs and Applications An
Introductory Approach. Great Britain: Springer.
Basuki, Achmad. 2009. Algoritma Genetika. (Online)
(http://budi.blog.undip.ac.id/files/2009/06/algoritma_genetika.pdf),
diakses pada 12 Januari 2013.
Desiani, Anita dan Arhani, Muhammad. 2007. Konsep Kecerdasan Buatan. Andi
Publisher.
Larson, Richard C., and Odini, Amedeo R. 1999. Urban Operations Research.
Massachusetts: Prentice-Hall. (Online),
(http://web.mit.edu/urban_or_book/www/book/chapter6/6.4.12.html),
diakses 10 Mei 2013.
9
Masruroh, Annisa. 2012. Algoritma Clark and Wright pada Multi Depot Vehicle
Routing Problem. Skripsi tidak diterbitkan. Malang: Fakultas Matematika
dan Ilmu Pengetahuan Alam Universitas Negeri Malang.
Surekha, P. & Sumathi, S. 2011. Solution To Multi-Depot Vehicle Routing
Problem Using Genetic Algorithms. WAP Journal, (Online), 1(3) : 118131, (http://waprogramming.com/papers/voll-no3/%28118131%29%20Solution%To%20MultiDepot%20Vehicle%20Routing%20Problem%20Using%20Genetic%20Al
gorithms.pdf), diakses 2 Januari 2013.
Sarwadi & KSW, Anjar. 2004. Algoritma Genetika untuk Penyelesaian Masalah
Vehicle Routing. Jurnal Matematika dan Komputer, (Online), 7(2) : 1-10,
(http://eprints.undip.ac.id/2226/1/1_Sarwadi_-_Anjar_Krismi.pdf), diakses
3 Januari 2013.
Download