MODUL SO : Pemrograman SHELL

1.   Tujuan:
Mengenal pemrograman ShellScript dalam Sistem Operasi Linux dan mengetahui cara membuat program shellscript salah satunya dengan menggunakan echo, test. Selain itu praktikum inidiharapkan dapat melatih mahasiswa untuk menggunakan scrip shell yang cukupsederhana dan mudah dipahami.
2.   Landasarn Teori:
Scrip shell adalah sebuah programyang pengeksekusiannya tidak memerlukan compiler/interpreter khusus dan cukupditerjemahkan oleh shell yang ada. Untuk membuatnya dapat digunakan vi editoratau editor shell lainnya.
Beberapa perintah yang dapatdigunakan antara lain echo dan test. Sedangkan kemungkinan pencabangan suatustatemen dapat digunakan perintah if, then, dan elif.
Ada banyak operator pembandinguntuk 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.   PelaksanaanPraktikum
1.         Membuatfile 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 mengeksekusifile ini karena status atributnya belum tertera hak executable sewaktu kitapastikan atribut yang melekat pada file tersebut dengan ls –l. Kita lihat hakakses yang dimiliki file tes adalah:
– rw – r – – r – – 
artinya user owener hanya memilikihak read dan write, sedangkan group mempunyai hak untuk read atau membaca sajademikian halnya dengan other user. Dan ketiga tipe user tidak mempunyai hakuntuk memanggil/executable.
             Cara memberikan hak akses sebagaimanadi atas adalah dengan perintah:
     chmodu+x tes
Dapat kitalihat setelah perintah tersebut akan muncul hak akses pada user owner sudahmemiliki hak eksekutable, sebagaimana diperlihatkan di bawah.
– r w x r – – r – – 
             Kitacoba lagi untuk memanggil file tes setelah kita beri hak panggil, namunternyata masih belum dapat berhasil, bash program masih member komentar kalaufile tes tidak ada/tidak ditemukan dilihat dari komentar “bash: tes: commandnot found”.
             Setelahkita coba tetap belum bisa dipanggil dikarenakan path belum berada dilokasi.Untuk mendefinisikan letak file tes maka kita perintahkan dengan sintac sebagaiberikut:
     [root@linuxmdroot]# PATH=$PATH:.
             Setelah kita kondisikanletak posisi file tes selanjutnya kita coba jalankan tes dengan memanggillangsung.
     [root@linuxmdroot]# tes
Dapat kita lihatberhasil, beberapa baris program shell yang kita buat sudah dapat dieksekusilangsung sebagaimana gambar di atas. Dengan penjelasan bahwa:
clear                                           adalahsebuah perintah untuk adalah menghapus / menggulung layar dari sreen.
cat tes                                        adalahperintah untuk mengetahui list file tes
echo “Tanggal Sekarang”             adalah sebuah program untuk menampilkan kalimat “TanggalSekarang”
date                                           adalahperintah agar linux menampilkan posisi waktu saat ini, dieksekusinya program.
Hasil dari pemanggilan file tes ini adalah sebagaiberikut:
2.         Untuk memahami perintah echo maka kitamencoba untuk melakukan perintah berikut secara berturut-turut:
      [root@linuxmdroot]# echo selamat; echo belajar
      selamat
      belajar
      [root@linuxmdroot]# echo -n selamat; echo belajar
      selamatbelajar
      [root@linuxmdroot]# echo selamat    belajar
      selamatbelajar
      [root@linuxmdroot]# echo “selamat     belajar”
      selamat      belajar
      [root@linuxmdroot]# echo selamat \n belajar
      selamatn belajar
      [root@linuxmdroot]# echo “selamat \n belajar”
            selamat\n belajar
      [root@linuxmdroot]#
             Agar terdokumentasi kita membuatperintah echo tersebut dalam editor vi dan kita beri nama file selamat:
