How to Draw a Diagram using Draw IO?

Draw IO is a free web-based tool for drawing a model such as Entity Relation Diagram (E-R Diagram), Flow chart, Data Flow Diagram (DVD), Unified Modeling Language (UML), etc. You can access it at www.draw.io in start using it without installation. Immediately you will be asked the location for saving the xml file, for example you use your harddrive, so yo have to choose Device.

And please click the “create a new diagram” or “open existing diagram” if you want to open a xml file of your diagram that have drawn before. Before drawing, this application will ask you to create the name of your diagram.

And let your creativity flows, and for exercise, try to draw E-R diagram like this.

Save your figure by clicking the menu save and if you want to capture for your document (word, power point, etc) you have to download it into image, xml, and other file support. So far, I like to download as GIF than JPEG or others. Because it give a good resolution that you can see below. Ok .. good luck.

Learning Vector Quantization (LVQ)

LVQ is another kind of competitive network that uses competitive and linear layer together (see past posting for competitive network). The winning neuron of the first stage is become a subclass. Then the second layer combines it into a single class. Many researcher use this kind network for signature identification.

The learning of LVQ is supervised learning. It needs a target as a basis of learning process. Use this script (LEARNING VECTOR QUANTIZATION) to practice your matlab skill in creating a LVQ network. Try to understand the syntax of lvq function by typing “help newlvq” on command window.

The above picture shows matlab respons to our train script function. You can see the IW and LW part of LVQ network using this script.

>> samplelvq.iw{1,1}

ans =

-0.1259 -0.0280

0.0862 0.1584

-0.0351 0.0306

>> samplelvq.lw{2,1}

ans =

1 1 0

0 0 1

Competitive Network

Competitive network uses Hamming Network which is contained feedforward and recurrent layer.

Open your Matlab and try this lab example. Just copy and paste to see how this kind of network worked. Newc is a function from matlab to create a competitive network. Use this Competitive Network file for practise.

Try to train a competitive network. After training the network, try to simulate the trained network to find the result from a sample input.

This is a result from simulation of samplec on Pc. Type on command window “help newc” to study the syntax of newc function from your Matlab.

>> Yc1 = sim(samplec, Pc)

Yc1 =

(2,1) 1

(2,2) 1

(2,3) 1

(1,4) 1

(1,5) 1

(1,6) 1

Menghitung Determinan dan Invers Matriks 4×4 – Bag 2

Postingan yang lalu kita menghitung matriks 4×4 dengan metode sarrus yang sedikit ribet. Sekarang kita coba dengan menggunakan metode operasi baris dan kolom yang sedikit “logis”. Kita terapkan metode ini untuk matriks 4×4 setelah pada postingan yang lalu kita gunakan untuk matriks 2×2 dan 3×3. Buat M-File baru, cara gampangnya ketik aja di Command Window “edit segitiga” yang akan membuka editor di M-File editor dengan nama segitiga.m, dan jangan khawatir jika Matlab menanyakan bahwa Script segitiga tidak ada (karena memang ingin kita buat), lanjutkan saja dengan menekan OK.

Baris kedua membuat matriks berangkai yang tadinya 4×4 menjadi 4×8 karena kita akan menggunakan prinsip x = [I][inv(x)]. Pada line 4 sampai 9 kode di atas adalah membuat segitiga atas, dilanjutkan dengan segitiga bawah. Segitiga atas menghasilkan nol di bawah diagonal, sebaliknya segitiga bawah menhasilkan nol di atas diagonal. Hasilnya adalah nol selain di diagonal yang kemudian pada line 18 hingga 21 menghailkan matriks diagonal satuan (seluruh diagonal bernilai satu). Uji coba dengan command window dengan memasukan bilangan random 4×4 yang akan dicari inversnya.

Dilanjutkan dengan menjalankan M-file yang baru saja kita buat.

Cek dengan menggunakan fungsi INV di Matlab apakah sama dengan hasil di atas? Jika sama berarti kode Anda benar, Oiya, gunakan kondisi jika kebetulan Matriks yang akan dicari inversnya tidak memiliki invers (determinannya nol) .. Selamat Mencoba!

Mempelajari GUI di Matlab

Apa itu Matlab?

Matlab merupakan bahasa komputasi terkenal dan banyak dipakai oleh mahasiswa atau periset yang ingin membuat suatu prototipe dengan algoritma baru. Terkadang aplikasi ini dijadikan alat ukur yang cukup adil terhadap dua metode, karena tidak bisa kita membandingkan metode tertentu yang dibuat dengan C++ dan metode lain yang dibuat dengan bahasa yang lain misalnya Java. Terkadang yang unggul adalah C++ terlepas dari metode yang dipakai karena memang jenis bahasanya yang lebih cepat.

