Hitung Jarak Cari Arah

Fungsi get_direction mengevaluasi arah berdasarkan posisi relatif MBR obyek kedua terhadap titik pusat obyek pertama yang menjadi acuan. Berikut adalah potongan programnya : Pada kondisi dimana MBR kedua desa berpotongan Gambar 35 maka penentuan arah berdasarkan posisi relatif MBR tidak menghasilkan nilai valid. Untuk mengatasi hal tersebut maka fungsi get_direction dilanjutkan dengan pemeriksaan posisi relatif titik pusat obyek kedua terhadap titik pusat obyek pertama yang menjadi acuan. Berikut adalah potongan programnya : Gambar 35. Get_direction S,1,6 Setelah arah dalam empat mata angin utama utara, selatan, barat, timur ditentukan selanjutkan menentukan arah sekunder tenggara, baratdaya, baratlaut, timurlaut. Berikut potongan programnya : if y = originy, direction.utara =1;, tf= true;, end if y= originy, direction.selatan=1;,tf= true;, end if x = originx, direction.timur=1;, tf= true;, end if x= originx, direction.barat=1;, tf= true;, end get_directionS,1,6 ans = undefined Æ based on MBR ans = selatan Æ based on center if ymin = originy, direction.utara =1;, tf= true;, end if ymax = originy, direction.selatan=1;, tf= true;, end if xmin = originx, direction.timur=1;, tf= true;, end if xmax = originx, direction.barat=1;, tf= true;, end

3.3.3. Pembentukan File Topologi

Hasil perhitungan jarak dan penentuan arah sebuah desa terhadap seluruh desa lainnya dalam peta S disimpan dalam variabel T_X file topologi T_X.mat, dimana X menunjukkan nomor desa. Pada tahap ini terbentuk 7327 file dan masing-masing berukuran sekitar 300 KB sehingga total berukuran 975 MB. Gambar 36 memperlihatkan struktur dari file topologi : Gambar 36. Struktur file topologi

3.3.4. Loading ke SQL Server

Karena setiap file topologi jika dimuat ke lingkungan Matlab akan membutuhkan ruang memori sekitar 11 MB maka tidak mungkin memuat seluruh file topologi ke memori sekaligus membutuhkan sekitar 80 GB memori. Agar data jarak dan arah dalam file topologi dapat disimpan dan diambil dengan cepat tanpa membutuhkan memori yang sangat besar maka file topologi tersebut di-loading ke dalam basis data. Dalam SQL Server 2000, file topologi dimuat ke dalam tabel NeighbourhoodIndex pada basis data sdm dengan struktur sebagai berikut Gambar 37: 1x1 struct 1x1 struct 1x1 struct Node1 1 Node2 2 Distance 24775 Direction 1x1 struct Timur 1 Tenggara 0 Selatan 0 Baratdaya 0 Barat 0 Baratlaut 0 Utara 0 Timurlaut 0 Undefined 0 if direction.timur==1 direction.selatan==1,direction.tenggara=1;, end if direction.barat==1 direction.selatan==1,direction.baratdaya=1;, end if direction.barat==1 direction.utara==1,direction.baratlaut=1;, end if direction.timur==1 direction.utara==1,direction.timurlaut=1;, end Gambar 37. Struktur tabel NeighbourhoodIndex Berikut potongan program yang digunakan untuk loading file topologi ke SQL Server : Pada tahap ini terbentuk tabel NeighbourhoodIndex yang berisi 53.684.928 baris dan berukuran 1870 MB.

3.4 Membentuk path

Alur proses pembentukan path digambarkan pada Gambar 38 dan terdiri dari beberapa tahap yaitu :

3.4.1. Penentuan Obyek Target

Obyek target merupakan subset dari desa yang termasuk kelas miskin. Dari 177 desa di 8 kabupaten yang dijadikan sampel oleh Santoso A2000, 122 termasuk kelas miskin. Dari desa yang termasuk kelas miskin tersebut, dipilih 3 desa dari setiap kabupaten sebagai obyek target Tabel 5. Gambar 39 memperlihatkan sebaran ke-24 desa obyek target kuning diantara desa miskin merah dan desa tidak miskin hijau. conn = databasedbTarget, , ; dbTarget harus telah terdaftar dalam ODBC connection clear T loadTfile, T load Tfile ke dalam variabel T colnames = { node1 , node2 , distance , exactdirection }; for i=1:sizeT,1; exdata = {Ti.node1, Ti.node2, Ti.distance, Ti.direction.exactdirection}; exdata{i,1} = Ti.node1; exdata{i,2} = Ti.node2; exdata{i,3} = Ti.distance; exdata{i,4} = Ti.direction.exactdirection; end end for i insertconn,tblTarget,colnames,exdata; commitconn;