TUJUAN PRAKTIKUM

1) Praktikan mengetahui apa yang dimaksud dengan “Shell”.
2) Praktikan mengenal jenis-jenis Shell.
3) Praktikan mengenal kegunaan dari Shell.
4) Praktikan menguasai pemograman di dalam Shell (Bourne dan Korn Shell).

TEORI PENUNJANG

A. Pendahuluan.

Shell merupakan perangkat lunak yang berfungsi sebagai penerjemah perintah, berisikan sejumlah perintah (yang sering kita gunakan pada promt shell) dimana dapat kita jadikan sebagai satu prosedur dan dapat disimpan pada satu file .
Manfaat yang dapat diperoleh dengan adanya shell adalah:
1. Menangani sebuah prosedur yang terdiri dari sejumlah perintah.
2. Membangun utilitas yang sangat bermanfaat bagi banyak pemakai.
3. Menyederhanakan sebuah perintah yang sering dipergunakan.
Ada beberapa jenis shell yang sering dipergunakan, di antaranya:
1. Bourne Shell, diciptakan Stephen R. Bourne.
2. C Shell, diciptakan Bill Joy.
3. Korn Shell, diciptakan David G. Korn.

B. Komentar.
Komentar diawali dengan tanda #. Semua karakter sesudah tanda itu hingga akhir baris diperlakukan sebagai komentar.

C. Variabel Shell.

• Digunakan untuk menyimpan suatu nilai (bilangan atau string).
• Nilai dalam suatu variabel dapat juga diatur agar isinya tidak dapat berubah.
• Setiap pemakai mempunyai variabel tersendiri. Perubahan variabel atau penambahan variabel pada seorang pemakai tidak mempengaruhi pemakai yang lain.
• Variabel yang diciptakan pada prompt shelll akan hilang dengan sendirinya pada saat proses logout. Variabel yang dibuat pada shell script akan hilang pada saat eksekusi shell script berakhir.
• Dalam sistem operasi Linux, ada juga beberapa variabel bawaan yang telah disediakan. Variabel ini disebut juga variabel lingkungan, karena dipakai untuk mengontrol lingkungan dari pemakai. Di antaranya: PATH, HOME, CDPATH, MAIL, dan lain-lain.
• Selain variabel bawaan, seorang pemakai dapat juga mendefinisikan sendiri variabel.
Adapun aturan mengenai pemberian nama variabel adalah:
1) Nama variabel diawali dengan sebuah abjad atau karakter garis bawah ( _ ), kemudian diikuti oleh sejumlah karakter ( a-z A-Z 0-9 atau _ ).
2) Panjang variabel bebas.
3) Huruf kapital dan huruf kecil mempunyai makna yang berbeda.
4) Pemberian nilai pada sebuah variabel diantaranya dilakukan dengan pernyataan assigment, tanda sama dengan ( = ).
5) Jika nilai yang diberikan pada suatu variabel mengandung spasi, nilai tersebut harus diawali dan diakhiri tanda “ atau ‘.
• Pada Linux, dikenal adanya variabel lokal (variabel yang terdapat pada script anak, yaitu suatu shell script yang dipanggil oleh shell script yang lain ) dan variabel global (variabel ekspor, pada script induk). Pemberian nilai pada variabel global di script anak tidak akan mempengaruhi nilai variabel tersebut di shell induk.
• Untuk melihat seluruh variabel yang telah didefinisikan pemakai, dapat digunakan perintah:
set | pg atau
set | more.
• Perintah unset digunakan untuk menghapus variabel.
• Pernyataan readonly sebelum nama variabel, mengakibatkan nilai pada variabel tersebut tidak dapat diubah.
• Membaca data dari papan ketik (keyboard) dan meletakkannya pada variabel menggunakan perintah read.

D. Nilai Exit.

Semua perintah Linux menghasilkan nilai keluaran yang disebut sebagai nilai exit. Jika perintah berhasil dilaksanakan akan menghasilkan nilai ezit sama dengan nol, selain itu ada kesalahan dalam menjalankan perintah tersebut. Nilai exit tersebut dapat diketahui dengan menggunakan variabel $?.

E. Test.

Perintah ini berfungsi untuk memeriksa kebenaran dari suatu ungkapan. Ungkapan itu dapat berupa bilangan, string, file dan juga operator.
Pada halaman berikut disajikan macam-macam ungkapan yang mungkin dilakukan.

F. Struktur Kontrol if-else.

1) Pada kondisi, test ungkapan dapat digunakan untuk memeriksa kebenaran dari suatu ungkapan. Selain itu dapat pula digunakan bentuk [ ungkapan ].
2) Pada Gambar 1, perintah_1 dilaksanakan jika kondisi benar. Jika tidak benar maka perintah_2 yang dilaksanakan.
3) Gambar 3 merupakan penyederhanaan dari Gambar 2, hanya saja bentuk
else
if kondisi
disingkat menjadi:
elif kondisi

