Cari Blog Ini

Selasa, 10 Desember 2013

TUGAS KE-6 PRAKTIKUM SISTEM OPERASI (SHELL PROGRAMMING)

Shell Programming


A.                Pemrograman Shell

Shell adalah program (penterjemah perintah) yang menjembatani user dengan sistem operasi dalam hal ini kernel (inti sistem operasi), umumnya shell menyediakan prompt sebagai user interface, tempat dimana user mengetikkan perintah-perintah yang di inginkan baik berupa perintah internal shell (internal command), ataupun perintah eksekusi suatu file progam (eksternal command), selain itu shell memungkinkan user menyusun sekumpulan perintah pada sebuah atau beberapa file untuk dieksekusi sebagai program. Perintah-peritah yang diketikkan oleh user dari input standart yaitu keyboard akan ditafsirkan oleh shell, jika yang diketikkan oleh user merupakan program yang dapat di eksekusi maka shell akan menjalankan program tersebut. Untuk melihat jenis Shell apa saja yang ada dalam sebuah system operasi Linux dapat dialkukan dengan menuliskan perintah berikut :

$ ls /etc/shells <enter>

Shell apa yang sedang aktif saat ini, dapat digunakan perintah berikut:

$ echo $shell <enter>

B.                 Dasar-dasar Shell Programming

Sebelum mempelajari pemrograman Bash shell di linux sebaiknya anda telah mengetahui dan menggunakan perintah - perintah dasar shell baik itu internal command yang telah disediakan shell maupun eksternal command atau utility, seperti : cd, pwd, times, alias, umask, exit, logout, fg, bg, ls, mkdir, rmdir, mv, cp, rm, clear, ...utilitas seperti cat, cut, paste, chmod, lpr,...
redirection (cara mengirim output ke file atau menerima input dari file), menggunakan operator redirect >, >>, <, <<, contohnya:

$ ls > data
hasil ls dikirim ke file data, jika file belum ada akan dibuat tetapi jika sudah ada isinya akan ditimpa.

$ ls >> data
hampir sama, bedanya jika file sudah ada maka isinya akan ditambah di akhir file.

$ cat < data
file data dijadikan input oleh perintah cat
pipa (output suatu perintah menjadi input perintah lain), operatornya : | , contoh:

$ ls -l | sort -s
ouput perintah ls -l (long) menjadi input perintah sort -s (urutkan secara descending), mending pake ls -l -r saja :-)

$ ls -l | sort -s | more
$ cat <data | sort > databaru

Wildcard dengan karakter *, ?, [ ], contohnya:
$ ls i*
tampilkan semua file yang dimulai dengan i

$ ls i?i
tampilkan file yang dimulai dengan i, kemudian sembarang karakter tunggal, dan diakhiri dengan i

$ ls [ab]*
tampilkan file yang dimulai dengan salah satu karakter a atau b

C.                Variabel pada Shell

       I.            Variabel Lokal
Yang dimaksud dengan variabel lokal adalah variabel yang nilainya langsung diisikan. Di dalam memberikan nama sebuah varibel, yang harus diperhatikan adalah nama variabel berupa karakter alphanumeric atau bisa juga diawali dengan karakater garisbawah(_), setelah itu baru bisa diikuti dengan jenis karakter yang lain. Dalam pemrograman Shell untuk mendefinisikan sebuah variable tidak perlu diberikan bentuk atau jenis variabel tersebut, tidak seperti di pemrograman C atau Pascal dimana variabel yang akan dibuat perlu didefinisikan terlebih dahulu tipenya, Dan di dalam lingkup Shell tipe variabel hanya ada satu jenis yaitu tipe string. Contoh dalam penulisan variabel dan pemberian nilai dalam potongan program Shell sebagai berikut :



nama=kiki
nim=201281044
fakultas="ilmu komputer"
jurusan=“teknik informatika”
echo $nama
echo $nim
echo $fakultas
echo $jurusan



