MODUL SO : Pemrograman SHELL

1.    Tujuan:
Mengenal pemrograman Shell Script dalam Sistem Operasi Linux dan mengetahui cara membuat program shell script salah satunya dengan menggunakan echo, test. Selain itu praktikum ini diharapkan dapat melatih mahasiswa untuk menggunakan scrip shell yang cukup sederhana dan mudah dipahami.
2.    Landasarn Teori:
Scrip shell adalah sebuah program yang pengeksekusiannya tidak memerlukan compiler/interpreter khusus dan cukup diterjemahkan oleh shell yang ada. Untuk membuatnya dapat digunakan vi editor atau editor shell lainnya.
Beberapa perintah yang dapat digunakan antara lain echo dan test. Sedangkan kemungkinan pencabangan suatu statemen dapat digunakan perintah if, then, dan elif.
Ada banyak operator pembanding untuk memberikan suatu pengkondisian, termasuk didalamnya nilai status exit ($?) yang bernilai 0 untuk sebuah kesalahan dan nilai 1 untuk kebenaran.
Operator lainnya antara lain:


Operator
Bernilai True, jika
-eq
Bilangannya sama
-ge
Lebih besar atau sama dengan
-gt
Lebih besar
-le
Lebih kecil atau sama dengan
-lt
Lebih kecil
-ne
Bilangan tidak sama


3.    Pelaksanaan Praktikum
1.         Membuat file tes dengan editor vi.
     vi tes
dengan Esc ® :wq kita keluar dari editor vi sekaligus memerintahkan untuk menyimpan
Ketika kita panggil file tes
linux belum dapat mengeksekusi file ini karena status atributnya belum tertera hak executable sewaktu kita pastikan atribut yang melekat pada file tersebut dengan ls –l. Kita lihat hak akses yang dimiliki file tes adalah:
– rw – r – – r – – 
artinya user owener hanya memiliki hak read dan write, sedangkan group mempunyai hak untuk read atau membaca saja demikian halnya dengan other user. Dan ketiga tipe user tidak mempunyai hak untuk memanggil/executable.
             Cara memberikan hak akses sebagaimana di atas adalah dengan perintah:
     chmod u+x tes
Dapat kita lihat setelah perintah tersebut akan muncul hak akses pada user owner sudah memiliki hak eksekutable, sebagaimana diperlihatkan di bawah.
– r w x r – – r – – 
             Kita coba lagi untuk memanggil file tes setelah kita beri hak panggil, namun ternyata masih belum dapat berhasil, bash program masih member komentar kalau file tes tidak ada/tidak ditemukan dilihat dari komentar “bash: tes: command not found”.
             Setelah kita coba tetap belum bisa dipanggil dikarenakan path belum berada dilokasi. Untuk mendefinisikan letak file tes maka kita perintahkan dengan sintac sebagai berikut:
     [root@linuxmd root]# PATH=$PATH:.
             Setelah kita kondisikan letak posisi file tes selanjutnya kita coba jalankan tes dengan memanggil langsung.
     [root@linuxmd root]# tes
Dapat kita lihat berhasil, beberapa baris program shell yang kita buat sudah dapat dieksekusi langsung sebagaimana gambar di atas. Dengan penjelasan bahwa:
clear                                           adalah sebuah perintah untuk adalah menghapus / menggulung layar dari sreen.
cat tes                                        adalah perintah untuk mengetahui list file tes
echo “Tanggal Sekarang”             adalah sebuah program untuk menampilkan kalimat “Tanggal Sekarang”
date                                           adalah perintah agar linux menampilkan posisi waktu saat ini, dieksekusinya program.
Hasil dari pemanggilan file tes ini adalah sebagai berikut:
2.         Untuk memahami perintah echo maka kita mencoba untuk melakukan perintah berikut secara berturut-turut:
      [root@linuxmd root]# echo selamat; echo belajar
      selamat
      belajar
      [root@linuxmd root]# echo -n selamat; echo belajar
      selamatbelajar
      [root@linuxmd root]# echo selamat    belajar
      selamat belajar
      [root@linuxmd root]# echo “selamat      belajar”
      selamat      belajar
      [root@linuxmd root]# echo selamat \n belajar
      selamat n belajar
      [root@linuxmd root]# echo “selamat \n belajar”
            selamat \n belajar
      [root@linuxmd root]#
             Agar terdokumentasi kita membuat perintah echo tersebut dalam editor vi dan kita beri nama file selamat:
