0% menganggap dokumen ini bermanfaat (0 suara)
311 tayangan14 halaman

Praktikum 9 Pemrograman Shell

Praktikum 9 membahas tentang variable lokal dan global, eksekusi bersyarat, fungsi, user interface, dan trap command pada shell scripting. Langkah-langkahnya meliputi pembuatan variable lokal dan global, eksekusi bersyarat, pembuatan fungsi, user interface menggunakan dialog box, dan penggunaan trap command."

Diunggah oleh

Febyk Alek Satria
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
311 tayangan14 halaman

Praktikum 9 Pemrograman Shell

Praktikum 9 membahas tentang variable lokal dan global, eksekusi bersyarat, fungsi, user interface, dan trap command pada shell scripting. Langkah-langkahnya meliputi pembuatan variable lokal dan global, eksekusi bersyarat, pembuatan fungsi, user interface menggunakan dialog box, dan penggunaan trap command."

Diunggah oleh

Febyk Alek Satria
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 14

Praktikum 9

Pemrograman Shell (2)

A. T U J U A N

1. Mengetahui variable local dan global di shell


2. Mengetahui eksekusi bersyarat
3. Mengenal fungsi dan cara memanggilnya
4. Mampu membuat user interface dan dialog utility
5. Mampu melakukan trap command

B. DASAR TEORI

VARIABLE LOKAL DAN GLOBAL PADA SHELL

Secara umum semua variable adalah lokal. Variable lokal digunakan pada
shell yang sama, jika anda me -load atau memanggil shell lainnya
(dengan mengetik /bin/bash pada prompt) maka shell yang baru tersebut
akan mengabaikan variable pada shell sebelumnya.

Global shell didefinisikan : Anda dapat mengkopi variable shell yang lama
ke shell yang baru.

Untuk membuat suatu variable lokal menjadi global digunakan perintah


export

sintaks :

export variable1, variable2,....variableN


EKSEKUSI BERSYARAT

Operatornya adalah && (dibaca AND) dan || (dibaca OR)

sintaks :

command1 && command2


command1 || command2

anda dapat menggunakan keduanya


sintaks :

command1 && command2 || command3

jika command1 sukses dieksekusi maka shell akan menjalankan


command2 dan jika command1 tidak sukses maka shell akan
mengeksekusi command3.

FUNGSI

Fungsi adalah program yang dapat dipanggil oleh program lainnya


dengan menggunakan notasi NamaFungsi(). Fungsi memberikan exit
status ($?) yang dinyatakan dengan return nr, atau nilai 0 sebagai default.
Membuat fungsi diawali dengan nama fungsi, parameter, kemudian blok
program yang dinyatakan dalam { … }.

Contoh :

F1( ) {
……..
……..
return 1
}

Variabel dapat didefinisikan dalam fungsi sebagai variable local atau


global. Hal yang perlu diperhatikan, nama variable yang digunakan
dalam sebuah fungsi, jangan sampai bentrok dengan nama variable yang
sama di luar fungsi, sehingga tidak terjadi isi variable berubah.

USER INTERFACE DAN DIALOG UTILITY

Program/Shell Script yang bagus harus dapat berinteraksi dengan user.


Untuk itu kita dapat menggunakan :
1. Command line argument, misal $./coba.sh 4 3, dimana 4 dan 3 adalah
command line argument bagi script coba.sh
2. Statemen echo dan read, untuk membaca input dari prompt.

Selain itu dapat juga menggunakan dialog utility.

sintaks :

dialog --tilte {judul} --backtitle {judul belakang} {Box opsi}

dimana Box opsi :

--yesno {teks} {tinggi} {lebar}


--msgbox {teks} {tinggi} {lebar}
--infobox {teks} {tinggi} {lebar}
--inputbox {teks} {tinggi} {lebar}[{init}]
--textbox {teks} {tinggi} {lebar}
--menu {teks} {tinggi} {lebar} {menu} {tinggi} {tag1} item1}...

TRAP COMMAND

Berfungsi untuk menjebak suatu command.