Keterangan:
Tanda ‘$’ memiliki makna sebagai pengarah bahwa kata tersbut adalah sebuah variabel yang memiliki nilai. Kalau isi mengandung spasi, harus di dalam tanda petik " ".
Setelah tanda sama dengan ("=") , jangan menggunakan spasi.

Contoh:
nama=kiki (penulisan yang benar)
nama= kiki(penulisan yang salah)
jurusan=teknik informatika (penulisan salah karena mengandung spasi)
status="teknik informatika" (penulisan yang benar)

    II.            Variabel Environment
Environment variabel adalah variabel yang merupakan bawaan dari Shell itu sendiri, biasanya variabel ini berisi nilai-nilai yang merupakan konfigurasi standar dalam lingkungan program Shell. Aturan penulisan dari environment variable adalah semua nama variabel menggunakan huruf kapital. lingkup dari variabel environment adalah bersifat GLOBAL. Artinya variabel environment berlaku untuk semua Shell yang ada. Contoh variabel environment adalah sebagai berikut :

LOGNAME=shell14 (variabel yang berisi nama login)
SHELL=/bin/bash (variabel yang berisi nama shell yang aktif)
HOME=/home/shell14 (variabel yang berisi nama direktori user)
USER=shell14 (variabel yang berisi nama user)

§  Untuk mengetahui variabel apa saja yang ada dalam kelompok environment variable dapat digunakan perintah berikut:
     $ env ‘enter’
§  Untuk merubah nilai dari variabel environment dapat dilakukan dengan menggunakan perintah sebagai berikut :
     $ export LOGNAME=mrbee ‘enter’
§  kemudian hasilnya dapat dilihat dengan menggunakan perintah :
$ env | grep “LOGNAME”
§  Variabel environment juga bisa dihapus atau dihilangkan dari lingkungan daftar variabel environment dengan menggunakan perintah berikut :
     $ unset LOGNAME


D.                Ruang Lingkup Variabel Dalam Shell

Yang dimaksud dengan ruang lingkup adalah sejauh mana sebuah variabel yang didefinisikan berlaku bagi program shell dibuat. Dipemrograman lain seperti C ada variabel lokal yang hanya berlaku di dalam sebuah file skrip C, ada juga variabel global yang bisa berlaku bagi skrip C yang lain walaupun berada dalam file lainnya. Di program Shell lingkup dari sebuah variabel yang didefinisikan berlaku lokal. Lokal yang dimaksud adalah dalam suatu Shell saja. Jika dalam sebuah Shell dibuat lagi sub-Shell maka variabel tersebut sudah tidak berlaku nilainya. Sedangkan variabel environment memiliki lingkup GLOBAL, yang dimaksud dengan global adalah semua variabel berlaku dan bernilai sama disemua file skrip Shell yang dibuat. Contoh variabel LOGNAME yang memiliki nilai nama login user, akan mempunya nilai yang sama walaupun diakses dari file skrip lainnya.

E.                 Struktur Kontrol Pada Shell

I.       If-Else

if instruksi 1
then
                        instruksi 1.1
                        instruksi 1.2
            elif instruksi 2
            then
                        instruksi 2.1
                        instruksi 2.2
            else
                        instruksi 3.1
                        instruksi 3.2
            fi

II.    Case

case variable in
match1)
            instruksi 1.1
            instruksi 1.2
            ……………………. ;;
Match2)
            instruksi 2.1
            instruksi 2.2
            ……………………. ;;
*)
            instruksi 3.1
            instruksi 3.2
            ……………………. ;;
esac

III. While

While kondisi
do
            instruksi 1
            instruksi 2
done

F.                 Array pada Shell

Pada versi BASH 2.x terdapat fungsi untuk mendefinisikan array satu dimensi. Array memungkinkan seorang programmer mengoleksi daftar beberapa nilai dalam sebuah variabel. Untuk mengekstraksi kembali nilai-nilai tersebut dapat dilakukan dengan menyebutkan nama variabel yang diikuti oleh nomer indek array tersebut. Pendefinisian sebuah array juga bias dilakukan on the fly (tanpa mendefinisi terlebih dahulu). Dan tidak ada batasan maksimum dari sebuah array yang dibuat dalam lingkungan BASH Shell. Pada saat sebuah nilai diberikan kedalam sebuah array yang telah didefinisikan, indek array secara otomatis akan dimulai dari 0, dan bertambah naik 1 sampai semua kumpulan nilai-nilai dimasukkan.
Contoh deklarasi array :

$ declare –a nomor=(44 98 101)
$ nama=(kiki tika dina)
$ kota=(tangerang jakarta depok)
x[0]=7
x[4]=400

contoh lain :
$ declare –a nama
$ nama=(kiki abdul tika)
$ echo ${nama[1]}
abdul
$ echo ${nama[2]}
tika
$ echo “haiii teman-temanku ${nama[*]}”
Haiii teman-temanku kiki abdul tika
$ echo “jumlah total indek array adalah ${#nama[*]}”
jumlah total indek adalah 3
$ unset nama

Keterangan :
1. Mendeklrasikan variabel array “nama”
2. Memasukkan nilai ke dalam array “nama”
3. Menampilkan isi dari array indek ke 1
4. Menampilkan isi dari array indek ke 2
5. Menampilkan semua isi array “nama”
6. Menampilkan jumlah indek total dari array “nama”
7. Menghapus array “nama”

IV.             Manajemen Input Output

Perintah “Read” merupakan perintah yang termasuk dalam kelompok buil-in command shell. Perintah ini berfungsi untuk membaca masukan dari user melalui perantara keyboard. Jika tidak ada opsi maka perintah ini akan membaca masukan yang diberikan oleh user tanpa memilah-milah terlebih dahulu. Batas pembacaan masukan adalah ketika mulai baris baru yang ditandai dengan penekanan tombol ‘enter’ oleh user. Berikut ini adalah format penggunaan perintah read beserta opsi yang dapat digunakan dalam penulisan skrip BASH Shell.

Tabel 3.1 Format perintah Read
Format
Deskripsi
read jawaban
Membaca satu baris masukan dari standard input dan disubstitusikan ke variabel jawaban
read awal akhir
Membaca satu baris input dan dipisahkan berdasarkan spasi, masukan pertama disubtitusikan ke variabel awal, dan masukan kedua disubtitusikan ke variabel akhir
read
Membaca satu baris masukan dan disubtitusikan ke variabel built-in yang bernama REPLY.
read –a nama_array
Membaca daftar kata dari masukan dan mensubtitusikan ke dalam variabel array nama_array.
read –e
Digunakan di shell intereraktif
read –p prompt
Menampilkan prompt, menunggun masukan, dan mensubtitusikan masukan ke dalam variable REPLY
read –r line
Memperbolehkan adanya karakter backslash pada masukan yang diberikan.


Contoh penggunaan perintah read :

#!/bin/bash
#nama skrip : test
echo –e “bagaimana kabarmu hari ini ? : ”
read hasil
echo “anda menjawab $hasil”
echo “siapa nama lengkapmu ?”
read n_awal n_tengah n_akhir
echo “nama lengkap kamu adalah $n_awal $n_tengah $n_akhir”
echo “nama awal kamu adalah $n_awal”

output program adalah :
$./test
bagaimana kabarmu hari ini ?  : baik
anda menjawab baik
siapa nama lengkapmu ?  kiki risky hidayat
nama lengkapmu adalah kiki rizky hidayat
nama awal kamu adalah kiki

G.                Function Pada Shell

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 variabel lokal atau global. Hal yang perlu diperhatikan , nama variable yang digunakan dalam sebuah fungsi, jangan sampai bentrok dengan nama variabel yang sama di luar fungsi sehingga tidak terjadi perubahan isi variabel.

Tidak ada komentar: