Skip to main content

Python GUI Library Framework Toolkits Mana Yang Terbaik?

python gui library framework

Bahasa pemrograman Python popularitasnya makin naik berdasarkan data dari https://www.tiobe.com/tiobe-index/ sejak tahun 1995 yang tadinya berada di posisi 22 hingga saat tulisan ini dibuat berada pada posisi ke 3. Python ini digunakan untuk pemrograman berorientasi objek. Python pemrograman interaktif yang memiliki banyak pustaka dan framework GUI. Yang akan kita bahas Python GUI Library untuk membantu para developer membuat aplikasi GUI secara mudah dan aman.

tiobe index python

Ada yang berpendapat bahwa bahasa ini tidak yang terbaik untuk membuat aplikasi GUI, tapi tidak sedikit juga aplikasi yang pernah saya tau menggunakan python

  • DropBox, File hosting
  • Instagram
  • Exaile (Audio Player)
  • GNOme SoundConverter
  • OpenShot Video Editor
  • PiTiVi Video Editor
  • Quod Libet, music player
  • Wicd, Network manager di Linux
  • Amarok, Audio Player
  • Battlefield2, (Game Strategy) Sebagian menggunakan Python
  • Civilization IV, Game Strategy Menggunakan python
  • Fets on Fire, Game Music menggunakan PyGame
  • Pirates of the Caribbean Online (Panda 3D)
  • The Sims 4, menggunakan python 3.7.0

Di atas adalah sebagian software yang dibuat menggunakan python dan beberapa library (pustaka) yang bisa dinikmati saat ini.

tiobe index

Beruntungnya sebagai programmer python, memiliki banyak pilihan library, framework, dan toolkits yang free. Kita dapat menyesuaikan sesuai dengan kebutuhan dengan proyek yang sedang dikebangkan. Untuk Python GUI Library saya tidak bahas semuanya karena memang sangat banyak juga, dan sebagian lagi mirip. Saya ingin memilih yang cross platform bekerja pada python 3, kemudian menggunakan toolkits Gtk, QT, Tk, dan wxWidget, yang dari kriteria itu didapat Kivy, PyQT, Tkinter, dan wxPython.

Back to top

1) Kivy

Kivy Corss Platform Python GUI Library yang bisa berjalan pada sistem operasi (Linux, MacOS, dan Windows) juga pada perangkat mobile (Android dan iOS). Diakselerasi pad OpenGL ES 2 serta ada 20 widget pada toolkitnya. Berlisensi Free dan juga dapat digunakan untuk komersial.

1.1) Kelebihan Kivy

  1. Lisensi MIT

    Kivy dipublikasikan dengan lisensi MIT yaitu dapat digunakan secara gratis dan juga dapat ginakan untuk keperluas komersil.

  2. UI Yang Modern

    Kivy memiliki tampilan yang dapat disesuaikan dan sama pada semua platform, ia juga memiliki tema default yang modern seperti flat desain dan juga menyediakan tema dari pihak ketiga diantaranya FlatKivy, KivyMD, dan lainnya

  3. Untuk Pengembangan Aplikasi Seluler

    Anda yang pengembang aplikasi seluler dan game juga bisa menggunakan kerangka kerja ini karena mendukung multi-touch di iOS dan Android. Anda bisa melihat yang sudah ada di Google Play Store diantaranya Kivy Launcher, Flat Jewels, Kivy Pictures

  4. Untuk Aplikasi Interaktif

    Kalau Anda menggunakan perangkat input dan gesture (Joystick, Apple Trackpad, Magic Mouse, game controllers) ini telah didukung sepenuhnya oleh Kivy kontrol UI input tradisional.

  5. Logic Kode dan Presentasi Terpisah

    Kivy punya bahasa sendiri yang disebut KV untuk menulis dekorasi UI dan bisa ditulis terpisah dari kode logika yang menggunakan bahasa python.

  6. Performa Tinggi

    Berbeda dari yang lain, kerangka kerja cross platform yang biasanya memiliki masalah yang sama pada performa, tapi di kivy tidak. Masalah kinerja ini diselesaikan dengan mengimplementasikan fitur penting dalam C/Cython. Serta menggunakan Graphic Engine menggunakan OpenGL ES untuk akselerasi hardware. Ini adalah optimasi cerdas yang menghasilkan kinerja terbaik.

  7. Bahasa kv

    Bahasa ini untuk digunakan khusus mendesain UI, jadi antara logic dan elemen desain bisa dibuat terpisah, seperti yang sudah dijelaskan pada nomor 5. Yang tentu saja akan memudahkan dalam pengembangan dengan banyak orang. Ada yang fokus pada desain dan yang lainnya fokus pada logic.

  8. Serbaguna

    Fleksibel dan Dinamis, itu yang pertama dari Kivy. Dapat bekerja pada semua sistem operasi populer dan juga bekerja pada perangkat Android dan iOS berkat kanvas OpenGL yang dapat membuat macam jenis graphic, dan juga cocok untuk pengembangan game.

  9. Multitouch gestures

