Minggu, 15 Desember 2019

D3Js

D3JS

 

D3.js adalah library JavaScript yang dipakai untuk memanipulasi dokumen HTML dan menggambar diagram berdasarkan data yang diberikan. Library ini menggunakan HTML, CSS, dan SVG Untuk membuat representasi visual dari kumpulan data yang bisa dilihat diberbagai browser modern. 

 D3.js juga memiliki fitur untuk membuat diagram yang interaktif dengan animasi-animasi menarik.Di tutorial ini kita akan mengenal konsep dasar penggunaan D3.js. Kita akan pelajari bagaimana menggunakannya dengan me-render sebuah diagram batang, elemen HTML dan SVG, serta menerapkan transformasi dan event ke diagram tersebut. 

 


- Mulai Menggunakan D3

Karena D3.js adalah library JavaScript, untuk memakainya kita cukup menulis baris berikut di dalam file HTML.
<script src='https://d3js.org/d3.v4.min.js'></script>

DOM Selection

Dengan D3.js kita bisa memanipulasi Document Object Model (DOM), yang artinya kita bsa memilih elemen dan memberikan berbagai jenis transformasi ke elemen tersebut.
Mari mulai dengan contoh sederhana dimana kita akan memakai D3 untuk memilih dan mengubah warna dan ukuran font tag heading.
<html>
<head>
    <title>Learn D3 in 5 minutes</title>
</head>
<body>
 
<h3>Today is a beautiful day!!</h3>
 
<script src='https://d3js.org/d3.v4.min.js'></script>
 
<script>
    d3.select('h3').style('color', 'darkblue');
    d3.select('h3').style('font-size', '24px');
</script>
</body>
</html>
 
Disini kita hanya menautkan mehod select() di objek d3 yang memilih elemen tertentu, dan diikuti dengan method style(). Di method style(), parameter pertama menentukan apa yang ingin diubah dan parameter kedua memberikan nilai yang baru. Berikut hasilnya:
 
img

- Data Binding

Konsep berikutnya yang perlu dipelajari adalah data binding karena konsep ini sangat penting di D3. Dengan menggunakannya, kita bisa mengisi atau memanipulasi elemen DOM secara realtime.
di HTML kita, tambahkan sebuah tag <ul>:
 
<ul> </ul>
 
Kita ingin mengisi unordered list tersebut dengan sebuah objek data. Berikut kode JavaScript-nya:
<script>
    var fruits = ['apple', 'mango', 'banana', 'orange'];
    d3.select('ul')
        .selectAll('li')
        .data(fruits)
        .enter()
        .append('li')
        .text(function(d) { return d; });
</script>
 
Pada kode JavaScript di atas, D3 membaca elemen <ul> dan seluruh elemen <li> di dalamnya menggunakan select() dan selectAll(). Agaknya aneh kita membaca elemen li yang belum kita tamahkan disana, tapi begitulah cara kerja D3.
Kita lalu mengirimkan data dengan method data(), dan memanggil enter() yang akan mengulangi (melakukan looping atau perulangan) method-method di bawahnya (append dan text) sampai isi arrray fruits habis di baca satu persatu.
Dengan kata lain, perintah tersebut, menambahkan sebuah <li> untuk setiap item di dalam array. Untuk setiap tag li, ia juga menambahkan teks didalamnya menggunakan mehod text(). Parameter d didalam text() adalah fungsi callback yang mengarah ke elemen di dalam array saat looping terjadi (apple, mango, dst satu persatu).
Berikut hasilnya:
img

- Membuat Elemen SVG

Scalable Vector Graphics (SVG) adalah sebuah cara untuk me-render elemen grafis dan gambar ke dalam DOM. Karena SVG berbasis vector, maka ia ringan dan scalable (bisa diperbesar/perkecil tanpa mempengaruhi kualitas). D3 menggunakan SVG untuk menciptakan gambar-gambarnya, sehingga SVG menjadi pondasi utama library ini.
Pada contoh di bawah, sebuah kotak digambar menggunakan D3 di sebuah kontainer SVG.
//Select SVG element
var svg = d3.select('svg');
//Create rectangle element inside SVG
svg.append('rect')
   .attr('x', 50)
   .attr('y', 50)
   .attr('width', 200)
   .attr('height', 100)
   .attr('fill', 'green');
 
 