sintaks :
trap {commands} {signal numberlist}

Signal Number Keterangan

0 shell exit

1 hangup

2 interrupt (CTRL+C)

3 quit

9 kill

C. LANGKAH-LANGKAH
1. Masuk ke sistem operasi Linux.
2. Login sebagai mahasiswa.
3. Lakukan operasi pembuatan variable local dan global.
4. Lakukan eksekusi bersyarat
5. Buatlah fungsi
6. Buat user interface : message box, input box, yesno box, dialog
dengan menu
7. Lakukan trap command

D. PERCOBAAN

Percobaan 1 : Variable Local

1. Ketikkan variable berikut :

$vehc=Bus
$echo $vehc

2. Buka shell baru (yang kedua), lihat isi variable


$/bin/bash
$echo $vehc

3. Ketik variable di shell yang baru, tampilkan variable tersebut


$vehc=Sedan
$echo $vehc

4. Keluar dari shell baru, tampilkan variable

$exit
$echo $vehc

Percobaan 2: Variable Global

1. Ketik variable berikut :

$vehc=Bus
$echo $vehc

2. Export variable tersebut agar menjadi global, masuk ke shell baru,


lihat hasilnya

$export vehc
$/bin/bash
$echo $vehc

3. Keluar dari shell baru

$exit
$echo $vehc

Percobaan 3 : Eksekusi Bersyarat

1. Ketik command berikut :

$rm myfile && echo “File berhasil dihapus” || echo “File tidak
terhapus”
Percobaan 4 : Fungsi

1. Ketik fungsi berikut setelah prompt

$ Hallo()
{
echo “Hallo $LOGNAME, have a nice day”
return
}

2. Panggil fungsi tersebut

$Hallo

3. Fungsi ini akan hilang ketika komputer di-restart. Untuk mengatasi hal
ini dan untuk menambahkan fungsi anda dan untuk otomatisasi task
harian, masukkan fungsi ke dalam file /etc/bashrc. Untuk ini anda
harus logon sebagai root.

$ su –l

4. Buka file /etc/bashrc

#vi /etc/bashrc

4.Tekan shift+G untuk ke akhir file, tambahkan fungsi today() berikut


untuk mencetak format tanggal :

# today() untuk mencetak tanggal


# untuk menjalankan fungsi ini ketik today setelah prompt $ atau #

today()
{
echo Hari ini adalah `date +"%A %d in %B of %Y (%r)"`
return
}

5. Simpan file, lihat file setelah dimodifikasi


#cat /etc/bashrc

6. Fungsi ini akan tersedia untuk semua user. Untuk menjalankan fungsi
ini anda harus exit dahulu, lalu login kembali, kemudian jalankan
fungsi ini

#today
$today

7. Untuk membuat fungsi bagi user tertentu dan hanya tersedia bagi
user tertentu maka buka file .bashrc di home directory user

$ vi .bashrc

8. Tekan (Shift+G) untuk ke akhir file, kemudian ketik contoh fungsi


berikut

Hai()
{
echo “Hai $LOGNAME ! Tidak akan ada perubahan, kecuali anda
login kembali !”
echo “Tekan sembarang tombol…”
read
return
}

9. Simpan lalu exit. Untuk menjalankan fungsi ini anda harus exit dahulu lalu login kembali.
Fungsi ini akan tersedia hanya bagi user anda, tidak bagi semua user di sistem.

$ Hai

Note : gunakan file .bashrc di home direktori anda untuk menambahkan


alias dan fungsi

Percobaan 6 : file .bash_logout


1. Untuk membuat pesan atau aksi ketika anda logout, buka file .bash_logout lalu tambahkan apa
yang ingin anda jalankan ketika logout. Misal ketika logout anda ingin menampilkan pesan
goodbye

$vi .bash_logout

2. Lalu ketik pesan

echo “Goodbye $LOGNAME…tekan sembarang tombol”


Percobaan 7 : User Interface

1. Buat script di bawah ini untuk membaca masukan dari user

$ cat > userinterf