1.2) Kekurangan Kivy

  1. Api Akses tidak full support

    Meski bisa berjalan pada banyak platform, namun ada kelemahan yaitu kita akan kesulitan untuk mengakses API yang tidak didukung oleh Kivy. Tapi masalah ini sebenarnya bisa diselesaikan dengan pustaka python lain seperti pyobjc dan pyjnius yang menyediakan indirection level. Kalau tidak terbiasa maka bisa menjadi lebih sulit.

  2. Dokumentasi

    Dokumentasi tidak terlalu banyak dijumpai, mungkin masih sedikit yang menggunakannya

Back to top

2) PyQT

Binding python yang populer sebagai pustaka lintas platform diimplementasikan pada pustaka QT milik Nokia. Dapat bekerja pada Linux, MacOS, dan Windows dengan dual lisensi yaitu Commersial dan GPL biarpun mungkin untuk beberapa fitur tidak didapatkan pada versi GPL. Kalau aplikasi yang dibuat adalah opensource maka dapat menggunakan lisensi GPL.

2.1) Kelebihan PyQT

  1. Fleksibilitas Kode

    Dengan konsep signal dan slot pada pemrograman QT GUI untuk komunikasi antar objek. Sinyal akan ditransmisikan pada suatu peristiwa (misal klik) dan untuk menangani event tersebut menggunakan slot yaitu fungsi yang dapat dipanggil( misal lakukan sesuatu saat tombol diklik). Cara menangani event gui seperti ini memungkinkan untuk kode menjadi fleksibel dan menghasilkan kode yang clea

  2. Bukan Sekedar Framework

    API native ada pada QT seperti jaringan, database, dan lainnya. Denga API tunggal dapat menyediakan akses terstandarisasi hanya dengan satu baris kode dapat melayani banyak platform dan melakukan banyak hal padanya.

  3. Stabilitas

    Karena sudah teruji dan telah banyak digunakan pada proyek besar seperti DropBox dan OpenShot video editor, juga Eric Python IDE

  4. WYSIWYG Builder

    Pengembang aplikasi lebih dimanjakan lagi dengan adanya QT Designer. Pasalnya kita tidak menuliskan kode tapi hanya dengan drag n drop untuk merancang GUI

  5. Banyak UI Tersedia

    Ketersediaannya widget seperti tombol, teks, menu, dan lainnya dengan tampilan asli (native) dari setiap platform. Maka aplikasi kita akan memiliki tampilan yang sesuai dengan lingkungan desktop itu.

  6. Banyak Sumber Belajar

    Tidak perlu khawatir untuk mencari tutorial membuat aplikasi QT sangat banyak, karena komunitas yang besar dan populernya.

  7. API yang mudah dipahami

    Kalau Anda berlatar belakang C++ atau QT akan lebih mudah untuk memahami API ini, karena PyQT memiliki kelas yang sesuai dengan QT C++ begitu juga dengan dokumentasi C++.

2.2) Kekurangan PyQT

  1. Lisensi Berbayar

    PyQT memiliki dua lisensi yaitu GPL v3 yang free dan aplikasi buatan Anda harus menjadi open source, kalau tidak maka akan menggunakan lisensi Riverbank Commercial License.

  2. Tidak ada dikumentasi PyQT5 Python

    Karena dokumentasi PyQT5 melink ke Qt-nya C++. Maka ini akan membingungkan bagi yang tidak memiliki latar belakang C++ atau telah berpengalaman dengan QT.

  3. Steep learning curve

    Membutuhkan waktu yang lebih lama untuk bisa menghasilkan produk dari PyQT. Karena dengan cara implementasi yang berbeda mungkin diantaranya ada yang bertentangan bisa jadi akan membuat bingung bagi yang belum terbiasa. Tentu saja karena ini adalah framework yang besar.

Back to top

3) Tkinter

