Apakah bisa membuat aplikasi menggunakan python?

Python punya banyak framework dan toolkits untuk membuatnya. Mulai dari yang tradisional seperti Tkinter sampai yang cross-platform.

Apa saja itu?

Ini beberpa library terpopuler yang bisa kamu gunakan:

1. Tkinter

Tkinter adalah library standar Python untuk membuat aplikasi GUI atau desktop.

Tkinter sebenarnya bentuk OOP dari Tcl/Tk. Tcl (Tool Command Language) adalah sebuah bahasa pemrograman dan TK adalah library yang digunakan oleh Tcl untuk membuat aplikasi GUI.

Tkinter biasanya secara default di-bundle dengan Python. Jadi ketika kamu install Python, Tkinter juga akan ikut Terinstal.

Untuk mengetes apakah di komputermu sudah terinstal Tkinter atau belum, silahkan ketik perintah berikut di interpreter Python:

>>> import _tkinter

Jika kamu mendapatkan error

sudo apt install python-tk #untuk ptyhon 2
sudo apt install python3-tk # untuk python 3
8, itu artinya Tkinter belum terinstal di komputermu.

Apakah bisa membuat aplikasi menggunakan python?

Tapi jangan khawatir, kamu bisa menginstalnya dengan perintah:

sudo apt install python-tk #untuk ptyhon 2
sudo apt install python3-tk # untuk python 3

Untuk pengguna Windows, kamu harus mencentang bagian ini saat menginstal Python agar Tkinter ikut terinstal.

Apakah bisa membuat aplikasi menggunakan python?

Sampel program Hello World dengan Tkinter:

from tkinter import *
from tkinter import ttk
root = Tk()
ttk.Button(root, text="Hello World").grid()
root.mainloop()

Hasilnya:

Apakah bisa membuat aplikasi menggunakan python?

2. wxPython

wxPython adalah GUI Toolkit yang bersifat cross-platform. Artinya, bisa digunakan di mana saja. Mau itu Windows, Linux, dan MacOS.

Apakah bisa membuat aplikasi menggunakan python?

wxPython sebenarnya menggunakan library dari wxWidgets. wxWidgets adalah GUI Toolkit yang dibuat dengan bahasa C++.

Jika kamu ingin membuat aplikasi GUI yang mendukung untuk digunakan secara cross-platform, wxPython adalah pilihan yang tepat.

Berikut ini beberpa fitur unggulan wxPython:

  • Window Layout Using Sizers
  • Device Contexts (along with pens, brushes and fonts)
  • Comprehensive Event Handling System
  • HTML Help Viewer
  • Sound and Video Playback
  • Unicode and Internationalization Support
  • Document/View Architecture
  • Printing Archiecture
  • Sockets
  • Multithreading
  • File and Directory Manipulation
  • Online and Context-Sensitive Help
  • HTML Rendering
  • Basic Containers
  • Image Loading, Saving, Drawing and Manipulation
  • Date-Time Library and Timers
  • Error Handling
  • Clipboard and Drag-and-Drop

Sampel aplikasi Hello World:

# pertam-tama kita harus impor dulu modeul wxPython
import wx

# Next, buat objek app
app = wx.App()

# Lalu buat frame.
frm = wx.Frame(None, title="Hello World")

# Tapilkan ke layar.
frm.Show()

# Mulai main loop.
app.MainLoop()

Hasilnya:

Apakah bisa membuat aplikasi menggunakan python?

3. PyGTK

PyGTK adalah modul Python untuk membuat aplikasi GUI dengan GTK+ (Gimp Toolkits). GTK+ adalah library yang biasanya digunakan untuk membuat aplikasi GUI di Linux, terutama pada desktop environment Gonme. PyGTK juga bersifat cross platform.

Apakah bisa membuat aplikasi menggunakan python?

Jika kamu ingin belajar tentang PyGTK atau GTK+, saya sudah membahasnya di beberapa artikel:

  • Belajar Pemrograman GUI dengan Python dan PyGTK
  • Vala untuk Membuat Aplikasi GUI dengan GTK

Sampel Hello World:

#impor pustaka GTK
import gtk

# membuat objek jendela
window = gtk.Window()

# konfigurasi jendela
window.set_size_request(600,200)
window.set_position(gtk.WIN_POS_CENTER)
window.set_title("Pemrograman PyGTK - Petani Kode")
window.connect("destroy", gtk.main_quit)

# tampilkan jendela
window.show()
gtk.main()

Hasilnya:

Apakah bisa membuat aplikasi menggunakan python?

