Anda di halaman 1dari 19

LAPORAN RESMI PRAKTIKUM 6

PEMROGRAMAN BASH SHELL

Nama : Yudistyra Ochtavian Putra


NRP : 7408030011

A. Dasar Teori
1. INSTRUKSI TEST
Instruksi test digunakan untuk memeriksa kondisi dari sebuah ekspresi. Ekspresi
terdiri dari factor dan operator yang dipisahkan oleh spasi. Hasil test akan memberikan
nilai berupa status exit, yaitu 0 bila ekspresi sesuai, bila tidak maka hasil adalah ≠ 0.•
Operator untuk test
Operator 0 atau TRUE, jika
String1 = string2 Identical
String1 != string2 Not identical
-n string String is not null
-z string String is null

Test untuk files dan directoryTest dapat dilakukan untuk memeriksa apakah file ada
(Exist), dapat dibaca, dapat ditulis, kosong dan lainnya.
Operator 0 atau TRUE, jika
-f namafile File ada, file biasa
-d namafile File ada, file adalah direktori
-r namafile File dapat dibaca
-w namafile File dapat ditulis
-x namafile File adalah executable
-s namafile File ada dan tidak kosong
-w namafile File dapat ditulis

Untuk memudahkan pembacaan (readability), test dapat ditulis dengan


[ ekspresi ] [ sebenarnya adalah nama lain dari test, bedanya [ akan mencari kurung
penutup ] pada akhir ekspresi yang harus dipisahkan oleh spasi.
2. LOGICAL && DAN || (SHELL LEVEL) Notasi && dan || digunakan
untuk menggabungkan instruksi shell sebagai alternatif untuk if then else. Notasi
&& dan || sering ditemukan dalah shell script system administrator untuk
menjalankan routine dari system operasi. • instruksi1 && instruksi2 shell akan
mengeksekusi instruksi1 , dan bila exit status instruksi1 adalah FALSE, maka hasil
dari AND tersebut sudah pasti sama dengan FALSE, sehingga instruksi2 tidak
mempunyai pengaruh lagi. Oleh karena itu, instruksi2 tidak dijalankan. Sebaliknya
bila hasil instruksi1 adalah TRUE(0), maka instruksi2 dijalankan
• instruksi1 || instruksi2 shell akan mengeksekusi instruksi1, bila exit sta tus adalah
TRUE(0), hasil dari operasi OR tersebut sudah pasti menghasilkan TRUE, terlepas dari
hasil eksekusi instruksi2. Oleh karena itu instruksi2 tidak perlu dijalankan. Bila hasil
instruksi1 adalah FALSE, maka instruksi2 akan dijalankan.

3. OPERATOR BILANGAN BULAT UNTUK TEST Untuk


membandingkan 2 buah bilangan, test memerlukan operator yang berbeda dengan
string.
Operator 0 atau TRUE, jika
I1 -eq i2 Bilangan sama
I1 -ge i2 Lebih besar atau sama dengan
I1 -gt i2 Lebih besar
I1 -le i2 Lebih kecil atau sama dengan
I1 -lt i2 Lebih kecil
I1 -ne i2 Bilangan tidak sama

4. OPERATOR LOGICAL (TEST LEVEL) Logical operator terdiri dari


AND, OR dan NOT. Operator ini menggabungkan hasil ekspresi sebagai
berikut :NOT : symbol !
!
True false
False true

AND : symbol –a

V1 V2 V1 -a V2
False False False
False True False
True False False
True True True

OR : symbol –o

V1 V2 V1 -a V2
False False False
False True True
True False True
True True True

5. KONSTRUKSI IF THEN ELSE IF if instruksi1 then


instruksi1.1 instruksi1.2
.................. elif instruksi2 then
instruksi2.1 instruksi2.2
.................. else instruksi3.1
instruksi3.2 .................. fiBila status
exit tidak sama dengan 0, maka kondisi menjadi FALSE dan instruksi setelah else
akan dijalankan.

6. HITUNGAN ARITMETIKA Tipe dari variable SHELL hanya satu yaitu


STRING. Tidak ada tipe lain seperti Numerik, Floating, Boolean atau lainnya.
Akibatnya variable ini tidak dapat membuat perhitungan aritmetika, misalnya
:A=5B=$A +1 ## error UNIX menyediakan utilitas yang bernama expr
yaitu suatu utilitas yang melakukan aritmetika sederhana.

7. INSTRUKSI EXIT Program dapat dihentikan (terminated/selesai)


dengan instruksi exit. Sebagai nilai default program tersebut akan memberikan status
exit 0.

8. KONSTRUKSI CASE Case digunakan untuk menyederhanakan


pemakaian if yang berantai, sehingga dengan case, kondisi dapat dikelompokkan
secara logis dengan lebih jelas dan mudah untuk ditulis. case variable in
match1)
instruksi1.1
instruksi1.2 ..................
;;
match2)
instruksi2.1
instruksi2.2
..................
;;
*)
instruksi3.1
instruksi3.2
..................
;;
Esac

Case diakhiri dengan esac dan pada setiap kelompok instruksi diakhiri dengan ;;. Pada
akhir pilihan yaitu *) yang berarti adalah “default”, bila kondisi tidak memenuhi pola
sebelumnya.

9. KONSTRUKSI FOR
For digunakan untuk pengulangan dengan menggunakan var yang pada setiap
pengulangan akan diganti dengan nilai yang berada pada daftar (list).
for var in str1 str2 .....strn
do instruksi1
instruksi2
..................
Done

10. KONSTRUKSI WHILE


While digunakan untuk pengulangan instruksi, yang umumnya dibatasi dengan suatu
kondisi. Selama kondisi tersebut T RUE, maka pengulangan terus dilakukan. Loop akan
berhenti, bila kondisi FALSSE, atau program keluar dari blok while melalui exit atau
break.
while kondisi
do
instruksi1
instruksi2
..................
done

11. INSTRUKSI DUMMY


Instruksi dummy adalah instruksi yang tidak melakukan apa -apa, namun instruksi
ini memberikan status exit 0 (TRUE). Oleh karena itu, instruksi dummy dapat digunakan
sebagai kondisi forever pada loop (misalnya while).
Simbol instruksi dummy adalah => :

12. FUNGSI Fungsi adalah program yang dapat dipanggil oleh program lainnya
dengan menggunakan notasi NamaFungsi(). Fungsi memberikan exit status ($?)
yang dinyatakan dengan return nr, atau nilai 0 sebagai default.
Membuat fungsi diawali dengan nama fungsi, parameter, kemudian blok program
yang dinyatakan dalam { ... }.
Contoh :
F1( ) {
........
........
return 1
}

Variabel dapat didefinisikan dalam fungsi sebagai variable local atau global. Hal
yang perlu diperhatikan, nama variable yang digunakan dalam sebuah fungsi, jangan
sampai bentrok dengan nama variable yang sam adi luar fungsi, sehingga tidak terjadi isi
variable berubah.
Percobaan 1

Analisa
Kode diatas berfungsi untuk menjalankan editor vi untuk membuat prog01.sh.
kemudian dijalankan dengan perintah kedua. Kemudian dicompile dengan perintah ke
tiga. Dan dilakukan eksekusi dengan peintah ke 4.

Percobaan 2

1.

2.
3.

4.

5.

6.

7.

Analisa
Pada percobaan 2 nomor 1 diatas merupakan contoh penggunaan variable pada
shell interaktif. Nomor 2 menunjukkan penggunaan string pada variable. Nomor 3
menunjukkan penggabungan dua variable atau lebih. Nomor 4 menggabungkan isi
variable dengan string yang lain. Nomor 5 menunjukkan bahwa variable dapat berisi
instruksi. Nomor 6 digunakan untuk memodifikasi file prog01.sh. Nomor 7 digunakan
untuk mengeksekusi program.

Percobaan 3
1.

2.

3. 4.

5. 6.

7. 8.

9.
Analisa
Pada percobaan 3 nomor 1 digunakan untuk menggunakan instruksi read. Nomor dua
digunakan untuk membuat program prog02.sh yang berfungsi membaca nama dan alamat
dari keyboard. Nomor 3 digunakan untuk eksekusi program prog02.sh. Nomor 4
digunakan untuk memodifikasi program prog02.sh sehingga input akan berada
disamping. Nomor 5 digunakan untuk mengeksekusi program yang telah dimodifikasi.
Nomor 6 digunakan untuk menunjukkan variable kosong. Nomor 7 digunakan untuk
menunjukkan fungsi dari BackQuate. Nomor 8 digunakan untuk membuat program
prog03.sh. Nomor 9 digunakan untuk mengeksekusi prog03.sh.

Percobaan 4
1. 2.

3. 4.

5. 6.

Analisa
Pada percobaan 4 nomor 1 digunakan untuk membuat program prog04.sh yang
berfungsi menguji parameter passing. Nomor 2 digunakan untuk mengeksekusi
prog04.sh. Nomor 3 digunakan untuk memodifikasi prog04.sh dengan sejumlah
parameter. Nomor 4 digunakan untuk megeksekusi hasil modifikasinya. Nomor 5
digunakan untuk memodifikasi prog04.sh dengan menambahkan total parameter dan
nomor PIDnya. Nomor 6 digunakan untuk mengeksekusi program hasil modifikasi.

Percobaan 5
1. 2.

Analisa
Pada percobaan 5 berfungsi untuk menguji status exit dari suatu variable. Nomor
1 karena string tidak ditemukan maka status exit 1. Nomor 2 karena string ditemukan
maka status exit 0.

Percobaan 6
1.

2.

3.

Analisa
Percobaan 6 nomor 1 merupakan instruksi dengan status exit 0. Nomor 2
merupakan sintax dari konstruksi if. Nomr 3 merupakan proses penyederhanaan dari
program yang diatas.

Percobaan 7
1. 2.

Analisa
Percobaan 7 nomor 1 berfungsi untuk membuat prog05.sh yang merupakan
bentuk konstruksi dari if then else. Nomor 2 digunakan untuk menjalankan prog05.sh
yang telah dibuat.
Percobaan 8
1. 2.

3. 4.

5.

Analisa
Pada percobaan 8 nomor 1 untuk menggunakan instruksi test. Nomor 2
merupakan aplikasi test dengan konstruksi if pada program prog06.sh. Nomor 3
digunakan untuk mengeksekusi dan menguji program prog06.sh. nomor 4 digunakan
untuk memodifikasi prog06.sh dengan menggunakan notasi untuk test. Nomor 5
digunakan untuk menjalankan prog06.sh yang telah dimodifikasi.

Percobaan 9
Analisa
Pada percobaan 9 merupakan pengujian terhadap notasi && dan ||.
Percobaan 10

Analisa
Percobaan 10 merupakan operator untuk bilangan bulat untuk test. Ketiga baris
yang pertama akan menghasilkan nilai 0. Baris selanjutnya akan menghasilkan 0 juga.

Percobaan 11
1. 2.

Analisa
Percobaan 11 merupakan operator logical dan konstruksi elif. Nomor 1
merupakan source code untuk prog07.sh. nomor 2 untuk menjalankan prog07.sh.

Percobaan 12
1. 2.
Analisa
Percobaan 12 merupakan hitungan aritmetika. Nomor 1 menggunakan utilitas
expr. Nomor 2 merupakan subtitusi isi variable dengan hasil utilitas expr.

Percobaan 13
1. 2.

Analisa
Percobaan 13 nomor 1 digunakan untuk membuat prog08.sh yang berisi instruksi
exit. Nomor 2 digunakan untuk menjalankan instruksi tersebut.
Percobaan 14
1. 2.

