14

Implementasi algoritma dijkstra di android [tahap 5]

Tutorial sebelumnya http://latcoding.com/2015/06/08/implementasi-algoritma-dijkstra-di-android-tahap-4/ (Mengupdate graph – algoritma dijkstra android)

Tahap 5 : Menyimpan data koordinat + graph ke dalam database sqlite – algoritma dijkstra

Pada tutorial sebelumnya kita sudah mengumpulkan data berupa koordinat jalur + graph, selanjutnya kita akan menyimpannya ke sqlite. Langkah-langkahnya sebagai berikut :

1. Install database sqlite melalui browser mozilla

https://addons.mozilla.org/en-us/firefox/addon/sqlite-manager/

2. Setelah terinstall, buka melalui Tools > Sqlite Manager > Buat database ‘schoolnav’.
sqlite on mozillaopen sqlite

3. Kita akan buat 3 tabel, yaitu angkutan_umum, graph dan sekolah.
– angkutan_umum : untuk meyimpan data nama angkutan umum
– graph : untuk menyimpan data graph berupa node dan bobot
– sekolah : untuk menyimpan data nama sekolah dan koordinat lokasinya.

Pertama-tama buat tabel angkutan umum.
– Klik kanan pada ‘Tables’ > Create table > isi seperti dibawah > lalu klik ok > yes
create table angkutan umum sqlite

Sekarang kita insert datanya, klik ‘add’, masukkan data di bawah > lalu ok > lalu ‘cancel’ untuk melihat hasil insertannya
insert graph angkutan umum

success insert data to sqilte

Saya jelaskan sedikit disini, pada gambar di atas kita menginsert angkutan umum T01 dan pada kolom ‘simpul’ kita isi dengan :

,0-1,1-2,2-5,5-6,6-5,5-2,2-1,1-0,

Artinya, angkutan umum T01 mempunyai rute pada graph yang melewati node 0 ke 1, lalu 1 ke 2 sampai 5 ke 6, lalu balik lagi ke 1-0. Jika kita gambar di graphnya akan tampak seperti ini :
rute angkutan umum pada graphUntuk list lengkap rute angkutan umum dalam graph sebagai berikut :

T01 : ,0-1,1-2,2-5,5-6,6-5,5-2,2-1,1-0,
T02 : ,0-1,1-2,2-5,5-8,8-5,5-2,2-1,1-0,
T03 : ,0-1,1-4,4-7,7-4,4-1,1-0,
T04 : ,0-1,1-2,2-3,3-2,2-1,1-0,
T11 : ,0-1,1-4,4-9,9-4,4-1,1-0,

Selanjutnya kita menginsert data angkutan umum T02 :

data angkutan umum T02 pada graph

Lakukan langkah yang sama sampai ter-insert data angkutan umum T11, hasilnya bisa dilihat seperti ini :
semua data angkutan umum pada graph

4. Langkah selanjutnya kita membuat tabel ‘graph’ dengan 4 field (id, simpul_awal, simpul_tujuan, jalur, dan bobot)
create table graph

Kita insert datanya, buka kembali json_graph.txt lalu cari nodes 0-1, copy data yang indexnya ‘nodes’, ‘coordinates’, dan ‘distance_metres’ ke dalam sqlite
insert data graph berupa json ke sqlite

Insert lagi data yang kedua, cari nodes 1-0 lalu masukkan jsonnya ke dalam sqlite
sqlite algoritma dijkstra

Insert lagi data yang ketiga, cari nodes 1-2
insert data ke 3

Lakukan langkah yang sama sampai data terinsert semua :
show all data graph on sqlite

5. Selanjutnya kita buat tabel ‘sekolah’ dengan 3 field (id, sekolah, koordinat)
create table sekolah sqlite

Kita insert datanya, masih di json_graph.txt lihat pada bagian bawah, kita sudah membuat 5 koordinat sekolah yaitu sekolah a, b, c, d, dan e
koordinat lokasi sekolah dalam bentuk json

Kita masukkan ke dalam sqlite
data koordinat sekolah sqilte

add_2

list data sekolah SMK sqlite

Nah sobat, urusan database sudah selesai nih sampai sini, jadi tutorial berikutnya masuk ke tahap pembuatan aplikasi di android.

Untuk tutorial ini, cukup sekian ya. Buat yang mau lihat hasil databasenya download aja disini

sql.zip

Bye. Moko.

Next tutorial (membuat aplikasi algoritma dijkstra di android) >>

 

[related_post themes="text" id="546"]

Ambar Hasbiyatmoko

Hello, I’m web developer. Passionate about programming, networking and web server. @kaskus  @facebook

14 Comments

  1. mas tutorial untuk web ada ga ya? memakai database phpmysql.. nuhun 🙂

  2. Halo mas, mau nanya. Apa tipe data simpul harus int? Dan nilai “tmp” kok ada yg N dan ada yang Y, itu nentuinnya gimana ya mas? makasih.

  3. Assalamualaikum mas ambar, kalo databasenya menggunakan MySQL bisa tidak? dan bagaimana caranya ya? mohon bantuannya, terimakasih

    • waalaikumsalam, ngg bisa mas bro, nanti query-nya jadi error klo pke mysql.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.