author Ahmad Muhardian

Tutorial PyGTK #1: Belajar Pemrograman GUI dengan Python dan PyGTK di Linux


PyGTK: Pemrograman GUI dengan Python dan GTK

GUI adalah singkatan dari Graphical User Interface.

Aplikasi GUI memang mudah digunakan. Karena terdapat tampilan visual grafis yang bisa diklik.

Salah satu modul atau library yang sering digunakan untuk membuat aplikasi GUI adalah GTK+.

Pada kesempatan ini, kita akan menggunakan modul tersebut dengan mencoba membuat sebuah jendela atau window.

Mari kita mulai…

Apa itu GTK+ dan PyGTK?

Sebelum itu, kamu harus pahami dulu apa perbedaan dari GTK+ dan PyGTK.

GTK+ (GIMP Toolkit) merupakan library yang digunakan untuk membangun antarmuka grafis.

Mengapa disebut GIMP Toolkit?

Karena proyek GTK+ merupakan bagian dari proyek GIMP atau dengan kata lain, proyek GTK+ sama-sama digarap saat membuat proyek GIMP.

GTK+ sendiri merupakan library yang digunakan dengan bahasa C, sedangkan untuk python kita menggunakan PyGTK.

PyGTK adalah modul python yang berisi GTK+ atau dengan kata lain:

PyGTK adalah wrapper (pembungkus) GTK+ sehingga kita bisa menggunakan library ini di dalam Python.

Website Resmi PyGTK

Informasi lebih lengkap mengenai PyGTK, dapat dibaca pada website resminya www.pygtk.org.

📢 Update 28 Januari 2019:

PyGTK kini sudah berubah menjadi PyGObject. PyGObject lebih modern dibandingkan PyGTK karena sudah mendukung GTK 3. Sedangkan PyGTK hanya GTK 2 saja.

Persiapan Pemrograman PyGTK

Adapun peralatan yang harus dipersiapkan untuk memulai pemrograman PyGTK adalah sebagai berikut

1. Teks Editor

Teks editor akan digunakan untuk menulis kode.

Gunakan teks editor yang kamu sukai.

Beberapa teks editor rekomendasi: Atom, Ms. Visual Studio Code, Komodo Edit, Geany, dsb.

Teks editor atom

2. Python

Sebagian besar distro Linux sudah membawa python pada distribusinya, jadi tidak perlu diinstal.

Silakan cek versi yang terinstal di terminal dengan perintah:

$ python --version
Python 2.7.6

Perlu diketahui:

PyGTK hanya mendukung untuk Python 2. Jika ingin menggunakan Python 3, silakan gunakan PyGObject.

3. PIP

PIP merupakan sebuah program untuk manajemen paket atau modul di dalam Python.

Kita membutuhkan PIP untuk menginstal modul PyGTK.

Cara instal PIP, ketik perintah ini di terminal.

sudo apt install python-pip # untuk python 2
sudo apt install python3-pip # untuk python 3

4. Modul PyGTK

Modul PyGTK secara default tidak terinstal di dalam komputer kita, maka dari itu.. kita membutuhkan PIP untuk menginstalnya.

Namun, sebelum itu.. kita instal dulu setuptools.

sudo apt install python-setuptools #untuk python 2
sudo apt install python3-setuptools #untuk python 3

Setuptools adalah tools yang akan digunakan untuk mengintegrasikan paket yang diinstal dengan pip ke dalam sistem.

Setelah itu, barulah kita instal modul PyGTK dengan perintah berikut:

sudo pip install PyGTK

Install PyGTK untuk Ubuntu 20.04

Karena PyGTK sudah berubah menjadi PyGObject, maka instalasi di Ubuntu 20.04 atau distro terbaru lainnya akan error seperti ini.

install pygtk ubuntu error

Solusinya:

Install PyGTK secara manual melalui file .deb. Silakan ikuti perintah berikut:

