Anda di halaman 1dari 23

Nama : Teguh Tri Sasongko – 25

Kelas : TMJ 1
Tugas : Pratikum 8 Pemrograman Shell 2
NIM : 1807421005

TUGAS PENDAHULUAN:

Percobaan 1 : Instruksi Test

1. Menggunakan instruksi test, perhatikan spasi antara


$ NAMA=amir
$ test $NAMA = amir
$ echo $?
$ test $NAMA = boris
$ echo $?

2. Aplikasi test dengan konstruksi if


$ vi prog06.sh
#!/bin/sh
# prog06.sh
echo –n “NAMA = “
read NAMA
if test “$NAMA” = amir
then
echo “Selamat Datang $NAMA”
else
echo “Anda bukan amir, sorry!”
fi

3. Jalankan program prog06.sh dengan memasukkan NAMA = amir dan


NAMA = <CR> perhatikan hasil tampilannya
$ . prog06.sh [NAMA = amir]
$ . prog06.sh [NAMA = <CR>] (Terdapat pesan error)

4. Modifikasi prog06.sh dengan menggunakan notasi untuk test


$ vi prog06.sh
#!/bin/sh
# prog06.sh echo –n “NAMA = “
read NAMA
if [ “$NAMA” = amir ]
then
echo “Selamat Datang $NAMA”
else
echo “Anda bukan amir, sorry!”
fi

5. Jalankan program prog06.sh dengan memasukkan NAMA = amir


$ . prog06.sh [NAMA = amir]

Percobaan 2 : Notasi && dan ||

1. Bila file prog01.sh ada (TRUE), maka jalankan program berikutnya.


File prog01.sh ada, karena itu exit status adalah TRUE, hasil operasi
AND masih tergantung pada hasil eksekusi instruksi ke 2, dan dengan
demikian instruksi echo akan dijalankan.
$ [ -f prog01.sh ] && echo “Prog01.sh ada”

2. File prog99.sh tidak ada, karena itu exit status adalah FALSE dan
instruksi echo tidak dijalankan
$ [ -f prog99.sh ] && echo “Prog99.sh ada”

3. Bila prog01.sh ada maka jalankan shell script tersebut


$ [ -f prog01.sh ] && . prog01.sh

4. Bila prog01.sh ada maka jalankan program berikutnya. File prog01.sh


memang ada, karena itu exit status adalah TRUE, dan karena sudah
TRUE maka instruksi echo tidak lagi dijalankan
$ [ -f prog01.sh ] || echo “Dieksekusi tidak ?”

5. File prog99.sh tidak ada, karena itu exit status adalah FALSE, hasil
masih tergantung atas exit status instruksi ke dua, karena itu instruksi
echo dijalankan
$ [ -f prog99.sh ] || echo “Dieksekusi tidak ?”

6. File prog99.sh tidak ada, maka tampilkan pesan error


$ [ -f prog99.sh ] || echo “Sorry, prog99.sh tidak ada”

Percobaan 3 : Operator bilangan bulat untuk test

1. Menggunakan operator dengan notasi test


$ i=5
$ test “$i” –eq 5
$ echo $?

2. Menggunakan operator dengan notasi [ ] (penganti notasi test)


$ [ “$i” –eq 5 ]
$ echo $?

Percobaan 4 : Operator Logical dan konstruksi elif

1. Buatlah file prog07.sh


$ vi prog07.sh
#!/bin/sh
# prog07.sh
echo –n “INCOME = “ read INCOME
if [ $INCOME –ge 0 –a $INCOME –le 10000 ]
then
BIAYA=10 elif [ $INCOME –gt 10000 –a $INCOME –le 25000 ]
then
BIAYA=25
else
BIAYA=35
fi
echo “Biaya = $BIAYA”

2. Jalankan file prog07.sh dan masukkan untuk INCOME=5000, 20000,


