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-else
, case
, 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 exitTRUE (0)
, makainstruksi2
akan dijalankan. Jika tidak,instruksi2
tidak dijalankan. - Instruksi1 || Instruksi2: Jika
instruksi1
menghasilkan status exitFALSE (bukan 0)
, makainstruksi2
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 NOT
, AND
, 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.
-z
untuk memeriksa apakah string yang dimasukkan kosong.read string
digunakan untuk menerima input dari pengguna.if
menentukan apakah string tersebut kosong atau tidak, dan kemudian memberikan pesan yang sesuai.2. Program Mengecek Apakah File Ada
Program ini hanya mengecek apakah sebuah file ada.
-f
untuk memeriksa apakah file yang dimasukkan pengguna ada di sistem.3. Program Menampilkan Bilangan dari 1 Sampai 3
Program ini menampilkan angka dari 1 sampai 3 menggunakan for
loop
for
loop untuk mencetak angka dari 1 sampai 3.4. Program Penjumlahan Dua Angka
Program ini melakukan penjumlahan dua angka yang dimasukkan oleh pengguna.
(( ))
untuk melakukan penjumlahan aritmetika.read
digunakan untuk menangkap input, dan hasilnya dicetak dengan echo
.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 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
0 Komentar