Function

Shell Bash menyediakan cara mudah untuk membuat fungsi di dalam skrip. Fungsi dapat dibuat menggunakan salah satu dari dua cara: dengan menulis fungsi di dalam skrip yang juga memanggilnya, atau menulis suatu “library” yang hanya berisi fungsi-fungsi dan menyertakan pustaka tersebut ke dalam skrip yang memanggil fungsi. Pada pendekatan kedua, baris: . ./library.sh Diletakkan di awal skrip (sebelum fungsi-fungsi di dalam library.sh dipanggil). Sebagaimana pada bahasa lain, fungsi pada shell Bash juga dapat mengembalikan suatu nilai (boleh pula tanpa ada nilai yang dikembalikan). Fungsi dapat mengembalikan nilai dengan 3 cara:

Mengubah status dari satu atau lebih variabel

Menggunakan perintah exit untuk mengakhiri skrip shell

Menggunakan perintah return untuk mengakhiri fungsi dan mengembalikan nilaiyang dimasukkan ke bagian pemanggilan dari skrip   shell

Mirip bahasa C. Perintah exit menghentikan program dan perintah return mengembalikan kontrol ke pemanggil. Perbedaannya adalah fungsi shell tidak dapat mengubah parameternya, meskipun dapat mengubah parameter-parameter global.

Fungsi merupakan subprogram yang menerima masukan dan memmpunyai keluaran secara langsung sedangkan prosedure merupakan subprogram yang menerima masukan tetapi tidak memmpunyai keluaran secara langsung.

berikut contoh program menggunakan fungsi

Menjalankan dua aplikasi secara bersamaan tetapi dengan menggunakan threading

coding program diatas

#!/bin/bash
sh satu.sh
sleep 1
echo “.”
sleep 1
echo “.”
sleep 1
echo “.”
sleep 1
sh dua.sh

coding program diatas :

#!/bin/sh
factorial(){
if [ “$1” -gt “1” ]
then
i=`echo $1 – 1 | bc`
j=`factorial $i`
k=`expr $1 \* $j`
echo $k
else
echo 1
fi
}
while :
do
echo “masukan suatu angka: ”
read x
factorial $x
done

berikut coding program diatas :

#!/bin/bash

ulang=’y’

while [ $ulang = ‘y’ ]

do

echo “1. Modul-I”

echo “2. Modul-II”

echo “3. Modul-III”

echo “4. Modul-IV”

echo “5. Modul-V”

echo -n “Silahkan masukan pilihan anda : ”

read x

case $x in

1) ulang=’y’

while [ $ulang = ‘y’ ]

do

echo “Program Pada Modul I”

echo “1. Membaca List Direktori”

echo “2. Aplikasi aktif & Redirection”

echo -n “Silahkan masukan pilihan anda : ”

read a

case $a in

1) ls

;;

2) echo ‘file aktif’;

ls

echo ‘aplikasi aktif’;

ps aux

date > today.txt

;;

*) echo “Thank’s”

;;

esac

echo -n “Ulangi Modul-I y/t(gunakan huruf kecil)??…”

read ulang

done

;;

2) ulang=’y’

while [ $ulang = ‘y’ ]

do

echo “Program Pada Modul II”

echo “1. Menghapus Direktori”

echo “2. Variabel”

echo -n “Silahkan masukan pilihan anda : ”

read b

case $b in

1) echo “Masukan nama direktori(Case Sensitive)”

read a

echo “Proses Hapus…”

sleep 3

rm -Rf $a

echo “Direktori terhapus”

ls

;;

2) My_Message=”Hello Word”

echo $My_Message

;;

*) echo “Thank’s”

;;

esac

echo -n “Ulangi Modul-II y/t(gunakan huruf kecil)??…”

read ulang

done

;;

3) ulang=’y’

while [ $ulang = ‘y’ ]

do

echo “Program Pada Modul III”

echo “1. Username”

echo “2. Nama Lengkap”

echo “3. Home Directory”

echo “4. Buat Folder”

echo “5. Hapus Folder”

echo “6. Buat File”

echo “7. Hapus File”

echo “8. User sah”

echo “9. Random Angka”

echo “10. Terminal Kalkulator V0.1”

echo -n “Silahkan masukan pilihan anda : ”

read x

case $x in

1)

echo “Username adalah :”

$LOGNAME

;;

2)

echo “Nama adalah :”

who i am

;;

3)

echo “Home direktori :”

ls -l

;;

4)

echo “Buat folder: ”

read a

mkdir $a

echo “Folder Telah di buat”

;;

5)

echo “Masukan nama direktori(Case Sensitive)”

read a

echo “Proses Hapus…”

sleep 3

rm -Rf $a

echo “Direktori terhapus”

ls

;;

6)

echo “Masukan Nama File : ”

read a

touch $a

echo “File Telah Dibuat”

;;

7)

echo “Masukan nama file”

read a

echo “Proses Hapus…”

sleep 3

rm $a

echo “File terhapus”

;;

8)

echo “U’re Username from your linux system”

finger -l

;;

9)

echo “Main Tebak Angka”

echo “Silahkan Tebak Angka antara 1-5”

angka=`echo $[($RANDOM % 5)+1]`

echo $angka

echo “Masukan Jawaban Anda :”

read x

case $x in

$angka) echo “Jawaban Benar”;;

*)echo “Jawaban Salah”;;

esac

;;

10)

ulang=’y’

while [ $ulang = ‘y’ ]

do

echo “Terminal Kalkulator V0.1”

echo “1. Penjumlahan”

echo “2. Pengurangan”

echo “3. Perkalian”

echo “4. Pembagian”

echo “5. Pangkat”

echo “6. Luas Lingkaran”

echo “7. Luas Segitiga”

echo “8. Desimal ke Biner”

echo -n “Operasi : ”

read operasi

case $operasi in

1) echo -n “Masukan Angka 1 : ”

read a;

echo -n “Masukan Angka 2 : ”

read b;

c=`echo $a+$b | bc`

echo “$a + $b = $c”

;;

2) echo -n “Masukan Angka 1 : ”

read a;

echo -n “Masukan Angka 2 : ”

read b;

c=`echo $a-$b | bc`

echo “$a – $b = $c”

;;

3) echo -n “Masukan Angka 1 : ”

read a;

echo -n “Masukan Angka 2 : ”

read b;

c=`echo $a*$b | bc`

echo “$a x $b = $c”

;;

4) echo -n “Masukan Angka 1 : ”

read a;

echo -n “Masukan Angka 2 : ”

read b;

c=`echo $a/$b | bc`

echo “$a : $b = $c”

;;

5) echo “Masukan angka 1 : ”

read a

echo “Masukan angka 2 : ”

read b

c=`echo $a^$b | bc`

echo “Hasil adalah $a ^ $b = $c”

;;

6) echo “Masukan r : ”

read r

l=`echo 3.14*$r^2 | bc`

echo “Hasilnya adalah 3.14 x $r ^ 2 = $l”

;;

7) echo “Masuka alas : ”

read a

echo “Masukan tinggi : ”

read t

l=`echo 0.5*$a*$t | bc`

echo “Hasilnya adalah 1/2 * $a * $t = $l”

;;

8) echo “Konversi Desimal ke Biner”

echo “Masukan angka desimal : ”

read num

rem=1

bno=” ”

while [ $num -gt 0 ]

do

rem=`expr $num % 2`

bno=$bno$rem

num=`expr $num / 2`

done

i=${#bno}

final=” ”

while [ $i -gt 0 ]

do

rev=`echo $bno | awk ‘{ printf substr( $0,’$i’,1 ) }’`

final=$final$rev

i=$(( $i – 1 ))

done

echo “Hasil = $final”

;;

*) echo “Anda belum memilih, Silahkan melakukan pilihan”

;;

esac

echo -n “Ulang y/t(gunakan huruf kecil)??…”

read ulang

done

;;

*) echo “Thank’s”

;;

esac

echo -n “Ulangi Modul-III y/t(gunakan huruf kecil)??…”

read ulang

done

;;

4) ulang=’y’

while [ $ulang = ‘y’ ]

do

echo “Program Pada Modul IV”

echo “1. PS Aux User”

echo “2. Login”

echo -n “Silahkan masukan pilihan anda : ”

read a

case $a in

1)

ulang=’y’

while [ $ulang = ‘y’ ]

do

clear

echo “Daftar User”

echo “1. shall”

echo “2. root”

echo -n “silahkan masukan pilihan : …”

read a

case $a in

1) ps aux | grep shall;;

2) ps aux | grep root;;

*) echo “Belum di pilih silahkan pilih”;;

esac

echo -n “Ulang y/t??”

read ulang

done

;;

2)

pasww=’salman’

echo -n “Masukan Password Anda : ”

read a

if [ $pasww = $a ]

then

echo “Terimakasih”

else

echo “Password anda salah”

fi

;;

*) echo “Thank’s”

;;

esac

echo -n “Ulangi Modul-IV y/t(gunakan huruf kecil)??…”

read ulang

done

;;

5) ulang=’y’

while [ $ulang = ‘y’ ]

do

echo “Program Pada Modul V”

echo “1. Faktorial”

echo “2. Threading”

echo -n “Silahkan masukan pilihan anda : ”

read a

case $a in

1) factorial(){

if [ “$1” -gt “1” ]

then

i=`echo $1 – 1 | bc`

j=`factorial $i`

k=`expr $1 \* $j`

echo $k

else

echo 1

fi

}

while :

do

echo “masukan suatu angka: ”

read x

factorial $x

done

;;

2)

;;

*) echo “Thank’s”

;;

esac

echo -n “Ulangi Modul-V y/t(gunakan huruf kecil)??…”

read ulang

done

;;

*) echo “Thank’s sudah menggunakan program ini ^_^”

;;

esac

echo -n “Ulang Seluruh Program y/t(gunakan huruf kecil)??…”

read ulang

done

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s