Arsip

Posts Tagged ‘Python’

Membuat Plugins QGIS di Windows

13 Juni 2013 9 komentar

Kali ini saya akan menulis mengenai tutorial membuat plugin di QGIS di Windows. Kenapa di Windows? Karena, kadang-kadang kita menemui kesukaran yang tidak ditemukan di OS lain. Contoh saja, penanganan path. Sebelum memulainya, saya mengasumsikan sudah memiliki QGIS terinstall di komputer Anda. Untuk tutorial kali ini, saya menggunakan Sistem operasi Windows 7 SP1 64bit ASLI. Untuk kali ini akan dibuat plugin yang menampilkan “Hello ” + nama masukan ketika suatu tombol ditekan. Sederhana bukan?

  1. Menginstal Plugin Builder
    Untuk permulaan, sebaiknya menggunakan Plugin BuilderPlugin Builder merupakan plugin pada QGIS untuk membuat plugin secara lebih mudah. Untuk menginstalnya, cukup buka QGIS, lalu ke menu bar Plugins –> Fetch Python Plugins, dan fetch plugin ini dari repositori resmi QGIS. Jangan lupa di-enable setelah dipasang.
  2. Membuat Plugin dengan Plugin Builder.
    Pada langka ini, Anda cukup menjalankan Plugin Builder dan isi field yang dibutuhkan. Lalu tekan OK.

    Plugin Builder

    Plugin Builder

  3. Simpan plugin Anda di tempat yang dikehendaki.
    Saran dari saya, simpanlah dari direktori plugin milik QGIS. Lokasinya (biasanya) ada di C:\Users\user\.qgis\python\plugins. Setelah anda menekan OK, akan muncul tampilan seperti di bawah ini:

    Plugin Builder Result

    Plugin Builder Result

    Bisa dilihat, pada screenshot tersebut, ada beberapa langkah yang harus dilakukan sebelum plugin kita bisa digunakan. Jika Anda langsung mencoba meng-enable plugin Anda di QGIS, akan muncul pesan error.

  4. Penambahan Path
    Pada gambar di langkah ke tiga, disebutkan bahwa Anda harus mengompile ui file dan resources file menggunakan pyuic4 dan pyrcc4. Kedua command secara default tidak ditemukan di command line Windows. Untungnya, QGIS sudah memiliki kedua buah command ini, yang diperlukan hanyalah menambahkan path ke sistem Anda. Path yang saya maksud adalah direktori kedua buah command ini. Untuk di komputer saya misalnya, terletak di : “C:\Program Files (x86)\Quantum GIS Lisboa\bin”.
  5. Kompilasi ui file dan resource file
    Setelah menambahkan path, hal yang dilakukan selanjutnya adalah mengompile ui file dan resource file. Untuk ui file, bisa dilakukan dengan command sebagai berikut:

    pyuic4 -o ui_helloplugins.py ui_helloplugins.ui
    

    Sedangkan untuk resource-nya bisa dicompile dengan:

    pyrcc4 -o resources_rc.py resources.qrc
    

    Hal yang perlu diperhatikan adalah ketika mengompilasi resources.qrc, pastikan dikompile e resources_rc.py. Hal ini dikarenakan Plugin Builder mengimport resources_rc secara default di file helloplugin.py (untuk kasus saya). Anda tentu saja bisa menggantinya dengan nama yang lebih fantastik menurut Anda.

  6. Coba
    Setelah dikompile, coba buka QGIS, enable plugin Anda, coba jalankan, dan lihat apa yang muncul. Seharusnya, akan muncul tampilan seperti berikut:

    Hello Plugins First Sight

    Hello Plugins First Sight

  7. Mengubah User Interface (UI)
    Tentu saja, jendela kosong dari plugin tersebut kurang menarik. Mari kita ubah UI plugin kita. Caranya adalah dengan menggunakan QT Designer. Anda bisa mendapatkannya di http://www.riverbankcomputing.com/software/pyqt/download. Setelah diinstal akan muncul beberapa program baru, beberapa diantaranya adalah QT Designer (yang digunakan untuk mengedit UI) dan QT Linguist (yang dipergunakan untuk translasi).
    Untuk mengeditnya, jalankan Designer, dan buka file ui plugin kita. Penggunaannya cukup mudah, dengan drag and drop. Karena kita akan membuat plugin yang menuliskan “Hello ” + nama, maka saya butuh sebuah line edit, push button, dan sebuah label.  Silahkan berkreasi. Contoh hasil di saya:

    QT Designer

    QT Designer

    Setelah selesai, jangan lupa di-save dan dikompile lagi ui file nya seperti langkah sebelumnya.

  8. Menuliskan kode
    Langkah selanjutnya adalah menuliskan kode yang akan menuliskan “Hello ” + nama ketika ditekan tombolnya. Yah, karena ini bukan masalah ke teknis ngodingnya, jadi bisa dilihat saja contoh kode saya di : https://github.com/ismailsunni/HelloPluginQGIS/blob/master/helloplugindialog.py#L28

  9. Hasil
    Dan beginilah hasil dari plugin Hello Plugin saya:

    Hello Plugin Result

    Hello Plugin Result

