• Tidak ada hasil yang ditemukan

APLIKASI PEMROGRAMAN SHELL

N/A
N/A
Protected

Academic year: 2021

Membagikan "APLIKASI PEMROGRAMAN SHELL"

Copied!
12
0
0

Teks penuh

(1)

APLIKASI

PEMROGRAMAN SHELL

Praktikum

15

A. T U J U A N

1. Membuat program aplikasi pengaturan warna dan fungsi random.

2. Membuat program aplikasi aritmatika, awk, fungsi, user interface dan

dialog.

B. DASAR TEORI

Pembuatan program aplikasi ini berdasarkan pada teori-teori yang sudah

dibahas di bab atau praktikum sebelumnya, seperti: teori tentang expresi dan

test untuk operasi aritmatika, fungsi pada materi praktikum 9, awk juga telah

dijelaskan pada praktikum 11 dan 12, sedangkan pembahasan user

interface/GUI dan dialog pada modul praktikum 14 dan modul praktikum yang

lainnya. Sekedar untuk mengingatkan kembali berikut penulisan sintak dari

perintah/statement yang banyak digunakan dalam pembuatan program

aplikasi:

Sintak:

Nama_fungsi () { command; command; }

Function nama_fungsi { command; command; }Function

nama_fungsi () { command; command; }

Sintak:

awk -f {awk program file} filename

Pernyataan didalam program awk:

Pattern {

action 1

action 2

action N

}

(2)

Untuk pewarnaan tampilan di layar dapat menggunakan kode ANSI (

American

National Standards Institute

). Sintaknya sebagai berikut :

\033[colorm

Ket :

m

menandakan setting color

Color Foreground

Background

Black 30

40

red 31 41

green 32

42

yellow 33

43

blue 34

44

magenta 35

45

cyan 36

46

white 37

47

C. PROSEDUR

1. Masuk ke sistem operasi Linux.

2. Login sebagai user yang telah ditentukan.

3. Buatlah program seperti pada percobaan dan program latihan.

4. Catatlah hasil dari setiap program pada prosedur no.3 sebagai laporan

sementara.

D. PERCOBAAN

1. Pemrograman shell untuk aplikasi schedule reminder :

#!/bin/bash clear

echo “**************************************” echo “********* SCHEDULE REMINDER **********” echo “**************************************”

echo “* Date today:`date | awk ‘{print $3,$2,$6}’ ` | time :`date | awk '{print $4}'` *”

echo “**************************************” echo echo -n “ Massages = “ read pesan echo echo -n “ Time (hh:mm:ss) = “ read waktu echo echo "**************************************" echo "**** do not exit terminal untill *****" echo "********** the bell rings ************" echo "**************************************"

duration=2000 volume=$'\xff'

(3)

mute=$'\x80'

function mknote () {

for t in `seq 0 $duration` do

test $(( $t % $1 )) = 0 && echo -n $volume || echo -n $mute done } e=`mknote 50` g=`mknote 45` a=`mknote 36` b=`mknote 32` c=`mknote 30` cis=`mknote 29` d=`mknote 27` e2=`mknote 24` n=`mknote 32767` a=1 while (a==1) do

cek="`date | awk '{print $4}'`"; if [ "$waktu" == "$cek" ]

then

echo -n "$n$n$n$n$e2$c$c$c$$c$c$c$e2$e2$c$c$c$n$n$n$n$e2$c$c$c$ " > /dev/dsp

#nada bisa diubah sesuai keinginan

d=`echo "Time : $waktu

Massages : $pesan" | zenity --text-info --title "*** SCHEDULE REMINDER ***" --height 50 --width 300`

echo $d exit 0 fi done

2. Perhitungan Nilai Rangkaian Resistor Seri Atau Pararel.

#!/bin/bash clear echo -e " \033[32m `date` \033[0m" sleep 1 load(){ clear tput cup 10 15 echo please_wait..!! echo " " tput cup 15 15 echo -n -e "\033[32m loading.\033[0m" sleep 1 echo -n -e "\033[31m .\033[0m" sleep 1 echo -n -e "\033[32m .\033[0m" sleep 1 echo -n -e "\033[31m .\033[0m" echo -n -e "\033[32m .\033[0m" echo -e "\033[31m .\033[0m" clear

(4)

}