3.

4.
5.

Analisa
Percobaan 14 nomor 1 digunakan untuk membuat prog09.sh yang berisi perintah
case. Nomor 2 digunakan untuk menjalankan prog09.sh. Nomor 3 merupakan bentuk lain
dari case yang dibuat pada prog10.sh. nomor 4 digunakan untuk menjalankan program
yang telah dibuat. Nomor 5 digunakan untuk memodifikasi dari file prog10.sh. nomor 6
menjalankan program yang telah dimodifikasi.

Percobaan 15
1. 2.

3. 4.

5. 6.

Analisa
Pada percobaan nomor 1 membuat file prog11.sh yang didalamnya terdapat
konstruksi for do done. Nomor 2 digunakan untuk menjalankan program prog11.sh.
Nomor 3 digunakan untuk membuat file prog12.sh yang berisi konstruksi for dan
wildcard. Nomor 4 digunakan untuk menjalankan prog12.sh. Nomor 5 memodifikasi file
prog12.sh sehingga program akan menampilkan long list dari file yang mempunyai
ekstensi 1st. nomor 6 digunakan untuk menjalankan program yang telah dimodifikasi.

Percobaan 16
1. 2.

Analisa
Percobaan 16 nomor 1 digunakan untuk membuat file prog13.sh yang berisi
konstruksi while do done. Nomor 2 digunakan untuk menjalankan program prog13.sh.

Percobaan 17
1. 2.

3. 4.
Analisa
Percobaan 17 nomor 1 digunakan untuk memodifikasi file prog13.sh. Nomor 2
digunakan untuk menjalankan prog13.sh. nomor 3 digunakan untuk membuat file
prog14.sh sehingga instruksi dummy untuk konstruksi if. Nomor 4 digunakan untuk
menjalankan program prog14.sh.

Percobaan 18
1. 2.

3. 4.

5. 6.
Analisa
Percobaan 18 nomor 1 digunakan untuk membuat file fungsi.sh dimana terdapat
suatu fungsi didalamnya. Nomor 2 digunakan untuk menjalankan program fungsi.sh.
Nomor 3 digunakan untuk memodifikasi file fungsi.sh sehingga menggunakan variable
pada fungsi. Nomor 4 digunakan untuk menjalankan file yang telah dimodifikasi. Nomor
5 juga melakukan modifikasi terhadap file fungsi.sh. Kemudian nomor 6 berfungsi untuk
menjalankan file fungsi.sh.

Latihan
1.