Nah, selesai sudah contoh membuat plugin QGIS di sistem operasi Windows. Tidak jauh berbeda ketika melakukan developing di Linux. Selamat mencoba.

[Python] Comparing NaN, Inf, None, 0, 1,…

What is the result of this code snippet:

my_list = [1, 2, 3, 9, 1]
my_list.sort()

Yes, you are right, the result will be like this:

[1, 1, 2, 3, 9]

Hmm, that’s easy. What’s about if you’re asked which is bigger of None and NaN? Or True and NotImplemented? Or Ellipsis (What the hell is this Ellipsis?).
Just try it:

my_weird_list = [True, False, 0, -1, 1, 100, float('nan'), float('inf'), -float('inf'), NotImplemented, Ellipsis, None]
print my_weird_list.sort()

What will be the output? If your answer is None, you are right because sort() method return None #Kidding 🙂

Let’s print the my_weird_list. And, here we go :

[None, -inf, -1, False, 0, True, 1, 100, nan, inf, NotImplemented, Ellipsis]

For your note, int(True) == 1, so 1 and True is the same value when you compared them.

The good thing (for me at least), None is less than anything, even -inf. And, there is bigger value than inf. 🙂

The other thing is, the position of nan in the sorted list. If you compare nan with anything it always give False. Even when nan == nan. It will return True if you use != operator.

 

So, it’s true that False is bigger (better?) than None or nothing.

Kategori:Python Tag:,

Python : List, Tuple, Set, dan Dictionary (1)

31 Maret 2012 1 komentar

Salah satu bagian penting dari pemrograman adalah struktur data. Kali ini, saya ingin berbagi hal yang saya tahu mengenai struktur data di Python. Ada empat yakni List, Tuple, Set, dan Dictionary. Akan saya jelaskan secara singkat masing-masing jenis struktur data.

  1. List
    Sama seperti pada bahasa lain, list di Python merupakan sekumpulan elemen atau objek. Tapi, kita bisa memiliki bermacam-macam jenis elemen dalam satu list. Misal, string, integer, objek, list lain, maupun struktur data lain. Karakteristik utama dari list ini adalah, memiliki index dan mutable (bisa di-otak-atik). List di python menggunan zeroth based index. Contoh :

    list1 = [] # deklarasi list
    list1.append('elemen_0') #menambah 1 buah elemen di ujung list
    print list1[0] # mencetak element pertama di list1
    

    Hal penting lain yang menarik adalah, kita tidak perlu mendeklarasikan ukuran list di awal ataupun tipe isi list. Cukup deklarasikan, dan pakai.

  2. Tuple
    Berbeda dengan list, Tuple merupakan struktur data yang immutable, artinya tidak bisa diotak-atik setelah dideklarasikan. Tapi, masih sama seperti list, isi tuple bisa macam-macam, tidak harus satu jenis. Dan, bisa diakses dengan menggunakan indexnya. Contoh penggunaan :

    tuple0 = () # deklarasi tuple kosong
    tuple0 = tuple() # deklarasi tuple kosong
    tuple1 = ('bakso',) # deklarasi tuple dengan 1 elemen, perhatikan ada tanda koma setelah 'bakso'
    tuple2 = ('soto', 'mie ayam') # deklarasi tuple dengan 2 elemen, tanpa tanda koma
    print tuple2[0] # menampilkan element pertama
    
  3. Set
    Sama seperti set di matematika, set di python merupakan sebuah himpunan. Tanpa ada index. Yang paling saya suka adalah adanya fungsi seperti irisan dan gabungan. Contoh :

    set1 = set() # deklarasi set kosong
    set1.add(1) # menambahkan isi set1
    set2 = set()
    set2.add(1)
    set2.add(2)
    print set1 | set2 # menampilkan union dari set1 dan set2
    
  4. Dictionary
    Terakhir adalah dictionary. Layaknya kamus, kita menyimpan suatu value dengan key tertentu. Semua bisa jadi key, asal dia immutable. Sama seperti yang lainnya, kita bisa mengisi semau kita, tipe data semau kita juga. Contoh :

    dict1 = {} # deklarasi dictionary kosong
    dict['key'] = 'value' # mengisi dengan kunci 'key' dengan 'value'
    print dict['key'] # menampilkan isi dict['key']
    