D3 akan me-render elemen kotak di DOM. Ia pertama memeilih elemen SVG dan menggambar kotaknya di dalam elemen tersebut. Ia juga mengatur koordinat x dan y juga lebar, tinggi, dan warna isinya di method attr().
img

- Membuat Diagram Batang

D3 memungkinkan kita untuk membuat berbagai jenis diagram agar bisa merepresentasikan data dengan lebih efisien. Pada contoh di bawah, kita membuat diagram batang sederhana dengan D3.
Mari mulai dengan membuat tag SVG di HTML.
<svg width='200' height='500'></svg>
 
Lalu, kita tulis kode JavaScript yang kita butuhkan untuk merender diagram tersebut di tag <svg>:
var data = [80, 120, 60, 150, 200];
var barHeight = 20;
var bar = d3.select('svg')
          .selectAll('rect')
          .data(data)
          .enter()
          .append('rect')
          .attr('width', function(d) {  return d; })
          .attr('height', barHeight - 1)
          .attr('transform', function(d, i) {
            return "translate(0," + i * barHeight + ")";
          });
 
Pada kode di atas, kita memiliki sebuah array yang berisi angka-angka untuk ditampilkan di diagram batang kita tadi. Setiap item di dalam array akan mengisi satu batang.
Setelah memilih elemen svg dan rect, kita mengirim data dengan method data() dan memanggil enter() untuk melakukan looping kode-kode di bawahnya sampai isi array habis di baca.
Untuk setiap item, kita menggambar sebuah kotak dan mengatur lebarnya sesuai dengan nilai yang dimiliki. Kita lalu mengatur tinggi setiap kotak dan untuk menghindari overlapping, kita memberikan padding dengan mengurangi barHeight sebesar 1.
Kita lalu memberikan sebuah transformasi agar kotak-kotak tersebut berada kotak sebelumnya. Fungsi transform() menerima fungsi callback yang mengambil data dan indeks data tersebut sebagai parameter. Kita memodifikasi nilai y kotak dengan mengalikan index dengan tinggi kotak.
Berikut hasilnya:
img

- Event Handling

Terakhir, mari kita lihat bagaimana event handling di D3. Pada contoh di bawah kita menghubungkan event klik dengan sebuah button lalu menambahkan sebuah tag heading ke dalam tag body di event handler-nya.
 
d3.select('#btn')
        .on('click', function () {
            d3.select('body')
               .append('h3')
               .text('Today is a beautiful day!!');
        });
 
Jadi, ketika kita mengklik buttont ersebut, akan muncul text di bawahnya:
img

Kesimpulan

D3.js adalah library JavaScript yang powerful, namun masih mudah untuk dipakai membuat diagram dengan HTML, CSS, dan SVG.
 
REFERENSI : 

ILWIS

ILWIS

ILWIS kepanjangan dari Integrated Land and Water Information System, merupakan perangkat lunak Sistem Iinformasi Geografis (SIG) yang juga memiliki kemampuan untuk pengolahan citra (image processing) pengindraan jauh. Perangkat lunak ini dibuat oleh International Institute for Geo-information Sciences and Earth Observation (ITC), Enschede, Belanda. ILWIS dapat digunakan sebagai alat untuk menginput data, manajemen data dan analisis data untuk kemudian menghasilkan data keluaran (input). Data-data tersebut dapat di georeferences sehingga menghasilkan informasi tentang kejadian di suatu wilayah.

