Telusuri

Praktikum 6 Pemrograman Shell


LAPORAN PRAKTIKUM SISTEM OPERASI 6

PEMROGRAMAN SHELL

Disusun untuk memenuhi tugas mata kuliah Sistem Operasi

 Dosen Pengampu :

Fathurrahman S.T., M.T. 




 

 Disusun Oleh :

Purbo Dwi Junianto     (2203421016)

 

PROGRAM STUDI BROADBAND MULTIMEDIA

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI JAKARTA

DEPOK

2024

 A. POKOK BAHASAN

Praktium ini membahas mengenai Pemrograman Shell

B. TUJUAN BELAJAR:

Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:

  •     Mempelajari elemen dasar shell script
  •     Membuat program shell interaktif
  •     Menggunakan parameter dalam program
  •     Mempelajari test kondisi serta operator logic yang terkait dengan instruksi test
  •     Mengenal variable built-in dari shell
  •     Membuat aplikasi dengan shell menggunakan konstruksi if-then-else
  •     Menggunakan struktur case – esac.
  •     Loop dengan while, for, do while.
  •     Membuat fungsi dan mengetahui cara memanggil fungsi tersebut.

C. ABSTRAK

Praktikum ini berfokus pada pemahaman dan implementasi pemrograman shell. Mahasiswa mempelajari berbagai elemen dasar shell script seperti variabel, kondisi, perulangan, dan fungsi, serta cara memanfaatkan instruksi shell untuk membangun aplikasi sederhana. Praktikum ini juga memperkenalkan penggunaan operator logika, aritmetika, serta pengecekan kondisi pada file dan string, yang esensial dalam membangun program shell interaktif. Melalui percobaan-percobaan, mahasiswa mampu menggunakan kontrol alur seperti if-then-elsecase, dan loop for atau while.

D. DASAR TEORI

1. Instruksi test

Instruksi test digunakan untuk mengevaluasi kondisi dari suatu ekspresi. Ekspresi terdiri dari faktor dan operator yang dipisahkan oleh spasi. Hasil dari test akan memberikan status keluaran (exit status), yaitu 0 jika ekspresi benar, dan bukan 0 jika ekspresi salah.

  • Operator untuk string dalam test:

    • string1 = string2 : True jika string1 identik dengan string2.
    • string1 != string2 : True jika string1 tidak identik dengan string2.
    • -n string : True jika string tidak kosong.
    • -z string : True jika string kosong.
  • Operator untuk file dan direktori:

    • -f namafile : True jika file ada dan merupakan file biasa.
    • -d namafile : True jika file ada dan merupakan direktori.
    • -r namafile : True jika file dapat dibaca.
    • -w namafile : True jika file dapat ditulis.
    • -x namafile : True jika file dapat dieksekusi.
    • -s namafile : True jika file ada dan tidak kosong.

Untuk mempermudah penulisan dan pembacaan, ekspresi test juga bisa ditulis menggunakan kurung siku:

 [ ekspresi ]

Kurung siku adalah sinonim dari test, namun perintah ini membutuhkan kurung tutup ] pada akhir ekspresi.

2. Logical AND (&&) dan OR (||) pada Level Shell

Notasi && dan || digunakan untuk menggabungkan instruksi dalam shell sebagai alternatif sederhana dari konstruksi if-then-else.

  • Instruksi1 && Instruksi2: Jika instruksi1 menghasilkan status exit TRUE (0), maka instruksi2 akan dijalankan. Jika tidak, instruksi2 tidak dijalankan.
  • Instruksi1 || Instruksi2: Jika instruksi1 menghasilkan status exit FALSE (bukan 0), maka instruksi2 akan dijalankan.

3. Operator Bilangan Bulat untuk test

Untuk membandingkan dua bilangan bulat, shell menggunakan operator berikut dalam test:

  • i1 -eq i2 : True jika bilangan sama.
  • i1 -ge i2 : True jika i1 lebih besar atau sama dengan i2.
  • i1 -gt i2 : True jika i1 lebih besar dari i2.
  • i1 -le i2 : True jika i1 lebih kecil atau sama dengan i2.
  • i1 -lt i2 : True jika i1 lebih kecil dari i2.
  • i1 -ne i2 : True jika bilangan tidak sama.

4. Operator Logika pada test

Operator logika NOTAND, dan OR digunakan untuk menggabungkan ekspresi dalam test:

  • ! ekspresi: Membalikkan hasil ekspresi (NOT).
  • ekspresi1 -a ekspresi2: True jika kedua ekspresi benar (AND).
  • ekspresi1 -o ekspresi2: True jika salah satu ekspresi benar (OR).

5. Konstruksi if-then-else

Konstruksi if-then-else digunakan untuk mengontrol alur program berdasarkan hasil evaluasi kondisi. Jika kondisi benar (status exit 0), maka instruksi dalam blok then dijalankan. Jika tidak, instruksi setelah else dijalankan.

6. Hitungan Aritmetika

Shell hanya mengenal tipe data string. Untuk melakukan operasi aritmetika, shell memerlukan utilitas seperti expr atau (( )).

Contoh:

 A=5 

B=$(expr $A + 1)

7. Instruksi exit

Instruksi exit digunakan untuk menghentikan eksekusi skrip. Defaultnya, status exit yang diberikan adalah 0, namun pengguna dapat menentukan nilai lain sebagai status exit.

8. Konstruksi case

Konstruksi case digunakan untuk menyederhanakan banyak kondisi yang biasanya menggunakan beberapa blok if-else. Blok case diakhiri dengan esac.

