Tanggal Kumpul
|
Nilai
|
Tanda tangan
|
|
Asisten
|
Dosen
|
||
8 NOVEMBER 2014
|
|
|
|
LAPORAN PRAKTIKUM SISTEM OPERASI
PRAKTIKUM 6-B
<< Pemrograman shell>>
DISUSUN OLEH
NAMA :
KOKO HENDRIAWAN
NIM : 4611414039
PERTEMUAN : Ke-10
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS NEGERI SEMARANG
2014
PERCOBAAN 8 : INTRUKSI
TEXT
1.
$ mahasiswa=ilkom
$ test $mahasiswa
= ilkom
$ echo $?
$ test $mahasiswa = fmipa
$ echo $?
Tampilan
outputnya :
Analisanya
:
2. $ vi
masukdaftar.sh
Tampilang outputnya :
#!/bin/sh
#masukdaftar.sh
Echo
–n “MAHASISWA = “
Read
MAHASISWA
If
test “$MAHASISWA” = ILKOM
Then
Echo
“ Selamat datang mahasiswa $MAHASISWA”
Else
Echo
“anda bukan mahasiswa ilkom, sorry!”
fi
Tampilan
outputnya :
Analisisnya:
Di
sini kita menggunakan perintah “if” dan “else”. Ini di gunakan untuk. Jika
program mengalami kesalahan makan pertintah kedua yang akan mengerjakannya
nanti.
3.
$ . masukdaftar.sh
[MAHASISWA : ILKOM]
$
. masukdaftar.sh
[MAHASISWA : MATEMATIKA]
Tampilan
outputnya :
Analisanya
:
Pada
string pertama tidak ada pesan error dan berjalan semestinya karena pada
perintah yang ada di dalam file masukdaftar.sh sudah berjalan dengan sempurna
di jalankan dalam perintah pertama. Akan tetapi di string ke 2 terjadi ke
gagalan ini di karenakan pada perintah di dalam file masukdaftar.sh jika
perintah salah maka akan di jalankan pada perintah yang kedua.pada perintah ini
seperti kita menggunakan nya untuk masuk seminar atau apapun itu jika benar dia
termasuk dalam anggota itu maka programa akan mengatakan selamat datang tetapi
jika sala makan program akan mengatakan anda buka anggota itu sendiri
4.
Modifikasi masukdaftar.sh dengan menggunakan notasi untuk test
#!/bin/sh
#masukdaftar.sh
Echo
–n “MAHASISWA = “
Read
MAHASISWA
If
[ “$MAHASISWA” = ILKOM ]
Then
Echo
“ Selamat datang mahasiswa $MAHASISWA”
Else
Echo
“anda bukan mahasiswa ilkom, sorry!”
fi
Tampilan
outputnya :
Analisanya
:
Program
masih bias berjalan tanpa ada test akan tetapi harus di tambahkan tanda buka
dan tutup kurung”[ ]”.
5.
$ . masukdaftar.sh
[MAHASISWA : ILKOM]
$
. masukdaftar.sh
[MAHASISWA : IPA]
Tampilan
outputnya :
Analisanya
:
Perintah
masih bias di jalankan dengan baik dan sucses walaupun di dalam file tidak ada
test sebagai perintahnya.
PERCOBAAN 9 : NOTASI
&& DAN ||
1.
Bila file
masukdaftar.sh ada
(TRUE), maka jalankan program berikutnya. File masukdaftar.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 masukdaftar.sh ] && echo “masukdaftar.sh ada”
Tampilan
outputnya :
Analisanya
:
Jika
ada file yang kita buat di dalam diktory maka perintah dapat di peroses.
2. $ [ -f masuk.sh ] && echo “masuk.sh ada”
Tampilan
outputnya :
Analisanya
:
File
masuk.sh tidak ada, karena itu exit status adalah
FALSE dan instruksi echo tidak dijalankan.
3.
$ [ -f biodata01.sh ] && . biodata01.sh
Tampilan
outputnya :
Analisanya
:
Pada
percobaan kali ini Bila biodata01.sh ada maka shell script dapat di jalankan.
4.
$ [ -f biodata01.sh ] || echo “Dieksekusi tidak ?”
Tampilan
outputnya :
Analisanya
:
Pada
File
biodata01.sh memang
ada, karena itu exit status adalah TRUE, dan karena sudah TRUE maka instruksi echo tidak lagi dijalankan.
5.
$ [ -f lokasi.sh
] || echo “Di eksekusi tidak ?”
Tampilan
outputnya :
Analisanya
:
File lokasi.sh tidak ada,
karena itu
exit status
adalah FALSE,
hasil masih tergantung atas exit status instruksi ke dua, karena itu instruksi echo dijalankan.
6.
$ [ -f lokasi.sh
] || echo “maaf, lokasi tidak penah ada filenya untuk di eksekusi
tidak?”
Tampilan
outputnya :
Analisanya:
File lokasi.sh tidak ada,
karena itu
exit status
adalah FALSE,
hasil masih tergantung atas exit status instruksi ke dua, karena itu instruksi echo dijalankan.
PERCOBAAN 10
1.
$ i=10
$ test “$i” –eq 10
$Echo $?
$ i=10
$ test “$i” –eq 5
$Echo $?
$ i=10
$ test “$i” –eq 2
$Echo $?
$ i=10
$ test “$i” –eq 10
$Echo $?
Tampilan outputnya :
Analisanya;
Pada percobaan
kali ini menggunakan operator dengan notasi test. Jika “I” sama dengan string maka sukses akan tetapi
jika berbeda maka akan menghasilkan 1 berarti tidak berhasil di jalankan.
2.
$ i=10
$ [ “$i” –eq 10 ]
$Echo $?
$ i=10
$ [ “$i” –eq 2 ]
$Echo $?
$ i=10
$ [ “$i” –eq 10 ]
$Echo $?
Tampilan
outputnya:
Analisanya
:
Pada percobaan
kali ini kita menggunakan operator dengan notasi [ ] (penganti notasi test). Disini hasilnya akan sama saja dengan percobaan 10
nomor 1 jika di jalankan. Perbedaannya Cuma menggunakan operator dengan notasi
[ ].
PERCOBAAN 11 :
1.
Vi pembayaranwarnet.sh
#!/bin/sh
#pembayaranwarnet.sh
Echo
–n “menit= “
Read
menit
If
[$menit –ge 0 –a $menit –le 15 ]
Then
BIAY=1000
Elif
[ $menit –gt 15 –a $menit –le 30 ]
Then
BIAYA=2500
Else
BIAYA=3000
Fi
Echo
“biaya = $BIAYA”
Tampilan
outputnya :
Analisanya
:
Membuat
file yang berisi perintah untuk pembayaran warnet.
2.
. pembayaranwarnet.sh [menit = 10 ]
.
pembayaranwarnet.sh [menit = 15 ]
.pembayaranwarnet.sh
[menit = 30 ]
.
pembayaranwarnet.sh [menit = 40 ]
Tampilan
outputnya :
Analisanya
:
Pada
percobaan kali ini kita dapt membuat suatu program yang biasamembayar warnet
degan menginput waktu yang berjalan makan dengan perintah yang ada di file
pembayaran warnet akan ter output biaya yang harus di bayar.
PERCOBAAN 12 :
1.
$ expr 125 + 325
$ A=15
$ expr $A + 55
$ expr $A – 10
$ expr $A * 2
(Ada Pesan Error)
$ expr $A \* 2
$expr $A / 6 +10
$ expr 17 % 5
Tampilan
outputnya :
Analisanya
:
Pada
percobaan kali ini kita dapat menghitu berapa pun itu juka di jumlahkan akan
tetapi harus di awali dengan expr dan di beri spasi antara agka dengan notasi
“+” serta yang lainnya.
Pada
saat perkalian terjadi error kenapa, karena antara angka dan tanda “*” harus ada \ ini bagi perkalian untuk pembagian
menggunakan tanda “/” serta spasi di antara semua angkanya .
2.
$ a=300
$
b=`expr $a + 30`
$echo
$b
Tampilan
outputnya :
Analisanya:
Pada
percobaan kali ini kita dapat menghitungnya dengan mudah jika angka di ubah menjadi
pemisalan jadi kita lebih dibuat untuk mempermudah menyelesaikan soal dalam
menghitung sengan dijid angka yang banyak.
PERCOBAAN 13:
1.
$ vi keluar.sh
#!/bin/sh
If
[ -f biodata01.sh ]
Then
Exit
3
Else
Exit
-1
fi
Tampilan
outputnya :
Analisanya
:
Disini
kita membuat file untuk keluar dengan menggunakan perintah if dan else.
2.
Menjalankan program
$
. keluar.sh
$
echo $?
Tampilan
outputnya :
Analisanya
:
Jika
string 0 maka perintah yang ada di file keluar berhasil untuk di eksekusi.
PERCOBAAN 14:
1.
$vi cericek.sh
#!/bin/sh
#cek:cericek.sh
echo “1. User apa saja yang aktif”
echo “2. Tanggal berapa hari ini”
echo “3. Kalender
bulan ini”
echo –n “
Pilihan : “
read PILIH
case $PILIH
in
1)
echo “Yang aktif saat ini”
who
;;
2) echo “Tanggal
hari ini”
date
;;
3) echo “Kalender
bulan ini”
cal
;;
*) echo “Salah pilih !!”
;;
Tampilan
outputnya :
Analisanya
:
Pada
file ini kita menggunakan perintah case.
2.
$ . cericek.sh
Pilih
1
$
. cericek.sh
Pilih
2
$
. cericek.sh
Pilih
3
$
. cericek.sh
Pilih
Tampilan
otputnya :
Analisanya
:
Pada
percobaan ini perintah file menggunakan case .pada program case jika perintah
memang sudah di input da nada makan akan di lakaukan prosesnya akan tetapi jika
perintah tidah ada di dalam file akan di munculkan program yang menyatakan itu
tidak ada di dalam pilihan.
3.
Bentuk lain dari case
$ vi yesorno.sh
#!/bin/sh
# Prog: yesorno.sh
echo –n “jawab
(Y/T) : “
read jwb
case $jwb
in
y | y | ya |ya |ya ) jwb=y ;;
t | t | tidak | tidak | tidak ) jwb=t ;;
esac
Tampilan
outputnya :
Analisanya
:
Ini
adalah perintah case yang lainnya . variable darii ya adalah y dan variable
tidak adalah t jika kita ingin memilihnya kita nanti.
4.
Jalankan file
$
. yesorno.sh
Analisnya
:
Saat
kita menjalankan file yesorno.sh maka kita akan di tujukan dua pilihan y atau t
di mana y ya dan t tidak.
5.
Modifikasi yesorno.sh
#!/bin/sh
# Prog: yesorno.sh
echo –n “jawab
(y/t) : “
read jwb
case $jwb
in
[yy] | [yy] [ya] ) jwb=y ;;
[t t] | [tt] | tidak ) jwb=t ;;
esac
Tampilan
outputnya :
Analisanya
:
Tanda
[] merupakan atau kalau gak pakai ini maka pakai yang itu maksud perintah
tersebut.
6.
Jalankan file yesorno.sh
Tampilan
outputnya :
Analisanya
:
PERCOBAAN 15 :
1.
Vi namasiswa.sh
#!/bin/sh
#prog:
namasiswa.sh
For
NAMA in kus rizal hendi safit koko
Do
Echo
"Nama mahasiswa ilkom : $NAMA”
done
Tampilan
outputnya :
Analisanya:
paling
utama disini adalah menggunakan perintah perulangan for dan untuk mengakhirinya
menggunakan done.
2.
Jalankan program
$
. namasiswa.sh
tampilan
outputnya :
Analisanya
:
setelah
dijalankan bisa kita ketahui bahwa perulangan akan dijalankan sampai nilai
akhir dari perulangan tadi. kita membuat nilai variable ada 4 maka itu semua
akan di ulang sampai 4 kali.
3.
Buatlah file filediktory.sh yang berisi konstruksi for dan wildcard,
$
vi filediktory.sh
#!/bin/sh
#
Prog: filediktory.sh
for
F in *
do
echo
$F
done
Tampilan
outputnya :
Analisanya:
dalam perulangan ini isi dari variable adalah
suatu perintah untuk menampilkan semua data (*). Perulangan akan dijalankan
sampai semua data muncul.
4.
Jalankan program filediktory.sh
$
. filediktory.sh
Tampilan
outputnya :
Analisanya
:
Pada
saat kita jalankan maka yang akan terjadi semua file akan tampil dan akan
berhenti jika semua file sedah muncul.
5. Modifikasi
file filediktory.sh, program ini akan menampilkan long list dari file yang mempunyai ekstensi
lst
#!/bin/sh
#
Prog: filediktory.sh
for
F in *lst.sh
do
ls
–l $F
done
Tampilan
outputnya :
Analisanya
:
perulangan
diatas memiliki isi variable perintah menampilkan data dengan ekstensi sh, maka
perulangan akan selesai jika semua data dengan ekstensi sh muncul semua.
6.
Jalankan file
$
. filediktory.sh
Tampilan
outputnya :
Analisanya
:
setelah
kita jalankan maka data dengan ekstensi sh akan muncul semua dan apabila
semuanya sudah muncul perulangan baru akan selesai.
PERCOBAAN 16 :
1. Buatlah
file klik.sh
$
vi klik.sh
#!/bin/sh
#
Prog: klik.sh
PILIH=1
while
[ $PILIH –ne 4 ]
do
echo
“1. Siapa yang aktif”
echo
“2. Tanggal hari ini”
echo
“3. Kalender bulan ini”
echo
“4. Keluar”
echo
“ Pilihan : \c”
read
PILIH
if
[ $PILIH –eq 4 ]
then
break
fi
clear
done
echo
“Program berlanjut di sini setelah break”
Tampilan
outputnya :
Analisanya
:
setelah
diamati kita akan mengetahui bahwa di dalam perulangan terdapat percabangan
yaitu jika pilih bukan 4 maka kan menampilkan list dan inputan, lalu didalam
setelah kita input maka akan masuk percabangan jika 4 maka akan selesai namun
jika bukan 4 maka akan menjalankan perintah clear.
2. Jalankan
prog ram klik.sh
$
. klik.sh
Tampilan
outputnya :
Analisanya
:
diatas
kita menginputkan 4 maka program akan selesai, namun jika selain 4 maka akan
menjalankan perintah clear.
PERCOBAAN 17
1. Modifikasi
file klik.sh
$
vi klik.sh
#!/bin/sh
#
Prog: klik.sh
PILIH=1
while
:
do
echo
“1. Siapa yang aktif”
echo
“2. Tanggal hari ini”
echo
“3. Kalender bulan ini”
echo
“4. Keluar”
echo
“ Pilihan : \c”
read
PILIH
if[
$PILIH –eq 4 ]
then
break
fi
clear
done
echo
“Program berlanjut di sini setelah break”
Tampilan
outputnya :
Analisanya
:
walaupun
menggunakan : perulangan akan tetap jalan.
2. Jalankan
program prog13.sh
$
. prog13.sh
Tampilan
outputnya :
Analisanya
:
masih
sama bila kita menginput 4 maka program akan selesai, namun bila selain 4 maka
akan menjalankan perintah clear.
3. Buatlah
file msuknilai.sh yang berisi instruksi
dummy untuk konstruksi if
$
vi masuknilai.sh
#!/bin/sh
#
Prog: masuknilai.sh
echo
–n “Masukkan nilai : “
read
A
if
[ $A –gt 100 ]
then
:
else
echo
“OK !”
fi
Tampilan
outputnya :
Analisanya
:
diatas
kita ketahui bahwa programnya menggunakan perintah percabangan if yaitu jika variable A >= 100 maka tidak
menampilkan apapun namun jika else akan muncul OK !.
4.
Jalankan file.
$
. masuknilai.sh
Tampilan
outputnya :
Analisanya
:
setelah
dijalankan apabila kita memasukkan angka
>= 100 maka tidak akan muncul apapun, namun apabila kita menginput
angka < 100 maka akan muncul teks OK !.
PERCOBAAN 18:
1. Buatlah
file fungsi.sh
$
vi fungsi.sh
#!/bin/sh
#
Prog: fungsi.sh
F1(
) {
echo
“Fungsi F1”
return
1
}
echo
“Menggunakan Fungsi”
F1
F1
echo
$?
Tampilan
output:
Analisanya
:
kita
bisa membuat suatu fungsi dengan cara nama fungsi() { perintah dari fungsi }
dan untuk memanggilnya kita hanya menuliskan nama fungsi tersebut.
2. Jalankan
program fungsi.sh
$
. fungsi.sh
Tampilan
outputnya:
Analisanya
:
setelah
kita jalankan maka akan muncul nilai dari fungsi tersebut.
3.
$ vi fungsi.sh
#!/bin/sh
#
Prog: fungsi.sh
F1(
)
{
Honor=1000000
echo
“Fungsi F1”
return
1
}
echo
“Menggunakan Fungsi”
F1
F1
echo
“Nilai balik adalah $?”
echo
“Honor = $Honor”
Tampilan
outputnya :
Analisanya
:
diatas
kita membuat fungsi F1 yang memiliki varibabel honor dengan nilai 10000
4. $ . fungsi.sh
Tampilan
outputnya :
Analisanya:
kita
bisa memanggil variable dari fungsi F1 dan bila sukses maka status exit adalah
0.
5. Menggunakan
variable pada fungsi dengan memodifikasi file fungsi.sh
$
vi fungsi.sh
#!/bin/sh
#
Prog: fungsi.sh
F1(
)
{
local
Honor=10000
echo
“Fungsi F1”
return
1
}
echo
“Menggunakan Fungsi”
F1
F1
echo
“Nilai balik adalah $?”
echo
“Honor = $Honor “
echo $?
Tampilan
outputnya :
Analisanya
:
dalam
fungsi kita membuat variable yang besifat local.
6. Jalankan
$
. fungsi.sh
Tampilan
outputnya:
Analisanya
:
walaupun
berifat local variable tersebut tetap bisa dipanggil dari luar fungsi.
LATIHAN
1. Buatlah
program salin.sh yang menyalin file (copy ) sebagai berikut :
salin.shfile -asal file -tujuan
Dengan ketentuan :
·
Bila file asal tidak ada, berikan pesan, salin gagal.
·
Bila file tujuan ada dan file tersebut adalah directory, beri pesan
bahwa file
tidak bisa disalin ke direktori
·
Bila file tujuan ada dan file biasa, beri pesan apakan file tersebut
akan dihapus,
bila dijawab dengan “Y”, maka copy file tersebut
·
Bila file tujuan belum ada, lakukan copy
Untuk mengambil nama file, gunakan
parameter $1 dan $2. Bila jumlah parameter
tidak sama ($#) dengan 2, maka beri
pesan exit = - 1
Tampilan output :
Analisanya:
tujuan program diatas adalah mengcopy suatu
file namun apabila file tujuan adalah direktori atau file asal tidak ada maka
akan muncul error. Untuk mencari suatu file kita bisa menggunakan –f dan untuk
mencari direktori menggunakan –d, bila mengecek file bahwa itu bukan direktori
kita bisa menggunakan ! untuk kebalikannya.
$1 dan $2 adalah determinan yang akan
diinput.
Analisanya:
cara untuk menjalankannya adalah “. Salin.sh
file_asal file tujuan”
Kenapa disamping karena tadi variable
dimasukkan dalam determinan program.
2. Buat
program yang memeriksa nama direktori, jika parameter tersebut adalah
direktori, maka jalankan instruksi
ls – ld pada direktori tersebut. Namakan
program
tersebut
checkdir.sh . Gunakan notasi [ -
d NamaDirektori ] dan pilih logic al &&
atau || pada level shell.
Tampilan outputnya :
Analisanya :
program disini menggunakan perintah
percabangan if dan menggunakan operator && dapat kita lihat bahwa
kuncinya adalah jika yang kita input adalah direktori dan bukan file maka akan
bernilai true.
Di jalankan
Tampilan outputnya:
Analisanya :
saat kita jalankan maka apabila kita
input direktori yang tidak ada maka akan muncul error namun jika kita inputkan
direktori yang ada maka akan bernilai true.
3. Dengan
shell script pph.sh, hitung PPH per tahun d engan ketentuan sebagai berikut :
-
10 juta pertama PPH 15%
-
25 juta berikutnya (sisa) PPH 25%
-
Bila masih ada sisa, maka sisa tersebut PPH 35%
$vi pph.sh
Tampilan outputnya :
Analisanya :
program disini adalah menggunakan
perintah percabangan if dan menggunakan operator bilangan bulat dan operator
logical.
Jalankan
Tampilan outputnya :
Analisanya :
Apabila kita pilih list dan nilainya sesuai
dengan yang ada di list maka akan bernilai true dan apabila input list benar
dan input gaji tidak sesuai maka akan muncul error.
4. Buatlah
program myprog.sh yang memproses p
arameter $1, nilai parameter harus
berupa string :
start
stop
status
restart
reload
$vi myprog.sh
Tampilan outputnya :
Analisanya :
program diatas mebggunakan perintah
percabangan case in yang mempunyai 5 pilihan, dan inputan tersebuat adalah
parameter.
Jalankan
Tampilan outputnya
Analisanya :
karena parameter jadi kita input
langsung saat mengeksekusi program namun hanya menginput 1 nilai karena
parameter yang tersedia hanyalah 1.
5. Buat
sebuah fungsi pada script confirm.sh
yang memberikan konfirmasi jawaban Yes,
No atau C ontinue. Jika jawaban Yes,
maka b eri nilai balik 0, No = 1 dan Continue = 2.
Tampilan outputnya :
Analisanya:
program diatas menggunakan perintah
percabangan didalam perulangan jadi jika yang kita input tidak sesuai dengan
yang tersedia maka perintah input akan selalu berulang, dan dilamny amempunyai
suatu fungsi yang sifatnya local.
Jalankan
Tampilan outputnya:
Perintah selanjutnya :
Analisanya:
program diatas adalah suatu program yang
digunakan untuk memanggil fungsi yang tadi sudah dibuat dalam file confirm.sh,
jika benar maka akan bernilai true.
Di jalankan
Tampilan outputnya:
Analisanya :
saat dijalankan apabila kita menginput
nilai yang sudah tersedia maka akan bernilai true dan jika kita menginput nilai
yang tidak tersedia maka akan selalu berulang atau meminta untuk menginput
kembali.
KESIMPULAN
Shell
script dibuat dengan editor teks (ASCII editor) dan umumnya diberikan ekstensi “.sh”.serta
Variable shell adalah variable yang dapat mempunyai nilai berupa nilai String. Variable harus dimulai dengan alfabet, disusul dengan alfanumerik dan
karakter lain. Variabel dapat ditulis dalam huruf kecil atau
huruf besar atau
campuran keduanya. Nilai variable dapat diisi melalui
keyboard (stdin) dengan instruksi read.
Setiap program setelah selesai dieksekusi akan memberikan informasi melalui variable spesial $?.
Indikasi
yang diberikan adalah :
o Bila
program berakhir dengan sukses, $? = 0
o Bila
program berakhir dengan error, $? 0
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
ada beberapa jenis
Operator yaitu
·
Operator untuk test
·
Test untuk file dan direktori
·
LOGICAL && dan ||
·
Operator bilangan bulat
·
Operator Logical
Dalam
pemrograman shell kita juga bisa menggunakan perintah percabangan if,case dan
perulangan while in.selain itu kita juga bisa membuat sebuah fungsi yang
nantinya bisa dipanggil oleh file lain.
kok gambarnya ngga bisa di load
BalasHapus