(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.
124
Kalender Dialog
--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
--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
D. PERCOBAAN
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
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.
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."
130
2. Menampilkan info sebagai notification icon.
#!/bin/bash
zenity --notification\
--window-icon="info" \
--text "There are system updates necessary!"