# download file deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/p/pygtk/python-gtk2_2.24.0-5.1ubuntu2_amd64.deb -O pygtk.deb

# install file deb
sudo apt install ./pygtk.deb

Setelah itu, coba tes dengan import gtk melalui shell python.

Hasilnya:

import pygtk

Membuat Window dengan PyGTK

Setelah semua peralatan siap, mari kita coba membuat sebuah jendela.

Jendela merupakan bagian utama dari aplikasi GUI.

Buatlah file baru bernama jendela.py, kemudian isi dengan kode berikut:

#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()

Setelah itu, simpan dengan nama jendela.py dan eksekusi dengan perintah:

python jendela.py

Maka hasilnya:

Membuat Jendela dengan PyGTK

Jika berhasil muncul seperti pada gambar, berarti program PyGTK pertama kita berhasil.

Selamat… 🎉

Baiklah, sekarang saatnya saya jelaskan arti kode di atas.

Pertama-tama kita mengimpor modul gtk:

import gtk

Setelah itu membuat objek window dari class Window() pada modul gtk:

window = gtk.Window()

Object window berisi beberapa method yang bisa kita gunakan untuk memodifikasi tampilan jendela seperti:

  • set_size_request(600,200) untuk menentukan ukuran jendela.
  • set_position(gtk.WIN_POS_CENTER) untuk menentukan posisi muncul jendela. gtk.WIN_POS_CENTER artinya posisi munculnya di tengah-tengah layar.
  • set_title() untuk memberikan judul jendela.
  • connect("destroy", gtk.main_quit) untuk menghubungkan sinyal "destroy" dengan fungsi main_quit. Artinya, ketika tombol close diklik… aplikasi akan langsung keluar.
  • show() untuk menampilkan jendela.

Pada bagian akhir program di atas, kita memanggil method:

gtk.main()

Method gtk.main() adalah main loop (perulangan utama) yang menjaga jendela tetap terbuka.

Paham?

Kalau begitu…

Mari kita lanjutkan dengan membuat jendela, tapi dengan Classs

Membuat Jendela dengan Class

Pada contoh di atas kita membuat jendela dengan membuat langsung objek dari class gtk.Window().

Sebenarnya ada cara lain, yaitu dengan membuat turunan dari class Window()

Perhatikan kode berikut:

import gtk

class App(gtk.Window):
    def __init__(self):
        super(App, self).__init__()

        self.connect("destroy", gtk.main_quit)
        self.set_size_request(250, 150)
        self.set_position(gtk.WIN_POS_CENTER)
        self.show()

# Tampilkan Jendela
App()
gtk.main()

Hasilnya:

Membuat jendela dengan class

Hasilnya akan sama.

Cara ini mungkin akan sangat berguna saat kita bekerja aplikasi skala besar. Karena kita bisa menerapkan konsep-konsep OOP di sini.

Mengubah Ikon Aplikasi

Selanjutnya kita coba jelajahi, method apa saja yang dimiliki oleh class Window()

Salah satunya adalah set_icon_from_file() yang fungsinya untuk mengubah ikon.

Baiklah, silakan buat file baru dengan nama ikon.py. Kemudian isi dengan kode berikut.

import gtk

class App(gtk.Window):
    def __init__(self):
        super(App, self).__init__()

        self.connect("destroy", gtk.main_quit)
        self.set_size_request(250, 150)
        self.set_position(gtk.WIN_POS_CENTER)
        self.set_title("Jendela dengan Ikon")
        self.set_icon_from_file("icon.png")
        self.show()

App()
gtk.main()

Hasilnya:

Jendela dengan ikon

Apa Selanjutnya?

Kita sudah tahu cara membuat jendela dengan PyGTK, selanjutnya cobalah menambahkan tombol dan label di dalamnya.

Oh iya, source code tutorial tersedia di Github:

[ 🎁 Download Source Code]