PyGTK hanya mendukung untuk library GTK+ versi 2, untuk menggunakan GTK+ versi 3.. kita dianjurkan menggunakan PyGobject.

4. PyGObject

PyGObject adalah modul Python untuk membuat aplikasi GUI dengan Library GObject. GObject sendiri merupakan library berbasis OOP untuk bahasa C yang isinya GTK, GStreamer, WebKitGTK, GLib, GIO, dan lain sebagainya.

Contoh Hello World:

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk

window = Gtk.Window(title="Hello World")
window.show()
window.connect("destroy", Gtk.main_quit)
Gtk.main()

Hasilnya:

Apakah bisa membuat aplikasi menggunakan python?

PyGObject sudah digunakan di beberapa aplikasi, diantaranya:

  • Anaconda
  • MyPaint
  • Pitivi
  • GNOME Music
  • GNOME Tweak Tool
  • Orca
  • dll.

5. PyQt

PyQt adalah modul Python untuk membuat aplikasi GUI dengan library Qt. Qt Sendiri merupakan library untuk membuat aplikasi GUI pada bahasa C++.

PyQt tersedia dalam dua versi, yakni ada PyQt4 untuk Qt versi 4 dan PyQt 5 untuk Qt versi 5.

Fitur yang menarik dari Qt adalah kemampuannya membuat user interface yang menarik. Karena kita bisa gunakan Style Sheet di sana.

Berikut ini contohnya:

from PyQt5.QtWidgets import QApplication, QPushButton
app = QApplication([])
app.setStyleSheet("QPushButton { margin: 10ex; }")
button = QPushButton('Hello World')
button.show()
app.exec_()

Hasilnya:

Apakah bisa membuat aplikasi menggunakan python?

6. PySide

PySide sama seperti PyQt, ia juga menggunakan Qt untuk membuat aplikasi GUI. PySide di kembangkan oleh The Qt Company pada proyek Qt for Python.

Contoh Hello World:

import sys
from PySide import QtGui

app = QtGui.QApplication(sys.argv)

wid = QtGui.QWidget()
wid.resize(250, 150)
wid.setWindowTitle('Simple')
wid.show()

sys.exit(app.exec_())

Hasilnya:

Apakah bisa membuat aplikasi menggunakan python?

Kalau kita lihat, kodenya sama persis seperti PyQt.

7. Kivy

Kivy adalah library python untuk membuat aplikasi GUI yang bersifat cross-platform. Tidak hanya cross-platform pada lingkungan desktop. Kivy juga bisa berjalan pada mobile seperti Android, iOS, dan Raspberry Pi.

Contoh aplikasi hello world:

from kivy.app import App
from kivy.uix.button import Button

class TestApp(App):
    def build(self):
        return Button(text='Hello World')

TestApp().run()

Hasilnya:

Apakah bisa membuat aplikasi menggunakan python?

8. Pyforms

PyGorms adalah framework untuk membuat aplikasi GUI yang bisa berjalan pada Web, Desktop, dan Terminal.

Jadi dengan satu kode program, aplikasimu akan bisa dijalankan pada tiga tempat.

Contoh:

# example.py
from pyforms.basewidget import BaseWidget
from pyforms.controls   import ControlFile
from pyforms.controls   import ControlText
from pyforms.controls   import ControlSlider
from pyforms.controls   import ControlPlayer
from pyforms.controls   import ControlButton

class ComputerVisionAlgorithm(BaseWidget):

    def __init__(self, *args, **kwargs):
        super().__init__('Computer vision algorithm example')

        #Definition of the forms fields
        self._videofile  = ControlFile('Video')
        self._outputfile = ControlText('Results output file')
        self._threshold  = ControlSlider('Threshold', default=114, minimum=0, maximum=255)
        self._blobsize   = ControlSlider('Minimum blob size', default=110, minimum=100, maximum=2000)
        self._player     = ControlPlayer('Player')
        self._runbutton  = ControlButton('Run')

        #Define the function that will be called when a file is selected
        self._videofile.changed_event = self.__video_file_selection_event
        #Define the event that will be called when the run button is processed
        self._runbutton.value = self.run_event
        #Define the event called before showing the image in the player
        self._player.process_frame_event = self.__process_frame

        #Define the organization of the Form Controls
        self._formset = [
            ('_videofile', '_outputfile'),
            '_threshold',
            ('_blobsize', '_runbutton'),
            '_player'
        ]


    def __video_file_selection_event(self):
        """
        When the videofile is selected instanciate the video in the player
        """
        self._player.value = self._videofile.value

    def __process_frame(self, frame):
        """
        Do some processing to the frame and return the result frame
        """
        return frame

    def run_event(self):
        """
        After setting the best parameters run the full algorithm
        """
        print("The function was executed", self._videofile.value)


if __name__ == '__main__':

    from pyforms import start_app
    start_app(ComputerVisionAlgorithm)

Jika kita ingin menjalankan di desktop, maka cukup ketik perintah:

sudo apt install python-tk #untuk ptyhon 2
sudo apt install python3-tk # untuk python 3
0

Maka hasilnya:

Apakah bisa membuat aplikasi menggunakan python?

Apabila ingin menjalankan aplikasi di CLI atau Terminal, maka cukup tambahkan argument

sudo apt install python-tk #untuk ptyhon 2
sudo apt install python3-tk # untuk python 3
9.

sudo apt install python-tk #untuk ptyhon 2
sudo apt install python3-tk # untuk python 3
1

Maka hasilnya:

sudo apt install python-tk #untuk ptyhon 2
sudo apt install python3-tk # untuk python 3
2

Sementara ini hasilnya untuk web:

Apakah bisa membuat aplikasi menggunakan python?

9. PySimpleGUI

PySimpleGUI adalah modul Python untuk membuat aplikasi GUI dengan sintaks yang mudah dipahami.

Contoh:

sudo apt install python-tk #untuk ptyhon 2
sudo apt install python3-tk # untuk python 3
3

Hasilnya:

Apakah bisa membuat aplikasi menggunakan python?

10. Toga

Toga adalah GUI Toolkits untuk membuat aplikasi GUI secara native. Toga bisa digunakan untuk membuat aplikasi Windiws, MacOs, Linux, dan mobile seperti Android dan iOS.

Contoh aplikasi hello world:

sudo apt install python-tk #untuk ptyhon 2
sudo apt install python3-tk # untuk python 3
4

Hasilnya:

Apakah bisa membuat aplikasi menggunakan python?

Dokumentasi Toga, bisa kamu baca di sini: https://toga.readthedocs.io/en/latest/

11. PySciter

PyScipter adalah modul Python untuk membuat aplikasi GUI dengan sciter. Sciter sendiri merupakan engine yang memungkinkan kita membuat aplikasi GUI dengan HTML, CSS, dan Javascript secara tertanam (embeddable).

Contoh aplikasi yang sudah dibuat dengan Sciter:

Apakah bisa membuat aplikasi menggunakan python?

Lalu untuk contoh PySciter, kodenya seperti ini:

sudo apt install python-tk #untuk ptyhon 2
sudo apt install python3-tk # untuk python 3
5

Hasilnya:

Apakah bisa membuat aplikasi menggunakan python?

12. PyWebview

PyWebview hampir sama seperti Sciter. Ia juga bekerja seperti Web browser. PyWebview bisa kita gunakan untuk membuat aplikasi GUI berbasis HTML, CSS, dan Js. Bahkan juga bisa dikombinasikan dengan Framework web seperti Flask dan Bottle.

Installasi PyWebview:

sudo apt install python-tk #untuk ptyhon 2
sudo apt install python3-tk # untuk python 3
6

Contoh Program:

sudo apt install python-tk #untuk ptyhon 2
sudo apt install python3-tk # untuk python 3
7

Hasilnya:

Apakah bisa membuat aplikasi menggunakan python?

Jadi.. Mana yang akan Kamu gunakan?

Bingung kan mau pakai yang mana?

Kalau menurut saya, pilihlah modul GUI yang sesuai dengan kebutuhanmu.

Kalau mau aplikasinya cepat jadi, dan kamu sudah paham bahasa web seperti HTML, CSS, dan Js.. maka pilihlah yang PySciter atau PyWebview.

Tapi kalau kamu perduli dengan kecepatan dan performa aplikasi. Pilih yang menggunakan GTK, Qt, dan juga wxWiget. Karena modul-modul tersebut berjalan secara native di sistem operasi.

Atau punya pilihan lain?

Silahkan sampaikan di kolom komentar.

Oh iya, untuk modul-modul GUI yang lainnya, kamu bisa lihat di: https://wiki.python.org/moin/GuiProgramming

Aplikasi apa yang bisa dibangun dengan Python?

Sebagai bahasa pemrograman favorit, Python memiliki banyak kegunaan. Bahasa pemrograman ini digunakan untuk berbagai kepentingan, mulai dari pembuatan game offline dan online, maintenance website, machine learning, sampai aplikasi media sosial.

Apakah Python cocok untuk pemula?

Python merupakan bahasa pemrograman yang cocok dipelajari oleh pemula.