Beberapa institusi melarang mahasiswanya menggunakan Matlab yang katanya terkesan tinggal pakai saja (toolbox-toolboxnya). Ketika orang ilmu komputer menjauhi Matlab, ternyata bidang lain malah mendekati. Tak dapat dipungkiri Matlab merupakan salah satu aplikasi yang justru mendekatkan ilmu komputer yang sebelumnya terkesan eksklusif menjadi terbuka terhadap cabang ilmu yang lain. Bahkan saat ini multi disiplin ilmu sedang giat-giatnya dijalankan. Jika dikatakan Matlab tidak opensource, ternyata ada bahasa setara dengan matlab yang open source juga seperti scilab, octave, dan sebagainya.

Beberapa tahun yang lalu Matlab masih sekedar alat bantu menghitung dengan sifat matriksnya yang memang cocok untuk operasi matematis. Tetapi karena kesulitan dalam penggunaannya, Matlab menambahkan Graphic User Interface (GUI) seperti bahasa pemrograman visual yang lain sehingga bisa dibuat menjadi program tersendiri dimana sebelumnya masih mengandalkan pemrograman visual lainnya seperti VB, Delphi, dan lain-lain.

Belajar GUI dengan Mudah

Untuk rekan-rekan yang bingung prinsip kerja GUI berikut teknik dasar belajar GUI tanpa buku. Sebenarnya ketika belum banyak buku Matlab yang dijual, para mahasiswa mempelajari GUI lewat Matlab sendiri. Buka Matlab dan ketik ‘guide’ di comman window.

Jika Anda sudah mahir, maka langsung aja memilih “Blank GUI (Default)”. Tetapi di sini kita mau belajar, maka paling dasar adalah kita memilih “GUI with Uicontrols”. Di sini Anda akan diberikan contoh program visual bagaimana menangkap masukan, melakukan komputasi, dan mengeluarkan hasil di kolom keluaran.

Pilih, dan klik OK, sehingga Matlab memunculkan GUI contoh dimana kita akan menghitung Massa benda berdasarkan masukan kerapatan dan volume. Lalu di mana kita mengetikkan programnya? Mudah saja, pertama – tama tekan tombol RUN (Ctrl-T) atau tombol segitiga berwarna hijau. Maka Matlab akan meminta anda memberi nama aplikasi yang baru saja dibuat. Beri nama, misalnya latihan, maka program siap dijalankan.

Tampak jika kita beri masukan Density sebesar dua dan volume tiga, diperolah massa 2×3 =6. Sederhana tetapi ini merupakan dasar GUI yang sederhana dimana Matlab menerima masukan, memproses dan menampilkan output. Di mana letak programnya? Mudah saja, di GUI desainer sebelumnya tekan tombol M-file editor dengan icon pulpen dan kertas. Maka Anda akan ditampilkan listing programnya.

Perhatikan listing di atas, baris ke 98 sampai 106 adalah teknik menangkap variabel density di tombol isian density di GUI. Baris 105 dan 106 adalah instruksi wajib agar density dapat dihitung di fungsi yang lain selain fungsi density (di GUI ditambah kata _Callback). Jika fungsi yang ada di Matlab cukup banyak (jumlah fungsi berdasarkan tombol yang Anda pasang di GUI) maka Anda membutuhkan bantuan f() yang dapat Anda klik dan langsung mengarahkan ke lokasi fungsi yang dituju.

Coba arahkan ke fungsi calculate_Callback yang akan menghitung massa. Tampak fungsi berikut ini, perhatikan di sini kita tidak mengalikan density dengan volume melainkan menambahkan awalan “handles”. Mengapa? Jawabannya karena density dan volume digunakan di fungsi lain, maka harus ditambah handles. Sebenarnya jika ingin mudah, kita tidak perlu membuat sub objek (metricdata). Bisa saja langsung dengan handles.density saja jika di awal kita tidak memerlukan metric data. Jika Anda berhasil membuat aplikasi sederhana seperti ini lewat pilihan GUI pertama (Blank GUI) maka Anda sudah dapat dikatakan mampu membuat GUI. Selamat mencoba. Cara membuat GUI dengan loading file tertentu bisa di lihat di postingan sebelumnya.

mass = handles.metricdata.density * handles.metricdata.volume;

set(handles.mass, ‘String’, mass);

Konsep Dasar pada GIS