Tidak berbeda darihasil eksekusi kita menggunakan echo langsung pada shell prompt di atas. Padagambar ini kita menggunakan editor vi untuk mengkompilasi perintah echo dalamsatu file selamat. Dengan memberikan hak akses x pada owner walaupun tanpaperintah path sebagaimana awal praktikum file selamat tetap dapat dijalankankarena sekali kita membubuhkan perintah path pada awal membuka shell programotomatis sudah termemori untuk mendefinisikan path pada sebuah direktori.
Dapat kitasimpulkan perintah echo sebagaimana berikut:
      [root@linuxmdroot]# echo selamat; echo belajar
      selamat
      belajar
             echo akan menampilkankarakter/string di belakangnya sedangkan tanda “;” adalah berfungsi memindahkankursor ke baris berikutnya. Setelah itu sama dengan yang dilakukan echo padaselamat, echo ini juga bertugas menampilkan string/karakter di belakangnyayaitu belajar.
      [root@linuxmdroot]# echo -n selamat; echo belajar
      selamatbelajar
             echo di atas agak berbeda karenadibumbuhi dengan kode “-n” maka kata selamat dan belajar tergabung menjadi satudengan tanpa adanya jarak antar kata. Jadi fungsi –n adalah menggabung duabaris yang dihasilkan oleh echo dengan diikuti tandi “;” menjadi 1 baris saja.
      [root@linuxmdroot]# echo selamat    belajar
      selamatbelajar
             echo yang ini menampilkan kalimatselamat belajar menjadi satu baris dengan jeda satu. Padahal penulisan selamatdengan belajar pada perintah echo berjarak lebih dari 4 space. Artinya dapatdisimpulkan bahwa jarak antar baris yang tertulis di belakang perintah echohanya akan didefinisikan sebagai satu karakter space saja.
      [root@linuxmdroot]# echo “selamat     belajar”
      selamat      belajar
             Berbeda cukup jauh, dimana tandapetik kita masukkan sebagai perintah untuk mengawali dan mengakhiri bariskalimat setelah perintah echo. Tanda petik ini berfungsi untuk menampilkansemua apa saja yang terdapat diantara tanda petik tersebut apa adanya. Dan halini juga ditunjukkan oleh contoh di bawah.
      [root@linuxmdroot]# echo selamat \n belajar
      selamatn belajar
      [root@linuxmdroot]# echo “selamat \n belajar”
            selamat\n belajar
             Fungsi n pada perintah echo diatas:
             Khusus pada echo yangterletak pada echo -n selamat; echo belajar berfungsi untuk menggabungkan duamasukan perintah echo. Sedangkan perintah \n yang lainnya tidak berungsiapa-apa
             Sedangkan dua tandapetik yang diterakan setelah perintah echo berfungsi untuk menampilkan seluruhkarakter/kalimat yang berada diantara keduanya. Sehingga apapun yang dituliskanakan ditampilkan apa adanya.