ILWIS tidak jauh berberda dengan perangkat lunak lainnya yang dirancang sebagai alat bantu (tool) dalam aplikasi SIG dan atau Pengindraan Jauh. Hal penting yang membuat ILWIS menarik untuk dipelajari adalah kategorinya sebagai perangkat lunak yang bersifat open source dan freeware atau bebas digunakan. Selain itu kelebihan lainnya adalah software ini memiliki kemampuan untuk melakukan SMCE (Spatial Multi Criteria Evaluation) yang merupakan gabungan antara konsep overlay pada SIG dan AHP (Analytical Hierarchy Process) pada lingkup Decision Support System, yang sangat bermanfaat untuk analisa keruangan.
   
Awal mula ILWIS dimulai tahun 1988 dengan dibuatnya ILWIS versi 1.0. Tahun 1999 dikeluarkan ILWIS for Windows versi 2.23. ILWIS 3.0 support 32 bit multi threading diluncurkan tahun 2001. Dalam perkembangannya, mulai 1 Juli tahun 2007, software ini terbuka penggunaannya (open sources). Sejak tahun 1989, software ini telah digunakan lebih dari 100 kota di banyak negara, dan secara ekstensif digunakan dalam kursus baik di dalam maupun diluar ITC dan digunakan untuk riset maupun proyek penelitian. Model data dalam ILWIS terbagi menjadi data vektor dan raster. Dalam software ILWIS terdapat dua hal yang menjadi komponen dasar yaitu ILWIS Windows dan ILWIS object.
   
ILWIS mempunyai kemampuan untuk input, mengatur, menganalisis dan menyajikan geo-graphical data. Dari data yang ada dapat menghasilkan informasi pada pola spasial dan temporal dan proses pada permukaan bumi. Software ILWIS mempunyai kemampuan yang handal dalam mengolah data raster (data yang berbasis sel, dimana setiap sel mempunyai suatu nilai), tetapi mempunyai kekurangan dalam mengolah data vektor (data berupa garis dan lengkung). Kelemahan dimulai saat digitasi dan editing data vektor, hal ini disebabkan karena produk ILWIS tidak mempunyai fasilitas editing selengkap Arc View. Namun demikian, bukan berarti ILWIS sama sekali tidak bisa dimanfaatkan untuk menganalisis data vector. Untuk analisis geoprocessing dilakukan dengan cara mengkonversi data vektor ke data raster terlebih dahulu, selanjutnya dapat dilakukan analisis modeling seperti pembuatan peta digital elevation model (dem), peta lereng (slope), overlay peta-peta untuk membuat unit peta, melakukan scorring, interpolasi kontur, dan lain sebagainya.
   
Terdapat sejumlah hal pada perangkat lunak ILWIS yang disebut sebagai basic concept. Hal yang termasuk dalam kategori basic concept dalam ILWIS adalah ILWIS window dan ILWIS object. Untuk ILWIS window pada dasarnya terdapat empat tipe window, yaitu:
1.    Main window, merupakan bagian utama yang ditampilakan setiap kali perangkat lunak ILWIS dijalankan. Terdiri dari menu bar, command line, catalog, operation-tree dan operation-list, navigator, standard toolbar, object selection toolbar, dan status bar.
2.    Map window, berfungsi untuk menampilkan data spasial baik format raster maupun vektor. Terdiri dari raster map yang merupakan data format raster dan polygon map, segment map serta point map yang merupakan data format vektor.
3.    Table window, berfungsi untuk menampilakn dan melakukan editing data tabular dan table.
4.    Pixel information window, berfungsi untuk menampilkan informasi mengenai kelas, ID ataupun nilai data spasial secara interaktif.
Sedangkan untuk ILWIS object terdiri dari beberapa tipe dan dapat dikelompokkan menjadi empat kategori, yaitu:
1.    Data object, merupakan data spasial dan data atribut. Terdiri dari raster map, polygon map, segment map, point map dan table.
2.    Container object, merupakan suatu “wadah” yang berisi sekumpulan data object. Terdiri dari map list, object collection, map view, layout, annotation text dan graph.
3.    Service object, berisikan fasilitas atau aksesoris yang diperlukan oleh adapt object. Terdiri dari domain, representation, georeference, dan coordinate system.
4.    Special object, berisikan objek spesial terkait ILWIS.
 
