Selasa, 11 Desember 2012

TUGAS PRAKTIKUM SISTEM OPERASI



SHELL PROGRAMING

  1. PEMROGRAMAN SHELL
    • SERANGKAIAN PERINTAH LINUX.  
    • Awal dari program shell, komentarawal ini akan dibaca oleh system, kemudian system mengaktifkan program shell (/BIN/SH)yang tertera disitu. ptogram shell dapat dipilih. misalnya : /BIN/KSH dan lainnya. komentar adalah sebagai dokumentasi, baris ini akan diabaikan oleh program shell. penggunaan variable (assigment), tidak boleh ada spasi diantara nama variable dan konsntanta.
  2. 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
  3. VARIABLE PADA SHELL
    • variable shell adalah variable yang dapat mempunyainilai berupa nilai string.
    • tata penulisan variable adalah sebagai berikut: nama_var = nilai_var
    • variable harus dimulai dengan alfabet, disusul dengan alfanumerik dan karakter lairn. variable dapat ditulis dalam huruf kecil atau huruf besar atau campuran keduanya. shell membedakan huruf besar dan huruf kecil (case sensitive), contoh : 
        • vpt  =poltek => ##error
        • vpt=  poltek => ##error
    • untuk melihat  nilai/isi dari sebuah variable, gunakan tanda $ didepan nama variable tersebut. pada shell, instruksi echo dapat menampilkan isi variable tersebut.
      • contoh :
        • vpt=poltek
        • echo $vpt
        • gaji=450000
        • echo $gaji
        • echo $vpt $gaji
    • bila menggunakan string yang terdiri dari lebih dari satu kata, maka string tersebut harus berada dalam tanda kutip atau apostrof, contoh : vpt=poltek, vpt2="poltek elektronika ITS"
  4. MANAJEMEN INPUT DAN OUTPUT PADA SHELL
    • I/O merupakan hal yang mendasar dari kerja komputer karena kapasitas inilah yang membuat komputer begitu berdayaguna. I/O yang dimaksud adalah device yang menangani masukan dan keluaran, baik itu berupa keyboard, floppy, layar monitor,dsb. sebenarnya kita telah menggunakan proses I/O ini pada contoh -contoh diatas seperti statement echo yang menampilkan teks atau informasi ke layar, atau operasi redirect ke ke file. selain echo, bash menyediakan perintah builtin printf untuk mengalihkan keluaran ke output standard, baik ke layar ataupun ke file dengan format tertentu, mirip statement printf kepunyaan bahasa C atau perl. berikut contohnya:
    • INPUT
      • #!/bin/bash
        #rd1
        
        echo -n "Nama anda :"
        read nama;
        
        echo    "Hi $nama,  apa khabarmu";
        echo    "Pesan dan kesan :";
        read 
        echo    "kata $nama, $REPLY";
         
         
    •  OUTPUT DENGAN PRINTF
      •  
        #!/bin/bash
        #pr1
        
        url="pemula.linux.or.id";
        angka=32;
        
        printf "Hi, Pake printf ala C\n\t\a di bash\n";
        printf "My url %s\n %d decimal = %o octal\n" $url $angka $angka;
        printf "%d decimal dalam float = %.2f\n" $angka $angka
          
         
  5. STRUKTUR KONTROL PADA SHELL
    •  Statement builtin if berfungsi untuk melakukan seleksi berdasarkan suatu kondisi tertentu.
      • syntax :
        • if test-command1; 
             then 
                perintah1;
          elif test-command2;
             then
                perintah2;
          else
                alternatif_perintah;
          fi
           
      • contoh script if1:
        • #!/bin/bash
          #if1
          
          clear;
          if [ $# -lt 1 ]; 
             then 
               echo "Usage : $0 [arg1 arg2 ...]"
               exit 1;
          fi
          
          echo "Nama script anda : $0";
          echo "Banyak argumen   : $#";
          echo "Argumennya adalah: $*";
           
    •  statement dalam blok if...fi akan dieksekusi apabila kondisi if terpenuhi, dalam hal ini jika script if1 dijalankan tanpa argumen. kita tinggal membaca apakah variabel $# lebih kecil (less than) dari 1, jika ya maka eksekusi perintah di dalam blok if ..fi tsb. perintah exit 1 akan mengakhiri jalannya script, angka 1 pada exit adalah status yang menandakan terdapat kesalahan, status 0 berarti sukses, anda dapat melihat isi variabel $? yang menyimpan nilai status exit, tetapi jika anda memasukkan satu atau lebih argumen maka blok if...fi tidak akan dieksekusi, statement diluar blok if..filah yang akan dieksekusi.
      • contoh script if2:
        • #!/bin/bash
          
          kunci="bash";
          read -s -p "Password anda : " pass
          if [ $pass==$kunci ]; then
              echo "Sukses, anda layak dapat linux"
          else
              echo "Wah sorry, gagal nih";
          fi
    • klausa else akan dieksekusi jika if tidak terpenuhi, sebaliknya jika if terpenuhi maka else tidak akan dieksekusi.
      • contoh script if3: penyeleksian dengan kondisi majemuk 
      #!/bin/bash
      
      clear
      echo "MENU HARI INI";
      echo "-------------";
      echo "1. Bakso     ";
      echo "2. Gado-Gado ";
      echo "3. Exit      ";
      read -p "Pilihan anda [1-3] :" pil;
      
      if [ $pil -eq 1 ]; 
      then
         echo "Banyak mangkuk =";
         read jum
         let bayar=jum*1500;
      elif [ $angka -eq 2 ]; 
      then
         echo "Banyak porsi =";
         read jum
         let bayar=jum*2000;
      elif [ $angka -eq 3 ]; 
      then
         exit 0
      else
         echo "Sorry, tidak tersedia"
         exit 1
      fi
      
      echo "Harga bayar = Rp. $bayar"
      echo "THX"
6. ARRAY PADA SHELL
  • Array pada shell adalah kumpulan variabel dengan tipe sejenis, dimana array ini merupakan feature Bash yang cukup indah :-) dan salah satu hal yang cukup penting dalam bahasa pemrograman, anda bisa membayangkan array ini sebagai tumpukan buku - buku dimeja belajar. lebih jelasnya sebaiknya lihat dulu contoh script berikut:
    • #!/bin/bash
      #array1
      
      buah=(Melon,Apel,Durian);
      echo ${buah[*]};
       
7. FUNGSI PADA SHELL
  • merupakan bagian script atau program yang berisi kumpulan beberapa statement yang melaksanakan tugas tertentu. dengan subrutin kode script kita tentunya lebih sederhana dan terstruktur, karena sekali fungsi telah dibuat dan berhasil maka akan dapat digunakan kapan saja kita inginkan. beberapa hal mengenai fungsi ini adalah:
  • Memungkinkan kita menyusun kode script ke dalam bentuk modul-modul kecil yang lebih efisien dengan tugasnya masing-masing.
  • Mencegah penulisan kode yang berulang - ulang.
untuk membuat subrutin shell telah menyediakan keyword function seperti pada bahasa C, akan tetapi ini bersifat optional (artinya boleh digunakan boleh tidak).
  • syntax :
    • function nama_fungsi() { perintah; }
       
      contoh :
      #!/bin/bash
      
      function say_hello() {
          echo "Hello, apa kbabar"
      }
      
      
      #panggil fungsi 
      say_hello;
      
      #panggil sekali lagi
      say_hello; 
      
      
       
       

Tidak ada komentar:

Posting Komentar