3.         Memahamistatus exit dengan mempraktekkan beberapa perintah sebagai berikut:
     [root@linuxmd root]# mkdir program
     [root@linuxmd root]# echo $?
     0
     [root@linuxmdroot]# ls
     core      Latihan1 Modul1~  tes*
     Desktop/ program/          tes.sh*
     home*     selamat*          tmp/
             Denganperintah ls dapat kita pastikan bahwa direktori program sudah terbentuk.
             Kita coba untuk mengulangi perintahdi atas:
     [root@linuxmdroot]# mkdir program
     mkdir:cannot create directory `program’: File e
     xists
     [root@linuxmdroot]# echo $?
     1
             Yang terjadi adalahbahwa mkdir tidak dapat menyelesaikan tugasnya untuk melakukan creatingdirektori program dan komentar yang ada adalah bahwa direktori atau file sudahada.
             Perintah echo $?menghasilkan angka 1 menyatakan bahwa program tidak berjalan atau tidakmenghasilkan suatu apapun. Dimana perintah untuk membuat suatu direktrori tidakberhasil karena direktori sudah ada.
             Dapat disimpulkanbahwa perintah echo$? Adalah sebuah perintah dalam linux untuk mengetahuiberhasil tidaknya suatu eksekusi perintah yang diberikan kepadanya. Angka 0merupakan tanda bahwa eksekusi suatu perintah berhasil sedangkan angka 1menunjukkan bahwa eksekusi perintah gagal atau tidak dapat diteruskan.
4.                     Untukmemahami Status Exit, maka kita lakukan perintah sebagaimana di bawah.
     [root@linuxmdroot]# ls
     core      home*             program/  tes*    tmp/
     Desktop/  Latihan1 Modul1~  selamat* tes.sh*
             Perintah di atas digunakan untukmemastikan bahwa dalam direktori ini tidak ada file bernama catatan.
     [root@linuxmdroot]# ls catatan
     ls:catatan: No such file or directory
     [root@linuxmdroot]# echo $?
     1
             Kitaulangi lagi perintah dengan perintah ls
     [root@linuxmdroot]# ls
     core      home*             program/  tes*    tmp/
     Desktop/  Latihan1 Modul1~  selamat* tes.sh*
    
     [root@linuxmdroot]# echo $?
     0
             Artinyapada saat kita mengeksekusi perintah ls catatan dan ternyata pada direktoritersebut tidak ada file tersebut maka status exitnya bernilai 1. Artinya linuxgagal menjalankan perintah. Sedangkan sewaktu kita hanya menjalankan ls sajatanpa didentifikasi file khusus dia berhasil menjalankan sehingga status exitsbernilai 0.
5.         Memahami perintah test
             [root@linuxmd root]# test 2-gt 1
     [root@linuxmdroot]# echo $?
     0
Perintah  test adalah sebuah operator untukmembandingkan suatu nilai. Sebagaimana di atas -gt mempunyai arti bahwa linuxdiminta untuk membandingkan apakah angka 2 lebih besar daripada angka 1. Untukmengetahui bahwa benar tidaknya pernyataan itu maka kita gunakan status exitdengan perintah “echo $?”. Dan status exit menyatakan kebenarannya dengan nilai0.
    
     [root@linuxmdroot]# test 2 -lt 1
     [root@linuxmdroot]# echo $?
     1
Dapat kitabandingkan dengan pernyataan yang bernilai salah karena “-lt” mempunyai artibahwa 2 lebih kecil dari 1. Maka dengan status exit dengan perintah “echo $?”,status exit menyatakan salah dengan nilai 1. Sebagaimana di bawah ini jugadiperlihatkan bagaimana linux diminta untuk menemukan file “perintah –f”bernama adakah. Begitu tidak menemukan status exit menyebutkan angka 1.
     [root@linuxmdroot]# test -f adakah
     [root@linuxmdroot]# echo $?
     1
     [root@linuxmdroot]# touch adakah
             Akanberlainan setelah kita mebuat file bernama adakah dengan perintah touch,sebagaimana diatas. Di bawah ini status exit sudah bernilai 0 karena ditemukanfile berama “adakah”.
     [root@linuxmdroot]# test -f adakah
     [root@linuxmdroot]# echo $?
     0
     [root@linuxmdroot]# test -s adakah
     [root@linuxmdroot]# echo $?
     1
             Namunapa fungsi –s pada perintah test di atas sehingga menyebabkan nilai statusexitnya adala salah atau 1.Perintah –s pada test berfungsi untuk mencari danmembandingkan apakah file “adakah” tersebut ada dan besar file size filenya lebihbesar dari 0. Memang ditemukan file adakah namun size file adalah 0. Sehinggastatus exit adalah 0. Dengan kata lain tidak ditemukan.
     [root@linuxmdroot]# test “JOGJA”=”jogja”
     [root@linuxmdroot]# echo $?
     0
             Perintah test di atasini adalah untuk membandingkan jumlah karakter antara kata “JOGJA” dengan hurufcapital dengan kata “jogja” dengan huruf kecil. Sehingga jumlah karakterkeduanya sama. Tentu saja status eksisnya akan bernilai 0 atau benar.
     [root@linuxmdroot]# test “JOGJA”=”jogja”
     [root@linuxmdroot]# echo $?
     0
KESIMPULAN:
·         
TUGAS:
1.   Buat file bernama“bacanama”. Pada pemanggilannya, akan mengatur masukkan dari keyboard denganperintah read.
Berikut programyang kami buat dengan editor vi, salah satu editor yang paling okey di linux danbanyak digunakan orang
Jangan sampailupa ada beberapa yang harus kita lakukan yaitu untuk menset hak executable danmengubah path. Langkahnya adalah:
chmod u+x bacanama
PATH=$PATH:.
Hasil eksekusifile bacanama sebagai berikut:
2.   Normalnya pengeksekusianperintah di dalam skrip adalah secara sekuensial. Namun seringkali suatu skripmengandung perintah percabangan dengan kondisi yang menentukan cabang yang akandijalankan dan perintah perulangan.
Carilahperintah-perintah percabangan dan perulangan, disertai dengan contohprogramnya!.
Jawab:Sebagaimana pembuatan program yang lain di atas, kita gunakan vi editor untukmembuat file menu. Setelah selesai penyuntingan program keluar dengan menyimpanlalu kita ubah hak executablenya dengan chmod 755 manu.
Akan menghasilkanout sebagai berikut
             Hasil Eksekusi denganpilihan 1             Hasil Eksekusidengan pilihan 2 
                      
             Hasil Eksekusi denganpilihan 3             Hasil Eksekusidengan pilihan 4 
                      
Untuk membuat program perulangandiperlukan perintah for dan do sebagai berikut:
Setelah dibububi hak panggillangsung 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