Anda di halaman 1dari 8

GRAPHICAL USER INTERFACE

(GUI)

A. T U J U A N
1. Membuat aplikasi GUI untuk kotak dialog menggunakan script zenity.
2. Membuat beberapa kotak dialog seperti question, calendar, entry, error,
file selection, list, notification, progress, warning, scale, info dan text info
dialog.

B. DASAR TEORI

Zenity

Zenity mempunyai peran sebagai pembuat GUI pada shell programing atau
yang disebut Grafik User Interface dimana mempunyai fungsi mempermudah
user untuk mengoperasikan programnya melalui grafis secara interaktif. Zenity
mempunyai banyak opsi seperti:
--entry : meminta input dari keyboard
--info : menampilkan text yang dimana berfungsi sebagai sebuah info
--list : membuat list berdasarkan column dan row secara tertabel dan lain-
lain.
Dengan opsi seperti diatas zenity dapat digunakan untuk membuat sebuah
question dialog box. Disamping itu zenity juga dapat digunakan untuk aplikasi
yang lain seperti calendar, entry, error, info, file selection, list, notification,
progress, warning, scale dan text info. Pada bab ini akan di ilustrasikan
bagaimana membuat aplikasi zenity dialog.

Contoh sintak zenity :

124
Kalender Dialog

Dengan menggunakan option –-calendar dapat dibuat sebuah kalender dialog.


Pada kalender dialog ini user diijinkan untuk memilih inisial yang khusus pada
perintah date yaitu dengan menggunakan option :
--text=text
Spesikasi “text” digunakan untuk menampilkan teks pada kalender dialog.
--day=day
Spesifikasi “day” digunakan untuk memilih tanggal di dalam kalender dialog.
Day harus diberi nilai angka untuk tanggal dari 1 sampai 31.
--month=month
Spesifikasi “month” digunakan untuk memilih bulan di dalam kalender
dialog. Month harus diberi nilai untuk bulan dari 1 sampai 12.
--year=year
Spesifikasi “year” digunakan untuk memilih tahun di dalam kalender dialog.
--date-format=format
Menentukan kembali format dari dialog kalender setelah seleksi tanggal
(date). Format standar tergantung pada system lokal dan format yang dapat
diterima oleh fungsi strftime misalnya %A %d/%m/%y.

File Selection Dialog


Untuk membuat file selection dialog digunakan opsi --file-selection. Zenity akan
melakukan seleksi file atau direktori ke output standard. Mode default file
selection dialog adalah buka file. File selection dialog memiliki beberapa opsi:

--filename=filename
Menentukan file atau direktori yang dipilih pada dialog pemilihan file ketika
dialog yang pertama ditampilkan.

125
--multiple
Menentukan pemilihan beberapa nama file dalam dialog pemilihan file.
--directory
Menentukan pilihan direktori pada dialog pemilihan file.
--save
Set dialog pemilihan file ke mode save.
--separator=separator
Menentukan string yang digunakan untuk membagi kembali daftar nama file.

List Dialog

Menggunakan opsi --list Untuk membuat list dialog. Zenity akan


mengembalikan entry dalam kolom pertama baris teks yang dipilih ke output
standar. Data untuk dialog kolom harus ditentukan menurut kolom, baris demi
baris. Data dapat disediakan untuk dialog melalui input standar. Setiap entri
harus dipisahkan oleh karakter baris baru. Jika menggunakan opsi --checklist
atau --radiolist, setiap baris harus dimulai dengan ’TRUE’ atau ’FALSE’. List
dialog memiliki opsi berikut:

--column=column
Menentukan header kolom yang ditampilkan dalam list dialog. Harus
ditentukan opsi –colomn untuk setiap kolom yang ingin ditampilkan dalam
dialog.
--checklist
Menentukan bahwa kolom pertama pada list dialog berisi kotak cek.
--radiolist
Menentukan bahwa kolom pertama pada list dialog berisi kotak radio.
--editable
Memungkinkan ditampilkan item yang akan diedit.
--separator=separator
Menentukan string apa yang digunakan ketika dialog mengembalikan daftar
entry yang dipilih.
--print-column=column
Menentukan apakah kolom harus dicetak pada seleksi. Default kolom adalah
'1 '. ‘ALL’ yang dapat digunakan untuk encetak semua kolom dalam list.

126
Untuk melihat penjelasan lebih detail tentang penggunaan zenity, dapat dilihat
di terminal dengan mengetik man zenity, maka akan muncul petunjuk
penggunaan zenity.

C. PROSEDUR

1. Masuk ke sistem operasi Linux.


2. Login sebagai user yang telah ditentukan.
3. Gunakan gedit/text editor untuk editor penulisan program, perintah
eog, dan zenity pada pemrograman shell.
4. Catatlah hasil dari setiap program pada prosedur no.3 sebagai
laporan sementara.

D. PERCOBAAN

Percobaan 1 : Kalender Dialog


1. Membuat kalender dialog melalui baris perintah pada prompt.
$ szDate=$(zenity --calendar --text "Pick a day" -
- title "Medical Leave" --day 23 --month 5 --year
2008); echo $szDate
2. Membuat kalender dialog dengan program shell.
#!/bin/bash
szDate=$(zenity --calendar --text "Pick a day" --
title "Medical Leave" --day 23 --month 5 --year
2008); echo $szDate
3. Menggunakan perintah if pada program kalender dialog.
#!/bin/bash
if zenity --calendar \
--title="Select a Date" \
--text="Click on a date to select that date." \
--day=20 --month=8 --year=2010
then echo $?
else echo "No date selected"
fi

Percobaan 2 : File Selection Dialog


1. Membuat file selection dialog melalui baris perintah pada prompt.