Contoh:

 

9. Konstruksi for

Konstruksi for digunakan untuk melakukan pengulangan terhadap daftar nilai tertentu.

Contoh:

 

10. Konstruksi while

Konstruksi while digunakan untuk melakukan pengulangan selama kondisi tertentu bernilai TRUE.

Contoh:

 while [ $count -le 5 ] do echo "Count: $count" count=$((count + 1)) done

11. Instruksi Dummy (:)

Instruksi dummy (:) tidak melakukan apapun, namun memberikan status exit 0 (TRUE). Biasanya digunakan dalam kondisi loop yang berjalan selamanya.

12. Fungsi dalam Shell

Fungsi adalah blok kode yang dapat dipanggil di dalam program lain. Fungsi mendukung penggunaan variabel lokal dan global.

Contoh:

 

E. PERTANYAAN PENDAHULUAN

1. Program Mengecek Apakah String Kosong

Program ini memeriksa apakah string yang dimasukkan oleh pengguna kosong atau tidak.

 

  • Program ini menggunakan perintah -z untuk memeriksa apakah string yang dimasukkan kosong.
  • read string digunakan untuk menerima input dari pengguna.
  • Kondisi if menentukan apakah string tersebut kosong atau tidak, dan kemudian memberikan pesan yang sesuai.
  • Program ini bermanfaat untuk validasi input pengguna, misalnya sebelum melakukan operasi lebih lanjut.
  • 2. Program Mengecek Apakah File Ada

    Program ini hanya mengecek apakah sebuah file ada.

     

  • Program menggunakan perintah -f untuk memeriksa apakah file yang dimasukkan pengguna ada di sistem.
  • Jika file ada, program menampilkan pesan bahwa file tersebut ditemukan; jika tidak, program memberi pesan bahwa file tidak ada.
  • Ini sering digunakan dalam skrip yang memerlukan file sebagai input sebelum memproses data atau menjalankan perintah terkait.
  • 3. Program Menampilkan Bilangan dari 1 Sampai 3

    Program ini menampilkan angka dari 1 sampai 3 menggunakan for loop

     

  • Program ini memanfaatkan for loop untuk mencetak angka dari 1 sampai 3.
  • Setiap iterasi menampilkan satu angka, menunjukkan dasar penggunaan pengulangan dalam shell scripting.
  • Contoh sederhana ini menunjukkan cara menggunakan pengulangan dengan daftar nilai tetap, yang bisa diperluas ke daftar variabel atau file.
  • 4. Program Penjumlahan Dua Angka

    Program ini melakukan penjumlahan dua angka yang dimasukkan oleh pengguna.

     

  • Program menerima dua angka dari pengguna, dan menggunakan perintah (( )) untuk melakukan penjumlahan aritmetika.
  • read digunakan untuk menangkap input, dan hasilnya dicetak dengan echo.
  • Penggunaan penjumlahan sederhana ini menunjukkan kemampuan bash untuk melakukan operasi aritmetika dasar.
  •  5. Program Menampilkan Direktori Saat Ini

     Program ini hanya menampilkan direktori saat ini.

     

    Program ini menggunakan perintah pwd (print working directory) untuk menampilkan direktori kerja saat ini.

    F. PERCOBAAN

    Percobaan 6A

     Percobaan 1 : Membuat shell script

     

     

     Percobaan 2 : Variabel



    Isi variabel CMD pertama adalah perintah who, kemudian diubah isinya menjadi perintah ls

     


     Percobaan 3 : Membaca keyboard

     


     


     Percobaan 4 : Parameter



     Percobaan 5 : Status Exit

     


     Percobaan 6 : Konstruksi if

     Percobaan 7 : Konstruksi if then else



     Percobaan 6B

    Percobaan 8 : Instruksi Test

    Percobaan 9 : Notasi && dan ||

     Percobaan 10 : Operator Bilangan Bulat untuk Test

     

    Percobaan 11 : Operatot Logical dan Konstruksi Elif

     


    Percobaan 12 : Hitungan Aritmetika

    Percobaan 13 : Instruksi Exit


    Percobaan 14 : Konstruksi Case – Esac


    Percobaan 16 : Konstruksi While-Do-Done

    Percobaan 17 : Instruksi Dummy

    Percobaan 18 : Fungsi



    G. KESIMPULAN 

    Dari praktikum ini, mahasiswa tidak hanya berhasil memahami dan menerapkan dasar-dasar pemrograman shell, tetapi juga mampu mengintegrasikan berbagai konsep lanjutan dalam skrip shell. Mereka mampu memanfaatkan variabel, operator logika, serta berbagai bentuk perulangan (for, while) dan struktur pengambilan keputusan seperti if-then-else dan case. Mahasiswa juga telah membuktikan kemampuannya dalam membuat program interaktif yang dapat berfungsi secara otomatis dengan memperhatikan kondisi yang diberikan, baik yang bersifat statis maupun dinamis. Dengan kemampuan untuk mengelola alur kontrol yang kompleks, mereka mendapatkan fondasi kuat untuk mengembangkan aplikasi berbasis shell yang lebih canggih, serta memahami bagaimana skrip shell dapat digunakan untuk otomasi tugas dalam sistem operasi Unix/Linux.

    REFERENSI

  • Shotts, W. E. (2019). The Linux Command Line: A Complete Introduction. No Starch Press.
  • Nemeth, E., Snyder, G., Hein, T., & Whaley, B. (2017). UNIX and Linux System Administration Handbook. Pearson Education
  • Posting Komentar

    0 Komentar