Tkinter sudah termasuk dalam paket installasi python, dengan Tk dan GUI dari python menjadikan ini sebagai GUI standar python. Dan pengembang aplikasi GUI Python pasti 99% sudah pernah belajar meski sedikit tentang pustaka ini, karena banyak sumber yang bisa kita ambil untuk belajar, memiliki komunitas yang besar dan juga banyak. Tidak hanya itu, buku pun banyak tersedia.

3.1) Kelebihan Tkinter

  1. Bebas digunakan

    Untuk kebutuhan free dan komesil tidak diperlukan membeli lisensi apapun. Semuanya bebas

  2. Python GUI Library Standard

    Kita tidak perlu melakukan apapun hanya tinggal menggunakannya karena sudah termasuk dalam paket installasi python, dan Anda semua sudah memilikinya sejak menginstall python.

  3. Tidak Terlalu Rumit

    Untuk membuat proyek yang dibangun menjadi executable tidak lah terlalu rumit, ini disebabkan paket standar yang tidak memerlukan banyak dependensi. Dan hasil dari paket executable binernya memiliki ukuran yang kecil.

  4. Mudah Dipelajar

    Pilihan pertama untuk membangun aplikasi GUI Python adalah Tkinter, karena mudah untuk dipelajari dan dengan API langsung terhubung dengan python. Anda pun akan cepat produktif dengan ini.

3.2) Kekurangan Tkinter

  1. Tidak ada widget canggih, Tkinter tidak memiliki widget yang advaced untuk digunakan seperti date picker contohnya.
  2. Dan Tkinter juga tidak memiliki (atau belum) IDE GUI seperti QT Designer pada PyQT
Back to top

4) PySide

Modul python untuk proyek Qt Python yang juga Cross Platform GUI Toolkits untuk bekerja pada Qt5, bisa dijadikan alternative dari Tkinter. Berada dibawah lisensi LGPL setelah mantan pemiliknya (nokia) tidak mencapai kesepakatan dengan PyQt. Untuk dukungan terhadap Android saat ini masih dalam tahap pengembangan.

4.1) Kelebihan PySide

  1. Qt Widget

    Penggunaan antar muka widget tradisional memungkinkan disini

  2. Didukung Oleh Qt

    Ini adalah binging resmi untuk python yang didukung oleh perusahaan Qt

  3. Lisensi

    Kita lebih mudah menggunakan lisensi LGPL yang produk dari ini bisa diperuntukkan kebutuhan komesil

  4. QtQuick/QML

    Kemungkinan untuk menggunakan pendekatan deklaratif untuk mendefinisikan antarmuka pengguna.

4.2) Kekurangan PySide

  • Sama seperti PyQt, Anda dituntut untuk memiliki latar belajang C++ atau minimal dapat membaca kode C++. Begitu juga dengan dokumentasinya yang bisa dikatakan kurang baik untuk pengguna baru, sebab mungkin saja mereka berasumsi bahwa yang menggunakan ini telah berpengalaman terhadap Qt atau juga C++
Back to top

5) wxPython

wxPython adalah toolkit GUI untuk python yang menggunakan komponen wxWidgets ditulis dalam bahasa C++. Dapat digunakan untuk membuat aplikasi Windows, Linux, dan MacOS dengan pustaka GTK2 atau GTK3.

Back to top

6) PyForms

PyForms adalah framework cross environment yaitu dapat bekerja pada lebih dari satu lingkungan seperti web, desktop GUI, dan Terminal.

Dengan berdasarkan pada PyQT dan OpenGL juga beberapa pustaka lainnya, ada tersedia 22 kontrol yang cukup komprehensif yang semua itu dilandaskan pada objek ControlBase yang juga termasuk untuk pemutar video, web browser, dan OpenGL.

Baca juga: Python PyForms

python gui framework
Back to top

7) Kesimpulan

Dari pertimbangan yang sudah kita ketahui bersama, untuk mulai menggunakan Python GUI Library pilihan ada ditangan masing-masing. Dan tentu saja menyesuaikan dari kebutuhan dasar serta latar belakang dari penggunan framework itu sendiri.

Sebelum untuk menentukan, mungkin sebaiknya mencari contoh aplikasi desktop yang dibuat berdasar pada framework itu, kalau perlu mencari juga sumber kode. Rasanya tidak sulit untuk menemukannya karena hampir semua menyertakan sumber kode dari aplikasi. Mungkin untuk yang komersil kita akan kesulitan menemukannya.

Back to top