# script menggunakan echo dan read untuk interaksi user
echo "Ketikkan nama anda..please :"
read nama
echo "Umur anda..please :"
read umur
umurbaru=`expr $umur + 1`
echo "hallo $nama, tahun depan umurmu $umurbaru.."

2. Simpan lalu jalankan

$chmod 755 userinterf


$./userinterf

Percobaan 8 : User Interface

1. Buat script berikut :

$cat > menu1


while :
do
clear
echo "---------------------------"
echo " Menu Utama"
echo "---------------------------"
echo "[1] Lihat tanggal hari ini"
echo "[2] Lihat file pada direktori"
echo "[3] Lihat kalender"
echo "[4] Buka teks editor untuk mengetik surat"
echo "[5] Keluar"
echo "==========================="
echo -n "Pilihan anda [1-5]: "
read pil
case $pil in
1) echo "Hari ini `date`, tekan enter..." ; read ;;
2) echo "File di direktori `pwd`" ; ls -l ; echo "Tekan
enter..." ; read ;;
3) cal ; echo "Tekan enter..." ; read ;;
4) vi ;;
5) exit 0 ;;
*) echo "Ooopss..silakan pilih 1-5..";
echo "Tekan enter.." ; read ;;
esac
done

2. Jalankan script tersebut

Percobaan 9 : Dialog Utility

1. Ketik script berikut sebagai contoh penggunaan dialog utility.

$cat > dialog1


dialog --title “Linux Dialog Utility Infobox” --backtitle “Belajar
Shell Script Linux” --infobox “Dialog Box ini disebut infobox, untuk
menampilkan informasi di layar..Tekan sembarang tombol...” 7 50 ; read

2. Simpan dan jalankan

$chmod +x dialog1
$./dialog1

Percobaan 10 : Message Box

1. Ketik script ini untuk membuat message box

$cat > dialog2


dialog --title “Linux Dialog Utility Message Box” --backtitle
“Belajar Shell Script Linux” --msgbox “Dialog Box ini disebut message
box, untuk menampilkan informasi di layar beserta tombol OK..Tekan
sembarang tombol...” 9 50 ;

2. Simpan dan jalankan

$chmod +x dialog2
$./dialog2

Percobaan 11 : YesNo Box


1. Ketik script berikut untuk membuat yesno box

$cat > dialog3


dialog --title “Peringatan : Penghapusan File” --backtitle
“Belajar Shell Script Linux” --yesno “\nYakin ingin menghapus
'/usr/surat/lamarankerja' file” 7 60

sel=$?

case $sel in
0)echo “user akan menghapus file”;;
1)echo “user tidak jadi menghapus file”;;
255)echo “dibatalkan user, dengan menekan tombol [ESC]”;;
esac

2. Simpan dan jalankan

$chmod +x dialog3
$./dialog3

Percobaan 12 : InputBox

1. Ketik script berikut untuk membuat input box

$cat > dialog4


dialog --title “Inputbox – mengambil input dari user” --backtitle
“Belajar Shell Script Linux” --inputbox “Silakan masukkan nama anda” 8
60 2>/tmp/input.$$

sel=$?

na=`cat /tmp/input.$$`
case $sel in
0) echo “Hallo $na” ;;
1) echo “Cancel ditekan” ;;
255) echo “Tombol [ESC] ditekan” ;;
esac

rm -f /tmp/input.$$

2. Simpan dan jalankan

$chmod +x dialog4
$./dialog4
Percobaan 13 : Dialog Menu

1. Ketik script berikut untuk membuat menu dengan dialog

$cat > dialogmenu


dialog --backtitle “Belajar Shell Script Linux” --title “Menu
Utama” --menu “Gunakan panah [UP] [DOWN], [ENTER] untuk memilih” 15 50
3 Tanggal “Menampilkan Tanggal” Kalender “Melihat Kalender” Editor
“Membuka Editor Vi “ 2>/tmp/menuitem.$$

menuitem=`cat /tmp/menuitem.$$`

opt=$?

case $menuitem in
Tanggal) date;;
Kalender) cal;;
Editor) vi;;
esac

2. Simpan dan jalankan