Seperti biasa, mempelajari hal-hal baru pasti dihadang dengan konsep-konsep maupun istilah-istilah yang harus dimengerti agar bias mempelajari hal-hal yang lebih dalam lagi. Berikut ini beberapa hal yang mungkin dibutuhkan oleh siswa yang sedang belajar GIS. Sebelumnya kita definisikan dulu GIS sebagai sistem informasi yang bekerja dengan data dengan referensi spatial atau koordinat geografis. Bisa juga diartikan sistem basis data dengan kemampuan khusus dalam menangani data dengan referensi spatial layaknya beroperasi dengan data biasa. Dengan kata lain, data yang diolah adalah data tentang lokasi, biasanya koordinat. Spatial objects adalah area geografis dengan atribut beserta karakteristiknya.

1. Apa bedanya map, aerial photo, dan satellite imagery?

Map is geographic features or spatial information presented graphically. It conveys information about location and its attribute. Position of particular geographic feature on earth is 2D and 3D. Map contain point, line and area features. Also there are attribute information such as feature types, name, number of code, area/length, and other quantitative information. Aerial photo is taking of photograph of the ground from camera with elevation using fixed-wing aircraft, helicopters, multi-rotor unmanned aircraft system (UAS), balloons, blimps and dirigibles, rockets, kites, parachutes, stand-alone telescoping mounting on vehicles. Those photograph maybe with photographer or automatically shoot. Satellite imagery is similar to aerial photo but using satellite to capture an image. There are four type of resolution: spatial, spectral, temporal, and radiometric. This images have many applications in meteorology, oceanography, fishing, agriculture, biodiversity conservation, forestry, landscape, geology, regional planning, education, intelligence, and warfare. In 1972, US start a landsat program that capture image from space.

2. Jelaskan konsep data geospatial.

Geospatial data is data related to geographic location and its characteristics of natural or constructed features and boundaries on earth.

3. Sebutkan lima jenis peta dan penggunaannya.

Jenis peta sangat banyak, jenis pertama adalah: 1). Climate maps. Give general information about the climate and precipitation (rain and snow) of a region. Biasanya menggunakan warna untuk memetakan zona-zona nya. 2). Economic or Resources Map. Feature the major types of natural resources or economic activity in an area. Cartographers use symbol to show the location of natural resources or economic activities. For example, wheat on an area, paddy, etc. 3). Physical map. Illustrate a physical area such as mountains, rivers, and lakes. The water is usually shown in blue. Green for lower elevation, orange and brown for higher elevation. 4). Political Map. It show state and national boundaries and capital and major cities. A Capital city is usually marked with a start within circle. 5). Street Map / Road Map. Illustrate smaller area as towns and cities. People use it to find direction to a place where to go. 6). Topographic Map. Include contour to shows elevation of an area. Line near show steep terrain, and line far away show flat terrain. It useful for hiking, and geologist to record the type of rock.

4. What is Map Resolution and Image Resolution?

Resolution is distinguishing individual parts. Spatial resolution for geographic data as the content of the geometric domain divided by the number of observations, normalized by spatioal dimension. Map resolution is term to know how accurately the location and shape of map features can be depicted for a given map scale. Therefore, in larger scale maps, features more closely matches real world features. Image Resolution is detail an image holds. Applies to raster digital images. Basically resolution quantifies how close lines can be to each other and still be visible resolved.

5. Discuss about Ideal GIS, Accuracy standards for maps (U.S), factors affecting map accuracy, and what is map extent and database extent.

Ideal GIS is GIS that accommodate open data policy, interoperable procedure, multidisciplinary, networking, data/information sharing, and standardization. Accuracy standard for maps in USA is announced in 1947 said that for maps scale larger than 1:20,000 no more than 10% of features shall be more than 1/30th of an inch from their intended location on maps. For scale smaller than 1:20,000 said no more than 10% of features shall be more than 1/50th of an inch from their intended location. Factor affecting accuracy are: map resolution, quality of source data, map scale, drafting skill, width of line used to depict features. A map extent is a portion of area of a region shown in map. The limits of map extent are defined in coordinate system of the map. In western culture, map extents usually have a rectangular shape, so they are defined with a minimum and maximum width and height. In dynamic map can be accessed by zooming and panning.

6. What are logical operators available in arcview GIS? Discuss about them.

There is Boolean logical operator: AND, OR, and NOT. Also there are other logical such as >, >=, <, <= and <>. It appears like calculator when we query some spatial data.

7. Explain the essential element of a layout of the map. The basic elements of maps: title, legend, names of features, directional indicator, scale and map grid.

8. Explain 4 M in GIS? 4 M in GIS are Model (modeling and simulation), Map (creating a map), Measure (finding a distance, etc), and Monitor (seeing realtime).

9. Discuss importance of remote sensing in GIS. Remote sensing is collecting and interpreting information about the environment and the surface of the earth from distance, primarily by sensing radiation that is naturally emitted or reflected by the earth surface from the atmosphere, or by sensing signals transmitted from a device and reflected back to it. The methods are photography, radar, and satellite.

