Friday, April 26, 2019

Cara Mengetahui Password WIFI dengan CMD

Cara Mengetahui Password WIFI dengan CMD
Untuk mengetahui password dari sebuah wifi yang pernah kita terkonek ke jaringan tersebut, misal karena lupa dan lain sebagainya bisa dengan mudah dilakukan menggunakan perintah di command promt atau cmd.

Langkahnya yaitu:

Buka cmd atau command prompt dengan cara run as administrator

kemudian ketik perintah:

   netsh wlan show profile

Perintah tersebut untuk menampilkan daftar wifi yang pernah kita gunakan atau terkoneksi dan untuk dicari tahu passwordnya.


Gambar 1. Tampilan daftar wifi yang pernah terkonek di komputer

kemudian ketikan perintah:

netsh wlan show profile nama_wifi key=clear, ganti nama_wifi dengan nama wifi yang akan dicari passwordnya.


Gambar 2. Tampilan hasil perintah yang menampilkan detail WIFI yang pernah terkonek

Dari tampilan tersebut diperlihatkan detail dari wifi dan password wifi dalam Key Content. Terima kasih sudah menyimak, semoga bermanfaat. @wawanhn 

Referensi:





Konversi Feature Class sebuah Geodatabase yang mempunyai Domain dan Subtype kedalam format SHP

Konversi Feature Class sebuah Geodatabase yang mempunyai Domain dan Subtype kedalam format SHP
Dalam tulisan sebelumnya saya pernah share tentang cara konversi Geodatase ArcGIS menjadi file shp. Dalam tulisan tersebut menjelaskan bagaimana langkah-langkah dalam melakukan konversi sebuah geodatabase ataupun feature class kedalam format shapefile (shp) sehingga bisa lebih mudah melakukan analisis spasial bagi yang belum terbiasa dengan Geodatabase.

Namun terdapat permasalahan dalam konversi file tersebut jika Geodatase ArcGIS tersebut menggunakan domain dan subtype dalam manajemen atributnya. Cara membuat domain dan subtype dalam ArcGIS akan saya sharing di tulisan yang lain. Namun sebagai gambaran umum domain dan subtype digunakan sebagai untuk membuat acuan atau referensi dari sebuah kolom dengan mengacu pada kode tertentu, dengan tujuan mempermudah dan menjaga konsistensi dari atribut data tersebut. Misalnya dalam dalam peta administrasi kecamatan terdapat sebuah kolom yang isinya adalam menjelaskan kategori dari pembanguan di suatu kecamatan tersebut yaitu:

kode    deskripsi
---------------------
  1        tertinggal
  2        menengah
  3        maju
---------------------

dengan menggunakan domain dan subtype kita dapat dengan meudah mengisi atribut kolom kategori dengan mudah dan terjaga konsistensinya dari kesalahan penulisan dengan mengacu pada kode yang sudah didefinisikan. Sebagai contoh saya perlihatkan gambar sebuah Geodatabase yang mempunyai feature class bataskecamatan yang mengunakan domain dan subtype.


Gambar 1. Feature class yang mempunyai domain dan subtype

Dalam file batas kecamatan tersebut terdapat beberapa field/kolom yaitu id, nama, dan kategori. Kolom id berisi id kecamatan, kolom nama berisi nama kecamatan dan kolom kategori yang berisi informasi dari jenis kategori pembangunan di kecamatan tersebut dalam format text/string.
Isi dari kolomkategori sebenarnya merupakan deskripsi kategori  kode kategori yang terdapat dalam domain.
Jika kita konversi langsung feature class dari geodatabase tersebut kedalam format shp maka yang akan dihasilkan dalam atribut tabel adalah seperti ini.


Gambar 2. Atribut tabel hasil konversi ke shp

Dalam atribut tabel tersebut yang dikonversi ke format shp pada kolom kategori hanya berisi kode berupa angka 1 dan 2 sedangkan deskripsi dari kode tersebut tidak ditampilkan. Sehingga kita membutuhkan beberapa langkah untuk mengisi kolom kategori tersebut baik dengan cara mengisi manual ataupun dengan melakukan join ke tabel referensi kategori.

Dengan demikian supaya kita tidak harus melakukan langkah-langkah lain, maka yang harus dilakukan dalam konversi tersebut adalah dengan melakukan setting terhadap variabel Environtments. Caranya yaitu:

  • seperti biasa klik kanan di feature class yang akan di konversi lalu pilih Export -> To Shapefile (single) karena hanya 1 file yang akan di konversi, sehingga muncul dialog window fungsi Feature Class to feature class. 
  • klik button Environments sehingga tampil dialog window Environments Setting. Kemudian pada bagian Field ceklis Transfer field domain description, kemudian klik OK dan OK
  • Tunggulah sampe proses berhasil.

Gambar 3. Setting variabel Environments


Jika proses berhasil maka akan dihasilakan file shp bataskeac2.shp yang mempunyai atribut seperti pada Gambar 2 namun dengan tambahan 1 kolom yaitu d_kategori yang berisi deskripsi kategori dari kode kolom kategori.

Okay kita berhasil konversi file feature class beserta deskripsi dari domain dan subtype nya, sehingga kita tidak perlu mengisi data kategori secara manual ataupun melakukan join ke table referensi. Demikian tulisan sederhana ini semoga bermanfaat. Dan sebagai catatan dalam tulisan tersebut saya menggunakan ArcGIS 10.6 untuk melakukan operasi tersebut. @wawanhn

Referensi:
https://community.esri.com/thread/166445

Friday, April 12, 2019

Analisis Geospatial menggunakan Python Bagian 4 - Konversi SHP ke PostgrSQL

Analisis Geospatial menggunakan Python Bagian 4 - Konversi SHP ke PostgrSQL
Saat ini kita lanjutkan setelah dibuat geodatabase py_geo_db di POstgreSQL sebelumnya. Kita akan mengkonversi file shapefile ke dalam geodatabase PostgreSQL.

Dalam contoh ini saya akan menggunakan dengan format shapefile. Anda bisa mengganti file shp dengan file anda sendiri. Berikut contoh kode programnya sebagai berikut:

# -*- coding: utf-8 -*-
"""
Created on Fri Apr 12 09:36:42 2019

@author: Wawan H Nur
Mengkonversi file shp BatasKabupaten.shp ke database py_geo_db di PostgreSQL
"""

import subprocess

db_schema = "SCHEMA=geodata"
overwrite_option = "OVERWRITE=YES"
geom_type = "POLYGON"
output_format = "PostgreSQL"

db_connection = """PG:host=localhost port=5432 user=userwhn dbname=py_geo_db password=pwdwhn"""
                         
input_shp = "../geodata/BatasKabupaten.shp"

subprocess.call(["ogr2ogr", "-lco", db_schema, "-lco", overwrite_option, "-nlt", geom_type, "-f", output_format, db_connection, input_shp])

Penjelasan dari kode program tersebut adalah melakukan konversi file shp dengan nama BatasKabupaten.shp yang mempunyai tipe geometri polygon kedalam geodatabase py_geo_db pada schema geodata. Kode skrip tersebut akan menghasilkan sebuah tabel BatasKabupaten di database py_geo_db pada schema geodata. Output format yang akan kita tuju PostgreSQL.

Untuk melihat layer hasil konversi dapat dilakukan dengan menggunakan QGIS. 




Untuk tipe geometri terdapat beberapa format dengan contoh datanya sebagai berikut:
  • POINT(0 0)
  • LINESTRING(0 0,1 1,1 2)
  • POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))
  • MULTIPOINT(0 0,1 2)
  • MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4))
  • MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1)))
  • GEOMETRYCOLLECTION(POINT(2 3),LINESTRING((2 3,3 4)))
Selain dengan menggunakan kode program Python, kia dapat langsung melakukan konversi file shp dengan manggunakan command prompt dengan memanfaatkan fungsi shp2pgsql yang terdapat dalam instalasi PostgreSQL. Yaitu dengan cara di command prompt kita menuju folder bin dalam installan PostgreSQL kita. Kode perintah yang dapat digunakan untuk mengkonersi file shp seperti contoh diatas seperti ditampilkan di bawah ini:

shp2pgsql -g localhost -s 4532 -c -D -I D:/Virt/data/BatasKabupaten.shp geodata.BatasKabupaten | psql -U userwhn py_geo_db

Adapun bentuk umum kode konversi file shp diatas adalah:

shp2pgsql -g <host> -s <port> -c -D -I <lokasi file shp> <schema.tabel> | psql -U <user> <database>

Demikian tulisan singkat ini semoga bermanfaat dan akan dilanjutkan dengan bahasan selanjutnya, terima kasih. @wawanhn

Referensi: 
https://pcjericks.github.io/py-gdalogr-cookbook/vector_layers.html?highlight=shp#get-all-postgis-layers-in-a-postgresql-database