NO UNGKAPAN KETERANGAN
1. b1 -eq b2 Benar jika bilangan bulat b1 sama dengan b2
2. b1 -ne b2 Benar jika bilangan bulat b1 tidak sama dengan b2
3. b1 -gt b2 Benar jika bilangan bulat b1 lebih besar dari b2
4. b1 -lt b2 Benar jika bilangan bulat b1 lebih kecil dari b2
5. b1 -ge b2 Benar jika bilangan bulat b1 lebih besar atau sama dengan b2
6. b1 -le b2 Benar jika bilangan bulat b1 lebih kecil atau sama dengan b2
7. -z s1 Benar jika string s1 sama dengan kosong
8. -n s1 Benar jika string s1 tidak sama dengan kosong
9. s1 = s2 Benar jika string s1 sama dengan string s2
10. s1 != s2 Benar jika string s1 tidak sama dengan string s2
11. s1 Benar jika string s1 tidak sama dengan kosong
12. -r file Benar jika file ada dan bersifat readable (dapat dibaca)
13. -w file Benar jika file ada dan bersifat writeable (dapat ditulis)
14. -x file Benar jika file ada dan bersifat executable (dapat dijalankan)
15. -f file Benar jika file ada dan merupakan ordinary file.
16. -s file Benar jika file ada dan isinya tidak kosong
17. -d file Benar jika file ada dan berupa suatu direktori
18. ! Operator not
19. -a Operator and
20. -o Operator or
21. \( ungkapan \) Pengaturan prioritas

Bentuk umum:

if kondisi
then
perintah_1
. . .
else
perintah_2
. . .
fi

Gambar 1 Struktur kontrol if-else.

if kondisi_1
then
perintah_1
. . .
else
if kondisi_2
then
perintah_2
. . .
else
perintah_3
. . .
fi
fi

Gambar 2 Struktur kontrol if-else bertingkat.

if kondisi_1
then
perintah_1
. . .
elif kondisi_2
then
perintah_2
. . .
else
perintah_3
. . .
fi

Gambar 3 Penyederhanaan struktur kontrol if-else bertingkat.

G. Struktur kontrol case.

case $variabel in
isi_1)
perintah_1
. . .
;;
isi_2)
perintah_2
. . .
;;
*)
perintah_3
. . .
case

Gambar 4 Struktur kontrol case.

1) Tanda kurung tutup “)” merupakan tanda akhir dari kemungkinan isi dari variabel.
2) Tanda “*” menyatakan bagian yang dieksekusi bila tidak ada nilai yang cocok dengan nilai di dalam variabel.
3) Sedangkan antara pernyataan yang satu dengan pernyataan yang lain dipisahkan dengan tanda titik koma dua kali ( ;; ).

H. Perintah for.

for variabel [ in daftar_argumen ]
do
perintah
. . .
done

Gambar 5 Struktur perintah for.

Perintah-perintah yang terletak di antara do dan done akan dilaksanakan untuk setiap nilai yang terdapat pada daftar_argumen. Nilai dari variabel untuk setiap proses akan berubah sejalan dengan nilai yang terdapat pada daftar_argumen.

I. Perintah while.

while kondisi
do
perintah
. . .
done

Gambar 6 Struktur perintah while.

J. Perintah until.

until kondisi
do
perintah
. . .
done

Gambar 7 Struktur perintah until.

1) Perintah yang terletak di antara do dan done akan dilaksanakan selama kondisi salah..
2) Pemeriksaan kondisi dilakukan di akhir, jadi perintah di antara do dan done minimal dilaksanakan sekali.

K. Perintah break.

Digunakan untuk membuat aliran dari program keluar dari looping. Dengan perintah ini, pernyataan sesudah done akan dilaksanakan. Biasanya digunakan pada perintah looping while.

L. Perintah continue.

Perintah ini biasanya digunakan bersamaan dengan peintah looping for. Dengan perintah ini, aliran program dipaksa untuk melakukan proses selanjutnya dengan nilai argumen berikutnya.

M. Perintah select.

• Merupakan perintah pada Korn Shell (pada Bourne Shell tidak ada) yang digunakan untuk membuat menu.
• Diakhiri dengan .

select variabel in daftar
do
perintah
. . .
done

Gambar 8 Struktur perintah select.

• Perintah di antara do dan done dilaksanakan setiap pemakai memberikan pilihan yang terdapat dalam daftar.
• Perintah yang berkaitan dengan perintah select ini biasanya adalah PS3 (variabel bawaan yang digunakan untuk memperoleh pilihan) dan case untuk mengendalikan pilihan, dimana variabel dijadikan variabel kontrol untuk melakukan pemilihan.

N. Fungsi.

• Mempunyai maksud yang sama dengan Shell (dalam berisikan sejumlah perintah), namun harus didefinisikan dan dipanggil pada file yang sama.
• Sebuah fungsi didefinisikan dengan diawali nama fungsi dan diikuti tanda kurung ( ), dan perintah-perintah yang ada diawali dengan simbol { dan diakhiri simbol }.
• Fungsi dijalankan dengan memanggil nama fungsi.
• Fungsi dapat juga memiliki argumen.
• Fungsi dapat juga memberikan nilai balik, melalui perintah return.