10. What are the functional elements of GIS? Explain. GIS functional elements are Data acquisition, data preprocessing, data management, data manipulation & analysis, and data product generation. Data acquisition is process of identifying and gathering the data required for the app. Data preprocessing is manipulating data in several ways to be able to prepare it for further modeling. It also covertion format, georeferencing (geometric correction and resampling), and also establishing a consistent system for recording. Data management is for helping in creating and assessing the database with consistent method for data entry, update, delete and retrieve. Data manipulation and analysis is working within database to derive new information using statistical tool, modeling, logical and Boolean tools, and specialized model. Product generation is soft copy and hard copy style and also cartographic principles built-in computer aided drafting tool. Product presentation maybe report (table, map, write-up) or multimedia.

11. Explain the difference between topology and topography. In geodatabases, topology is the arrangement that constrains how point, line, and polygon features share geometry. In Arcview topology is spatial relationship between connecting or adjacent features in geographic data layer. Topography merupakan representasi dari bentuk permukaan (surface shape and features of the earth and maybe other planets. Including relief and the position of natural and constructed features.

12. What is the table join? Table join is merging two or more tables based on a field. These tables have a join field as connector for other fields and these tables become one merging tables that share other attribute.

13. What is attribute aggregation? The process of collecting a set of similar, usually adjacent, polygon (with their associated attribute) to form a single, larger entity.

14. What is address matching? A process that compares an address or a table of addresses to the address attributes of a reference dataset to determine whether a particular address falls within an address range associated with a feature in the reference dataset. If an address falls within a feature’s address range, it is considered a match and a location can be returned.

15. Explain the centroid, buffer operation, map overlay (raster and vector) and cutting and filling operation. Centroid is average location of a line or polygon, also center of mass of a two or three dimensional object. Overlay is techniques involve the compositioning or extracting multiple maps t create a new dataset. Cutting and filling operation to create a volume or area that cut or fill with some capacity.

Untuk istilah yang lain dapat dicari lewat searching di ESRI.

Maraknya Grup Kenangan Lama

Munculnya grup-grup yang beranggotakan orang-orang dengan kenangan masa lampau membuat saya jadi ingin menulis pengalaman ketika waktu kuliah dulu. Era 60, 70, dan 80-an menurut saya merupakan era yang unik karena pada era itu di negara saya sudah tidak ada perang, baik perang kemerdekaan maupun efek dari perang dingin yang diakhiri dengan peristiwa G-30 S. Kondisi negara yang mulai stabil dan membangun menghasilkan individu-individu yang punya kenangan manis, berbeda dengan era sebelumnya yang cenderung lebih banyak kenangan pahitnya.

Peminat group-group jadul saat ini kian marak dengan munculnya social media seperti facebook, twitter, dan sejenisnya. Dulu di televisi sempat bermunculan acara-acara lagu khusus lagu lama yang cukup banyak diminati oleh pemirsa. Bahkan salah satu group facebook tentang era 80 dan 90 an memiliki banyak member yang bernama Hits From The 80s & 90s.

Pakaian Jadul

Cerita menarik sempat saya alami ketika saya mau ujian sidang sarjana di jurusan mesin UGM. Sempet panik ketika mendadak syarat sidang harus memakai jas dan dasi, tetapi reda ketika sahabat saya memberitahukan bahwa ia bersedia meminjamkan jas yang menurut dia cukup bagus dan ukurannya pas dengan saya, karena memang ukuran baju saya dengan dia sama. Jika dia pas, tentu saja saya pas. Salahnya saya adalah saya tidak melihat terlebih dahulu jasnya tersebut.

Alhasil di hari “H” saya mengambil jas yang ia pinjamkan di kos-kos annya di daerah blimbing sari, pinggiran UGM. Waktu itu saya belum tahu model-model jas, setahu saya semua jas itu sama. Ternyata jas teman saya itu adalah warisan dari bapaknya, tahun 70-an. Ya ampun, apa boleh buat, toh bagus juga menurut saya. Saya datang ke kampus, karena stress dengan persiapan sidang, saya tidak terlalu memperhatikan pakaian, teman-teman saya pun tidak mengusik jas yang saya kenakan. Jas tersebut “terlalu pas” menurut saya, karena jika di bilang sempit, tidak juga tetapi jika dibilang kebesaran tidak juga karena di bagian tertentu serasa sempit (paha atas dan perut) tetapi di bagian lain kebesaran seperti di bagian bawah celana panjang.

Tak apalah, toh rapi menurut saya. Bagi rekan-rekan saya tidak jadi masalah tetapi bagi dosen-dosen penguji saya yang hidup di era 60 dan 70-an tentu saja tidak asing. Walaupun mereka tidak mempertanyakan, tetapi tampak senyuman di wajah-wajah mereka. Untungnya, dengan jas seperti itu sepertinya mereka sedikit sungkan untuk “membantai”, mungkin hanya dosen pembimbing saya saja yang “membantai”, walau menurut saya itu hanya taktik dia untuk mencari perhatian dosen penguji yang lain. Dan, Alhamdulillah .. sidang berjalan dengan lancar. “Selamat untuk sahabat baik saya .. Anda telah sukses “ngerjain” saya”, pikir saya dalam hati.

Selang beberapa bulan kemudian, giliran rekan saya yang sidang. Ternyata saya baru tahu kalau dia juga tidak mengenal jenis-jenis jas yang ada, dan tidak bermaksud “ngerjain” saya. Saat mampir ke kos-kosannya ketika saya mau melegalisir ijasah, dia bercerita lucu. Ternyata kebetulan sekali, yang menjadi dosen pembimbing dia adalah dosen yang menjadi panitia sidang saya dulu. Sebelum sidang dimulai, dia berkata “Tunggu dulu .. kayaknya saya pernah lihat Jas seperti ini dah waktu sidang”. Dia bercerita bahwa wajahnya sempat pucat karena malu. Akhirnya sidang dimulai dengan membahas masalah jas jadul. “Pak .. teman saya yang minjem jas, ini punya saya, warisan dari bapak”, protes temanku ketika diduga jas tersebut meminjam dari saya .. ha ha.

with herwan

Term Frequency dan Invers Document Frequency (Tf-Idf)

Karena kelemahan scoring dengan Jaccard adalah tidak disertakannya frekuensi suatu term dalam suatu dokumen, maka diperlukan skoring dengan kombinasi dari Term Frequency dan Invers Document Frequency atau disingkat tf-idf.

Term Frequency (tf)

Tf menyatakan jumlah berapa banyak keberadaan suatu term dalam satu dokumen dan kemudian dilogaritmikan agar mengurangi besarnya bilangan, dimana logaritmik suatu bilangan akan mengurangi digit jumlah, misalnya 1000 dengan log (1000) hanya menghasilkan angka tiga. Rumus Tf adalah sebagai berikut:

Jadi jika suatu term terdapat dalam suatu dokumen sebanyak 5 kali maka diperoleh bobot = 1 + log (5) =1.699. Tetapi jika term tidak terdapat dalam dokumen tersebut, bobotnya adalah nol.

Inverse Document Frequency (Idf)

Terkadang suatu term muncul di hampir sebagian besar dokumen mengakibatkan proses pencarian term unik terganggu. Idf berfungsi mengurangi bobot suatu term jika kemunculannya banyak tersebar di seluruh koleksi dokumen kita. Rumusnya adalah dengan inverse document frequency. Document frequency adalah seberapa banyak suatu term muncul di seluruh document yang diselidiki.

Sehingga bobot akhir suatu term adalah dengan mengalikan keduanya yaitu tf x idf. Berikut ini kita mengambil contoh suatu kasus. Misalnya kita memiliki vocabulary sebagai berikut:

girl, cat, assignment, exam, peace

Dan kita diminta merangking suatu query: “girl exam” terhadap dua dokumen di bawah ini:

Document 1 : exam peace cat peace peace girl

Document 2 : assignment exam

Langkah pertama adalah kita membuat tabel dengan term urut abjad (lexicography) dan mengisi nilai bobotnya untuk document 1 dan document 2. Setelah itu menghitung score(q,d1) dan score(q,d2) yang menyatakan berturut-turut skor rangking query terhadap dokumen 1 dan dokumen 2.

Bagaimana angka-angka tf-idf tersebut muncul? Jawabannya adalah dengan menghitung bobotnya lewat rumus tf x idf di atas. Perhatikan exam dan girl yang merupakan query (ditandai kotak hitam). Tampak untuk dokumen 1 score-nya adalah 0 + 0.3 = 0.3, sementara untuk dokumen 2 score-nya 0 + 0 = 0, jadi jika diranking, yang pertama adalah dokumen 1 dan berikutnya dokumen 2. Bagaimana menghitung bobot Wt,d untuk girl pada document 2 di atas yang diperoleh hasil 0.3? berikut ini jalan lengkapnya:

Coba hitung bobot di kolom yang lainnya siapa tahu saya salah hitung. Berikut video tutorialnya:

Koefisien Jaccard

Antara query dengan document perlu dihitung skor untuk mengetahui ranking hasil dari searching kita. Salah satu teknik termudah adalah dengan koefisien Jaccard. Koefisien ini mudah karena kita tinggal mencari item mana saja yang sama dibagi dengan total item keduanya.

Berikut ini adalah contoh sederhana kasus menghitung koefisien Jaccard. Jika diketahui A={1,2,3,4}, B={1,2,4}, dan C={1,2,4,5}, berapakah Jaccard (A,B), Jaccard(B,C), dan Jaccard(A,C). Berikut ini penyelesaiannya.

Berikutnya untuk kasus query dan document. Misalnya kita punya query: ides of march dengan dua buah document yaitu doc1: caesar died in march, doc2: the long march. Cari koefisien jaccard antara query dengan doc1 dan doc2.

Koefisien jaccard memiliki kelemahan dimana koefisien ini tidak memperhatikan term frequency (berapa kali suatu term terdapat di dalam suatu dokumen). Perlu diketahui, bahwa terms yang jarang muncul dalam suatu koleksi sangat bernilai dari sisi informasi, tetapi koefisien Jaccard tidak mempertimbangkan hal ini. Jadi kita butuh cara lain untuk menormalisasikannya.

Membuat GUI di Matlab Sederhana untuk Loading *.MAT

Untuk mempraktekan dengan sederhana fungsi Load yang memanggil file berekstensi *.MAT yang telah kita simpan sebelumnya ada baiknya kita buat terlebih dahulu versi sederhananya di Command Window. Misal kita mempunya data berikut ini, sebuah matriks yang nanti akan kita tampilkan di GUI berupa gambar.

Simpan dengan nama data. Cara menyimpan sudah bisa kan? Baca tulisan yang lalu. Misal beri nama “data”.

save data

Nantinya akan kita tampilkan di GUI jika dijalankan akan menghasilkan gambar sebagai berikut, dengan perintah imshow(data).

Berikutnya rancang GUI sederhana sebagai berikut, ikuti cara-cara yang telah sampaikan di postingan sebelumnya (ketik guide, buat tombol txt dan edit text, tempat grafik, dan seterusnya).

Ganti/Edit tulisan yang muncul secara default sesuai dengan bahasa dan keinginan Anda. Di sini saya tetap menggunakan variabel dan nama “String” bawaan Matlab (supaya cepet ajah). Buka M-file yang digenerate secara otomatis, dan isi function di pushbutton1_Callback, isi dengan kode berikut ini (sengaja gambar karena banyak complain di copas ga jalan krn petik satu berubah kalo di blog):

Line 82 dan 83 mengambil data *.mat dilanjutkan dengan membuka data yang ada dan baris 86 dan 87 agar bisa digunakan di fungsi lain, yaitu misalnya menampilkan gambarnya. Arahkan ke fungsi pushbutton2_Callback, isi:

Jalankan dan ambil file berekstensi mat yang telah kita simpan sebelumnya, hasilnya harus seperti berikut ini. Selamat mencoba!

Untuk mempelajari dasar-dasarnya bisa lihat postingan ini.

Menghitung Map Resolution

Map resolution maksudnya adalah berapa resoluti suatu map yang tepat dimana tidak ada titik yang tak tercantum di map yang kita buat. Perhatikan tabel di bawah ini, jika kita diminta menentukan berapa resolusi peta yang harus kita buat?

Area diketahui dalam km persegi. Di sini kita harus mencari harga terkecil dari perbandingan luas dengan jumlah rumah sakit. Sebab jika tidak mengambil yang terkecil, ketika peta dibuat, ada rumah sakit yang tidak jelas tergambar di peta tersebut. Langkah pertama adalah kita menambah satu kolom baru yang merupakan perbandingan luas dengan jumlah hospital, perhatikan gambar berikut ini.

Map Resolution diambil dari rumus = 0.5 * sqrt((A/n)). Jadi resolusi yang kita gunakan adalah 12.6 km. Pertanyaan berikutnya berapakah Mimimum Map Unit? MMU adalah dua kali Map Resolution jadi sebesar 25.2 x 25.2 karena jika kita tetap menggunakan nilai 12.6 sebagai MMU jika lokasi suatu titik berada di tengah-tengah antara dua pixel maka titik tersebut akan tidak tampak.

 

 

Network Analysis dengan ArcView

Untuk mempelajari bagaimana Arcview melakukan komputasi untuk mencari jalur tercepat dan terpendek dari berbagai alternatif jalan, tersedia contoh project sederhana yang termasuk satu paket ketika menginstal program ini. Set terlebih dahulu extensiannya dengan menceklis “network analysis”.

Dengan network analysis kita akan mencari jalur terpendek dan tercepat daru satu titik ke titik tujuan. Buka view “delivery route” yang sudah dibuatkan oleh vendor Arcview untuk latihan mengetahui fungsi-fungsi yang tersedia di ArcView.

Titik hijau merupakan pusat pengiriman yang nanti akan dianalisis jalur-jalur mana saja yang ditempuh untuk menghasilkan nilai optimal (kecepatan dan jarak tempuh). Terkadang kita memerlukan optimasi dengan pertimbangan waktu tempuh karena bisa jadi jalur yang terpendek justru malah lebih lama tiba di lokasi tujuan. Perhatikan munculnya menu “network” di ArcView karena kita menceklis pilihan “network analysis”. Pelajari apa yang ada di dalamnya, berikut contoh menentukan jarak terpendek dan waktu tercepat untuk mencapai suatu lokasi.

Setelah memasukan alamat address awal, kita menentukan lokasi tujuan sesuai dengan tempat-tempat yang harus disinggahi. Isi pilihan “find best order” dan “return to origin” jika kita ingin kembali ke tempat semula setelah singgah di berbagai pusat delivery.

Lalu lakukan simulasi dengan menekan tombol di pojok kanan atas, tunggu beberapa saat hingga diperolah hasil di View, berupa jalur optimal. Untuk mengetahui jalur detilnya, tekan tombol “Directions…” dan perhatikan jalur-jalur singgah dan berangkatnya, diakhiri dengan jarak tempuh total.

Terakhir lakukan hal yang sama untuk kasus jalur yang tercepat, tanpa memandang jarak tempuhnya. Jika sempat, lakukan sedikit penelitian mengenai atribut-atribut jalan dan lokasi yang disinggahi agar mengetahui prinsip kerja ArcView untuk mengetahui jalur tercepat dengan Network Analysis.

 

Setelah itu lakukan proses simulasi seperti yang telah dilakukan untuk perhitungan jarak tempuh. Setelah itu tampak di layar View dua jalur optimasi yaitu yang berwarna merah muda adalah jarak tempuh terpendek dan yang berwarna biru waktu tempuh tercepat.

Di sample data ArcView ada juga contoh data tentang rumah sakit (hospital), dan coba mencari lokasi terdekat suatu wilayah dengan rumah sakit yang ada di wilayah tersebut. Fungsi terdapat di menu “Network” kemudian Anda diminta menentukan lokasi terdekat. Pertama-tama tentukan lokasi kita, misalnya di Polk & Lombard. Seperti biasa, karena waktu sangat penting bagi yang perlu perawatan, kita pilih optimasi terhadap waktu tempuh. Hasilnya dapat dilihat di ArcView dimana lokasi kita (diberi simbol lingkaran bertitik) diberi arah dengan garis hijau ke rumah sakit terdekat (California Pacific Medical).

Entropy

Entropy mengukur ketidakpastian suatu variabel acak. Istilah ini pertama kali saya kenal di mata pelajaran kimia. Misal kita punya uang logam, jika kita lempar kita tidak memiliki kepastian apakah yang diperoleh gambar atau angka. Bagaimana dengan dadu? Tentu saja memiliki ketidak pastian, bahkan melebihi ketidakpastian dari uang logam yang dilempar. Masalahnya jika dadu yang dilempar memiliki ketidakpastian yang lebih tinggi dari uang logam yang dilempar, berapa besar? Nah kita akan coba bahas dengan konsep entropy. Manfaatnya adalah, konsep ini diterapkan untuk pembuatan pohon keputusan (decision tree).

Rumus Entropy

Entropy menggunakan konsep probabilitas dalam menentukan besar entropy suatu kejadian. Misal probabilitas uang yang normal adalah ½ untuk gambar dan ½ untuk angka, sementara untuk dadu tiap angka memiliki peluang yang sama yaitu 1/6 dengan anggapan dadunya normal (fair). Rumus entropy adalah sebagai berikut:

Berapakah entropy fair coin?

Masukan saja rumus di atas, maka diperoleh

H(x)=-( 0.5 * log(0.5) + 0.5 * log(0.5)) = 1.

Oiya, logaritmic yang digunakan adalah basis 2 (bukan sepuluh). Nah bagaimana jika coinnya tidak normal, misal peluang muncul gambar = 0.75 dan angka =0.25? Jawabannya adalah dengan rumusan di atas juga,

H(x) = – (0.75*log(0.75)+0.25*log(0.25)) = -(-0.3112-0.5)=0.8112.

Berapakah entropy fair dice (dadu normal)?

Entropy ini akan digunakan untuk menentukan percabangan pohon keputusan. Misalnya ada data dengan atribut usia, pelajar/tidak, income, dan credit rating yang menentukan seseorang membeli barang. Pertama-tama dihitung entropy atribut-atribut itu untuk mencari information gained berdasarkan entropy itu, jadi logikanya makin rendah entropy-nya maka makin kuat atribut itu menjadi akar.

Georeferencing dengan Matlab – bagian 2

Untuk memastikan bahwa hasil Georeferencing kita sesuai dengan koordinat latitude dan longitude, kita bandingkan hasil optimasi dengan google map. Pertama-tama buat koneksi dengan database WebGIS, misalnya dengan nama ODBC ‘aphb’. Lihat cara-cara buat ODBC di postingan yang lalu.

Di baris 131 dan 132 diperoleh titik optimum yang berhasil dihitung dengan algoritma genetik. Selanjutnya di baris 133 dikonversi menjadi koordinat global latitude dan longitude yang akan dikirim ke database postgreSQL. Baris 135 membuat koneksi yang dilanjutkan dengan mempersiapkan lokasi field yang akan di-insert. Terakhir di baris 140 dilakukan proses inserting ke database.

Perhatikan hasil running optimasi di DesktopGIS dengan Algoritma Genetik, diperoleh beberapa titik optimum. Di sini kita baru mengkonversi satu titik optimum karena belum diketahui akurasinya. Jika sudah akurat, baru diterapkan di seluruh titik optimum.

Di sini diperlukan kejelian mata untuk mengarahkan lokasi google map dengan lokasi di DesktopGIS. Setelah itu diketahui akurasinya. Perhatikan gambar di bawah, tampak titik di google map sedikit meleset dari lokasi optimum hasil hitungan di desktopGIS dan ini harus diperbaiki dengan mengeset kembali fungsi konversi.

Jika diperhatikan, sepertinya base latitude dan longitude terlalu jauh sehingga harus digeser kekiri dan ke bawah agar tepat di lokasi yang ditunjukkan oleh panah merah di atas. Lihat video di bawah ini untuk lebih jelasnya:

Ok .. done.

Georeferencing dengan Matlab – Bagian 1

Georeferencing adalah mensinkronkan antara koordinat lokal peta kita dengan koordinat global berdasarkan posisi lintang dan bujur. Untuk mengetahui teknik ini dengan menggunakan ArcView dapat Anda lihat pada postingan saya sebelumnya, Gereference and GPS. Misalkan untuk wilayah Cibitung dalam desktop GIS akan disetarakan dengan web GIS, kita perlu menentukan basis untuk longitude dan latitude serta ujung-ujung sepanjang longitude dan latitude. Longitude adalah garis bujur sedangkan latitude adalah garis lintang.

Kemudian buka google map, dan cari letak basis latitude dan longitude. Dari jangkauan maksimum dan basis bisa diketahui selisih panjang latitude dan longitude sebagai offset pada perhitungan konversi koordinat.

Setelah itu temukan panjang longitude dan latitude dengan mengurangkan selisihnya untuk melakukan konversi dari koordinat lokal ke global. Koordinat longitude dan latitude untuk pojok kanan bawah berturut turut adalah -6.240022 dan 107.18554 Berikut ini salah satu contoh listing untuk satu region.

function [latitude,longitude]=konversi(y,x)

latbase=-6.152484;

longbase=107.068653;

deltalat=latbase+6.240022;

deltalong=107.18554-longbase;

latitude=latbase-((y/500)*deltalat);

longitude=(x/700)*deltalong+longbase;

end

Sedikit modifikasi karena lokasi koordinat dalam matlab (image) agak berbeda dengan koordinat kartesian karena positf pada matlab (image) berarah ke bawah (dalam kartesian ordinat (y) negatif sehingga pada persamaan latitude di fungsi di atas berbeda dengan longitude yang langsung dijumlahkan antara longbase dengan offset-nya. Berikutnya kita uji dengan koordinat basis, misalnya (0,0).

>> [lat,long]=konversi(0,0)

lat =

-6.1525

long =

107.0687

Uji hasilnya dengan membandingkan antara lokasi di desktop GIS dengan web GIS, jika masih kurang tepat, lakukan modifikasi di basis latitude dan basis longitude. Masukan titik ( -6.1525, 107.0687 ) secara manual di Web GIS dan cek hasilnya apakah sudah tepat apa belum. Hidupkan server Ruby on Rails (RoR) yang telah dibuat pada program web GIS.

Kemudian cek dengan memasukan koordinatnya, apakah sudah tepat apa belum. Kapan-kapan akan kita bahas cara membuat WebGIS dengan RoR. Sebenarnya bisa kita cek langsung dengan memasukan koordinat di google, lihat postingan saya sebelumnya tentang memanggil WebGIS dengan Matlab tanpa server RoR.