https://automating-gis-processes.github.io/CSC18/index.html


https://medium.com/@chrieke/essential-geospatial-python-libraries-5d82fcc38731


http://postgis.refractions.net/documentation/manual-1.3/ch04.html

Wednesday, April 10, 2019

Analisis Geospatial menggunakan Python Bagian 3 - Membuat Tabel di Database PostgreSQL

Analisis Geospatial menggunakan Python Bagian 3 - Membuat Tabel di Database PostgreSQL
Setelah sebelumnya membuat database di PostgreSQL, saat ini akan ditampilkan cara:

  1. Membuat tabel
  2. Menginput data
  3. Menampilkan data
  4. Update data
  5. Menghapus data
Saat ini dalam contoh kode program ini saya akan menggunakan library psycopg2 merupakan library yang secara standar terinstall saat kita install python.

Membuat File koneksi ke database
"""

Created on Wed Apr 10 17:03:24 2019

@author: Wawan H Nur
Koneksi ke database di POstgreSQL
"""

import psycopg2
import Conf_postgresql as psql

PGHOST = "localhost"

PGDATABASE = "py_geo_db"

PGUSER = "userwhn"

PGPASSWORD = "pwdwhn"

PGSCHEMA = "geodata"

conn_string = "host="+ psql.PGHOST+ " port=" + "5432" + " dbname="+ psql.PGDATABASE + " user=" + psql.PGUSER+" password="+ psql.PGPASSWORD
            
conn = psycopg2.connect(conn_string)

print("Connection Success")

Membuat Tabel di Database
"""
Created on Wed Apr 10 17:08:57 2019

@author: Wawan HN
Membuat tabel di database py_geo_db dengan schema=geodata
"""

import psycopg2
import Connection_to_DB as con

connect = con.conn

cur = connect.cursor()
cur.execute('''CREATE TABLE '''+con.PGSCHEMA+'''.PERSON2 (ID INT PRIMARY KEY NOT NULL,
            NAME TEXT NOT NULL,
            AGE INT NOT NULL,
            ADRESS CHAR(50),
            SALARY REAL);''')

print("Table created successfuly")

connect.commit()
connect.close() 

Menginput data ke tabel di Database
"""
Created on Wed Apr 10 17:44:26 2019

@author: Wawan H Nur
Menambahkan data dalam tabel
"""

import psycopg2
import Connection_to_DB as con

connect = con.conn

cur = connect.cursor()

cur.execute("INSERT INTO " +con.PGSCHEMA+".COMPANY (ID, NAME, AGE, ADRESS, SALARY)\
            VALUES(3,'Bruce', '32', 'Ujungberung', 20000.00)");

cur.execute("INSERT INTO " +con.PGSCHEMA+".COMPANY (ID, NAME, AGE, ADRESS, SALARY)\
            VALUES(4,'Tony', '33', 'Bojongsoang', 30000.00)");

cur.execute("INSERT INTO " +con.PGSCHEMA+".COMPANY (ID, NAME, AGE, ADRESS, SALARY)\
            VALUES(5,'Dede', '32', 'Texas', 20000.00)");

cur.execute("INSERT INTO " +con.PGSCHEMA+".COMPANY (ID, NAME, AGE, ADRESS, SALARY)\
            VALUES(6,'Johny', '33', 'Cicaheum', 50000.00)");
            
connect.commit()
print("Records created succesfully")

connect.close()

Menampilkan data dari Tabel
"""
Created on Wed Apr 10 17:57:48 2019

@author: Wawan H Nur
Menampilkan data
"""

import psycopg2
import Connection_to_DB as con

connect = con.conn

cur = connect.cursor()

cur.execute("SELECT * FROM "+ con.PGSCHEMA +".company")

rows = cur.fetchall()
for row in rows:
    print("ID      = ", row[0])
    print("NAME    = ", row[1])
    print("AGE     = ", row[2])
    print("ADDRESS = ", row[3])
    print("SALARY  = ", row[4],"\n")

print("Operation done successfully")

connect.close()

Update data dalam suatu Tabel
"""
Created on Wed Apr 10 18:28:07 2019

@author: Wawan H Nur
Update data
"""

import psycopg2
import Connection_to_DB as con

connect = con.conn

cur = connect.cursor()

cur.execute("UPDATE " +con.PGSCHEMA+".COMPANY set SALARY = 25000.00 WHERE ID=2")
connect.commit()
print("Total number of rows updated: ", cur.rowcount)

