Pengolahan Data Posko IMPLEMENTASI SISTEM

PLAGIAT M ERUPAKAN TINDAKAN TIDAK TERPUJI 77

BAB IV IMPLEMENTASI SISTEM

Implementasi merupakan tahap pengkodean dari hasil perancangan yang telah dibuat.Pada bab ini akan dijelaskan hasil implementasi dan pembahasan dari sistem informasi yang telah dibuat,serta analisa hasil pengkodeandari sistem informasi tersebut.

4.1. Pengolahan Data Posko

Data yang akan digunakan pada pengujian sistem DMS-INDRini berupa data nama, lokasi, dan jumlah pengungsi pada posko yang tersebar setelah tanggal 5 November 2010 saat bencana erupsi Merapi, yang diperoleh dari situs merapi- partisipasi milik Universitas Gadjah Mada. Data posko tersebut tersimpan dalam bentuki fileyang berjeniskml dan xlsexcel document. File berjenis kmlberisikan tentang data nama dan lokasi posko, sedangkan fileberjenis xls berisikan data mengenai nama dan jumlah pengungsi pada setiap posko. Kedua fileyang berbeda jenis tersebut harus terlebih dahulu digabungkan, agar menjadi sebuah file data yang utuh dan siap dipergunakan untuk pengujian. Jenis data yang akan dipergunakan oleh penulis dalam pengujian adalah berupa data berjenis xml. Terdapat beberapa data jumlah penduduk yang masih kosong dalam fileexcel document, sehingga penggabungan kedua data tersebut harus melalui tahap penyaringan filtering. Data pada excel document digunakan untuk menyaring data-data yang terdapat pada file kml, dengan nama posko sebagai variabel pembanding dimasing masing file. Penyaringan dilakukan dengan hanya PLAGIAT M ERUPAKAN TINDAKAN TIDAK TERPUJI mengambil data posko yang memiliki pengungsi lebih dari 10 orang, dengan tujuan untuk menghilangkan beberapa data yang dianggap kurang valid untuk pengujian. Gambar 4.1. Data posko kml. Gambar 4.2. Data posko xls. Pengolahan data dilakukan dengan proses scripting, yakni dengan menggunakan bahasa pemrograman php. File berjenis kml diolah dengan menggunakan fungsi simplexml_load_file milik php, yang kemudian diintregasikan dengan file berjenis excel documentyang diolah dengan menggunakan OLEReader. OLEReadermerupakan sebuah kelas dalam side server scriptingphp yang dikembangkan pertamakali oleh Vadim Tkachenko, yang disebarkan secara open-source untuk membaca file excel document. Proses integrasi dilakukan dengan menjadikan nama posko sebagai primary key, karena tidak terdapat data lain dengan nama yang sama. Dari file kml dan xls diambil data PLAGIAT M ERUPAKAN TINDAKAN TIDAK TERPUJI berupa nama posko, jumlah penduduk, dan titik koordinat posko. Hasil akhir dari pengolahan adalah file berjenis xml dengan menambahkan atribut baru yakni tipe posko. Tipe posko dibedakan menjadi dua yakni posko pusat dan posko tujuan. Posko pusat merupakan posko yang nantinya akan dipergunakan sebagai variabel supply, sedangkan posko tujuan akan dipergunakan sebagai variabel demand. Variabel tersebut dihitung dari atribut jumlah pengungsi dari masing-masing posko. Proses pengolahan ini akan menghasilkan file xml seperti pada gambar 4.3. Gambar 4.3. Data posko hasil pengolahan, bertipe xml. Pengolahan dlakukan dengan menggunakan pseudo code sebagai berikut : 1. Mulai. 2. Buat variabel outputXml, sebagai hasil akhir dari pengolahan data. 3. Buat variabel dataExcel,yang berisi Masukkan data posko pada file xls kedalam variabel dataExcel menggunakan OLERead. 4. Buat variabel dataKml, yang berisi data xml posko pada file kml dengan menggunakan fungsi simplexml_load_filefile. PLAGIAT M ERUPAKAN TINDAKAN TIDAK TERPUJI 5. Buat variabel placemark, yang berupa array dari seluruh data posko pada variabel dataKml. 6. Pada setiap placemark, lakukan langkah 6-10. 7. Jika nama posko dari variabel dataExceldanplacemarksama, dan data jumlah pengungsi pada dataExcel 10 lakukan langkah 7-10 8. Buat objek posko baru pada variabel outputXml. 9. Buat atribut nama,koordinat,lokasi,pengungsi dan tipe pada objek posko. 10. Untuk atribut nama,koordinat,lokasi, isikan dengan data yang ada pada atribut pada placemark. Sedangkan pengungsi diisi dengan data pada variabel dataExcel. 11. Jika pengungsi1000 maka variabel tipe = pusat, jika tidak maka variabel tipe = masyarakat. 12. Simpan data xml yang berisi objek posko yang sudah terbentuk. 13. Selesai. ?php require_once ..excelreader.php; dataExcel = new Spreadsheet_Excel_Reader; dataExcel-setOutputEncodingCP1251; dataExcel-readjmlPenduduk.xls; error_reportingE_ALL E_NOTICE; Kml Reading file = dataPosko2.kml; dataKml = simplexml_load_filefile; PLAGIAT M ERUPAKAN TINDAKAN TIDAK TERPUJI placemarks = dataKml-Document-Folder-Placemark; XML Creator Setting doc = new DOMDocument; specify the version and encoding doc-version = 1.0; doc-encoding = UTF-8; comment_elt = doc-createCommentGenerated by Chiputera ; doc-appendChildcomment_elt; data_posko = doc-createElementDocument; doc-appendChilddata_posko; jumlah_data=0; jum=0; for i = 0; i countplacemarks; i++ { for j = 6; j 559; j++ { if trimplacemarks[i]-name == trimdataExcel-sheets[0][cells][j][5] dataExcel-sheets[0][cells][j][6] 10 dataExcel-sheets[0][cells][j][7] == Sleman { jumlah_data++; posko = doc-createElementPosko; data_posko-appendChildposko; nama = doc-createElementnama,placemarks[i]-name; koordinat=substrplacemarks[i]-Point-coordinates,0,-2; lokasi = doc-createElementlokasi, substrkoordinat,strposkoordinat, ,+1, strlenkoordinat.,.substrkoordinat,0, strposkoordinat, ,-strlenkoordinat; penduduk = doc-createElementpenduduk,dataExcel-sheets[0][cells][j][6]; PLAGIAT M ERUPAKAN TINDAKAN TIDAK TERPUJI ifdataExcel-sheets[0][cells][j][6]1000{ jum++; tipe = doc-createElementtipe,pusat; }else{ tipe = doc-createElementtipe,masyarakat; } posko-appendChildnama; posko-appendChildlokasi; posko-appendChildpenduduk; posko-appendChildtipe; break; } } } echo jum; Menyimpan XML doc-formatOutput = true; doc-saveXML; doc-savedata_posko.xml; echo jumlah_data; ? Setelah dilakukan proses scripting, data valid yang disimpan kedalam file berjenis xml dan siap untuk dilakukan pengujian adalah sebanyak 73 posko. PLAGIAT M ERUPAKAN TINDAKAN TIDAK TERPUJI Sebanyak 14 data posko posko kabupaten Sleman dari 73 data posko yang telah didapatkan akan dipergunakan dalam pengujian kebenaran sistem, yakni dengan membandingkan hasil perhitungan manual dan perhitungan oleh sistem yang dibuat. Sedangkan data posko secara keseluruhan, sebanyak 73 data posko akan digunakan sebagai pengujian kehandalan sistem. Hasil pengolahan data dalam bentuk kmltersebut, kemudian dimasukkan kedalam basis data dengan menggunakan scripting. Keseluruhan data posko yang ada didalam data kmlakan disimpan kedalam basis data “Posko”. Kemudian pada masing-masing tipe posko yang berbeda akan dilakukan pencarian jarak dengan menggunakan Google Distance Matrix. public static function insertPoskoWithAccnama, lokasi, penduduk, tipe, user_id { mysql_queryINSERT INTO posko nama_posko,lokasi_posko,penduduk,tipe,user_id VALUES nama,lokasi,penduduk,tipe,user_id; echo mysql_error; rset = mysql_querySELECT MAXid_posko FROM posko WHERE user_id= . user_id; while list = mysql_fetch_rowrset { id_posko = list[0]; } Query untuk mengambil data posko yang ada. Jika posko baru = pusat, maka yang diambil posko masyarakat, dan sebaliknya if tipe == pusat { sql = SELECT id_posko,lokasi_posko FROM posko WHERE tipe=masyarakat AND user_id= . user_id; } else { sql = SELECT id_posko,lokasi_posko FROM posko WHERE tipe=pusat AND user_id= . user_id; } PLAGIAT M ERUPAKAN TINDAKAN TIDAK TERPUJI rset = mysql_querysql; while list = mysql_fetch_rowrset { echo list[1]; cost = Posko::calculate_distance_matrixlokasi, list[1]; insert data cost if tipe == pusat { sqlCost = INSERT INTO cost id_posko_pusat,id_posko_masyarakat,biaya VALUES id_posko,list[0],cost; } else { sqlCost = INSERT INTO cost id_posko_pusat,id_posko_masyarakat,biaya VALUES list[0],id_posko,cost; } mysql_querysqlCost; } } public static function fillLogistikuser_id { rset = mysql_querySELECT id_kategori_logistik FROM kategori_logistik; x = 0; while list = mysql_fetch_rowrset { id_kategori_logistik[x] = list[0]; x++; } rset = mysql_querySELECT id_posko,penduduk FROM posko WHERE user_id= . user_id; while list = mysql_fetch_rowrset { id_posko = list[0]; penduduk = list[1]; for i = 0; i countid_kategori_logistik; i++ { mysql_queryINSERT INTO logistik id_kategori_logistik,id_posko,value VALUES id_kategori_logistik[i],id_posko,penduduk2; } PLAGIAT M ERUPAKAN TINDAKAN TIDAK TERPUJI } echo mysql_error; } Method insertPoskoWithAcc berfungsi untuk memasukkan data posko secara keseluruhan. Di method ini juga terdapat pembanding untuk pengisian cost, dimana setiap posko berjenis “pusat” akan dilakukan pencarian jarak pada posko yang bertipe “masyarakat”. Sedangkan untuk method fillLogistik berfungsi untuk memasukkan data jumlah stok dari masing-masing posko kedalam basis data “stok”.