seri(){

load echo ""

echo -e " \033[34m RANGKAIAN SERI \033[0m" echo ""

echo -n -e "\033[34m masukkan banyak resistor yang anda hitung : \033[0m"

read w echo ""

echo -e "\033[2;33m resistor dalam satuan ohm\033[0m" echo "" let "x=1" let "y=0" g=0 while let "x <=$w" do let "x=x+1" let "y=y+1"

echo -n -e "\033[34m masukkan resistor $y : \033[0m" read a

g=`echo "$g+$a" | bc`; done

echo

echo -e "\033[34m hasil perhitungan nilai rangkaian yang di rangkai seri adalah : $g ohm \033[0m"

sleep 1.75

jawab=`zenity --title "" --width 400 --entry --text " apakah anda ingin menjalankannya lagi(y/t)? : "`

case $jawab in y | Y | ya | Ya | YA ) clear echo "loading. ." sleep 1 clear dor ;; t | T | tidak | TIDAK | *) echo clear tput cup 5 10 sleep 1

v=`zenity --title "== ttttttttt ==" --width 400 --entry --text " *--*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

....TERIMAKASIH TELAH MENGGUNAKAN PROGRAM INI....

-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*"` echo $v;; esac return 0 } par(){ load echo ""

echo -e " \033[34m RANGKAIAN PARAREL \033[0m" echo ""

(5)

\033[0m" read w echo ""

echo -e "\033[2;33m resistor dalam satuan ohm\033[0m" echo ""

echo -n -e "\033[34m masukkan nilai resistor ke 1 : \033[0m" read z g=$z let "x=1" while let "x <=$w-1" do let "x=x+1"

echo -n -e "\033[34m masukkan nilai resistor ke $x : \033[0m"

read a rum=`echo "$g*$a" | bc`; rum2=`echo "$g" | bc`; rum3=`echo "$rum2+$a" | bc`; g=`echo "scale=2;$rum/$rum3" | bc`; done echo

echo -e "\033[34m Hasil perhitungan nilai rangkaian yang di rangkai pararel adalah : $g ohm \033[0m"

sleep 1.75

jawab=`zenity --title "" --width 400 --entry --text " apakah anda ingin menjalankannya lagi(y/t)? : "`

case $jawab in y | Y | ya | Ya | YA ) clear echo "loading. ." sleep 1 clear dor ;; t | T | tidak | TIDAK | *) echo clear tput cup 5 10 sleep 1

v=`zenity --title "== tttttttt ==" --width 400 --entry --text " *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

....TERIMAKASIH TELAH MENGGUNAKAN PROGRAM INI....

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*"` ;; esac return 0 } apik(){ h=`date` f=`case $(date +%H) in 00|01|02|03|04|05|06|07|08|09) echo "SELAMAT PAGI"

;;

10|11|12|13|14)

echo "SELAMAT SIANG" ;;

15|16|17|18)

echo "SELAMAT SORE" ;;

(6)

*)

echo "SELAMAT MALAM" ;;

esac`

b=`zenity --title "=== $f ===" --width 400 --entry --text " $h

--- *******-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-******* * ANDA MEMASUKI PROGRAM UNTUK MENGHITUNG NILAI RESISTOR *

*******-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-******* --- *-*-*-*-*-* pilihlah model rangkaianya *-*-*-*-*-*

==> dirangkai seri pil no 1 <== ==> dirangkai pararel pil no 2 <== ==> lainnya selesai <== PILIHAN ANDA : "`

echo $b case $b in

1 | seri | Seri | SERI) seri ;;

2 |PARAREL| PARALEL | pararel | paralel | Pararel | Paralel ) par ;;

* )

ab=`zenity -title " ingat hanya no 1&2" -width 400 -entry -text " apakah anda ingin menjalankannya lagi(y/t)? : "`