$rm -f /tmp/menuitem.$$
$chmod +x dialogmenu
$./dialogmenu

Percobaan 14 : Trap Command

1. Ketik command berikut

$cat > tessinyal


ls -R /

2. Simpan dan jalankan

$chmod +x tessinyal
$./tessinyal

3. Tekan [ctrl]+c untuk menghentikannya. Ctrl+c merupakan sinyal

4. Sekarang buat script di bawah ini


$cat > tessinyal1

#Mengapa harus menjebak sinyal ?

Take_input()
{
recno=0
clear
echo "Aplikasi Catatan Appointment di Linux"
echo -n "Masukkan nama file database : "
read filename
if [ ! -f $filename ];then
echo "Maaf, $filename tidak ada, sekarang akan dibuat
$filename database"
echo "Aplikasi Catatan Appointment database file" >
$filename
fi
echo "Pemasukan data pada tanggal: `date`" >/tmp/input0.$$

while :
do
echo -n "Judul Appointment :"
read nama
echo -n "Time :"
read waktu
echo -n "Catatan :"
read catatan
echo -n "Data Okay (y/n) ?"
read jawaban

if [ $jawaban = y -o $jawaban = Y ]; then


recno=`expr $recno + 1`
echo "$recno. $nama $waktu $catatan" >> /tmp/input0.$$
fi
echo "Tambah data lagi (y/n) ?"
read isnext
if [ $isnext = n -o $isnext = N ];then
cat /tmp/input0.$$ >> $filename
rm -f /tmp/input0.$$
return #stop loop
fi
done
}

#panggil fungsi

Take_input

5. Simpan dan jalankan

$chmod +x tessinyal1
$./tessinyal1
6. Setelah mengisi beberapa data, tampilkan isi database dengan perintah
cat

$cat namadatabase

7. Jalankan lagi file tersebut

$./tessinyal1

Cukup isi satu data saja, setelah itu tekan ctrl+c sebelum
menjawab pertanyaan “Tambah data (y/n)” maka program akan
terminated(berhenti), dan temporay file akan tertinggal di /tmp
direktori.

8. Cek keberadaan temporary filename

$ls /tmp/input*

9. Untuk menghindari hal di atas maka kita perlu mendeteksi sinyal


dengan menggunakan trap command. Untuk itu tambahkan trap
statement sebelum memanggil fungsi Take_input, yaitu del_file 2. Trap
statementnya yaitu fungsi del_file, 2 berarti penekanan CTRL+C. Buka
file script di atas dan modifikasi sehingga menjadi sebagai berikut :

$vi tessinyal1

del_file()
{
echo" Penjebakan penekanan tombol [ctrl]+c"
rm -f /tmp/input0.$$
exit 1
}

Take_input()
{
recno=0
clear
echo "Aplikasi Pengingat Appointment di Linux"
echo -n "Masukkan nama file database : "
read filename
if [ ! -f $filename ];then
echo "Maaf, $filename tidak ada, sekarang akan dibuat
$filename database"
echo "Aplikasi Pengingat Appointment database file" >
$filename
fi
echo "Pemasukan data pada tanggal: `date`" >/tmp/input0.$$

while :
do
echo -n "Judul Appointment :"
read nama
echo -n "Waktu :"
read waktu
echo -n "Catatan :"
read catatan
echo -n "Data Okay (y/n) ?"
read jawaban

if [ $jawaban = y -o $jawaban = Y ]; then


recno=`expr $recno + 1`
echo "$recno. $nama $waktu $catatan" >> /tmp/input0.$$
fi
echo "Tambah data lagi (y/n) ?"
read isnext
if [ $isnext = n -o $isnext = N ];then
cat /tmp/input0.$$ >> $filename
rm -f /tmp/input0.$$
return #stop loop
fi
done
}

#memanggil fungsi
trap del_file 2
Take_input

10. Jalankan script di atas

$./tessinyal1

11. Coba tekan CTRL+C ketika pengisian data. Periksa temporary file

$ls /tmp/input*

Anda mungkin juga menyukai