cur.execute("SELECT * FROM "+ con.PGSCHEMA +".company")
rows = cur.fetchall()
for row in rows:
    print("ID      = ", row[0])
    print("NAME    = ", row[1])
    print("AGE     = ", row[2])
    print("ADDRESS = ", row[3])
    print("SALARY  = ", row[4],"\n")

print("Operation done successfully")

connect.close()

Menghapus data dari Tabel
"""
Created on Wed Apr 10 18:37:17 2019

@author: Wawan H Nur
Delete data
"""

import psycopg2
import Connection_to_DB as con

connect = con.conn

cur = connect.cursor()

cur.execute("DELETE FROM " +con.PGSCHEMA+ ".company  WHERE ID=2;")
connect.commit()
print("Total number of rows deleted: ", cur.rowcount)

cur.execute("SELECT * FROM "+ con.PGSCHEMA +".company")

rows = cur.fetchall()
for row in rows:
    print("ID      = ", row[0])
    print("NAME    = ", row[1])
    print("AGE     = ", row[2])
    print("ADDRESS = ", row[3])
    print("SALARY  = ", row[4],"\n")

print("Operation done successfully")

connect.close()

Demikian dulu tulisan ini, semoga bermanfaat. Silahkan tunggu untuk tulisan selanjunya @wawanhn

Refrensi: https://www.tutorialspoint.com/postgresql/postgresql_python.htm

Analisis Geospatial menggunakan Python Bagian 2 - Membuat Database di PostgreSQL

Analisis Geospatial menggunakan Python Bagian 2 - Membuat Database di PostgreSQL
1. Buka command prompt dan menuju installan PostgreSQL misal foldernya terdapat di c:\Program Files\ PostgreSQL\9.3\bin\ 

2. Kemudian membuat user baru untuk database baru dengan menggunakan user postgres, dalam contoh ini saya akan buat username userwhn

C:\Program Files\PostgreSQL\9.5\bin>createuser.exe -U postgres -P userwhan

3. Kemudian kita diminta password dari role user userwhn misal saya masukan "pwdwhn", masukan sekali lagi dan selanjutnya masukan password user postgres yang sudah diset saat install PosgreSQL sebelumnya.



4. Buat database baru, contoh namannya py_geo_db:

createdb.exe -O userwhn -U postgres py_geo_db

masukan password dari user userwhn


5. Buat ektensi POSTGIS kedalam database py_geo_db:

psql -U postgres -d py_geo_db -c "CREATE EXTENSION postgis;" 

dan masukan password user postgres

6. Buat schema misalkan dengan nama geodata sehingga data tidak disimpan dalam schema public

psql.exe -U postgres -d py_geo_db -c "CREATE SCHEMA geodata AUTHORIZATION userwhn"

masukan password untuk user postgres

Maka kita telah berhasil membuat database di PostgreSQL, untuk melihat hasilnya dapat dilihat mengguanakan PgAdmin.

Semoga bermanfaat, dan dilanjutkan pada tulisan selanjutnya.




Menghapus File SHP menggunakan Python

Dengan menggunakan bahasa Python saya akan memberikan contoh kode program menggunakan bahasa Python untuk menghapus file shp. Dalam kode program ini membutuhkan library ogr. Berikut saya tampilkan contoh kode program tersebut.

Sebelumnya install dulu library ogr langkahnya seperti dalam Analisis Geospasial Bagian 1. Setelah selesai menginstal library ogr selanjutnya kita cek driver yang tersedia dalam library ogr. Sehingga kita dapa memastikan untuk dapat melakukan operasi terhadap file dengan format shapefile, PostgreSQL, FileGDB, SDE dll.

from osgeo import ogr



## CSV available?
driverName = "CSV"
drv = ogr.GetDriverByName( driverName )
if drv is None:
    print ("%s driver tidak tersedia.\n" % driverName)
else:

    print  ("%s driver tersedia.\n" % driverName)

## Shapefile available?
driverName = "ESRI Shapefile"
drv = ogr.GetDriverByName( driverName )
if drv is None:
    print ("%s driver tidak tersedia.\n" % driverName)
else:
    print  ("%s driver tersedia.\n" % driverName)

## PostgreSQL available?
driverName = "PostgreSQL"
drv = ogr.GetDriverByName( driverName )
if drv is None:
    print ("%s driver tidak tersedia.\n" % driverName)
else:
    print  ("%s driver tersedia.\n" % driverName)

## Is File GeoDatabase available?
driverName = "FileGDB"
drv = ogr.GetDriverByName( driverName )
if drv is None:
    print ("%s driver tidak tersedia.\n" % driverName)
else:
    print  ("%s driver tersedia.\n" % driverName)

## SDE available?
driverName = "SDE"
drv = ogr.GetDriverByName( driverName )
if drv is None:
    print ("%s driver tidak tersedia.\n" % driverName)
else:

    print  ("%s driver tersedia.\n" % driverName)


Dalam contoh ini saya akan menghapus sebuah file shapefile schools1.shp  yang terdapat dalam folder geodata. Berikut kode program tersebut:

from osgeo import ogr
import os

Driver_name = "ESRI Shapefile"
File_name = "../geodata/schools1.shp"
Driver = ogr.GetDriverByName(Driver_name)
if os.path.exists(File_name):
    Driver.DeleteDataSource(File_name)
    print ("Sukses menghapus file: "+ File_name)




Monday, April 8, 2019

Analisis Geospasial menggunakan Python Bagian 1

Saat ini saya akan berbagi tentang pemrograman menggunakan Python untuk Analisis Geospatial. Persipana yang kita lakukan adalah dengan menginstall beberap library yang dibutuhkan. Beberapa library dari Python yaitu: Numpy, pyproj, shapely, matplotlib dll.

Langkah yang kita lakukan adalah menginstall library-library tersebut daam contoh kali ini saya menggunakan pip dan anaconda.

Install Numpy
    $ pip install numpy

   untuk cek hasil install nummpy

   >> import numpy

Install Pyproj
       $ pip install pyproj

   untuk cek hasil install pyproj
       >>  import pyproj

Install Shapely
   $ pip install shapely

   atau link download  shapely disini

   untuk cek hasil install shapely

       >> import shapely

Install Matplotlib
       $ pip install matplotlib

   untuk cek hasil install 

   >> import matplotlib

Install Descartes
   $ pip install descartes 

   atau

   $ conda install descartes
   
   untuk cek hasil install

   >> import descartes

Install Pyshp
   $ pip install pyshp

   atau
   
   $ conda install pyshp

   untuk cek hasil install

   >> import shapefile

Install Geojson
   $ pip install geojson

   atau
   
   $ conda install geojson

   untuk cek hasil install

   >> import geojson

Install Pandas
   $ pip install pandas

   atau
   
   $ conda install pandas

   untuk cek hasil install

   >> import pandas

Install Scipy
   $ pip install scipy

   atau
   
   $ conda install scipy

   untuk cek hasil install

   >> import scipy

Install Pysal
   $ pip install pysal

   atau
   
   $ conda install pysal

   untuk cek hasil install

   >> import pysal



Install Django

   $ pip install django

   atau
   
   $ conda install django

   untuk cek hasil install

   >> import django

Secara umum library yang dibutuhkan untuk analisis spasial menggunakan Python ditampilkan dalam Tabel dibawah.



Library Name Deskripsi Keterangan
Numpy Mendukung perhitungan array dan matrik multi dimensi
pyproj Mendukung proyeksi Untuk melakukan transformasi proyeksi
shapely Mendukung operasi geospasial Untuk manipulasi dan operasi geometri secara dengan cepat
matplotlib Melakukan ploting data/membuat grapik Mendukung hasil visualisasi yang cepat
descartes Menggunakan objek shapely dan GeoJSOn Mendukung plot geo-data yang cepat
pandas Mendukung analisis data dan data terstruktur dengan performa tinggi Mendukung manipulasi data, mebuat CSV dan manipulasi data
scipy Mendukung pemrograman analisis saintifik perengkapan terbaik untuk analisis saintifik
paysal Mendukung analisis geospasial Mendukung operasi spasial
ipython Perangkat interaktif untuk pemrograman python Perangkat untuk penulisan skrip python
django Framework untuk aplikasi Web Untuk pemrograman web GIS
pyshp Mendukung manipulasi shapefile Mendukung input dan output shapefile
geojson Mendukung format JSON untuk data spasial data Mendukung perubahan dan publikasi data JSON
postgresql Database relational yang mendukung full data spasial Untuk menyimpan dan mengelola data spasial
postgis Merupakan ekstensi untuk pengolahan data spasial di Database PostgreSQL Mendukung menyimpanan dan pengolahan operasi terhadap data spasial di PostgresSQL

Pada tahap ini lakukan installasi terhadap library-library tersebut dan pada tulisan selanjutnya kita akan menggunakannya untuk analisis spasial.
Semoga bermanfaat dan tunggu tulisan selanjutnya. @wawanhn