PHP awalnya dikembangkan untuk lingkungan web. PHP-GTK diluncurkan pada 2000 untuk menjadikan PHP bahasa pemrograman desktop dengan mengimplementasikan toolkit GTK+ ke PHP. Tulisan ini menjelaskan proses instalasi PHP-GTK di Linux beserta contoh program "Hello World" dan beberapa istilah dasar seperti widget dan container.
1 of 3
Download to read offline
More Related Content
Php gtk
1. TUTORIALUlasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
79INFOLINUX MARET 2004www.infolinux.web.id
D
ari sekian banyak programer
Internet di dunia, ada seorang
yang bernama Andrei Zmievski
yang memiliki ketertarikan lain pada PHP.
Dia melihat bahwa PHP bisa juga dijadikan
sebagai bahasa pemrograman untuk
lingkungan desktop. Ide awalnya adalah
ketika dia melihat implementasi GTK+
pada Python dan Perl. Kalau GTK+ bisa
diimplementasikan pada Python dan Perl,
mengapa tidak jika GTK+ diimplementasi-
kan pada PHP.
Andrei Zmievski lalu meminta bantuan
James Henstridge (pengembang PyGTK)
untuk mengimplementasikan GTK+ pada
PHP. Di bulan Agustus 2000, lahirlah PHP-
GTK. PHP-GTK adalah ekstension PHP
pertama yang menjadikan PHP sebagai
bahasa untuk lingkungan desktop. Awalnya
PHP-GTK hanya bisa berjalan di lingkungan
Linux saja, namun setelah Andrei Zmievski
menyelesaikan sebagian proyek PHP-GTK-
nya, dia menunjukkan kode PHP-GTK
kepada Frank Kromann, dan dengan
bantuan Frank Kromman, PHP-GTK bisa
dijalankan di lingkungan Windows juga.
Instalasi PHP-GTK di Linux
PHP-GTK bisa di-download di http://
gtk.php.net/download.php/. Untuk Linux
pilih file source code PHP-GTK.
Karena PHP-GTK adalah ekstension PHP
dan tidak bisa berdiri sendiri, maka sebelum
menginstal dan menggunakan PHP-GTK,
Anda harus memiliki PHP terlebih dahulu.
Anda harus menginstal PHP sebagai binary/
CGI bukan sebagai Apache Modul.
Jika Anda belum memiliki PHP, silakan
download source code PHP di http://
www.php.net/downloads.php. PHP yang
harus Anda gunakan minimal versi 4.2.3.
Secara umum, instalasi PHP adalah
sebagai berikut:
Extract file source code PHP, misalkan
file source code PHP adalah php-
4.3.3.tar.gz.
#tar -xvzf php-4.3.3.tar.gz
Akan terbentuk sebuah direktori yang
berisi source code PHP. Misalkan
direktorinya adalah php-4.3.3. Masuklan
ke dalam direktori tersebut.
#cd php-4.3.3
Jalankan skrip configure untuk
memeriksa sistem dan mempersiapkan
file-file untuk proses kompilasi.
#./configure
Anda bisa memberikan parameter -with-
mysql agar PHP mendukung MySql, tapi
jangan gunakan opsi -with-apache,
misalkan:
#./configure with-mysql
Jalankan skrip make untuk melakukan
proses kompilasi source code PHP.
#make
Jalankan skrip make sekali lagi dengan
opsi install untuk menginstal file-file hasil
kompilasi ke direktori yang bersesuaian.
#make install
Bisa terjadi proses instalasi PHP tidak
berjalan dengan baik. Jika ada masalah,
Anda dapat mencari jawabannya di http://
www.php.net.
Setelah instalasi PHP selesai, Anda
dapat melanjutkannya dengan proses
instalasi PHP-GTK. Secara umum instalasi
PHP-GTK adalah sebagai berikut:
Extract file source code PHP-GTK,
misalkan file source code PHP-GTK
adalah php-gtk-0.5.2.tar.gz.
#tar -xvzf php-gtk-0.5.2.tar.gz
Akan terbentuk sebuah direktori yang
berisi source code PHP-GTK. Misalkan
direktorinya bernama php-gtk-0.5.2.
Masuklah ke dalam direktori tersebut.
#cd php-gtk-0.5.2
Jalankan skript buildconf untuk men-
setup file-file yang diperlukan dan
membuat skrip configure.
#./buildconf
Jalankan skrip configure yang telah
dibuat secara otomatis pada proses
sebelumnya.
#./configure
Jalankan skrip make untuk
mengkompilasi source code PHP-GTK.
#make
Jalankan skrip make lagi dengan opsi
install untuk menginstal PHP-GTK pada
direktori default extention PHP.
#make install
Pada beberapa kasus, instalasi tidak
berjalan mulus. Misalkan pada RH 7.3 ke
atas, proses kompilasi tidak berjalan
dengan sempurna dan berhenti di tengah
jalan. Jika hal tersebut terjadi, cobalah
untuk mengubah isi file php.ini. Biasanya
file php.ini ada di direktori /etc/php.ini. Tapi
jika tidak coba cari dengan cara:
php -i | grep ini
Buka file php.ini, dan cari statement
sebagai berikut.
memory_limit = 8MB
Ubahlah nilainya menjadi 64MB, lalu
jalankan kembali skrip make. Jika masih
ada kesalahan atau ada masalah lain
selama proses instalasi, silakan untuk
mencari penyelesaiannya di http://
gtk.php.net.
Jika proses instalasi berjalan dengan
baik, cobalah untuk masuk ke lingkungan
XWindow, dan buka terminal emulator.
Ketika dilahirkan, PHP adalah sosok bahasa pemrograman khusus untuk
lingkungan web. Sejak dilahirkan hingga sekarang, popularitas PHP sangat
luar biasa. Rasanya tidak ada satu orang pun yang berkecimpung dalam
dunia Internet tidak mengenal PHP, bahkan PHP sudah dianggap bahasa
pemrograman yang wajib dikuasai oleh setiap programer web.
PHP-GTK
PHP-GTK
2. TUTORIAL Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
www.infolinux.web.id80 INFOLINUX MARET 2004
Masuk ke direktori test pada direktori php-
gtk, dan jalankan file gtk.php sebagai
berikut.
php -q gtk.php
Jika Anda melihat tampilan seperti
Gambar 1, berarti proses instalasi PHP-GTK
telah sukses dan siap untuk belajar PHP-
GTK.
Hello World
Aplikasi PHP-GTK pertama yang akan Anda
pelajari di sini adalah aplikasi Hello World.
<?php
if (!class_exists(gtk)) {
if (strtoupper(substr(PHP_OS, 0, 3) ==
WIN)) {
dl(php_gtk.dll);
} else {
dl(php_gtk.so);
}
}
function shutdown()
{
gtk::main_quit();
}
$mainwin = &new GtkWindow();
$mainwin->connect(destroy, shut
down);
$mainwin->set_title(PHP-GTK :));
$button = &new GtkButton(Hello World!
Joy to the world);
$button->connect(clicked, shutdown);
$mainwin->add($button);
$mainwin->show_all();
gtk::main();
?>
Simpanlah skrip tersebut dengan nama
helloworld.php lalu ketik:
#php -q helloworld.php
Jika Anda klik tombol Hello World! Joy
to the world, maka skrip helloworld.php
akan berakhir.
Sekarang mari kita bahas skrip di atas.
Seperti halnya skrip PHP, skrip PHP-GTK
diawali dengan tag <?php dan ditutup
dengan tag ?>. Perhatikan pada bagian
awal skrip yang diawali dengan pernyataan
sebagai berikut:
if (!class_exists(gtk)) {
if (strtoupper(substr(PHP_OS, 0, 3) ==
WIN)) {
dl(php_gtk.dll);
} else {
dl(php_gtk.so);
}
}
Library PHP-GTK untuk Linux dan
Windows berbeda, sehingga diperlukan
pemeriksaan sistem operasi terlebih dahulu
di awal skrip PHP-GTK. Namun jika Anda
yakin bahwa skrip Anda hanya akan
berjalan di Linux, maka pernyataan di atas
bisa langsung memanggil library php_gtk.so
tanpa harus memeriksa sistem operasi
terlebih dahulu.
$mainwin = &new GtkWindow();
Pernyataan tersebut berguna untuk
membuat window utama dengan membuat
objek dari kelas GtkWindow(). Perhatikan
bahwa pembuatan objek menggunakan
kata kunci new yang diawali dengan
operator referensi &.
$mainwin->connect(destroy, shut
down);
Kemudian, kita menggunakan method
connect() untuk mendaftarkan fungsi
shutdown() sebagai handler. Handler adalah
fungsi yang bertugas untuk menangani
signal destroy yang dipancarkan oleh
window $mainwin. Jadi ketika objek
window $mainwin memancarkan signal
destroy, maka fungsi shutdown() akan
dipanggil.
$mainwin->set_title(PHP-GTK :));
Pernyataan tersebut untuk menentukan
judul window utama.
$button = &new GtkButton(Hello World!
Joy to the world);
Pernyataan di atas adalah membuat
tombol. Untuk membuat tombol bisa
dilakukan dengan membuat objek dari kelas
GtkButton().$button->connect(clicked,
shutdown);
Dengan menggunakan method
connect(), signal clicked dihubungkan
dengan fungsi shutdown().
$mainwin->add($button);
Pernyataan di atas akan menempatkan
$button pada $mainwin.
$mainwin->show_all();
Kemudian semua objek ditampilkan
pada layar.
gtk::main();
Fungsi statik gtk::main() adalah kunci
dan mutlak ada di bagian akhir skrip PHP-
GTK. Fungsi ini memberitahukan kepada
PHP-GTK bahwa pembuatan interface
sudah selesai, dan main loop dapat dimulai.
Tanpa fungsi statis ini, maka skrip akan
langsung berhenti sesaat setelah interface
ditampilkan di layar.
Beberapa istilah seputar
PHP-GTK
Widget
Dalam lingkungan PHP-GTK, widget adalah
user interface. Jadi user interface apa pun,
dalam PHP-GTK disebut widget. Widget
mungkin berwujud text box, label, frame,
window atau komponen GUI lainnya.
Semua GTK widget berasal dari kelas
abstrak GtkWidget. Semua widget juga
mewarisi method, signal, dan properties
yang diimplementasikan pada GtkWidget.
Dari sisi pandang programmer, suatu
widget memiliki 5 bagian siklus hidup yaitu:
Creation. Dalam lingkungan PHP-GTK,
ini dilakukan dengan dembuat suatu
objek. Contoh:
$window = &new GtkWindow();
Placement. Ini merupakan langkah
menambahkan / menempatkan suatu
widget pada suatu container. Secara
umum, sintak penulisan langkah ini
adalah.
$container->add($widget);
atau
$container->pack_start($widget);
atau
$container->pack_end($widget)
Signal Connection. Ini merupakan
langkah mengatur fungsi callback yang
akan digunakan. Contoh:
$widget->connect(signal, my_func);
Dengan signal merupakan keadaan
yang terdefinisi. Yang dimaksud
PHP-GTK
3. TUTORIALUlasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
81INFOLINUX MARET 2004www.infolinux.web.id
terdefinisi adalah bahwa keadaan
tersebut sudah terdaftar dalam PHP-
GTK, misalkan seperti clicked.
Sedangkan my_func adalah subrou-
tine atau fungsi yang akan dipanggil
saat signal dipancarkan.
Display. Ini menggambarkan apakah
suatu widget akan ditampilkan atau
tidak. Caranya sederhana, yaitu:
$widget->show();
$widget->hide();
Container
Suatu container adalah sebuah widget yang
bisa menampung widget lainnya. Yang
umum termasuk dalam kategori container
adalah: GtkWindow, GtkBox, dan
sebagainya. Selebihnya mareka persis sama
dengan widget lainnya. Container pun bisa
ditambahkan ke dalam container lain.
Container diturunkan dari kelas dasar
GtkContainer. GtkContainer sendiri
diturunkan dari kelas GtkWidgetSignal dan
Callback.
Dalam pemrograman GUI, sangat
diperlukan adanya mekanisme untuk
merespon suatu aksi atau tindakan yang
dilakukan oleh user ataupun oleh sesuatu
dalam skrip itu sendiri. Mengklik suatu
tombol adalah salah satu contoh aksi yang
umum dilakukan oleh user. Ketika user
mengklik suatu tombol, maka harus ada
respon atau reaksi dari skrip sesuai dengan
tujuan tombol tersebut. Misalkan, tombol
EXIT berguna untuk menghentikan jalannya
skrip. Untuk keperluan tersebut, harus ada
mekanisme yang menghubungkan aksi klik
dengan suatu fungsi yang akan memberi-
kan respon atas aksi tersebut. Contohnya
dapat dilihat pada skrip helloword.php di
atas:
$button->connect(clicked, shutdown);
Signal & Callback
Dalam PHP-GTK, mekanisme komunikasi
demikian ditangani oleh signal. Signal
berguna agar suatu skrip dapat mengetahui
bahwa ada suatu aksi yang terjadi. Sumber
suatu signal adalah widget. Signal adalah
suatu pemberitahuan yang dipacarkan oleh
widget.
Dalam PHP-GTK, fungsi yang dibuat
untuk menangani atau merespon signal
disebut dengan nama callback. Oleh karena
itu callback disebut juga signal handler
function (fungsi yang menangani /
merespon signal). Callback bisa berupa
default handler, atau user defined handler.
User defined handler adalah callback yang
didefinisikan oleh programer.
Membahas PHP-GTK tidaklah mungkin
disajikan hanya dalam sebuah artikel.
Contoh program lain juga perlu dipelajari.
Oleh karena itu, bagi rekan-rekan yang
tertarik untuk mempelajari PHP-GTK,
silakan merujuk pada referensi berikut.
Buku Tuntunan Praktis PHP-GTK yang
ditulis oleh Y.B. Mulyana dan diterbitkan
oleh ANDI.
Manual PHP-GTK: http://gtk.php.net/
Semoga dari artikel kecil ini ada manfaat
yang bisa dipetik oleh kita semua.
Mulyana (mulyana@powerfulteam.biz)
PHP-GTK
IKLAN