127
$ szSavePath=$(zenity --file-selection --save --
confirm-overwrite);echo $szSavePath
2. Membuat file selection dialog untuk memilih file.
#!/bin/bash
FILE=$(zenity --file-selection --
confirm-overwrite);echo $FILE
3. Membuat file selection dialog untuk memilih dan menyimpan file.
#!/bin/bash
FILE=$(zenity --file-selection –-save --confirm-
overwrite);echo $FILE
4. Membuat file selection dialog untuk memilih file dengan statement case.
#!/bin/bash
FILE=`zenity --file-selection --title="Select a File"
case $? in
0)
echo "\"$FILE\" selected.";;
1)
echo "No file selected.";;
-1)
echo "No file selected.";;
esac

Percobaan 3 : Entry Dialog

1. Memasukan teks jawaban pada entry dialog dan menampilkan pada


terminal.
$ jawab=$(zenity --entry --text "di mana kamu?" --
entry-text "di rumah"); echo $jawab
2. Memasukan password/teks tersembunyi pada entry dialog dan
menampilkan pada terminal.
#!/bin/sh
if zenity --entry \
--title="Add an Entry" \
--text="Enter your _password:" \
--entry-text "password" \ --
hide-text
then echo $?
else echo "No password entered"
fi

Percobaan 4 : Information Dialog

1. Menampilkan script zenity berupa informasi pada info dialog.

128
a. $ zenity --info --text "Join us at http//:www.eepis-
its.edu. Shell programming #2Telkom."
b. $ gksudo lsof | zenity --text-info --width 530
2. Memilih file dan menampilkan sebagai informasi kemudian perubahan
isinya disimpan pada file baru (tmp.txt)

#!/bin/bash
FILE=`zenity --file-selection \
--title="Select a File"`
case $? in
0)
zenity --text-info \
--title=$FILE \
--filename=$FILE \
--editable >/home/student/tmp.txt;;
1)
echo "No file selected.";;
-1)
echo "No file selected.";;
esac
Jalankan program, pilih satu file untuk ditampilkan isinya pada info dialog,
edit isi file tersebut kemudian close info dialognya. Bandingkan isi file yang
telah diedit dengan file tmp.txt.

Percobaan 5 : Error Dialog

1. Menampilkan pesan error pada proses instalasi.


$ zenity --error --text "Installation failed!"
2. Menampilkan pesan error penulisan program.
#!/bin/bash
zenity --error \
--text="bash: ./zenity3.sh: /bin/hash: bad
interpreter: No such file or directory."

Percobaan 6 : Question Dialog


1. Menampilkan pertanyaan pada proses shutdown.
$ zenity --question --text "Are you sure you want
to shutdown?"; echo $?
2. Menampilkan pertanyaan suatu proses.
#!/bin/bash
zenity --question \
--text="Are you sure you wish to proceed?"

129
Percobaan 7 : Warning Dialog
1. Menampilkan peringatan untuk menghentikan proses.
$ zenity --warning --text "This will kill, are
you sure?";echo $?
2. Menampilkan peringatan untuk koneksi kabel.
#!/bin/bash
zenity --warning \
--text="Disconnect the power cable to avoid
electrical shock."

Percobaan 8 : Progress Dialog


1. Menampilkan progres hasil perintah gksudo lsof pada file lsof.txt.
$ gksudo lsof | tee >(zenity --progress --pulsate)
>lsof.txt
2. Menampilkan progres update sistem log.
#!/bin/sh
(
echo "10" ; sleep 1
echo "# Updating mail logs" ; sleep
1 echo "20" ; sleep 1
echo "# Resetting cron jobs" ; sleep 1
echo "50" ; sleep 1
echo "This line will just be ignored" ; sleep
1 echo "75" ; sleep 1
echo "# Rebooting system" ; sleep
1 echo "100" ; sleep 1
) | zenity --progress \
--title="Update System Logs" \
--text="Scanning mail logs..." \
--percentage=0
if [ "$?" = -1 ] ; then
zenity --error \
--text="Update canceled."
fi

Percobaan 9 : Notification Icon Dialog


1. Menampilkan file gambar sebagai notification
icon. a. dari prompt
$ zenity --notification --window-icon="bich6.gif"
--text "Please update your system."
b. dari program .sh
#!/bin/bash
zenity --notification --window-icon="bich6.gif" --
text "Please update your system."

130
2. Menampilkan info sebagai notification icon.
#!/bin/bash
zenity --notification\
--window-icon="info" \
--text "There are system updates necessary!"

Percobaan 10 : Scale dan List Dialog


1. Menampilkan dialog untuk pengaturan nilai skala.
#!/bin/bash
ans=$(zenity --scale --text "pick a number" --min-
value=2 --max-value=100 --value=2 --step 2);echo $ans
2. Menampilkan list dialog dalam bentuk radio (radiolist).
#!/bin/bash
ans=$(zenity --list --text "Is linux.byexamples.com
helpful?" --radiolist --column "Pick" --column
"Opinion" TRUE Amazing FALSE Average FALSE "Difficult
to follow" FALSE "Not helpful"); echo $ans
3. Menampilkan list dialog dalam bentuk check list.
#!/bin/sh
ans=$(zenity --list --text "How linux.byexamples
can be improved?" --checklist --column "Pick" --
column "options" TRUE "More pictures" TRUE "More
complete post" FALSE "Includes Installation
guidelines" FALSE "Create a forum for question
queries" --separator=":"); echo $ans
4. Menampilkan list dialog dalam bentuk daftar tabel (kolom).
#!/bin/sh
zenity --list \
--title="Choose the Bugs You Wish to View" \
--column="Bug Number" --column="Severity" --
column="Description" \
992383 Normal "GtkTreeView crashes on multiple
selections" \
293823 High "GNOME Dictionary does not
handle proxy" \
393823 Critical "Menu editing does not work in
GNOME 2.0"

Anda mungkin juga menyukai