Itu adalah perkenalan struktur data di Python. Oh iya, string itu termasuk list of char namun immutable lho. Hmm, sedikit trik-trik yang saya gunakan. Misalnya, mengurutkan isi dictionary terhadap value, menghapus semua element list dengan nilai tertentu, atau membuat dictionary dari list. Sampai ketemu di tulisan selanjutnya. CMIIW lho…

Kategori:Code, Python Tag:

Hello, Python

Kali ini saya akan berbagi ilmu saya yang sedikit mengenai Python. Python mirip dengan PHP dalam penggunaannya, menurut saya. Kemiripan yang paling terlihat, tidak perlu di-compile dan tiap variabel bisa berganti tipe. Postingan ini tidak akan banyak membahas apa itu Python, tapi lebih ke “Hello World” saja.

Pertama yang harus kita lakukan adalah memastikan ada Python di komputer kita. Biasanya, di Linux sudah tersedia, sedangkan untuk Windows belum ada. Untuk pengguna Windows, silahkan download Python di website Python. Versi terbaru adalah 3.2. Namun, saya sarankan untuk menggunakan versi 2.7. Kenapa? Karena, menurut saya, banyak modul yang tidak bisa jalan di Python 3.x namun bisa jalan di 2.x. Misalnya, NLTK (Natural Language Toolkit). Tapi, mungkin ke depannya versi 3.x akan lebih populer.

Setelah melakukan instalasi, akan muncul beberapa menu baru di Start Menu Anda. Salah satunya adalah IDLE (Python GUI). Silahkan jalankan program tersebut.

Python IDLE

Python IDLE

Selanjutkan, ketiklah

print 'hello world'

Nah, Anda akan melihat ‘hello world’ muncul. Selamat, Anda telah menjalankan script pertama Anda.

Layaknya PHP, tidak ada acara compile di Python. Cukup tulis kode, dan run.

Untuk membuat kode yang lebih panjang, silahkan pilih File->New Window pada jendela IDLE Anda. Akan muncul jendela kerja baru. Ketika kode berikut :

print 'hello world'

Kemudian tekan F5 atau pilih Run->Run Module. Akan ada perintah untuk menyimpan kode terlebih dahulu. Simpanlah dengan ekstensi “.py” dan beri nama sesuai selera, misal “hello.py”. Kemudian akan muncul keluaran dari kode tersebut di jendela IDLE tadi.

Untuk menjalankan melalui command prompt, Anda harus terlebih dahulu memasukan directory dari Python ke dalam variabel PATH. Caranya sebagai berikut (untuk Windows 7) :

  1. Buka My Computer
  2. Pilih System properties
  3. Pilih Advance system settings
  4. Pilih tab menu : Advanced
  5. Pilih Environment variables
  6. Edit value untuk variabel PATH
  7. Tambahkan PATH milik directory Python Anda. Pisahkan dengan karakter ‘;’ jika sudah ada path lain

Untuk mengetesnya, silahkan buka folder tempat file Python Anda tersimpan. Buka command prompt di folder tersebut. Ketika perintah ini :

python hello.py

jika muncul tulisan “hello world” di command prompt, maka Anda telah berhasil melakukan seting PATH untuk Python. Selamat.

Sekian untuk “Hello Python” sebagai pembuka dari tulisan mengenai Python selanjutnya. Semoga bermanfaat.

NB : Saya juga masih dalam tahap belajar, jika ada kesalahan, mohon koreksinya.

Kategori:Python Tag:
%d blogger menyukai ini: