Minggu, 20 Maret 2011

laporan SO ( Pemograman Shell ) pada linux

BAB I
Pendahuluan

Shell merupakan program atau penerjemah perintah yang bertindak sebagai antarmuka atau interface antara user dengan sistem operasi, yang mana kernel yang menjadi inti dari sistem operasi, pada umumnya shell menyediakan prompt sebagai user interface, yaitu tempat untuk mengetikkan perintah-perintah yang diinginkan oleh user baik berupa perintah internal shell (internal command), ataupun perintah eksekusi suatu file progam (eksternal command).
Selain itu, shell juga dapat digunakan oleh user untuk menyusun sekumpulan perintah pada sebuah file atau beberapa file untuk dieksekusi sebagai suatu program.
Tidak seperti pada sistem operasi lain yang hanya menyediakan satu atau 2 shell saja, sistem operasi dari keluarga unix, dalam hal ini misalnya linux, sampai saat ini dilengkapi oleh berbagai jenis shell dengan sekumpulan perintah yang sangat banyak, sehingga memungkinkan user untuk memilih shell mana yang paling baik untuk membantu menyelesaikan pekerjaannya, atau dapat pula berpindah-pindah dari shell yang satu ke shell yang lain dengan mudah, beberapa shell yang ada di linux antara lain:
• Bourne shell(sh),
• C shell(csh),
• Korn shell(ksh),
• Bourne again shell(bash),
• dsb.
Setiap shell mempunyai kelebihan dan kekurangan masing-masing yang mungkin lebih didasarkan pada kebutuhan pemakai yang semakin hari semakin meningkat, dalam hal ini shell yang digunakan adalah bash shell dari GNU, yang merupakan pengembangan dari Bourne shell dan mengambil beberapa feature dari C shell serta Korn shell, Bash shell merupakan shell yang cukup banyak digunakan pemakai linux karena kemudahan dalam penggunaannya serta banyaknya fasilitas perintah yang disediakan.


BAB II
ISI

A. Pemrograman Shell
Dengan pemrograman shell, seorang user dapat menyusun atau mengelompokkan beberapa perintah shell (internal atupun eksternal command) menjadi kumpulan perintah yang melakukan tugas tertentu sesuai tujuan penyusunnya. Kelebihan dari shell di linux dibanding sistem operasi lain adalah bahwa shell di linux memungkinkan kita untuk menyusun serangkaian perintah seperti halnya bahasa pemrograman (interpreter language), yang dapat melakukan proses I/O, menyeleksi kondisi, looping, membuat fungsi, dsb. Sebagaimana pada proses-proses yang umumnya dilakukan oleh suatu bahasa pemrograman lain. Jadi, dengan shell di linux kita dapat membuat program seperti halnya bahasa pemrograman, untuk pemrograman shell pemakai unix atau linux menyebutnya sebagai script shell.
B. Dasar – dasar Shell
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, dll
• utilitas seperti cat, cut, paste, chmod, lpr, dll
• 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 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. Penggunaan looping pada pemrograman shell
Pembuatan shell script program pada linux dapat dilakukan pada text editor yang terdapat pada linux tersebut. Yang mana setelah selesei di edit, program di simpin dengan ekstensi “.txt”. Penggunaan looping pada pemrograman shell dapat dilakukan dengan tiga jenis syntax, yaitu : while, for, dan until. Seperti pada contoh program anak ayam berikut:
#!/bin/bash
echo -n "Masukkan jumlah ayam : "
read n;
i=$n;
while [ $i -ge 1 ];
do
echo "Anak ayam turun $i, mati 1 tinggal $[i-1]";
let i=$i-1;
done

Pada contoh program diatas penggunaan looping yang dilakukan adalah menggunakan while, yang mana dilakukan dengan format:
While [kondisi];
Do
Aksi
Done

Untuk mengidentifikasi kondisi kita dapat menggunakan beberapa operator, seperti yang terdapat pada table berikut :
Operator Keterangan
x -eq y Akan mengembalikan Benar jika x sama dengan y
x -ne y Akan mengembalikan Benar jika x tidak sama dengan y
x -lt y Akan mengembalikan Benar jika x lebih kecil dari y
x -le y Akan mengembalikan Benar jika x lebih kecil atau sama dengan y
x -gt y Akan mengembalikan Benar jika x lebih besar dari y
x -ge y Akan mengembalikan Benar jika x lebih besar atau sama dengan y



Kita dapat mengeksekusi program diatas melalui terminal. Yang mana sebelum dieksekusi kita harus berada pada direktori kerja dimana program tersebut kita simpan.Exekusi dapat dilakukan dengan format sintax :
./[nama file]
Seperti pada gambar berikut:



D. Penggunaan Fungsi If Pada Pemrograman Shell
Penggunaan fungsi If pada Pemrograman Shell dapat kita lakukan dengan format sintax sebagai berikut :
If[kondisi];
Then
Aksi1
Elif [kondisi2];
Then
Aksi2
Else
Aksi3
Fi


Contoh penggunaan funsi if dalam program kalkulator sederhana :
#!/bin/bash
echo -n "MAsukkan bilangan pertama : "
read x
echo -n "MAsukkan bilangan kedua : "
read y
echo "Menu"
echo "1. Penjumlahan"
echo "2. Pengurangan"
echo "3. Perkalian"
echo "4. Pembagian"
echo "MAsukkan pilihan anda : "
read pil
if [ $pil -eq 1 ];
then
echo "Hasil penjumlahan : $[x+y]"
elif [ $pil -eq 2 ];
then
echo "Hasil pengurangan : $[x-y]"
elif [ $pil -eq 3 ];
then
echo "Hasil perkalian : $[x*y]"
elif [ $pil -eq 4 ];
then
printf "Hasil pembagian : %.2f" $[x/y]
else
echo "Tidak ada pilihan"

Kemudian simpan dengan format “.txt”. dan dapat dieksekusi seperti pada gambar berikut:





E. Program Manjemen File
Selain menggunakan perintah-perintah dasar bahasa pemrograman shell, kita juga bias menggunakan perintah-perintah yang sudah ada pada shell tersebut dengan membuat sebuah program manjemen file sederhana , seperti cp untuk copy, rm untuk remove(delet) , mv untuk move, dan lain-lain.
Untuk memasukkan sintax,sintax bawaan shell Linux seprti diatas, kta dapat melakukannya dengan sintax format sebagai berikut:
Echo`Perintah’
Contoh:
Echo ‘rm ayam.txt’
Seperti pada conrtoh program Manajemen File berikut :
#!/bin/bash
echo -n "MAsukkan nama file : "
read nama
echo "Menu"
echo "1. copy"
echo "2. Delete"
echo "3. move"
echo "MAsukkan pilihan anda : "
read pil
if [ $pil -eq 1 ];
then
echo -n "MAsukkan direktori tujuan :"
read d
echo `cp $nama $d`
elif [ $pil -eq 2 ];
then
echo `rm $nama`
elif [ $pil -eq 3 ];
then
echo "MAsukkan direktori tujuan : "
read dir
echo `mv $nama $dir`
else
echo "Tidak ada pilihan"
fi

Setelah disimpan dengan format “.txt”, Program tersebut dapat di eksekusi seperti pada gambar berikut :


1. Sebelum di eksekusi, kita harus melihat dimana program tersebut dimpan

2. Setelah mengetahui diman file tesebut disimpan maka kita dapat menjalankannya dengan perintah ./ [nama file]. Dalam eksekusi ini kita akan mengkopy file dengan nama kal.txt ke folder LAGU yang sebelumnya tidak ada file tersebut


Setelah dikopi, maka file tersebut akan terkopi ke dalam folder LAGU. Seperti pada gambar berikut :