Wednesday, December 5, 2012

Shell Programming

Pemrograman Shell

Shell adalah program khusus yang bisa digunakan untuk berinteraksi dengan kernel. Kernel yang dimaksud adalah kernel sistem operasi yang sedang aktif. Shell merupakan salah satu dari sekian banyak bahasa pemrograman. Shell memiliki sebuah keunikan tersendiri, Karena berjalan disebuah platform Linux atau Unix, dan memiliki konsep perintah tingkat tinggi. Shell juga dikenal dengan bahasa “command line processing” ini karena sintak yang digunakan di dalam pemrograman shell merupakan perintah-perintah dasar dari Linux atau Unix. Selain itu juga sintak Shell dapat langsung dieksekusi langsung pada terminal
console Linux atau Unix. Di dalam system operasi Linux atau Unix tipe-tipe shell sangat beragam.


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>

Variabel pada SHELL

a. 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 variabel 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=patricia
   nim=201181016
   status="belum menikah"
   echo $nama
   echo $nim
   echo $status


   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=patricia (penulisan yang benar)
  nama= patricia (penulisan yang salah)
  status=belum menikah (penulisan salah karena mengandung spasi)
  status="belum menikah" (penulisan yang benar)

b. 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

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.


STRUKTUR KONTROL


a. 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

b. CASE

case variabel in
match1)
instruksi 1.1
instruksi 1.2
.......................
;;
match2)
instruksi 2.1
instruksi 2.2
.......................
;;
*)
instruksi 3.1
instruksi 3.2
........................
;;
esac

c. WHILE

while kondisi
do
instruksi 1
instruksi 2
done

ARRAY


Pada versi BASH 2.x terdapat fungsi untuk mendefinisikan array satu dimensi. Array memungkinkan seorang programmer mengkoleksi daftar beberapa nilai dalam sebuah variabel. Untuk mengektraksi kembali nilai-nilai tersebut dapat
dilakukan dengan menyebutkan nama varibel yang diikuti oleh nomer indek array tersebut. Pendefinisian sebuah array juga bisa dilakukan on the fly (tanpa mendefinisikan terlebih dahulu). Dan tidak ada batasan maksimum dari sebuah array yang dibuat dalam lingkungan BASH Shell. Pada saat sebuah nilai diberikan ke dalam 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=(45 50 23)
$ nama=(andi hafid intan)
$ kota=(surabaya medan jakarta)
x[0]=7
x[4]=400

contoh lain :

$ declare –a nama
$ nama=(luky ani arman)
$ echo ${nama[1]}
ani
$ echo ${nama[2]}
arman
$ echo “berikut ini nama teman-temanku ${nama[*]}”
berikut ini nama teman-temanku luky ani arman
$ 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”

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 variabel REPLY
read –r line
Memperbolehkan adanya karakter backslash pada masukan yang diberikan.



Contoh penggunaan perintah read :

#!/bin/bash
#nama skrip : coba
echo –e “apakah kamu senang : ”
read hasil
echo “anda menjawab $hasil”
echo “siapa nama lengkap kamu ?”
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 :
$./coba
apakah kamu senang : ya
anda menjawab ya
siapa nama lengkap kamu ? rudi hadi suwarno
nama lengkap kamu adalah rudi hadi suwarno
nama awal kamu adalah rudi

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 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.




No comments:

Post a Comment