MAKALAH SEMINAR TUGAS AKHIR PERIODE JANUARI 2009 IMPLEMENTASI PARSER UNTUK GUI BUILDER DARI FAST LIGHT TOOLKIT DAN MENGHASILKAN KODE PYTHON Yulia Eka Christia Sari. Wahyu Suadi, S.Km, Jurusan Teknik Infrmatika, Fakultas Teknlgi Infrmasi, Institut Teknlgi Sepuluh Npember, Email: yulia@cs.its.ac.id Abstrak Fast Light Tlkit atau yang biasa disebut dengan FLTK merupakan Graphical User Interface (GUI) library yang independent dan dapat berjalan crss platfrm. Dengan memanfaatkan FLTK, para develper atau prgrammer dapat menggunakannya untuk membuat GUI dengan menggunakan FLUID yang kemudian hasilnya dapat digenerate menjadi bahasa C++. Sehingga para develper ataupun user yang menginginkan pembuatan aplikasi berbasiskan GUI dengan praktis, maka dapat memanfaatkan keunggulan FLTK melalui FLUID Designer. File yang telah dihasilkan dari FLUID ketika user membuat sebuah GUI, ternyata memiliki struktur file yang menyerupai XML yang memungkinkan kita memparsing file tersebut. Dari hasil parsing tersebut kita dapat melakukan generate ke dalam utput bahasa lain. Sampai sekarang para develper sudah ada memanfaatkan file fluid untuk digenerate ke dalam bahasa phytn, yang bernama flcnvert. Dengan sejalan perkembangan yang ada, FLTK telah berada pada versi FLTK2, dimana fitur fitur FLTK2 lebih lengkap dari pada FLTK1, Sementara ini belum ada aplikasi yang mengenerate FLTK2 ke dalam bahasa pythn. Maka pada Tugas Akhir ini saya akan membuat aplikasi tersebut. Bagaimana cara melakukan parsing untuk merubah file struktur GUI yang telah dibuat degan FLUID2 menjadi utput bahasa pythn, yang akan dijelaskan pada buku ini. Bahasa pythn merupakan imprvement dari bahasa C dan C++. Bahasa pythn dibuat sebagai bentuk dari keinginan para develper untuk membuat bahasa serupa C++. Dengan bahasa pythn kita dapat membuat GUI dengan menggunakan pyfltk. pyfltk adalah binding untuk library FLTK, yang memungkinkan pemakaian library ini didalam pythn. Kata kunci: FLTK, pyfltk, FLUID2, Pythn. Light Tlkit adalah libaray GUI yang platfrm independent (unix, linux, win32, MacOS). Sistem ini mengutamakan pemaikan resurce yang minimal dengan mengimplimentasikan sejumlah widget sederhana namun fungsinal. Libarry ini dibuat dalam bahasa c++ dan memiliki GUI (fluid) yang memiliki wizard untuk menghasilkan utput dalam bahasa c++ juga. Tujuan dari tugas akhir saya adalah menghasilkan utput dalam bahasa pythn. Dengan menggunakan Pyfltk, karena pyfltk adalah binding untuk library FLTK, yang memungkinkan pemaikan library didalam pyhn. Sebenarnya sudah ada prject yang mengerjakan hal yang sama (flcnvert). Tapi prject ini sudah tidak update (sejak Nvember 2003) dan tidak mampu lagi menglah data dengan ftmat yang baru. Maka disini saya mengupdate (flcnvert) supaya dapat menglah data dengan frmat yang baru. 2. FLUID2 FLUID (Fast LIght User Interface Designer) merupakan wizard yang terbentuk dari hasil cmpile surce FLTK. Ketika kita mendwnlad paket FLTK, maka fluid secara tmatis sudah termasuk satu paket didalamnya. Akan tetapi masih berupa surce dan belum menjadi file executable yang siap pakai. Untuk dapat digunakan maka fluid surce perlu kita rebuild dan cmpile supaya menghasilkan executable yang siap untuk dipakai. Dengan fluid maka kita dapat membuat widget dalam bahasa C++ yang kemudian dapat kita generate hasilnya ke dalam kde C++ dan siap digunakan sesuai dengan kebutuhan masing masing develper atau pengguna aplikasi. Setelah merancang sebuah applikasi, FLUID menyusun.fl files ke dalam.cxx file, yang menggambarkan semua bject dari.fl file, dan.h file, yang mana semua deklarasi menjadi glbal.fluid juga mendukung lkalisasi label string yang menggunakan pesan file dan GNU gettext atau POSIX catgets interfaces. 1. PENDAHULUAN Perkembangan teknlgi infrmasi yang berkembang dengan pesat pada saat ini Fast 1
Gambar 1. Flwchrat Fluid Didalam Fluid2 ada widget widget class dan fiture yang di sediakan leh Fluid2. Widget class yang tersedia di FLUID2 terdiri dari widget buttn, widget grup, widget valuatr, widget text, widget, widget ther. Widget buttn terdiri dari widget return buttn, widget light buttn, widget check buttn, widget radi buttn, widget repeat buttn. Widget Valuatr terdiri dari widget slider, widget valueslider, widget valueinput, widget valueutput, widget scrllbar, widget adjuster, widget dial, widget thumbweel, widget prgressbar. Widget text terdiri dari widget input, widget utput, widget textdisplay, widget texteditr, widget fileinput. Widget menu terdiridari widget menubar, widget ppupmenu, widget chice, widget brwser, widget inputbrwser, widget filebrwser, widget item, widget divider. Widget grup terdiri dari widget windw, widget packedgrup, widget tabgrup, widget scrllgrup, widget tiledgrup, widget statusgrup, widget bargrup, widget statusgrup. Widget ther terdiri dari widget clck, widget help. Sedangkan fiture yang ada di dalam fluid terdiri dari xywh, label, hide, deactivate, resizable, buttn bx, clr, buttn clr label clr, align, highlight_clr, highlight_label_clr. Tampilan FLUID2 bisa di lihat di bawah ini Gambar 2. Jendela Inspectr Gambar 3. Widget Bin 3. FLTK FLTK adalah tlkit GUI yang gratis, pen surce, sangat kecil, cepat dan prtabel (Linux, Windws, Macintsh). Memiliki lisensi LGPL dimdifikasi yang memungkinkan terhubung statis. FLTK dirancang untuk mdular kecil dan cukup untuk dapat terhubung statically, tetapi bekerja dengan baik sebagai sebuah shared library. FLTK terdapat juga GUI builder yang disebut FLUID yang dapat di gunakan membuat aplikasi dalam beberapa menit. 4. DESAIN DAN IMPLEMENTASI Aplikasi Cnvert adalah suatu aplikasi untuk mengenerate kde fluid ke kde pythn. Jadi kita harus membuat GUI di FLUID2 terlebih dahulu setelah itu disimpan didalam fólder. Untuk melakukan pengeneratetan, di dalam aplikasi cnvert ada pilihannya untuk mengerate ke kde pitón. 4.1. Arsitektur Implementasi Dibawah ini merupakan rancangan inti dari aplikasi cnvert 2
Gambar. 4. Rancangan Cnvert File fluid2 ini sebagai input dari aplikasi cnvert lalu dip rses dengan cara memparsing widget widget dan prperty yang ada di file fluid melalui template template yang dibuat, setelah itu menampilkan utputnya berupa kde pythn. Dibawah ini merupakan alur diagram prses parsing fluid maka keprses berikutnya yaitu readline lalu di cek filenya,ada sebuah string yang mengandung widget fluid2 atau tidak, yang melakukan pengecekkan tken string mengandung sebuah widget fluid adalah fungsi IsItem, jika tidak mengandung widget fluid2 maka akan kembali lagi ke prses readline, jika mengantung widget fluid maka akan ke prses berikutknya, yaitu ReadItem yang berfungsi untuk melakukan pembacaan Widget, lalu ke prses berikutnya, yaitu vid WriteItem ini berfungsi untuk menulis pendeklarasian widget widget FLUID2 ke kde Pythn, dalam prses vid WriteItem ini akan di cek, widget punya child atau tidak, jika tidak maka kembali ke prses readline, jika ya maka kembali ke while!eof, dan fungsi untuk menulis.pendeklarasian widget widget FLUID2 yang mempunyai child yaitu fungsi Vid WriteItemWithParent. Sebelum ke prses ReadItem akan di cek terlebih dulu ada prperty yang ada didalam widget FLUID2 tersebut atau tidak, yang melakukan fungsi pengecekkan ini adalah Isprp, jika ada maka akan di baca leh fungsi ReadPrperty, setelah dibaca maka di ambil lah nilai prperty yang ada di widget dan parent, fungsi yang mengambil nilai ini adalah Vid ReadValue, Setelah dibaca maka akan di tulis nilai nilai prperty yang ada,yang dilakukan leh fungsi VidWritePrp. 4.2. Desain Implementasi Seperti terlihat pada Gambar pada tampilan GUI cnvert ada 3 pilihan yaitu File, Actin, dan Abut. Jika kita belum membuat tampilan GUI di FLUID2, kita bisa membuatnya terlebih dahulu. Pilih File klik create, di situ akan muncul aplikasi FLUID2, setelah kita buat maka kita simpan di derrktri, setelah tersimpan kita pilih File pen, pilih dimana kita membuat kde FLUID2 tadi setelah itu pilih Actin klik cnvert untuk mengenerate ke kde pythn Gambar 5. Flwchart Parsing Flui File fluid2 di cek, tidak sama dengan end f file atau tidak. jika ya maka stp, jika tidak 3 Gambar 6. Tampilan GUI Cnvert
5. UJI COBA Uji cba dilakukan untuk mencba prgram cnvert ini berjalan dengan baik atau tidak. Uji cba ini terdiri dari beberapa skenari, yaitu mengcnvert kde fluid ke kde pythn yang sedeharana dan mengcnvert kde fluid ke kde pythn yang kmplek. 5.1. Uji Cba Pertama Pada skenari yang pertama ini mengcnvert widget yang sederhana, misalnya widget windw, dan widget buttn. Widget Windw 5.2. Uji Cba Kedua Pada skenari yang kedua ini mengcnvert widget yang lebih cmpleks, misalnya widget text, dan widget tabgrup. Widget text Output Pythn Output Pythn Widget Buttn Widget TabGrup Output Pythn 4
Output Pythn 6. SIMPULAN Setelah dilakukan serangkaian uji cba terhadap aplikasi, maka dapat diambil kesimpulan sebagai berikut : 1. Aplikasi Cnvert dapat berjalan dengan baik untuk melakukan generate GUI ke dalam bahasa Pythn melalui file fluid2 yang telah dibuat. 2. Beberapa prperty yang ada didalam file fluid2 bisa di generate kedalam file pythn. 7. DAFTAR PUSTAKA 1) http://www.fltk.rg/, Library Fast Light Tlkit, di akses tanggal 15 ktber 2008. 2) http://pyfltk.surcefrge.net, Library PyFLTK, diakses tanggal 4 nvember2008 3) http://pypi.pythn.rg, Library Pythn, diakses tanggal 4 desember 2008 4) http://www.fltk.rg/dc-1.1/fluid.html FLUID, diakses tanggal 31 desember 2008 5