Kelebihan ILWIS
 
1.    Open Source (Gratis dan Murah Meriah)
2.    Lebih familiar digunakan untuk analisa ketinggian, kontur, arah aliran material, dan fungsi pendukung analisis hidrologi dan DAS
3.    Konsistensi dalam pemakaian georeference pada peta rupa bumi (georeference dilaksanakan di awal, dan tidak dapat di-by pass)
4.    ILWIS memiliki kemampuan raster processing yang bagus
5.    Konsisten dalam prinsip topologi saat editing dan pembuatan poligon
6.    Tampilan layout-nya bagus
7.    Tidak butuh resource dan spesifikasi komputer yang tinggi
8.    Ada log yang membantu user men-tracking tahapan-tahapan kerjanya
9.    Kemudahan dalam mengimpor peta vektor dan raster dalam banyak macam format umum (misal: Bitmap, TIFF, GIF, ArcView, AutoCAD)
10.    Kemampuan untuk mengintegrasikan data spasial (dalam berbagai format) dan data tabular (kekhususannya: ILWIS paling baik dalam mengimpor data tabular dalam format .dbf seperti di ArcView)
11.    Sangat baik dan lengkap untuk sebuah software tak berbayar
 
Kekurangan ILWIS
 
1.    Digitasi Point kurang sempurna (point yang sudah di hapus di view, tidak terhapus di record table)
2.    Measure item kurang sempurna (tidak mencerminkan panjang suatu segmen yang berliku-liku, hanya mencerminkan panjang ‘bagian’ segmen saja yang berupa garis lurus
3.    Modul export import map dan table terkadang tidak konsisten menghasilkan path directory output
4.    Pemakaian polygon bersifat ‘one way’, artinya, jika mau menambahkan polygon tambahan maka harus mengedit dari garis penyusunnya dan atribut harus dilekatkan satu-satu lagi. Ini bermasalah jika jumlah data sangat banyak
5.    Attribute dan tabel map dibuat secara terpisah
6.    Penggunaan Open Pixel Informasinya kurang sesuai dengan pilihan kursor
7.    Ada beberapa bug kecil yg agak menyulitkan bagi user pemula, seperti proses melalui GUI yg kurang konsisten
8.    Terlalu saintifik, sehingga user perlu melakukan semua prosesnya secara berurut sesuai teori dan prinsip GIS/RS
9.    Tidak ada perintah "undo", "redo", "copy", "paste" yg sudah sangat populer
10.    Tidak bisa menyimpan data berformat BLOB (misal: foto atau gambar) pada tabelnya, dan tidak ada fungsi insert hyperlink
11.    Operasional software lebih rumit dibandingkan software komersil lain (misalnya: proses rektifikasi dan mozaik)
12.    Pengguna harus memahami betul konsep domain dan struktur data (mis: jumlah row dalam tabel dan domain harus di-seting lebih awal)
13.    Apabila ada dua tabel yang berbeda domain tidak bisa langsung di gabungkan
14.    Proses tidak dapat diproses dan tidak dapat dilihat preview-nya



REFERNSI :
https://www.guntara.com/2014/05/pengenalan-aplikasi-ilwis-integrated.html 

DISTANCE THEORY

DISTANCE THEORY

 

 

Algoritma Koloni Semut (ACO)

Ant Colony Optimization ACO atau Algoritma Koloni Semut adalah sebuah probabilistik komputasi teknik untuk memecahkan masalah yang dapat dikurangi untuk menemukan jalur yang baik melalui grafik.

Algoritma ini adalah anggota dari keluarga algoritma koloni semut, pada intelijen segerombolan metode, dan hal itu merupakan beberapa metaheuristic optimasi. Awalnya diusulkan oleh Marco Dorigo tahun 1992 di gelar PhD tesis [1] [2], algoritma pertama yang bertujuan untuk mencari jalan yang optimal dalam grafik; berdasarkan perilaku semut mencari jalan antara koloni dan sumber makanan . Aslivvz ide ini telah diversifikasi untuk menyelesaikan kelas yang lebih luas dari masalah numerik, dan sebagai hasilnya, beberapa masalah telah muncul, menggambar tentang berbagai aspek perilaku semut.

Ringkasan

Di dunia nyata, semut (awalnya) berjalan secara acak, dan ketika menemukan makanan kembali ke koloni mereka sambil meletakkan feromon jejak. Jika semut lain menemukan jalur tersebut, mereka tidak cenderung untuk menjaga bepergian secara acak, tapi malah mengikuti jejak, kembali dan menguatkannya jika pada akhirnya mereka menemukan makanan.

Seiring waktu, Namun, jejak feromon mulai menguap, sehingga mengurangi kekuatan yang menarik. Semakin banyak waktu yang diperlukan untuk seekor semut melakukan perjalanan menyusuri jalan setapak dan kembali lagi, semakin banyak waktu yang harus feromon menguap.
Jalan pendek, dengan perbandingan, akan berjalan lebih cepat, dan dengan demikian kerapatan feromon akan tetap tinggi seperti yang diletakkan di jalan secepat dapat menguap. Penguapan feromon juga mempunyai keuntungan untuk menghindari konvergensi solusi optimal secara lokal. Jika tidak ada penguapan sama sekali, jalur yang dipilih oleh semut pertama akan cenderung menarik secara berlebihan yang berikut. Dalam hal ini, eksplorasi ruang solusi akan dibatasi.

Jadi, ketika seekor semut menemukan yang baik (yakni, pendek) jalur dari koloni ke sumber makanan, semut lain lebih cenderung mengikuti jalan, dan umpan balik yang positif pada akhirnya menyebabkan semua semut berikut satu jalan. Ide dari algoritma koloni semut adalah untuk meniru perilaku ini dengan "simulasi semut" berjalan di sekitar grafik yang menunjukkan masalah yang harus diselesaikan.

Detail
 
Gagasan awalnya berasal dari mengamati makanan eksploitasi sumber daya di antara semut, di mana semut 'secara individual memiliki kemampuan kognitif terbatas secara kolektif mampu menemukan jalur terpendek antara sumber makanan dan sarang.

  1. Semut pertama menemukan sumber makanan (F), melalui cara apapun (a), kemudian kembali ke sarang (N), meninggalkan jejak feromon (b)
  2. Semut tanpa pandang bulu cara mengikuti empat kemungkinan, tapi penguatan landasan membuatnya lebih menarik sebagai rute terpendek.
  3. Semut mengambil rute terpendek, panjang bagian-bagian dari cara-cara lain kehilangan jejak feromon.
Dalam serangkaian percobaan pada koloni semut dengan pilihan antara dua tidak sama panjang jalan yang mengarah ke sumber makanan, ahli biologi telah mengamati bahwa semut cenderung menggunakan rute terpendek. [3] [4] Sebuah model yang menjelaskan perilaku ini adalah sebagai berikut
  1. Semut (disebut "kilat") berjalan lebih atau kurang secara acak di sekitar koloni;
  2. Jika menemukan sumber makanan, itu kembali lebih atau kurang langsung ke sarang, meninggalkan dalam jalur jejak feromon;
  3. Feromon ini yang menarik, di dekatnya semut akan cenderung mengikuti, lebih atau kurang langsung, trek;
  4. Kembali ke koloni, semut ini akan memperkuat rute;
  5. Jika dua rute yang mungkin untuk mencapai sumber makanan yang sama, yang lebih pendek akan, dalam waktu yang sama, yang ditempuh oleh lebih banyak semut daripada rute yang panjang akan
  6. Rute pendek akan semakin ditingkatkan, dan karena itu menjadi lebih menarik;
  7. Rute yang panjang akhirnya akan menghilang, feromon yang mudah menguap;
  8. Akhirnya, semua semut telah ditentukan dan karena itu "dipilih" rute terpendek.
Semut menggunakan lingkungan sebagai media komunikasi. Mereka bertukar informasi secara tidak langsung dengan mendepositokan feromon, semua rincian status mereka "bekerja". Bertukar informasi memiliki lingkup lokal, hanya seekor semut yang terletak di mana feromon dibiarkan mempunyai pengertian dari mereka. Sistem ini disebut "Stigmergy" dan terjadi di banyak hewan sosial masyarakat (hal itu telah dipelajari dalam kasus pembangunan pilar dalam sarang rayap).
Mekanisme untuk menyelesaikan masalah terlalu kompleks untuk ditangani oleh satu semut adalah contoh yang baik dari diri-sistem terorganisir. Sistem ini didasarkan pada umpan balik positif (yang deposit menarik feromon semut lain yang akan memperkuat sendiri) dan negatif (disipasi dari rute oleh sistem mencegah penguapan dari labrakan). Secara teoritis, jika jumlah feromon tetap sama dari waktu ke waktu pada semua sisi, tidak ada rute yang akan dipilih. Namun, karena umpan balik, sedikit variasi pada pinggir akan diperkuat dan dengan demikian memungkinkan pilihan dari tepi. Algoritma akan bergerak dari keadaan yang tidak stabil di mana tidak ada ujung lebih kuat daripada yang lain, untuk negara yang stabil di mana rute terdiri dari tepi paling kuat

 

 Algoritma Djikstra

 Algoritme Dijkstra, (sesuai penemunya  Edsger Dijkstra), adalah sebuah algoritma yang dipakai dalam memecahkan permasalahan jarak terpendek (shortest path problem) untuk sebuah graf berarah (directed graph).

Algoritma ini dioublikasikan pada tahun 1959  jurnal Numerische Mathematik yang berjudul “A Note on Two Problems in Connexion with Graphsdan dianggap sebagai algoritma greedy.
Permasalahan rute terpendek dari sebuah titik ke akhir titik lain adalah sebuah masalah klasik optimasi yang banyak digunakan untuk menguji sebuah algoritma yang diusulkan. Permasalahan rute terpendek dianggap cukup baik untuk mewakili masalah optimisasi, karena permasalahannya mudah dimengerti (hanya menjumlahkan seluruh edge yang dilalui) namun memiliki banyak pilihan solusi.
Menurut Andrew Goldberg peneliti Microsoft Research Silicon Valley, mengatakan ada banyak alasan mengapa peneliti terus mempelajari masalah pencarian jalan terpendek. “Jalan terpendek adalah masalah optimasi yang relevan untuk berbagai macam aplikasi, seperti jaringan routing, game, desain sirkuit, dan pemetaan”.

Diskripsi matematis untuk grafik dapat diwakili G = {V. E}, yang berarti sebuah grafik (G) didefenisikan oleh satu set simpul (Vertex = V) dan koleksi Edge (E).
Algoritma Dijkstra bekerja dengan membuat jalur ke satu simpul optimal pada setiap langkah. Jadi pada langkah ke n, setidaknya ada n node yang sudah kita tahu jalur terpendek. Langkah-langkah algoritma Dijkstra dapat dilakukan dengan  langkah-langkah berikut:
  1. Tentukan titik mana yang akan menjadi node awal, lalu beri bobot jarak pada node pertama ke node terdekat satu per satu, Dijkstra akan melakukan pengembangan pencarian dari satu titik ke titik lain dan ke titik selanjutnya tahap demi tahap.
  2. Beri nilai bobot (jarak) untuk setiap titik ke titik lainnya, lalu set nilai 0 pada node awal dan nilai tak hingga terhadap node lain (belum terisi) 2.
  3. Set semua node yang belum dilalui  dan set node awal sebagai “Node keberangkatan”
  4. Dari node keberangkatan, pertimbangkan node tetangga yang belum dilalui dan hitung jaraknya dari titik keberangkatan. Jika jarak ini lebih kecil dari jarak sebelumnya (yang telah terekam sebelumnya) hapus data lama, simpan ulang data jarak dengan jarak yang baru
  5. Saat kita selesai mempertimbangkan setiap jarak terhadap node tetangga, tandai node yang telah dilalui sebagai “Node dilewati”. Node yang dilewati tidak akan pernah di cek kembali, jarak yang disimpan adalah jarak terakhir dan yang paling minimal bobotnya.
  6. Set “Node belum dilewati” dengan jarak terkecil (dari node keberangkatan) sebagai “Node Keberangkatan” selanjutnya dan ulangi langkah e

 

Algoritma A* 

Algoritma A* (A Star / A Bintang) Algoritma -  A* (dibaca "A bintang"/"A star") adalah algoritma  pencarian graf/pohon yang mencari jalur dari satu titik awal ke sebuah titik akhir yang telah ditentukan. Algoritma A* menggunakan pendekatan heuristik h(x)  yang memberikan peringkat ke tiap-tiap titik x dengan  cara memperkirakan rute terbaik yang dapat dilalui dari titik tersebut. Setelah itu tiap-tiap titk x tersebut dicek  satu-persatu berdasarkan urutan yang dibuat dengan  pendekatan heuristik tersebut. Maka dari itulah algoritma A* adalah contoh dari best-first search. Algoritma ini pertama kali ditemukan pada tahun 1968 oleh Peter Hart, Nils Nilsson dan Bertram Raphael. Dalam tulisan mereka, algoritma ini dinamakan algoritma A. Penggunaan algoritma ini dengan fungsi heuristik yang tepat dapat memberikan hasil yang optimal, maka algoritma inipun disebut A*. Beberapa terminologi dasar yang terdapat pada algoritma ini adalah starting point, simpul (nodes), A, open list, closed list, harga (cost), halangan (unwalkable).

  • Starting point adalah sebuah terminologi posisi awal sebuah benda.
  • A adalah simpul yang sedang dijalankan algortima pencarian jalan terpendek.
  •  Simpul adalah petak-petak kecil sebagai representasi  dari areapathfinding. Bentuknya dapat berupa persegi, lingkaran, maupun segitiga.
  • open list adalah tempat menyimpan data simpul yang mungkin diakses dari starting point maupun simpul yang sedang dijalankan.
  • Closed list adalah tempat menyimpan data simpul sebelum A yang juga merupakan bagian dari jalur terpendek yang telah berhasil didapatkan.
  • Harga (F) adalah nilai yang diperoleh dari penjumlahan nilai G, jumlah nilai tiap simpul dalam jalur terpendek dari starting point ke A, dan H, jumlah nilai perkiraan dari sebuah simpul ke simpul tujuan.
  • Simpul tujuan yaitu simpul yang dituju.
  • Rintangan adalah sebuah atribut yang menyatakan bahwa sebuah simpul tidak dapat dilalui oleh A.



Prinsip algoritma ini adalah mencari jalur terpendek dari sebuah simpul awal (starting point) menuju simpul tujuan dengan memperhatikan harga (F) terkecil.
A* memperhitungkan cost dari current state ke tujuan denga fungsi heuristic, Algoritma ini juga mempertimbangkan cost yang telah ditempuh selama ini dari initial state ke current state. Jadi jika ada jalan yang telah ditempuh sudah terlalu panjang dan ada jalan lain yang cost-nya lebih kecil tetapi memberikan posisi yang sama dilihat dari goal, jalan yang lebih pendek yang akan dipilih.

 

 

REFERENSI :

https://mti.binus.ac.id/2017/11/28/algoritma-dijkstra/ 

http://mursids.blogspot.com/2009/12/algoritma-koloni-semut-aco.html 

http://jeyegzcorner.blogspot.com/2014/07/algoritma-a-star-bintang-algoritma.html 

D3Js

D3JS   D3.js adalah library JavaScript yang dipakai untuk memanipulasi dokumen HTML dan menggambar diagram berdasarkan data yang diber...