4.1.1. Google Distance Matrix

Google Distance Matrix APIpada sistem ini dipergunakan untuk memperoleh jarak dari 2 titik, yang dijalankan dengan mengirim request url. Request url yang dikirimkan pada sistem ini adalah sebagai berikut : http:maps.googleapis.commapsapidistancematrixxml?origins=-KOORDINAT POSKO A-destinations=-KOORDINAT POSKO B-mode=drivingsensor=false Gambar 4.4. Request Url Google Distance Matrix API Request Url yang dikirim pada sistem ini menggunakan modedriving, karena jalur penghubung yang dibutuhkan pada setiap titik posko adalah jalur yang dapat dilalui kendaraan roda empat untuk mempermudah pengiriman logistik. Selain itu tujuan penggunaan modedriving adalah untuk memperluas kemungkinan pemerolehan jarak pada Google Distance Matrix. Hal ini disebabkan karena sebagian besar data jalur yang sudah terbentuk dalam basis data Google Maps adalah pada modedriving. Sedangkan untuk daerah-daerah di Indonesia, hasil PLAGIAT M ERUPAKAN TINDAKAN TIDAK TERPUJI implementasi pembentukan jalur dengan mode walking dan bicyclingmasih sangat sedikit. Hasil yang didapatkan dengan pengiriman request url ini adalah berupa file xml. File xml ini harus diolah terlebih dahulu menggunakan fungsi dari php yakni simplexml_load_file, karena hasil request tidak hanya terdapat data jarak saja namun juga terdapat data waktu tempuh. Pengambilan jarak dilakukan dengan mengakses beberapa tagdalam xml, yakni row, element, distance, dan value. Pengolahan data xml dapat dilihat pada potongan kode program berikut : public static function calculate_distance_matrixstart, finish { url = http:maps.googleapis.commapsapidistancematrixxml?origins= . start . destinations= . finish . mode=drivingsensor=false; DistanceMatrixResponse = simplexml_load_fileurl; distance = DistanceMatrixResponse-row-element-distance-value 1000; return distance; }

4.2. Implementasi Database