Analisa
Pada latihan nomor 1 ini dibuat program yang berfungsi untuk menyalin file
dengan format salin.sh file-asal file-tujuan. Untuk mengambil nama file, gunakan
parameter $1 dan $2. Bila jumlah parameter tidak sama ($#) dengan 2 maka beri pesan
exit = -1.

2.
Analisa
Pada latihan nomor 2 program dijalankan dengan memberikan 1 parameter yaitu
parameter nama direktori. Jika parameter nama direktori yang diminta tidak diberikan,
maka kondisi $# -ne 1 bernilai TRUE sehingga instruksi menampilkan kalimat error dan
keluar dari program akan dijalankan. Namun jika kondisi tersebut bernilai FALSE maka
akan memeriksa kondisi –d $dir. Jika –d $dir bernilai TRUE maka akan dijalankan
perintah ls –ld. Jika Parameter yang diberikan bukanlah nama direktori, maka akan
dijalankan perintah untuk menampilkan kalimat ”Bukan Direktori”.

3.

Analisa
Pada latihan nomor 3 merupakan program penghitungan pendapatan kena pajak
sesuai aturan yang telah ditentukan. Pada program diatas digunkan konstruksi if-then
untuk menyeleksi kondisi dari gaji yang harus terkena pph.
4.

Analisa
Pada latihan nomor 4 merupakan program yang menggunakan konstruktor case-
esac. Match case yang digunkan berupa string, Sehingga Ketika inputan dari keyboard
telah diberikan, maka pemeriksaan yang dilakukan adalah berdasarkan kesamaan string
inputan terhadapa match case. Jika bernilai true maka instruksi yang ada didalamnya akan
dijalankan.

5.

Analisa
Pada latihan nomor 5 merupakan program yang menjalankan perintah confirm.
Perintah yang dijalankan menggunakan konstruktor if-then yang dilaksanakan pada suatu
fungsi yang bernama F1. Pada fungsi tersebut terdapat 3 variabel lokal yang tidak dapat
diakses dari luar fungsi tersebut. Variabel answer menerima inputan dari keyboard.
Setelah mengecek kondisi yang ada, maka setiap instruksi yang ada akan dijalankan.
Perintah yang dijalankan berupa instruksi untuk memberikan nilai kembalia (return
value). Kemudia nilai kembalian tersebut ditangkap oleh variabel shell $? dan
disubtitusikan pada variabel hasil. Proses selanjutnya adalah terdapa lagi konstruktor if-
then yang memeriksa nilai variabel $hasil apakah sesuai dengan kondisi yang ada. Jika
bernilai TRUE maka akan dijalankan perintah untuk menampilkan kalimat sesuai dengan
instruksi yang ada.

A. Kesimpulan
Shell script dibuat dengan editor teks (ASCII editor) dan umumnya diberikan
ekstensi “.sh”. Script selalu diawali dengan komentar, yang dimulai dengan tanda
#, disambung dengan ! dan nama shell yang digunakan.
Nilai variable dapat diisi melalui keyboard (stdin) dengan instruksi read.
Untuk melihat nilai/isi dari sebuah variable, gunakan tanda $ di depan nama
variable tersebut.
Jumlah parameter dinyatakan sebagai $#
Pemberian nilai variable tidak boleh dipisahkan dengan spasi, karena shell akan
menganggap pemisahan tersebut sebagai parameter.
$$ menyatakan nomor proses id (pid) dari script yang dijalankan
Nilai dari status exit dapat dilihat melalui instruksi echo $?.
Notasi && dan || digunakan untuk menggabungkan instruksi shell sebagai
alternatif untuk if then else.
Konstruktor if akan mengeksekusi instruksi-awal, dan exit status dari instruksi
tersebut akan menjadi kondisi. Bila 0, maka instruksi selanjutnyua masuk ke
dalam blok then. Bila tidak 0, maka alur program diteruskan setelah kunci kata fi.
Bila status exit tidak sama dengan 0, maka kondisi menjadi FALSE dan instruksi
setelah else akan dijalankan.
Instruksi test digunakan untuk memeriksa kondisi dari sebuah ekspresi. Ekspresi
terdiri dari factor dan operator yang dipisahkan oleh spasi.
Test dapat dilakukan untuk memeriksa apakah file ada (Exist), dapat dibaca, dapat
ditulis, kosong dan lainnya
Untuk membandingkan 2 buah bilangan, test memerlukan operator yang berbeda
dengan string, Operator-operator tersebut adalah –eq : Bilangan sama, –ge :
Lebih besar atau sama dengan, –gt : Lebih besar, –le : Lebih kecil atau sama
dengan, –lt : Lebih kecil, –ne : Bilangan tidak sama
Logical operator terdiri dari AND (-a), OR (-o) dan NOT (!). Operator ini
menggabungkan hasil ekspresi.
Perintah expr yaitu suatu utilitas yang melakukan aritmetika sederhana.
Fungsi adalah program yang dapat dipanggil oleh program lainnya dengan
menggunakan notasi NamaFungsi().
Case digunakan untuk menyederhanakan pemakaian if yang berantai
For digunakan untuk pengulangan dengan menggunakan var yang pada setiap
pengulangan akan diganti dengan nilai yang berada pada daftar (list).
While digunakan untuk pengulangan instruksi, yang umumnya dibatasi dengan
suatu kondisi.

Anda mungkin juga menyukai