case $ab in y | Y | ya | Ya | YA ) clear echo "loading. ." sleep 1 clear dor ;; t | T | tidak | TIDAK | *) echo clear tput cup 5 10 sleep 1

v=`zenity --title "== tttttttt ==" --width 400 --entry --text " *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

....TERIMAKASIH TELAH MENGGUNAKAN PROGRAM INI....

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*"` echo $v;; esac;; esac } dor(){

b=`zenity -title "== PILIHAN ANDA ==" -width 400 -entry -text "

*-*-*-*-*-* pilihlah model rangkaianya *-*-*-*-*-* ==> dirangkai seri pil no 1 <== ==> dirangkai pararel pil no 2 <== ==> lainnya selesai <== PILIHAN ANDA : "`

echo $b case $b in

1 | seri | Seri | SERI) seri ;;

(7)

;;

* )

ab=`zenity -title " ingat hanya no 1&2" -width 400 -entry- text " apakah anda ingin menjalankannya lagi(y/t)? : "`

case $ab in y | Y | ya | Ya | YA ) clear echo "loading. ." sleep 1 clear dor ;; t | T | tidak | TIDAK | *) echo clear tput cup 5 10 sleep 1

v=`zenity -title "== ttttttttttt ==" -width 400 -entry- text " *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

....TERIMAKASIH TELAH MENGGUNAKAN PROGRAM INI....

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*"` echo $v;; esac;; esac } apik

3. Program aplikasi game tebak angka.

#!/bin/bash

nama=`zenity –title “WELCOME TO THE NUMBER’S GAME” –width 400 – entry –text “RULES OF GAME:

1. Number between 1 to 10 2. Game will do until 5 times Enter your name:”`

echo $nama

lagi () {

jwb=`zenity --title "$nama's Game" --entry --text "Play again:y/t?" --height 200`

case $jwb in y|Y|ya|YA|Ya)

rand=$[($RANDOM %10) +1] let a=1;

while let "$a <= 5" do

angka=`zenity --title "$nama's Game" --entry --text "Enter a number:"`;

echo $angka; let a=$a+1;

if [ $angka -eq $rani ]; then

zenity --title "Haha...$name winner" --warning --text "$nama...!!You Win" --height 200 --width 250

lagi; else

kalah=`zenity --title "$nama Try again" --warning --text "$nama...!!You are not lucky" --height 200 --width 300`; echo $kalah;

fi done

Zenity --title "Hehe..$name loser" --warning --text "Sorry...$nama...You lose" --height 200 --width 300 lagi;

(8)

;;

t|T|tidak|Tidak|TIDAK)

zenity --title "Bye-bye $nama" --warning --text "Ok..thank you See you..." --height 200 --width 250

exit 0 ;; esac } maen() { rand=$[($RANDOM %10) +1] let a=1;

while let "$a <= 5" do

angka=`zenity --title "$nama's Game" --entry --text "Enter a number:"`;

echo $angka; let a=$a+1;

if [ $angka -eq $rani ]; then

zenity --title "Haha...$nama winner" --warning --text "$nama...!!You Win" --height 200 --width 250

lagi; else

kalah=`zenity --title "$nama Try again" --warning --text "$nama...!!You are not lucky" --height 200 --width 300`; echo $kalah;

fi done }

maen;

zenity --title "Hehe..$nama loser" --warning --text "Sorry...$nama...You lose" --height 200 --width 300

lagi;

4. Program aplikasi perubahan tampilan warna secara acak

#!/bin/bash back(){ init=40 while true do acak=$RANDOM