Tidak berbeda dari hasil eksekusi kita menggunakan echo langsung pada shell prompt di atas. Pada gambar ini kita menggunakan editor vi untuk mengkompilasi perintah echo dalam satu file selamat. Dengan memberikan hak akses x pada owner walaupun tanpa perintah path sebagaimana awal praktikum file selamat tetap dapat dijalankan karena sekali kita membubuhkan perintah path pada awal membuka shell program otomatis sudah termemori untuk mendefinisikan path pada sebuah direktori.
Dapat kita simpulkan perintah echo sebagaimana berikut:
      [root@linuxmd root]# echo selamat; echo belajar
      selamat
      belajar
             echo akan menampilkan karakter/string di belakangnya sedangkan tanda “;” adalah berfungsi memindahkan kursor ke baris berikutnya. Setelah itu sama dengan yang dilakukan echo pada selamat, echo ini juga bertugas menampilkan string/karakter di belakangnya yaitu belajar.
      [root@linuxmd root]# echo -n selamat; echo belajar
      selamatbelajar
             echo di atas agak berbeda karena dibumbuhi dengan kode “-n” maka kata selamat dan belajar tergabung menjadi satu dengan tanpa adanya jarak antar kata. Jadi fungsi –n adalah menggabung dua baris yang dihasilkan oleh echo dengan diikuti tandi “;” menjadi 1 baris saja.
      [root@linuxmd root]# echo selamat    belajar
      selamat belajar
             echo yang ini menampilkan kalimat selamat belajar menjadi satu baris dengan jeda satu. Padahal penulisan selamat dengan belajar pada perintah echo berjarak lebih dari 4 space. Artinya dapat disimpulkan bahwa jarak antar baris yang tertulis di belakang perintah echo hanya akan didefinisikan sebagai satu karakter space saja.
      [root@linuxmd root]# echo “selamat      belajar”
      selamat      belajar
             Berbeda cukup jauh, dimana tanda petik kita masukkan sebagai perintah untuk mengawali dan mengakhiri baris kalimat setelah perintah echo. Tanda petik ini berfungsi untuk menampilkan semua apa saja yang terdapat diantara tanda petik tersebut apa adanya. Dan hal ini juga ditunjukkan oleh contoh di bawah.
      [root@linuxmd root]# echo selamat \n belajar
      selamat n belajar
      [root@linuxmd root]# echo “selamat \n belajar”
            selamat \n belajar
             Fungsi n pada perintah echo di atas:
             Khusus pada echo yang terletak pada echo -n selamat; echo belajar berfungsi untuk menggabungkan dua masukan perintah echo. Sedangkan perintah \n yang lainnya tidak berungsi apa-apa
             Sedangkan dua tanda petik yang diterakan setelah perintah echo berfungsi untuk menampilkan seluruh karakter/kalimat yang berada diantara keduanya. Sehingga apapun yang dituliskan akan ditampilkan apa adanya.
3.         Memahami status exit dengan mempraktekkan beberapa perintah sebagai berikut:
     [root@linuxmd root]# mkdir program
     [root@linuxmd root]# echo $?
     0
     [root@linuxmd root]# ls
     core      Latihan1 Modul1~  tes*
     Desktop/  program/          tes.sh*
     home*     selamat*          tmp/
             Dengan perintah ls dapat kita pastikan bahwa direktori program sudah terbentuk.
             Kita coba untuk mengulangi perintah di atas:
     [root@linuxmd root]# mkdir program
     mkdir: cannot create directory `program’: File e
     xists
     [root@linuxmd root]# echo $?
     1
             Yang terjadi adalah bahwa mkdir tidak dapat menyelesaikan tugasnya untuk melakukan creating direktori program dan komentar yang ada adalah bahwa direktori atau file sudah ada.
             Perintah echo $? menghasilkan angka 1 menyatakan bahwa program tidak berjalan atau tidak menghasilkan suatu apapun. Dimana perintah untuk membuat suatu direktrori tidak berhasil karena direktori sudah ada.
             Dapat disimpulkan bahwa perintah echo$? Adalah sebuah perintah dalam linux untuk mengetahui berhasil tidaknya suatu eksekusi perintah yang diberikan kepadanya. Angka 0 merupakan tanda bahwa eksekusi suatu perintah berhasil sedangkan angka 1 menunjukkan bahwa eksekusi perintah gagal atau tidak dapat diteruskan.
4.                     Untuk memahami Status Exit, maka kita lakukan perintah sebagaimana di bawah.
     [root@linuxmd root]# ls
     core      home*             program/  tes*     tmp/
     Desktop/  Latihan1 Modul1~  selamat*  tes.sh*
             Perintah di atas digunakan untuk memastikan bahwa dalam direktori ini tidak ada file bernama catatan.
     [root@linuxmd root]# ls catatan
     ls: catatan: No such file or directory
     [root@linuxmd root]# echo $?
     1
             Kita ulangi lagi perintah dengan perintah ls
     [root@linuxmd root]# ls
     core      home*             program/  tes*     tmp/
     Desktop/  Latihan1 Modul1~  selamat*  tes.sh*
    
     [root@linuxmd root]# echo $?
     0
             Artinya pada saat kita mengeksekusi perintah ls catatan dan ternyata pada direktori tersebut tidak ada file tersebut maka status exitnya bernilai 1. Artinya linux gagal menjalankan perintah. Sedangkan sewaktu kita hanya menjalankan ls saja tanpa didentifikasi file khusus dia berhasil menjalankan sehingga status exits bernilai 0.
5.         Memahami perintah test
             [root@linuxmd root]# test 2 -gt 1
     [root@linuxmd root]# echo $?
     0
Perintah  test adalah sebuah operator untuk membandingkan suatu nilai. Sebagaimana di atas -gt mempunyai arti bahwa linux diminta untuk membandingkan apakah angka 2 lebih besar daripada angka 1. Untuk mengetahui bahwa benar tidaknya pernyataan itu maka kita gunakan status exit dengan perintah “echo $?”. Dan status exit menyatakan kebenarannya dengan nilai 0.
    
     [root@linuxmd root]# test 2 -lt 1
     [root@linuxmd root]# echo $?
     1
Dapat kita bandingkan dengan pernyataan yang bernilai salah karena “-lt” mempunyai arti bahwa 2 lebih kecil dari 1. Maka dengan status exit dengan perintah “echo $?”, status exit menyatakan salah dengan nilai 1. Sebagaimana di bawah ini juga diperlihatkan bagaimana linux diminta untuk menemukan file “perintah –f” bernama adakah. Begitu tidak menemukan status exit menyebutkan angka 1.
     [root@linuxmd root]# test -f adakah
     [root@linuxmd root]# echo $?
     1
     [root@linuxmd root]# touch adakah
             Akan berlainan setelah kita mebuat file bernama adakah dengan perintah touch, sebagaimana diatas. Di bawah ini status exit sudah bernilai 0 karena ditemukan file berama “adakah”.
     [root@linuxmd root]# test -f adakah
     [root@linuxmd root]# echo $?
     0
     [root@linuxmd root]# test -s adakah
     [root@linuxmd root]# echo $?
     1
             Namun apa fungsi –s pada perintah test di atas sehingga menyebabkan nilai status exitnya adala salah atau 1.Perintah –s pada test berfungsi untuk mencari dan membandingkan apakah file “adakah” tersebut ada dan besar file size filenya lebih besar dari 0. Memang ditemukan file adakah namun size file adalah 0. Sehingga status exit adalah 0. Dengan kata lain tidak ditemukan.
     [root@linuxmd root]# test “JOGJA”=”jogja”
     [root@linuxmd root]# echo $?
     0
             Perintah test di atas ini adalah untuk membandingkan jumlah karakter antara kata “JOGJA” dengan huruf capital dengan kata “jogja” dengan huruf kecil. Sehingga jumlah karakter keduanya sama. Tentu saja status eksisnya akan bernilai 0 atau benar.
     [root@linuxmd root]# test “JOGJA”=”jogja”
     [root@linuxmd root]# echo $?
     0
KESIMPULAN:
·          
TUGAS:
1.    Buat file bernama “bacanama”. Pada pemanggilannya, akan mengatur masukkan dari keyboard dengan perintah read.
Berikut program yang kami buat dengan editor vi, salah satu editor yang paling okey di linux dan banyak digunakan orang
Jangan sampai lupa ada beberapa yang harus kita lakukan yaitu untuk menset hak executable dan mengubah path. Langkahnya adalah:
chmod u+x bacanama
PATH=$PATH:.
Hasil eksekusi file bacanama sebagai berikut:
2.    Normalnya pengeksekusian perintah di dalam skrip adalah secara sekuensial. Namun seringkali suatu skrip mengandung perintah percabangan dengan kondisi yang menentukan cabang yang akan dijalankan dan perintah perulangan.
Carilah perintah-perintah percabangan dan perulangan, disertai dengan contoh programnya!.
Jawab: Sebagaimana pembuatan program yang lain di atas, kita gunakan vi editor untuk membuat file menu. Setelah selesai penyuntingan program keluar dengan menyimpan lalu kita ubah hak executablenya dengan chmod 755 manu.
Akan menghasilkan out sebagai berikut
             Hasil Eksekusi dengan pilihan 1             Hasil Eksekusi dengan pilihan 2 
                      
             Hasil Eksekusi dengan pilihan 3             Hasil Eksekusi dengan pilihan 4 
                      
Untuk membuat program perulangan diperlukan perintah for dan do sebagai berikut:
Setelah dibububi hak panggil langsung dengan chmod 755 ulang maka hasilnya adalah:

            

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s