28000
$ . prog07.sh [INCOME=5000]
$ . prog07.sh [INCOME=20000]
$ . prog07.sh [INCOME=28000

Percobaan 5 : Hitungan aritmetika

1. Menggunakan utilitas expr


$ expr 5 + 1
$ A=5
$ expr
$A + 2
$ expr $A – 4
$ expr $A * 2 (Ada Pesan Error)
$ expr $A \* 2
$ expr $A / 6 +10
$ expr 17 % 5

2. Substitusi isi variable dengan hasil utilitas expr


$ A=5
$ B=`expr $A + 1`
$ echo $B

Percobaan 6 : Instruksi exit

1. Buat shell script prog08.sh


$ vi prog08.sh
#!/bin/sh
if [ -f prog01.sh ]
then
exit 3
else
exit –1 fi
2.

Percobaan 7 : Konstruksi case – esac

Percobaan 8 : Konstruksi for-do-done

Percobaan 9 : Konstruksi while-do-done

Percobaan 10 : Instruksi dummy

Percobaan 11 : Fungsi

PERCOBAAN:

Percobaan 1 : Membuat shell script

1. Buatlah file prog01.sh dengan editor vi


$ vi prog01.sh
#!/bin/sh
# Program shell
#
var1=x
var2=8
gambar 1.1
Analisa : Perintah diatas digunakan untuk membuat file baru
menggunakan teks editor vi, kita dapat menggunakan teks editor ini untuk
membuat atau menulis kode-kode pemrograman seperti bash dan lain-
lainnya. untuk dapat insert scriptnya tekan i, kemudian untuk
menyimpannya dengan menekan CTRL-C kemudia SHIFT+ZZ (doble Z
besar)

2. Untuk menjalankan shell, gunakan notasi TITIK di depan nama program


$ . prog01.sh

gambar 1.2
Analisa : Perintah diatas digunakan untuk menjalankan shell dengan
menggunakan notasi titik pada didepan program tersebut, perintah diatas
tidak akan mengeluarkan output apa-apa dikarenakan isi dari kode tersebut
hanya mendefinikasikan var1 dan var2 tanpa adanya output untuk
ditampilkan

3. Untuk menjalankan shell, dapat juga dengan membuat executable file dan
dieksekusi relatif dari current directory
$ chmod +x prog01.sh
$ ./prog01.sh
gambar 1.3
Analisa : Perintah diatas digunakan untuk membuat executable file dan
dieksekusi dari current directory, kemudian perinta ./prog01.sh digunakan
untuk menjalankan script, perintah diatas tidak akan mengeluarkan output
apa-apa dikarenakan isi dari kode tersebut hanya mendefinikasikan var1
dan var2 tanpa adanya output untuk ditampilkan

Percobaan 2 : Variabel

1. Contoh menggunakan variable pada shell interaktif


$ VPT=poltek
$ echo $VPT

gambar 2.1
Analisa : perintah diatas digunakan untuk menggunakan variable pada
shell interaktif pada terminal tersebut untuk menampilkan variabel
pertama definikasikan nama variabel tersebut, misalnya seperti variabel
VPT berisi poltek, dan untuk menampilkan variabel tersebut menggunakan
echo $VPT maka setelah dijalankan isi dari variabel VPT akan tampil
yaitu poltek.

2. Pemisahan 2 kata dengan spasi menandakan eksekusi 2 buah instruksi.


Karakter $ harus ada pada awal nama variable untuk melihat isi variable
tersebut, jika tidak, maka echo akan mengambil parameter tersebut sebagai
string
$ VPT2=poltek elektronika (Terdapat pesan error)
$ VPT2=”poltek elektronika”
$ echo VPT2
$ echo $VPT2

gambar 2.2
Analisa : perintah diatas digunakan untuk membuat pemisah 2 kata dengan
spasi menandakan eksekusi 2 buah intruksi, untuk membuat variabel
dengan 2 kata harus diaapit oleh tanda kutip dua (“), dan dapat
menggunakan echo $VPT maka isi dari variabel VPT akan ditampilkan,
bila tidak menggunakan $ echo tidak dapat mengambil variable tersebut
sebagai string

3. Menggabungkan dua variable atau lebih


$ V1=poltek
$ V2=’:’
$ V3=elektronika
$ V4=$V1$V2$V3
$ echo $V4

gambar 2.3
Analisa : Perintah diatas digunakan untuk menggabungkan dua variable
atau lebih seperti pada gambar diatas, menggunakan tiga variable dan
didefinikasikan pada variable V4 untuk menampilkan variable V1 V2 V3,
hanya memanggil variable V4 maka variable ketiga tersebut langsung
terpanggil atau ditampilkan
4. Menggabungkan isi variable dengan string yang lain. Jika digabungkan
dengan nama variable yang belum didefinisikan (kosong) maka instruksi
echo menghasilkan string kosong. Untuk menghindari kekeliruan, nama
variable perlu diproteksi dengan { } dan kemudian isi variable tersebut digabung
dengan string.
$ echo $V3
$ echo $V3ITS
$ echo ${V3}ITS

gambar 2.4
Analisa : perintah diatas digunakan untuk menggabungkan isi variable
dengan string yang lainnya, untuk menggabungkannya tidak bisa secara
langsung digabungkan yang seperti perintah yang kedua mengakibatkan
output atau yang ditampilkan hanya kosong atau blank, maka dari itu
untuk menggabungkanya perlu menggunakan {} untuk memisahkan
variable dengan string tersebut

5. Variabel dapat berisi instruksi, yang kemudian bila dijadikan input untuk
shell, instruksi tersebut akan dieksekusi
$ CMD=who
$ $CMD
$ CMD=”ls –l”
$ $CMD
gambar 2.5
Analisa : perintah diatas merupakan variable yang berisikan intruksi, yang
kemudian akan dieksekusi, seperti variable CMD diisi oleh intruksi who,
maka akan keluar output nama user yang sedang dipakai, kemudian
variable CMD diisi oleh intruksi ls -l yang kemudian akan keluar output
daftar file di direktori tersebut

6. Modifikasi file prog01.sh berikut


$ vi prog01.sh
#!/bin/sh
V1=poltek
V2=’:’
V3=elektronika
echo “Pemrograman shell”
echo $V1$V2$V3
V3=ITS
echo $V1$V2 di $V3

gambar 2.6
Analisa : pada perintah diatas digunakan untuk mengedit atau
memodifikasi file prog01.sh

7. Cara sederhana mengeksekusi shell adalah dengan menggunakan notasi


titik di depan nama shell script tersebut. Bila direktori actual tidak
terdaftar dalam PATH, maka command tersebut tidak dapat ditemukan.
Bila script belum executable, script tidak dapat dieksekusi.
$ . prog01.sh
$ prog01.sh (Terdapat pesan error)
$ ./prog01.sh (Terdapat pesan error)
$ chmod +x prog01.sh
$ ./prog01.sh
gambar 2.7
Analisa : pada perintah diatas digunakan untuk menjalankan program
prog01.sh, dengan menggunakan notasi titik akan menampilkan output
sesuai dengan isi dari script shell tersebut, kemudian dengan beberapa cara
namun gagal, karena file diatas digunakan untuk hanya file executable

Percobaan 3 : Membaca keyboard

1. Menggunakan instruksi read


$ read nama
amir
$ echo $nama

gambar 3.1
Analisa : perintah diatas digunakan untuk membaca input dari keyboard
bisa menggunakan instruksi read, seperti pada gambar diatas menginput
nama amir, kemudian variable tersebut dipanggil akan mengeluarkan
output amir

2. Membaca nama dan alamat dari keyboard


$ vi prog02.sh
#!/bin/sh
# prog02.sh
# membaca nama dan alamat
echo “Nama Anda : “
read nama
echo “Alamat : “
read alamat
echo “Kota : “
read kota

echo
echo “Hasil adalah : $nama, $alamat di $kota”

gambar 3.2
Analisa : perintah diatas digunakan untuk membuat file melalui teks editor
vi, seperti pada percobaan sebelumnya, pada shell script prog02.sh ini
menggunakan tiga buah variable input menggunakan keyboard dengan
menggunakan read

3. Eksekusi program prog02.sh


$ . prog02.sh
Nama Anda :
Amir
Alamat :
Jl semangka 67
Kota :
Surabaya

Hasil adalah : Amir, Jl semangka di Surabaya


gambar 3.3
Analisa : perintah diatas digunakan untuk menjalankan program
prog02.sh, kemudian setelah dieksekusi maka akan menampilkan proses
input atau memasukan variable nama, setelah menginput variable kota,
maka akan muncul hasilnya tersebut

4. Instruksi echo secara otomatis memberikan baris baru, maka untuk


menghindari hal tersebut disediakan opsi –n, yang menyatakan kepada
echo untuk menghilangkan baris baru. Modifikasi program prog02.sh
$ vi prog02.sh
#!/bin/sh
# prog02.sh
# membaca nama dan alamat
echo –n “Nama Anda : “
read nama
echo –n “Alamat : “
read alamat
echo –n “Kota : “
read kota
echo
echo “Hasil adalah : $nama, $alamat di $kota”

gambar 3.4
Analisa : perintah diatas digunakan untuk memodifikasikan atau mengedit
prog02.sh, ditambahkan perintah echo diikuti -n untuk menghilangkan
baris baru

5. Eksekusi program prog02.sh


$ . prog02.sh
Nama Anda : Amir
Alamat : Jl semangka 67
Kota : Surabaya
Hasil adalah : Amir, Jl semangka di Surabaya

gambar 3.5
Analisa : perintah diatas sama hal nya dengan perintah yang dieksekusi
pada percobaan 3.3 hanya saja perbedaan dapat terlihat pada tampilan
tersebut tidak terdapat baris baru namun meneruskan perintah echo
tersebut

6. Variabel kosong adalah variable yang tidak mempunyai nilai. Variabel ini
didapat atas assignment atau membaca dari keyboard atau variable yang
belum didefinisikan
$ read nama <CR>
$ echo $nama
$ A=
$ B=””
$ C=$A$B
$ echo $C

gambar 3.6
Analisa : perintah diatas digunakan untuk membaca keyboard, seluruh
variable diatas merupakan variabel kosong atau tidak mempunyai nilai,
karena itu output yang ditampilkan kosong atau blank

7. Variabel dapat disubtitusikan dengan hasil eksekusi dari sebuah instruksi.


Pada contoh dibawah , instruksi pwd dieksekusi lebih dahulu dengan
sepasang Back Quate (tanda kutip terbalik). Hasil dari eksekusi tersebut
akan masuk sebagai nilai variable DIR
$ pwd
$ DIR=`pwd`
$ echo $DIR

gambar 3.7
Analisa : perintah diatas digunakan untuk mengisi variabel dengan
subtitusi hasil eksekusi dari sebuah eksekusi instruksi harus menggunakan
sepasang back quate (`), seperti pada gambar diatas variabel DIR
didistribusikan dengan hasil eksekusi dari peirntah pwd. Maka saat
variabel DIR dipanggil akan tampil hasil dari pwd tersebut

8. Buatlah shell script prog03.sh


$ vi prog03.sh
#!/bin/sh
# prog03.sh
# NAMA=`whoami`

echo Nama Pengguna Aktif adalah $NAMA

tanggal=`date | cut –c1-10`

echo Hari ini tanggal $tanggal


gambar 3.8
Analisa : perintah diatas digunakan untuk membuat file prog03.sh
menggunakan vi teks editor, dan isi tersebut digunakan untuk
menampilkan variabel dari hasil eksekusi perintah whoami dan date

9. Eksekusi prog03.sh
$ . prog03.sh

gambar 3.9
Analisa : perintah diatas digunakan untuk mengeksekusi shell script
prog03.sh, yang kemudian akan menampilkan hasil eksekusi tersebut

Percobaan 4 : Parameter

1. Membuat shell script prog04.sh


$ vi prog04.sh
#!/bin/sh
# prog04.sh versi 1
# Parameter passing
#
echo “Nama program adalah $0”
echo “Parameter 1 adalah $1”
echo “Parameter 2 adalah $2”
echo “Parameter 3 adalah $3”
gambar 4.1
Analisa : perintah diatas digunakan membuat file prog04.sh menggunakan
vi teks editor, yang berisikan empat buah parameter $0 sampai $3

2. Eksekusi prog04.sh tanpa parameter, dengan 2 parameter, dengan 4


parameter
$ . prog04.sh
$ . prog04.sh amir hasan
$ . prog04.sh amir hasan badu ali

gambar 4.2
Analisa : pada perintah pertama tanpa menggunakan parameter maka
hanya akan menampilkan nama programnya saja, kemudian perintah
kedua dan ketiga dengan menggunakan parameter maka parameter
tersebut akan muncul pada program tersebut, seperti pada gambar
percobaan saya diatas
3. Membuat shell script prog04.sh versi 2 dengan memberikan jumlah
parameter
$ vi prog04.sh
#!/bin/sh
# prog04.sh versi 2
# Parameter passing
#
echo “Jumlah parameter yang diberikan adalah $#”
echo “Nama program adalah $0”
echo “Parameter 1 adalah $1”
echo “Parameter 2 adalah $2”
echo “Parameter 3 adalah $3”

gambar 4.3
Analisa : perintah diatas digunakan untuk mengedit atau memodifikasi
shell script prog04.sh dengan menggunakan vi teks editor, yang kemudian
jumlah parameter yang menggunakan symbol $# akan didefinisikan

4. Eksekusi prog04.sh tanpa parameter dan dengan 4 parameter


$ . prog04.sh
$ . prog04.sh amir hasan badu ali

gambar 4.4
Analisa : perintah diatas digunakan membaca parameter, seperti perintah
pertama yang tidak menggunakan parameter sehingga pada output tersebut
adalah 0, kemudian perintah kedua dengan menggunakan parameter akan
mengeluarkan output tersebut adalah 4

5. Membuat shell script prog04.sh versi 3 dengan menambahkan total


parameter dan nomor proses id (PID)
$ vi prog04.sh
#!/bin/sh
# prog04.sh versi 3
# Parameter passing
#
echo “Jumlah parameter yang diberikan adalah $#”
echo “Nama program adalah $0”
echo “Parameter 1 adalah $1”
echo “Parameter 2 adalah $2”
echo “Parameter 3 adalah $3”
echo “Total parameter adalah $*”
echo “PID proses shell ini adalah $$”

gambar 4.5
Analisa : pada perintah diatas digunakan untuk memodifikasikan atau
mengedit file prog04.sh dengan menambahkan nomor proses id yang
didefinisikan dengan $$ dan untuk menampilkan seluruh parameter
menggunakan $*

6. Eksekusi prog04.sh dengan 4 parameter


$ . prog04.sh amir hasan badu ali
gambar 4.6
Analisa : perintah diatas digunakan untuk mengeksekusikan prog04.sh,
kemudian akan menampilkan apa saja parameter yang digunakan, dan
akan menampilkan proses id dari proses shell tersebut seperti pada
gambar percobaan saya diatas

Percobaan 5 : Status Exit

1. String tidak diketemukan, maka status exit adalah 1


$ grep xyz /etc/passwd
$ echo $?

gambar 5.1
Analisa : perintah diatas bila string tidak ditemukan pada intruksi grep,
akan ditampilkan status exit dengan menggunaan perintah echo $? akan
menampilkan output 1 yang berarti tidak ditemukan

2. String diketemukan, maka status exit adalah 0


$ grep <user> /etc/passwd
$ echo $?
gambar 5.2
Analisa : pada perintah diatas digunakan untuk mencari string teguhdotid
(user) dalam direktori /etc/passwd kemudian dengan menggunakan
perintah echo $? akan menampilkan output 0 yang berarti string tersebut
ditemukan

Percobaan 6 : Konstruksi if

1. Instruksi dengan exit status 0


$ who
$ who | grep <user>
$ echo $?

gambar 6.1
Analisa : perintah diatas merupakan perintah konstruksi if, dari instruksi
who dengan string teguhdotid, maka dengan perintah $? maka akan
menampilkan output 0 yang berarti ditemukan

2. If membandingkan exit status dengan 0, bila sama, maka blok program


masuk ke dalam blok then-fi
$ if [ $? = 0 ]
> then
> echo “Pemakai tersebut sedang aktif”
> fi

gambar 6.2
Analisa : perintah diatas merupakan perintah if, ini adalah untuk
membandingkan status exit dengan 0, bila sama, maka program masuk ke
dalam blok then if yaitu Pemakai tersebut sedang aktif, karena perintah
sebelumnya user teguhdotid sedang aktif hasilnya 0, apabila dengan if $? =
1 artinya user tidak aktif.

3. Nomor (1) dan (2) diatas dapat disederhanakan dengan


$ if who|grep <user>
>/dev/null
> then
> echo okay
> fi

gambar 6.3
Analisa : perintah diatas merupakan perintah konstrusi if, pada percobaan
ini merupakan penyederhanaan dari sebelumnya, pada intruksi ini akan
dibelokan ke direktori /dev/null, karena saya login sebagai user maka
akses terhadap direktori /dev/null tidak bisa terdapat pesan permission
denied

Percobaan 7 : Konstruksi if then else

1. Membuat shell script prog05.sh


$ vi prog05.sh
#!/bin/sh
# prog05.sh
# Program akan memberikankonfirmasi apakah nama
# user sedang aktif atau tidak
#
echo –n “Berikan nama pemakai : ”
read nama
if who | grep $nama > /dev/null
then
echo “$nama sedang aktif”
else
echo “$nama tidak aktif”
fi
gambar 7.1
Analisa : perintah diatas digunakan untuk membuat file prog05.sh dengan
menggunakan vi teks editor, ini dari program tersebut merupakan untuk
memberi konfirmasi apakah user tersebut sedang aktif atau tidaknya, pada
variable $nama akan dibelokan ke direktori /dev/null

2. Jalankan prog05.sh, masukkan nama pemakai yang aktif yang tampil pada
instruksi who dan coba juga untuk nama pemakai yang tidak aktif
$ who
$ . prog05.sh [nama=<user>]
$ . prog05.sh [nama=students]

gambar 7.2
Analisa : pada perintah diatas who untuk mengetahui user yang sedang
aktif, dan kemudian dilanjutkan dengan mengeksekusi atau menjalankan
program prog05.sh dengan notasi titik, dengan menginput nama user
teguhdotid, kemudian akan menampilkan output teguhdotid sedang aktif,
sedangkan dengan menginput nama pemakai selain yang ada di intruksi
who, seperti studens akan menampilkan user tidak aktif

KESIMPULAN :

Kesimpulan saya pada praktikum kali ini adalah saya dapat menyusun
atau mengelompokkan beberapa perintah shell (internal atupun eksternal
command) menjadi kumpulan perintah yang melakukan tugas tertentu sesuai
tujuan penyusunnya, dan pemrograman bash shell ini akan mudah dipelajari
apabila sudah mengetahui perintah-perintah dasar pada bash shell seperti
whoami, cd, cat, dan sebagainya

Anda mungkin juga menyukai