if [ $acak -le 7 ]; then let no=$acak+$init echo $no"m" break fi done } hurufi(){ i=`back` echo -e "\033[$i\033[0;0H \033[0m" echo -e "\033[$i\033[1;0H \033[0m" echo -e "\033[$i\033[2;0H \033[0m" echo -e "\033[$i\033[3;0H \033[0m" echo -e "\033[$i\033[4;0H \033[0m" echo -e "\033[$i\033[5;0H \033[0m" } hurufl(){ i=`back` echo -e "\033[$i\033[0;5H \033[0m"

(9)

echo -e "\033[$i\033[1;5H \033[0m" echo -e "\033[$i\033[2;5H \033[0m" echo -e "\033[$i\033[3;5H \033[0m" echo -e "\033[$i\033[4;5H \033[0m" echo -e "\033[$i\033[5;5H \033[0m" echo -e "\033[$i\033[5;6H \033[0m" echo -e "\033[$i\033[5;7H \033[0m" echo -e "\033[$i\033[5;8H \033[0m" } hurufu(){ i=`back` echo -e "\033[$i\033[3;10H \033[0m" echo -e "\033[$i\033[3;13H \033[0m" echo -e "\033[$i\033[4;10H \033[0m" echo -e "\033[$i\033[4;13H \033[0m" echo -e "\033[$i\033[5;10H \033[0m" echo -e "\033[$i\033[5;11H \033[0m" echo -e "\033[$i\033[5;12H \033[0m" echo -e "\033[$i\033[5;13H \033[0m" } hurufp(){ i=`back` echo -e "\033[$i\033[3;15H \033[0m" echo -e "\033[$i\033[3;16H \033[0m" echo -e "\033[$i\033[3;17H \033[0m" echo -e "\033[$i\033[3;18H \033[0m" echo -e "\033[$i\033[4;15H \033[0m" echo -e "\033[$i\033[4;18H \033[0m" echo -e "\033[$i\033[5;15H \033[0m" echo -e "\033[$i\033[5;16H \033[0m" echo -e "\033[$i\033[5;17H \033[0m" echo -e "\033[$i\033[5;18H \033[0m" echo -e "\033[$i\033[6;15H \033[0m" echo -e "\033[$i\033[7;15H \033[0m" } hurufh(){ i=`back` echo -e "\033[$i\033[0;20H \033[0m" echo -e "\033[$i\033[1;20H \033[0m" echo -e "\033[$i\033[2;20H \033[0m" echo -e "\033[$i\033[3;20H \033[0m" echo -e "\033[$i\033[3;21H \033[0m" echo -e "\033[$i\033[3;22H \033[0m" echo -e "\033[$i\033[4;20H \033[0m" echo -e "\033[$i\033[4;22H \033[0m" echo -e "\033[$i\033[5;20H \033[0m" echo -e "\033[$i\033[5;22H \033[0m" } hurufU(){ i=`back` echo -e "\033[$i\033[0;26H \033[0m" echo -e "\033[$i\033[0;29H \033[0m" echo -e "\033[$i\033[1;26H \033[0m" echo -e "\033[$i\033[1;29H \033[0m" echo -e "\033[$i\033[2;26H \033[0m" echo -e "\033[$i\033[2;29H \033[0m" echo -e "\033[$i\033[3;26H \033[0m"

(10)

echo -e "\033[$i\033[3;29H \033[0m" echo -e "\033[$i\033[4;26H \033[0m" echo -e "\033[$i\033[4;29H \033[0m" echo -e "\033[$i\033[5;26H \033[0m" echo -e "\033[$i\033[5;27H \033[0m" echo -e "\033[$i\033[5;28H \033[0m" echo -e "\033[$i\033[5;29H \033[0m" } clear while true do hurufi hurufl hurufu hurufp hurufh hurufU sleep 1s done

5. Membuat rekapitulasi tranksaksi

#!/bin/bash while true do

clear

echo -e "\033[0;36mSelamat Datang\033[0m di \033[44;1;34mgaTel (Warga Telkom) \033[0m \033[0;34mRestaurant\033[0m"

echo -e "\033[2;13H---"

echo -e "\033[1;35m\033[3;13HMENU HARI INI\033[0m" echo -e "\033[4;13H---"

echo -e "\033[0;37m\033[5;4HMakanan\033[0m \033[1;30m\033[5;29HMinuman\033[0m"

echo -e "1. Bakso \t\t 4. Es teh"

echo -e "2. Gado-gado \t\t 5. Es Jeruk" echo -e "3. Rujak \t\t 6. Es Degan" echo

while true do

echo -n "Masukkan pilihan makanan anda (atau 't' untuk tidak memesan): "

read pil case $pil in 1)

echo -n "Banyak Porsi = " read jumma

let bayarma=jumma*5000; pilma="Bakso $jumma piring" break

;; 2)

echo -n "Banyak Porsi = " read jumma

let bayarma=jumma*4000;

pilma="Gado-gado $jumma piring" break

;; 3)

echo -n "Banyak Porsi = " read jumma

(11)

let bayarma=jumma*6000; pilma="Rujak $jumma piring" break

;; t)

bayarma=0

pilma="tidak memesan makanan" break

;; *)

echo "Pilihan 1-3 atau 't'" echo ;; esac done echo while true do

echo -n "Masukkan pilihan minuman anda (atau 't' untuk tidak memesan): "

read pil case $pil in 4)

echo -n "Banyak Gelas = " read jummi

let bayarmi=jummi*1500 pilmi="Es teh $jummi gelas" break

;; 5)

echo -n "Banyak Gelas = " read jummi

let bayarmi=jummi*2500

pilmi="Es jeruk $jummi gelas" break

;; 6)

echo -n "Banyak Gelas = " read jummi

let bayarmi=jummi*3500

pilmi="Es degan $jummi gelas break

;; t)

bayarmi=0

pilmi="tidak memesan minuman" break

;; *)

echo "Pilihan 4-6 atau 't'" echo ;; esac done let total=$bayarma+$bayarmi echo

echo -e "\033[0;31mBiaya yang harus anda bayar :\033[0m \033[4;1;31m$total\033[0m"

(12)

echo

echo "Pada `date` pelanggan memesan : $pilma dan $pilmi dengan total Rp.$total" | cat >> rekapQ.txt

echo -n "Apakah mau pesan lagi ? (Y/y/T/t) : " read jawab case $jawab in Y | y ) echo "" ;; T | t ) exit 0 ;; esac echo "*************************************" echo done

E. Latihan

1. Dengan menggunakan parameter posisi buatlah program aplikasi kamus

Indonesia ke jawa atau sebaliknya, sebagai bantuan buatlah file database

yang berisi terjemahan setiap kata.

2. Buatlah program aplikasi database sederhana tentang biodata pasien baru

maupun lama pada sebuah rumah sakit yang berisi data sebagai berikut :

- ID, Nama, Umur, Alamat, Keadaan dan Diagnosa pasien.

Gunakan user interface dan dialog untuk Entry data pasien, menyimpan

data, dan tampilan daftar pasien.

Referensi

Dokumen terkait

Aturan perjanjian berdasarkan hukum islam antara bank dengan pihak lain untuk menyimpan dana dan atau pembiayaan kegiatan usaha atau kegiatan lainnya yang

Penulisan ini bermaksud untuk untuk mengetahui mekanisme penetapan upah minimum kota Salatiga, untuk mengetahui pelaksanaan ketentuan upah minimum kota di perusahaan P.T

Berdasarkan latar belakang perumusan masalah yang akan ditemukan maka dilakukan pengumpulan data-data yang digunakan dalam perbaikan sistem manajemen warehouse

Model Pembelajaran Jarak Jauh Bahasa Indonesia Bagi.. Penutur Frankofon Melalui

Mengingat KPP Pratama merupakan penggabungan dari KPP, KPPBB, dan Karikpa maka kepala Kantor Pratama mempunyai tugas mengkoordinasi pelaksanaan penyuluhan, pelayanan dan

Kurangnya keterampilan fish handling dan sanitasi pada mitra akan diatasi dengan pelatihan penanganan ikan sehingga mutu ikan yang dijual akan baik dan pada akhirnya

Oleh karena itu peneliti tertarik untuk melakukan penelitian dengan judul “Analisis faktor-faktor yang mempengaruhi tingkat kepatuhan Penggunaan Alat Pelindung Diri

Untuk dapat menciptakan suasana kerja yang menyenangkan maka pekerjaan yang diberikan harus menarik, penuh tantangan dan tidak bersifat rutin.Pekerjaan yang